55437 lines
936 KiB
ArmAsm
55437 lines
936 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "constants/constants.inc"
|
|
|
|
.syntax unified
|
|
|
|
.text
|
|
|
|
thumb_func_start sub_80A22E8
|
|
sub_80A22E8: @ 80A22E8
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
ldr r5, _080A231C @ =gUnknown_2037F02
|
|
ldrh r0, [r5]
|
|
ldrh r1, [r4, 0x20]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x20]
|
|
ldrh r0, [r5, 0x2]
|
|
ldrh r1, [r4, 0x22]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x22]
|
|
ldrh r0, [r5, 0x4]
|
|
strh r0, [r4, 0x2E]
|
|
ldrh r0, [r5, 0x6]
|
|
strh r0, [r4, 0x30]
|
|
ldr r0, _080A2320 @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A2324
|
|
ldrh r0, [r5, 0x8]
|
|
negs r0, r0
|
|
b _080A2326
|
|
.align 2, 0
|
|
_080A231C: .4byte gUnknown_2037F02
|
|
_080A2320: .4byte gUnknown_2037F1A
|
|
_080A2324:
|
|
ldrh r0, [r5, 0x8]
|
|
_080A2326:
|
|
strh r0, [r4, 0x34]
|
|
ldr r0, _080A2338 @ =gUnknown_2037F02
|
|
ldrh r0, [r0, 0xA]
|
|
strh r0, [r4, 0x36]
|
|
ldr r0, _080A233C @ =sub_80A2340
|
|
str r0, [r4, 0x1C]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A2338: .4byte gUnknown_2037F02
|
|
_080A233C: .4byte sub_80A2340
|
|
thumb_func_end sub_80A22E8
|
|
|
|
thumb_func_start sub_80A2340
|
|
sub_80A2340: @ 80A2340
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrh r1, [r4, 0x2E]
|
|
movs r2, 0x2E
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0
|
|
ble _080A237C
|
|
subs r0, r1, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
ldrh r1, [r4, 0x32]
|
|
lsls r0, r1, 16
|
|
asrs r0, 24
|
|
strh r0, [r4, 0x26]
|
|
ldrh r0, [r4, 0x30]
|
|
adds r1, r0
|
|
strh r1, [r4, 0x32]
|
|
movs r1, 0x38
|
|
ldrsh r0, [r4, r1]
|
|
movs r2, 0x34
|
|
ldrsh r1, [r4, r2]
|
|
bl Sin
|
|
strh r0, [r4, 0x24]
|
|
ldrh r0, [r4, 0x36]
|
|
ldrh r1, [r4, 0x38]
|
|
adds r0, r1
|
|
movs r1, 0xFF
|
|
ands r0, r1
|
|
strh r0, [r4, 0x38]
|
|
b _080A2382
|
|
_080A237C:
|
|
adds r0, r4, 0
|
|
bl DestroyAnimSprite
|
|
_080A2382:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A2340
|
|
|
|
thumb_func_start sub_80A2388
|
|
sub_80A2388: @ 80A2388
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x1
|
|
bl sub_8075160
|
|
ldr r0, _080A23C8 @ =gUnknown_2037F02
|
|
ldrh r0, [r0, 0x4]
|
|
strh r0, [r4, 0x2E]
|
|
ldr r5, _080A23CC @ =gUnknown_2037F1A
|
|
ldrb r0, [r5]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x32]
|
|
ldrb r0, [r5]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x36]
|
|
ldr r0, _080A23D0 @ =sub_8075590
|
|
str r0, [r4, 0x1C]
|
|
ldr r1, _080A23D4 @ =move_anim_8074EE0
|
|
adds r0, r4, 0
|
|
bl StoreSpriteCallbackInData6
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A23C8: .4byte gUnknown_2037F02
|
|
_080A23CC: .4byte gUnknown_2037F1A
|
|
_080A23D0: .4byte sub_8075590
|
|
_080A23D4: .4byte move_anim_8074EE0
|
|
thumb_func_end sub_80A2388
|
|
|
|
thumb_func_start sub_80A23D8
|
|
sub_80A23D8: @ 80A23D8
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x1
|
|
bl sub_8075160
|
|
ldr r5, _080A2420 @ =gUnknown_2037F02
|
|
ldrb r1, [r5, 0x6]
|
|
adds r0, r4, 0
|
|
bl StartSpriteAnim
|
|
ldrh r0, [r5, 0x4]
|
|
strh r0, [r4, 0x2E]
|
|
ldr r5, _080A2424 @ =gUnknown_2037F1B
|
|
ldrb r0, [r5]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x32]
|
|
ldrb r0, [r5]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x36]
|
|
ldr r0, _080A2428 @ =sub_8075590
|
|
str r0, [r4, 0x1C]
|
|
ldr r1, _080A242C @ =DestroyAnimSprite
|
|
adds r0, r4, 0
|
|
bl StoreSpriteCallbackInData6
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A2420: .4byte gUnknown_2037F02
|
|
_080A2424: .4byte gUnknown_2037F1B
|
|
_080A2428: .4byte sub_8075590
|
|
_080A242C: .4byte DestroyAnimSprite
|
|
thumb_func_end sub_80A23D8
|
|
|
|
thumb_func_start sub_80A2430
|
|
sub_80A2430: @ 80A2430
|
|
push {r4-r6,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x1
|
|
bl sub_8075160
|
|
ldr r6, _080A2480 @ =gUnknown_2037F02
|
|
ldrh r0, [r6, 0x4]
|
|
strh r0, [r4, 0x2E]
|
|
ldrh r0, [r4, 0x20]
|
|
strh r0, [r4, 0x30]
|
|
ldr r5, _080A2484 @ =gUnknown_2037F1B
|
|
ldrb r0, [r5]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x32]
|
|
ldrh r0, [r4, 0x22]
|
|
strh r0, [r4, 0x34]
|
|
ldrb r0, [r5]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x36]
|
|
adds r0, r4, 0
|
|
bl obj_translate_based_on_private_1_2_3_4
|
|
ldrh r0, [r6, 0x6]
|
|
strh r0, [r4, 0x38]
|
|
ldr r1, _080A2488 @ =sub_80A248C
|
|
str r1, [r4, 0x1C]
|
|
adds r0, r4, 0
|
|
bl _call_via_r1
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A2480: .4byte gUnknown_2037F02
|
|
_080A2484: .4byte gUnknown_2037F1B
|
|
_080A2488: .4byte sub_80A248C
|
|
thumb_func_end sub_80A2430
|
|
|
|
thumb_func_start sub_80A248C
|
|
sub_80A248C: @ 80A248C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_80755E0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A24A2
|
|
adds r0, r4, 0
|
|
bl DestroySprite
|
|
b _080A24F6
|
|
_080A24A2:
|
|
movs r1, 0x38
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x7F
|
|
ble _080A24BC
|
|
ldr r0, _080A24B8 @ =gUnknown_2037F1B
|
|
ldrb r0, [r0]
|
|
bl sub_807685C
|
|
adds r0, 0x1
|
|
b _080A24C6
|
|
.align 2, 0
|
|
_080A24B8: .4byte gUnknown_2037F1B
|
|
_080A24BC:
|
|
ldr r0, _080A24FC @ =gUnknown_2037F1B
|
|
ldrb r0, [r0]
|
|
bl sub_807685C
|
|
adds r0, 0x6
|
|
_080A24C6:
|
|
adds r1, r4, 0
|
|
adds r1, 0x43
|
|
strb r0, [r1]
|
|
movs r1, 0x38
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0x5
|
|
bl Sin
|
|
ldrh r1, [r4, 0x24]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x24]
|
|
movs r1, 0x38
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0xE
|
|
bl Cos
|
|
ldrh r1, [r4, 0x26]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x26]
|
|
ldrh r0, [r4, 0x38]
|
|
adds r0, 0xF
|
|
movs r1, 0xFF
|
|
ands r0, r1
|
|
strh r0, [r4, 0x38]
|
|
_080A24F6:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A24FC: .4byte gUnknown_2037F1B
|
|
thumb_func_end sub_80A248C
|
|
|
|
thumb_func_start sub_80A2500
|
|
sub_80A2500: @ 80A2500
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r6, r0, 0
|
|
ldr r1, _080A2570 @ =gTasks
|
|
lsls r0, r6, 2
|
|
adds r0, r6
|
|
lsls r0, 3
|
|
adds r5, r0, r1
|
|
ldrh r0, [r5, 0x8]
|
|
subs r0, 0x1
|
|
movs r2, 0
|
|
strh r0, [r5, 0x8]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
cmp r0, r1
|
|
bne _080A255A
|
|
ldrh r0, [r5, 0xA]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0xA]
|
|
movs r0, 0x6
|
|
strh r0, [r5, 0x8]
|
|
ldr r1, _080A2574 @ =gUnknown_2037F02
|
|
movs r0, 0xF
|
|
strh r0, [r1]
|
|
strh r2, [r1, 0x2]
|
|
movs r0, 0x50
|
|
strh r0, [r1, 0x4]
|
|
strh r2, [r1, 0x6]
|
|
ldr r4, _080A2578 @ =gUnknown_83E2A88
|
|
ldr r0, _080A257C @ =gUnknown_2037F1B
|
|
ldrb r0, [r0]
|
|
bl sub_807685C
|
|
adds r3, r0, 0
|
|
adds r3, 0x1
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl CreateSpriteAndAnimate
|
|
_080A255A:
|
|
movs r1, 0xA
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0xF
|
|
bne _080A2568
|
|
adds r0, r6, 0
|
|
bl DestroyAnimVisualTask
|
|
_080A2568:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A2570: .4byte gTasks
|
|
_080A2574: .4byte gUnknown_2037F02
|
|
_080A2578: .4byte gUnknown_83E2A88
|
|
_080A257C: .4byte gUnknown_2037F1B
|
|
thumb_func_end sub_80A2500
|
|
|
|
thumb_func_start sub_80A2580
|
|
sub_80A2580: @ 80A2580
|
|
push {r4-r6,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x1
|
|
bl sub_8075114
|
|
ldr r6, _080A25C4 @ =gUnknown_2037F02
|
|
ldrh r0, [r6, 0x6]
|
|
strh r0, [r4, 0x2E]
|
|
ldr r5, _080A25C8 @ =gUnknown_2037F1A
|
|
ldrb r0, [r5]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x32]
|
|
ldrb r0, [r5]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x36]
|
|
ldrh r0, [r6, 0x4]
|
|
strh r0, [r4, 0x38]
|
|
adds r0, r4, 0
|
|
bl sub_8075068
|
|
ldr r0, _080A25CC @ =sub_80A25D0
|
|
str r0, [r4, 0x1C]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A25C4: .4byte gUnknown_2037F02
|
|
_080A25C8: .4byte gUnknown_2037F1A
|
|
_080A25CC: .4byte sub_80A25D0
|
|
thumb_func_end sub_80A2580
|
|
|
|
thumb_func_start sub_80A25D0
|
|
sub_80A25D0: @ 80A25D0
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl AnimateBallThrow
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A25E4
|
|
adds r0, r4, 0
|
|
bl DestroyAnimSprite
|
|
_080A25E4:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A25D0
|
|
|
|
thumb_func_start sub_80A25EC
|
|
sub_80A25EC: @ 80A25EC
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
bl Random
|
|
adds r1, r0, 0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
movs r0, 0x7
|
|
ands r1, r0
|
|
adds r0, r5, 0
|
|
bl StartSpriteAnim
|
|
ldr r4, _080A2634 @ =gUnknown_2037F1A
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x20]
|
|
ldrb r0, [r4]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x22]
|
|
ldrb r0, [r4]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A2638
|
|
ldrh r0, [r5, 0x20]
|
|
subs r0, 0x14
|
|
b _080A263C
|
|
.align 2, 0
|
|
_080A2634: .4byte gUnknown_2037F1A
|
|
_080A2638:
|
|
ldrh r0, [r5, 0x20]
|
|
adds r0, 0x14
|
|
_080A263C:
|
|
strh r0, [r5, 0x20]
|
|
bl Random
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x1F
|
|
ands r0, r1
|
|
adds r0, 0x40
|
|
strh r0, [r5, 0x2E]
|
|
ldrh r0, [r5, 0x20]
|
|
strh r0, [r5, 0x30]
|
|
ldr r4, _080A269C @ =gUnknown_2037F1B
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x32]
|
|
ldrh r0, [r5, 0x22]
|
|
strh r0, [r5, 0x34]
|
|
ldrb r0, [r4]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x36]
|
|
adds r0, r5, 0
|
|
bl sub_8075804
|
|
bl Random
|
|
movs r1, 0xFF
|
|
ands r1, r0
|
|
strh r1, [r5, 0x38]
|
|
adds r0, r5, 0
|
|
adds r0, 0x43
|
|
ldrb r0, [r0]
|
|
strh r0, [r5, 0x3A]
|
|
ldr r1, _080A26A0 @ =sub_80A26A4
|
|
str r1, [r5, 0x1C]
|
|
adds r0, r5, 0
|
|
bl _call_via_r1
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A269C: .4byte gUnknown_2037F1B
|
|
_080A26A0: .4byte sub_80A26A4
|
|
thumb_func_end sub_80A25EC
|
|
|
|
thumb_func_start sub_80A26A4
|
|
sub_80A26A4: @ 80A26A4
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_807578C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A26BA
|
|
adds r0, r4, 0
|
|
bl DestroyAnimSprite
|
|
b _080A26EA
|
|
_080A26BA:
|
|
movs r1, 0x38
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0xC
|
|
bl Cos
|
|
ldrh r1, [r4, 0x26]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x26]
|
|
movs r1, 0x38
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x7E
|
|
bgt _080A26D6
|
|
ldrh r0, [r4, 0x3A]
|
|
b _080A26DA
|
|
_080A26D6:
|
|
ldrh r0, [r4, 0x3A]
|
|
adds r0, 0x1
|
|
_080A26DA:
|
|
adds r1, r4, 0
|
|
adds r1, 0x43
|
|
strb r0, [r1]
|
|
ldrh r0, [r4, 0x38]
|
|
adds r0, 0x18
|
|
movs r1, 0xFF
|
|
ands r0, r1
|
|
strh r0, [r4, 0x38]
|
|
_080A26EA:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A26A4
|
|
|
|
thumb_func_start sub_80A26F0
|
|
sub_80A26F0: @ 80A26F0
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
movs r1, 0x1
|
|
bl sub_8075160
|
|
ldr r0, _080A2750 @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A2710
|
|
ldr r1, _080A2754 @ =gUnknown_2037F02
|
|
ldrh r0, [r1, 0x4]
|
|
negs r0, r0
|
|
strh r0, [r1, 0x4]
|
|
_080A2710:
|
|
ldr r4, _080A2754 @ =gUnknown_2037F02
|
|
ldrh r0, [r4, 0x8]
|
|
strh r0, [r6, 0x2E]
|
|
ldr r5, _080A2758 @ =gUnknown_2037F1B
|
|
ldrb r0, [r5]
|
|
movs r1, 0
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrh r1, [r4, 0x4]
|
|
adds r0, r1
|
|
strh r0, [r6, 0x32]
|
|
ldrb r0, [r5]
|
|
movs r1, 0x1
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrh r1, [r4, 0x6]
|
|
adds r0, r1
|
|
strh r0, [r6, 0x36]
|
|
ldrh r0, [r4, 0xA]
|
|
strh r0, [r6, 0x38]
|
|
adds r0, r6, 0
|
|
bl sub_8075068
|
|
ldr r0, _080A275C @ =sub_80A2760
|
|
str r0, [r6, 0x1C]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A2750: .4byte gUnknown_2037F1A
|
|
_080A2754: .4byte gUnknown_2037F02
|
|
_080A2758: .4byte gUnknown_2037F1B
|
|
_080A275C: .4byte sub_80A2760
|
|
thumb_func_end sub_80A26F0
|
|
|
|
thumb_func_start sub_80A2760
|
|
sub_80A2760: @ 80A2760
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl AnimateBallThrow
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A278A
|
|
adds r2, r4, 0
|
|
adds r2, 0x3E
|
|
ldrb r0, [r2]
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
movs r0, 0xA
|
|
strh r0, [r4, 0x2E]
|
|
ldr r0, _080A2790 @ =sub_8074C44
|
|
str r0, [r4, 0x1C]
|
|
ldr r1, _080A2794 @ =sub_80A2798
|
|
adds r0, r4, 0
|
|
bl StoreSpriteCallbackInData6
|
|
_080A278A:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A2790: .4byte sub_8074C44
|
|
_080A2794: .4byte sub_80A2798
|
|
thumb_func_end sub_80A2760
|
|
|
|
thumb_func_start sub_80A2798
|
|
sub_80A2798: @ 80A2798
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
adds r2, r4, 0
|
|
adds r2, 0x3E
|
|
ldrb r1, [r2]
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl StartSpriteAnim
|
|
movs r0, 0x3C
|
|
strh r0, [r4, 0x2E]
|
|
ldr r0, _080A27C8 @ =sub_8074C44
|
|
str r0, [r4, 0x1C]
|
|
ldr r1, _080A27CC @ =DestroyAnimSprite
|
|
adds r0, r4, 0
|
|
bl StoreSpriteCallbackInData6
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A27C8: .4byte sub_8074C44
|
|
_080A27CC: .4byte DestroyAnimSprite
|
|
thumb_func_end sub_80A2798
|
|
|
|
thumb_func_start sub_80A27D0
|
|
sub_80A27D0: @ 80A27D0
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x1
|
|
bl sub_8075114
|
|
ldr r5, _080A2814 @ =gUnknown_2037F02
|
|
ldrb r1, [r5, 0x8]
|
|
adds r0, r4, 0
|
|
bl StartSpriteAnim
|
|
movs r1, 0x8
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0x1
|
|
bne _080A27FA
|
|
ldrb r0, [r4, 0x1]
|
|
movs r1, 0xD
|
|
negs r1, r1
|
|
ands r1, r0
|
|
movs r0, 0x4
|
|
orrs r1, r0
|
|
strb r1, [r4, 0x1]
|
|
_080A27FA:
|
|
ldrh r0, [r5, 0x6]
|
|
strh r0, [r4, 0x2E]
|
|
ldrh r0, [r5, 0x4]
|
|
strh r0, [r4, 0x30]
|
|
ldr r1, _080A2818 @ =sub_80A281C
|
|
str r1, [r4, 0x1C]
|
|
adds r0, r4, 0
|
|
bl _call_via_r1
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A2814: .4byte gUnknown_2037F02
|
|
_080A2818: .4byte sub_80A281C
|
|
thumb_func_end sub_80A27D0
|
|
|
|
thumb_func_start sub_80A281C
|
|
sub_80A281C: @ 80A281C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x30
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0x20
|
|
bl Sin
|
|
strh r0, [r4, 0x24]
|
|
movs r1, 0x30
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0x3
|
|
negs r1, r1
|
|
bl Cos
|
|
ldrh r1, [r4, 0x32]
|
|
adds r1, 0x18
|
|
strh r1, [r4, 0x32]
|
|
lsls r1, 16
|
|
asrs r1, 24
|
|
adds r0, r1
|
|
strh r0, [r4, 0x26]
|
|
ldrh r0, [r4, 0x30]
|
|
subs r0, 0x40
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x7F
|
|
bhi _080A2870
|
|
ldr r0, _080A286C @ =gUnknown_2037F1B
|
|
ldrb r0, [r0]
|
|
bl sub_8076884
|
|
movs r1, 0x3
|
|
ands r1, r0
|
|
lsls r1, 2
|
|
ldrb r2, [r4, 0x5]
|
|
movs r0, 0xD
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
b _080A2894
|
|
.align 2, 0
|
|
_080A286C: .4byte gUnknown_2037F1B
|
|
_080A2870:
|
|
ldr r0, _080A28C0 @ =gUnknown_2037F1B
|
|
ldrb r0, [r0]
|
|
bl sub_8076884
|
|
adds r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0x3
|
|
bls _080A2884
|
|
movs r2, 0x3
|
|
_080A2884:
|
|
movs r0, 0x3
|
|
ands r2, r0
|
|
lsls r2, 2
|
|
ldrb r1, [r4, 0x5]
|
|
movs r0, 0xD
|
|
negs r0, r0
|
|
ands r0, r1
|
|
orrs r0, r2
|
|
_080A2894:
|
|
strb r0, [r4, 0x5]
|
|
ldrh r0, [r4, 0x30]
|
|
adds r0, 0x2
|
|
movs r1, 0xFF
|
|
ands r0, r1
|
|
strh r0, [r4, 0x30]
|
|
ldrh r0, [r4, 0x2E]
|
|
subs r0, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
cmp r0, r1
|
|
bne _080A28B8
|
|
adds r0, r4, 0
|
|
bl DestroyAnimSprite
|
|
_080A28B8:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A28C0: .4byte gUnknown_2037F1B
|
|
thumb_func_end sub_80A281C
|
|
|
|
thumb_func_start sub_80A28C4
|
|
sub_80A28C4: @ 80A28C4
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080A28DE
|
|
bl sub_8075290
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080A28E6
|
|
_080A28DE:
|
|
adds r0, r4, 0
|
|
bl DestroyAnimVisualTask
|
|
b _080A2918
|
|
_080A28E6:
|
|
ldr r0, _080A2904 @ =gUnknown_2037F1B
|
|
ldrb r0, [r0]
|
|
bl sub_80768B0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _080A2908
|
|
movs r0, 0x2
|
|
movs r1, 0x4
|
|
movs r2, 0x3
|
|
bl SetAnimBgAttribute
|
|
b _080A2912
|
|
.align 2, 0
|
|
_080A2904: .4byte gUnknown_2037F1B
|
|
_080A2908:
|
|
movs r0, 0x1
|
|
movs r1, 0x4
|
|
movs r2, 0x1
|
|
bl SetAnimBgAttribute
|
|
_080A2912:
|
|
adds r0, r4, 0
|
|
bl DestroyAnimVisualTask
|
|
_080A2918:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A28C4
|
|
|
|
thumb_func_start sub_80A2920
|
|
sub_80A2920: @ 80A2920
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0
|
|
bl sub_8075160
|
|
ldr r5, _080A2968 @ =gUnknown_2037F02
|
|
ldrh r0, [r5, 0x6]
|
|
strh r0, [r4, 0x2E]
|
|
ldrh r0, [r4, 0x20]
|
|
strh r0, [r4, 0x30]
|
|
strh r0, [r4, 0x32]
|
|
ldrh r0, [r4, 0x22]
|
|
strh r0, [r4, 0x34]
|
|
ldr r0, _080A296C @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrh r5, [r5, 0x4]
|
|
adds r0, r5
|
|
strh r0, [r4, 0x36]
|
|
adds r0, r4, 0
|
|
bl obj_translate_based_on_private_1_2_3_4
|
|
movs r0, 0x40
|
|
strh r0, [r4, 0x38]
|
|
ldr r1, _080A2970 @ =sub_80A2974
|
|
str r1, [r4, 0x1C]
|
|
adds r0, r4, 0
|
|
bl _call_via_r1
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A2968: .4byte gUnknown_2037F02
|
|
_080A296C: .4byte gUnknown_2037F1A
|
|
_080A2970: .4byte sub_80A2974
|
|
thumb_func_end sub_80A2920
|
|
|
|
thumb_func_start sub_80A2974
|
|
sub_80A2974: @ 80A2974
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_80755E0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080A29E0
|
|
movs r1, 0x38
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0x20
|
|
bl Sin
|
|
ldrh r1, [r4, 0x24]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x24]
|
|
movs r1, 0x38
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0x5
|
|
negs r1, r1
|
|
bl Cos
|
|
ldrh r1, [r4, 0x26]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x26]
|
|
ldrh r0, [r4, 0x38]
|
|
subs r0, 0x40
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x7F
|
|
bhi _080A29C0
|
|
ldr r0, _080A29BC @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl sub_807685C
|
|
subs r0, 0x1
|
|
b _080A29CA
|
|
.align 2, 0
|
|
_080A29BC: .4byte gUnknown_2037F1A
|
|
_080A29C0:
|
|
ldr r0, _080A29DC @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl sub_807685C
|
|
adds r0, 0x1
|
|
_080A29CA:
|
|
adds r1, r4, 0
|
|
adds r1, 0x43
|
|
strb r0, [r1]
|
|
ldrh r0, [r4, 0x38]
|
|
adds r0, 0x5
|
|
movs r1, 0xFF
|
|
ands r0, r1
|
|
strh r0, [r4, 0x38]
|
|
b _080A29E6
|
|
.align 2, 0
|
|
_080A29DC: .4byte gUnknown_2037F1A
|
|
_080A29E0:
|
|
adds r0, r4, 0
|
|
bl DestroyAnimSprite
|
|
_080A29E6:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A2974
|
|
|
|
thumb_func_start sub_80A29EC
|
|
sub_80A29EC: @ 80A29EC
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x1
|
|
bl sub_8075160
|
|
ldr r5, _080A2A34 @ =gUnknown_2037F02
|
|
ldrh r0, [r5, 0x6]
|
|
strh r0, [r4, 0x2E]
|
|
ldrh r0, [r4, 0x20]
|
|
strh r0, [r4, 0x30]
|
|
strh r0, [r4, 0x32]
|
|
ldrh r0, [r4, 0x22]
|
|
strh r0, [r4, 0x34]
|
|
ldr r0, _080A2A38 @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrh r5, [r5, 0x4]
|
|
adds r0, r5
|
|
strh r0, [r4, 0x36]
|
|
adds r0, r4, 0
|
|
bl obj_translate_based_on_private_1_2_3_4
|
|
movs r0, 0x40
|
|
strh r0, [r4, 0x38]
|
|
ldr r1, _080A2A3C @ =sub_80A2A40
|
|
str r1, [r4, 0x1C]
|
|
adds r0, r4, 0
|
|
bl _call_via_r1
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A2A34: .4byte gUnknown_2037F02
|
|
_080A2A38: .4byte gUnknown_2037F1A
|
|
_080A2A3C: .4byte sub_80A2A40
|
|
thumb_func_end sub_80A29EC
|
|
|
|
thumb_func_start sub_80A2A40
|
|
sub_80A2A40: @ 80A2A40
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_80755E0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080A2A98
|
|
movs r1, 0x38
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0x8
|
|
bl Sin
|
|
ldrh r1, [r4, 0x24]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x24]
|
|
ldrh r1, [r4, 0x38]
|
|
adds r0, r1, 0
|
|
subs r0, 0x3B
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x4
|
|
bls _080A2A78
|
|
adds r0, r1, 0
|
|
subs r0, 0xBB
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x4
|
|
bhi _080A2A8C
|
|
_080A2A78:
|
|
ldrb r2, [r4, 0x3]
|
|
lsls r1, r2, 26
|
|
lsrs r1, 27
|
|
movs r0, 0x8
|
|
eors r1, r0
|
|
lsls r1, 1
|
|
subs r0, 0x47
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r4, 0x3]
|
|
_080A2A8C:
|
|
ldrh r0, [r4, 0x38]
|
|
adds r0, 0x5
|
|
movs r1, 0xFF
|
|
ands r0, r1
|
|
strh r0, [r4, 0x38]
|
|
b _080A2A9E
|
|
_080A2A98:
|
|
adds r0, r4, 0
|
|
bl DestroyAnimSprite
|
|
_080A2A9E:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A2A40
|
|
|
|
thumb_func_start sub_80A2AA4
|
|
sub_80A2AA4: @ 80A2AA4
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
ldr r5, _080A2AE0 @ =gUnknown_2037F1A
|
|
ldrb r0, [r5]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x20]
|
|
ldrb r0, [r5]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x22]
|
|
ldr r1, _080A2AE4 @ =gUnknown_2037F02
|
|
ldrh r0, [r1]
|
|
strh r0, [r4, 0x2E]
|
|
ldrh r0, [r1, 0x2]
|
|
strh r0, [r4, 0x30]
|
|
ldrh r0, [r1, 0x4]
|
|
strh r0, [r4, 0x32]
|
|
ldr r0, _080A2AE8 @ =sub_80A2AEC
|
|
str r0, [r4, 0x1C]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A2AE0: .4byte gUnknown_2037F1A
|
|
_080A2AE4: .4byte gUnknown_2037F02
|
|
_080A2AE8: .4byte sub_80A2AEC
|
|
thumb_func_end sub_80A2AA4
|
|
|
|
thumb_func_start sub_80A2AEC
|
|
sub_80A2AEC: @ 80A2AEC
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
ldrh r0, [r1, 0x32]
|
|
movs r2, 0x32
|
|
ldrsh r3, [r1, r2]
|
|
cmp r3, 0
|
|
bne _080A2B20
|
|
ldrh r0, [r1, 0x30]
|
|
movs r2, 0x1
|
|
ands r2, r0
|
|
cmp r2, 0
|
|
beq _080A2B0E
|
|
movs r0, 0x80
|
|
strh r0, [r1, 0x2E]
|
|
strh r3, [r1, 0x30]
|
|
strh r3, [r1, 0x32]
|
|
b _080A2B14
|
|
_080A2B0E:
|
|
strh r2, [r1, 0x2E]
|
|
strh r2, [r1, 0x30]
|
|
strh r2, [r1, 0x32]
|
|
_080A2B14:
|
|
ldr r0, _080A2B1C @ =sub_80A2B38
|
|
str r0, [r1, 0x1C]
|
|
b _080A2B34
|
|
.align 2, 0
|
|
_080A2B1C: .4byte sub_80A2B38
|
|
_080A2B20:
|
|
subs r0, 0x1
|
|
strh r0, [r1, 0x32]
|
|
ldrh r0, [r1, 0x2E]
|
|
ldrh r2, [r1, 0x20]
|
|
adds r0, r2
|
|
strh r0, [r1, 0x20]
|
|
ldrh r0, [r1, 0x30]
|
|
ldrh r2, [r1, 0x22]
|
|
adds r0, r2
|
|
strh r0, [r1, 0x22]
|
|
_080A2B34:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A2AEC
|
|
|
|
thumb_func_start sub_80A2B38
|
|
sub_80A2B38: @ 80A2B38
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldr r0, _080A2B58 @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A2B5C
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0x19
|
|
bl Sin
|
|
negs r0, r0
|
|
b _080A2B66
|
|
.align 2, 0
|
|
_080A2B58: .4byte gUnknown_2037F1A
|
|
_080A2B5C:
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0x19
|
|
bl Sin
|
|
_080A2B66:
|
|
strh r0, [r4, 0x24]
|
|
ldrh r0, [r4, 0x2E]
|
|
adds r0, 0x2
|
|
movs r1, 0xFF
|
|
ands r0, r1
|
|
strh r0, [r4, 0x2E]
|
|
ldrh r0, [r4, 0x30]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x30]
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080A2B86
|
|
ldrh r0, [r4, 0x26]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x26]
|
|
_080A2B86:
|
|
movs r1, 0x30
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x50
|
|
ble _080A2B94
|
|
adds r0, r4, 0
|
|
bl DestroyAnimSprite
|
|
_080A2B94:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A2B38
|
|
|
|
thumb_func_start sub_80A2B9C
|
|
sub_80A2B9C: @ 80A2B9C
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
movs r1, 0x1
|
|
bl sub_8075160
|
|
ldr r0, _080A2BF0 @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A2BBC
|
|
ldr r1, _080A2BF4 @ =gUnknown_2037F02
|
|
ldrh r0, [r1, 0x4]
|
|
negs r0, r0
|
|
strh r0, [r1, 0x4]
|
|
_080A2BBC:
|
|
ldr r6, _080A2BF4 @ =gUnknown_2037F02
|
|
ldrh r0, [r6, 0x8]
|
|
strh r0, [r5, 0x2E]
|
|
movs r1, 0xC
|
|
ldrsh r0, [r6, r1]
|
|
cmp r0, 0
|
|
bne _080A2BFC
|
|
ldr r4, _080A2BF8 @ =gUnknown_2037F1B
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrh r1, [r6, 0x4]
|
|
adds r0, r1
|
|
strh r0, [r5, 0x32]
|
|
ldrb r0, [r4]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrh r6, [r6, 0x6]
|
|
adds r0, r6
|
|
b _080A2C1C
|
|
.align 2, 0
|
|
_080A2BF0: .4byte gUnknown_2037F1A
|
|
_080A2BF4: .4byte gUnknown_2037F02
|
|
_080A2BF8: .4byte gUnknown_2037F1B
|
|
_080A2BFC:
|
|
ldr r0, _080A2C48 @ =gUnknown_2037F1B
|
|
ldrb r0, [r0]
|
|
adds r2, r5, 0
|
|
adds r2, 0x32
|
|
adds r3, r5, 0
|
|
adds r3, 0x36
|
|
movs r1, 0x1
|
|
bl sub_8076D9C
|
|
ldrh r0, [r6, 0x4]
|
|
ldrh r1, [r5, 0x32]
|
|
adds r0, r1
|
|
strh r0, [r5, 0x32]
|
|
ldrh r0, [r6, 0x6]
|
|
ldrh r1, [r5, 0x36]
|
|
adds r0, r1
|
|
_080A2C1C:
|
|
strh r0, [r5, 0x36]
|
|
ldr r0, _080A2C4C @ =gUnknown_2037F02
|
|
ldrh r0, [r0, 0xA]
|
|
strh r0, [r5, 0x38]
|
|
adds r0, r5, 0
|
|
bl sub_8075068
|
|
ldr r0, _080A2C50 @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
adds r4, r0, 0
|
|
ldr r0, _080A2C48 @ =gUnknown_2037F1B
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r4, 24
|
|
lsls r0, 24
|
|
cmp r4, r0
|
|
bne _080A2C54
|
|
movs r0, 0x1
|
|
b _080A2C56
|
|
.align 2, 0
|
|
_080A2C48: .4byte gUnknown_2037F1B
|
|
_080A2C4C: .4byte gUnknown_2037F02
|
|
_080A2C50: .4byte gUnknown_2037F1A
|
|
_080A2C54:
|
|
movs r0, 0
|
|
_080A2C56:
|
|
strh r0, [r5, 0x2E]
|
|
ldr r0, _080A2C64 @ =sub_80A2C68
|
|
str r0, [r5, 0x1C]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A2C64: .4byte sub_80A2C68
|
|
thumb_func_end sub_80A2B9C
|
|
|
|
thumb_func_start sub_80A2C68
|
|
sub_80A2C68: @ 80A2C68
|
|
push {r4-r7,lr}
|
|
adds r6, r0, 0
|
|
movs r7, 0
|
|
ldrh r5, [r6, 0x2E]
|
|
ldrh r4, [r6, 0x3C]
|
|
movs r0, 0x1
|
|
strh r0, [r6, 0x2E]
|
|
adds r0, r6, 0
|
|
bl AnimateBallThrow
|
|
ldrh r0, [r6, 0x3C]
|
|
strh r5, [r6, 0x2E]
|
|
lsls r4, 16
|
|
asrs r4, 16
|
|
cmp r4, 0xC8
|
|
ble _080A2C9A
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x37
|
|
bgt _080A2C9A
|
|
ldrh r0, [r6, 0x6]
|
|
cmp r0, 0
|
|
bne _080A2CA0
|
|
adds r0, 0x1
|
|
strh r0, [r6, 0x6]
|
|
_080A2C9A:
|
|
ldrh r0, [r6, 0x6]
|
|
cmp r0, 0
|
|
beq _080A2CD2
|
|
_080A2CA0:
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r6, r1]
|
|
cmp r0, 0
|
|
beq _080A2CD2
|
|
adds r3, r6, 0
|
|
adds r3, 0x3E
|
|
ldrb r2, [r3]
|
|
lsls r0, r2, 29
|
|
lsrs r0, 31
|
|
movs r1, 0x1
|
|
eors r1, r0
|
|
lsls r1, 2
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r3]
|
|
ldrh r0, [r6, 0x6]
|
|
adds r0, 0x1
|
|
strh r0, [r6, 0x6]
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x1E
|
|
bne _080A2CD2
|
|
movs r7, 0x1
|
|
_080A2CD2:
|
|
movs r2, 0x20
|
|
ldrsh r0, [r6, r2]
|
|
movs r2, 0x24
|
|
ldrsh r1, [r6, r2]
|
|
adds r0, r1
|
|
adds r0, 0x10
|
|
movs r1, 0x88
|
|
lsls r1, 1
|
|
cmp r0, r1
|
|
bhi _080A2CFC
|
|
movs r0, 0x22
|
|
ldrsh r1, [r6, r0]
|
|
movs r2, 0x26
|
|
ldrsh r0, [r6, r2]
|
|
adds r1, r0
|
|
cmp r1, 0xA0
|
|
bgt _080A2CFC
|
|
movs r0, 0x10
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
bge _080A2CFE
|
|
_080A2CFC:
|
|
movs r7, 0x1
|
|
_080A2CFE:
|
|
cmp r7, 0
|
|
beq _080A2D08
|
|
adds r0, r6, 0
|
|
bl DestroyAnimSprite
|
|
_080A2D08:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A2C68
|
|
|
|
thumb_func_start sub_80A2D10
|
|
sub_80A2D10: @ 80A2D10
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080A2D3C
|
|
bl sub_8075290
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _080A2D3C
|
|
ldr r0, _080A2D64 @ =gUnknown_2037F1B
|
|
ldrb r0, [r0]
|
|
adds r2, r4, 0
|
|
adds r2, 0x20
|
|
adds r3, r4, 0
|
|
adds r3, 0x22
|
|
movs r1, 0x1
|
|
bl sub_8076D9C
|
|
_080A2D3C:
|
|
ldrh r0, [r4, 0x22]
|
|
adds r0, 0x20
|
|
strh r0, [r4, 0x22]
|
|
ldr r1, _080A2D68 @ =gUnknown_2037F02
|
|
ldrh r0, [r1]
|
|
strh r0, [r4, 0x2E]
|
|
ldrh r0, [r1, 0x2]
|
|
strh r0, [r4, 0x30]
|
|
ldrh r0, [r1, 0x4]
|
|
strh r0, [r4, 0x32]
|
|
ldrh r0, [r1, 0x6]
|
|
strh r0, [r4, 0x34]
|
|
ldrh r0, [r1, 0x8]
|
|
strh r0, [r4, 0x36]
|
|
ldr r0, _080A2D6C @ =sub_80A2D70
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A2D64: .4byte gUnknown_2037F1B
|
|
_080A2D68: .4byte gUnknown_2037F02
|
|
_080A2D6C: .4byte sub_80A2D70
|
|
thumb_func_end sub_80A2D10
|
|
|
|
thumb_func_start sub_80A2D70
|
|
sub_80A2D70: @ 80A2D70
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
ldrh r1, [r4, 0x30]
|
|
movs r2, 0x30
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0xFF
|
|
bne _080A2D86
|
|
ldrh r0, [r4, 0x22]
|
|
subs r0, 0x2
|
|
strh r0, [r4, 0x22]
|
|
b _080A2D94
|
|
_080A2D86:
|
|
cmp r0, 0
|
|
ble _080A2D94
|
|
ldrh r0, [r4, 0x22]
|
|
subs r0, 0x2
|
|
strh r0, [r4, 0x22]
|
|
subs r0, r1, 0x2
|
|
strh r0, [r4, 0x30]
|
|
_080A2D94:
|
|
ldrh r3, [r4, 0x32]
|
|
ldrh r5, [r4, 0x38]
|
|
adds r2, r3, r5
|
|
strh r2, [r4, 0x38]
|
|
movs r0, 0x2E
|
|
ldrsh r1, [r4, r0]
|
|
movs r5, 0x36
|
|
ldrsh r0, [r4, r5]
|
|
cmp r1, r0
|
|
bge _080A2DAC
|
|
adds r0, r2, r3
|
|
strh r0, [r4, 0x38]
|
|
_080A2DAC:
|
|
ldrh r1, [r4, 0x38]
|
|
movs r0, 0xFF
|
|
ands r0, r1
|
|
strh r0, [r4, 0x38]
|
|
movs r1, 0x38
|
|
ldrsh r0, [r4, r1]
|
|
movs r2, 0x34
|
|
ldrsh r1, [r4, r2]
|
|
bl Cos
|
|
strh r0, [r4, 0x24]
|
|
movs r5, 0x38
|
|
ldrsh r0, [r4, r5]
|
|
movs r1, 0x5
|
|
bl Sin
|
|
strh r0, [r4, 0x26]
|
|
movs r1, 0x38
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x7F
|
|
bgt _080A2DEC
|
|
ldr r0, _080A2DE8 @ =gUnknown_2037F1B
|
|
ldrb r0, [r0]
|
|
bl sub_8076884
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
subs r0, 0x1
|
|
b _080A2DFA
|
|
.align 2, 0
|
|
_080A2DE8: .4byte gUnknown_2037F1B
|
|
_080A2DEC:
|
|
ldr r0, _080A2E24 @ =gUnknown_2037F1B
|
|
ldrb r0, [r0]
|
|
bl sub_8076884
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r0, 0x1
|
|
_080A2DFA:
|
|
movs r1, 0x3
|
|
ands r0, r1
|
|
lsls r0, 2
|
|
ldrb r2, [r4, 0x5]
|
|
movs r1, 0xD
|
|
negs r1, r1
|
|
ands r1, r2
|
|
orrs r1, r0
|
|
strb r1, [r4, 0x5]
|
|
ldrh r0, [r4, 0x2E]
|
|
subs r0, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bne _080A2E1E
|
|
adds r0, r4, 0
|
|
bl DestroyAnimSprite
|
|
_080A2E1E:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A2E24: .4byte gUnknown_2037F1B
|
|
thumb_func_end sub_80A2D70
|
|
|
|
thumb_func_start sub_80A2E28
|
|
sub_80A2E28: @ 80A2E28
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
movs r1, 0
|
|
bl sub_8075114
|
|
adds r2, r5, 0
|
|
adds r2, 0x2C
|
|
ldrb r0, [r2]
|
|
movs r1, 0x80
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r4, _080A2E5C @ =gUnknown_2037F02
|
|
ldrb r1, [r4, 0x4]
|
|
adds r0, r5, 0
|
|
bl StartSpriteAffineAnim
|
|
ldrh r0, [r4, 0x4]
|
|
strh r0, [r5, 0x3A]
|
|
ldrh r0, [r4, 0x6]
|
|
strh r0, [r5, 0x3C]
|
|
ldr r0, _080A2E60 @ =sub_80A2E64
|
|
str r0, [r5, 0x1C]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A2E5C: .4byte gUnknown_2037F02
|
|
_080A2E60: .4byte sub_80A2E64
|
|
thumb_func_end sub_80A2E28
|
|
|
|
thumb_func_start sub_80A2E64
|
|
sub_80A2E64: @ 80A2E64
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldr r0, _080A2E94 @ =gUnknown_2037F02
|
|
ldrh r1, [r0, 0xE]
|
|
ldr r0, _080A2E98 @ =0x0000ffff
|
|
cmp r1, r0
|
|
bne _080A2E8E
|
|
adds r2, r4, 0
|
|
adds r2, 0x2C
|
|
ldrb r1, [r2]
|
|
movs r0, 0x7F
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
movs r0, 0x1
|
|
bl GetAnimBankSpriteId
|
|
movs r0, 0x80
|
|
lsls r0, 1
|
|
strh r0, [r4, 0x2E]
|
|
ldr r0, _080A2E9C @ =sub_80A2EA0
|
|
str r0, [r4, 0x1C]
|
|
_080A2E8E:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A2E94: .4byte gUnknown_2037F02
|
|
_080A2E98: .4byte 0x0000ffff
|
|
_080A2E9C: .4byte sub_80A2EA0
|
|
thumb_func_end sub_80A2E64
|
|
|
|
thumb_func_start sub_80A2EA0
|
|
sub_80A2EA0: @ 80A2EA0
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x1
|
|
bl GetAnimBankSpriteId
|
|
movs r1, 0x32
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bne _080A2EB8
|
|
ldrh r0, [r4, 0x2E]
|
|
adds r0, 0xB
|
|
b _080A2EBC
|
|
_080A2EB8:
|
|
ldrh r0, [r4, 0x2E]
|
|
subs r0, 0xB
|
|
_080A2EBC:
|
|
strh r0, [r4, 0x2E]
|
|
ldrh r0, [r4, 0x30]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x30]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x6
|
|
bne _080A2ED8
|
|
movs r0, 0
|
|
strh r0, [r4, 0x30]
|
|
ldrh r0, [r4, 0x32]
|
|
movs r1, 0x1
|
|
eors r0, r1
|
|
strh r0, [r4, 0x32]
|
|
_080A2ED8:
|
|
adds r0, r4, 0
|
|
adds r0, 0x3F
|
|
ldrb r1, [r0]
|
|
movs r0, 0x20
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080A2F06
|
|
ldrh r0, [r4, 0x3C]
|
|
subs r0, 0x1
|
|
strh r0, [r4, 0x3C]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
ble _080A2F00
|
|
ldrh r1, [r4, 0x3A]
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r4, 0
|
|
bl StartSpriteAffineAnim
|
|
b _080A2F06
|
|
_080A2F00:
|
|
adds r0, r4, 0
|
|
bl DestroyAnimSprite
|
|
_080A2F06:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A2EA0
|
|
|
|
thumb_func_start sub_80A2F0C
|
|
sub_80A2F0C: @ 80A2F0C
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
movs r0, 0x1
|
|
bl GetAnimBankSpriteId
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
ldr r1, _080A2F38 @ =gSprites
|
|
lsls r0, r2, 4
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
adds r0, 0x3E
|
|
ldrb r0, [r0]
|
|
lsls r0, 29
|
|
cmp r0, 0
|
|
bge _080A2F3C
|
|
adds r0, r4, 0
|
|
bl DestroyAnimVisualTask
|
|
b _080A2F62
|
|
.align 2, 0
|
|
_080A2F38: .4byte gSprites
|
|
_080A2F3C:
|
|
adds r0, r2, 0
|
|
movs r1, 0x1
|
|
bl sub_80758E0
|
|
ldr r1, _080A2F68 @ =gTasks
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldr r2, _080A2F6C @ =gUnknown_2037F02
|
|
ldrh r1, [r2]
|
|
strh r1, [r0, 0x8]
|
|
ldrh r1, [r2, 0x2]
|
|
strh r1, [r0, 0xA]
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
strh r1, [r0, 0x1E]
|
|
ldr r1, _080A2F70 @ =sub_80A2F74
|
|
str r1, [r0]
|
|
_080A2F62:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A2F68: .4byte gTasks
|
|
_080A2F6C: .4byte gUnknown_2037F02
|
|
_080A2F70: .4byte sub_80A2F74
|
|
thumb_func_end sub_80A2F0C
|
|
|
|
thumb_func_start sub_80A2F74
|
|
sub_80A2F74: @ 80A2F74
|
|
push {r4-r6,lr}
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
movs r0, 0x1
|
|
bl GetAnimBankSpriteId
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r6, r0, 0
|
|
ldr r1, _080A2FF4 @ =gTasks
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r4, r0, r1
|
|
ldrh r1, [r4, 0x8]
|
|
ldrh r0, [r4, 0x1C]
|
|
adds r1, r0
|
|
strh r1, [r4, 0x1C]
|
|
ldr r2, _080A2FF8 @ =gSprites
|
|
lsls r0, r6, 4
|
|
adds r0, r6
|
|
lsls r0, 2
|
|
adds r5, r0, r2
|
|
lsls r1, 16
|
|
asrs r1, 24
|
|
strh r1, [r5, 0x24]
|
|
ldr r0, _080A2FFC @ =gUnknown_2037F1B
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A2FBE
|
|
ldrh r0, [r5, 0x24]
|
|
negs r0, r0
|
|
strh r0, [r5, 0x24]
|
|
_080A2FBE:
|
|
ldrh r0, [r4, 0x1E]
|
|
adds r0, 0x10
|
|
strh r0, [r4, 0x1E]
|
|
movs r0, 0x1E
|
|
ldrsh r2, [r4, r0]
|
|
adds r0, r6, 0
|
|
adds r1, r2, 0
|
|
movs r3, 0
|
|
bl obj_id_set_rotscale
|
|
adds r0, r6, 0
|
|
bl sub_8076440
|
|
ldrh r0, [r4, 0xA]
|
|
subs r0, 0x1
|
|
strh r0, [r4, 0xA]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0
|
|
bne _080A2FEC
|
|
strh r0, [r4, 0x8]
|
|
ldr r0, _080A3000 @ =sub_80A3004
|
|
str r0, [r4]
|
|
_080A2FEC:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A2FF4: .4byte gTasks
|
|
_080A2FF8: .4byte gSprites
|
|
_080A2FFC: .4byte gUnknown_2037F1B
|
|
_080A3000: .4byte sub_80A3004
|
|
thumb_func_end sub_80A2F74
|
|
|
|
thumb_func_start sub_80A3004
|
|
sub_80A3004: @ 80A3004
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
ldr r0, _080A3050 @ =gUnknown_2037F02
|
|
ldrh r1, [r0, 0xE]
|
|
ldr r0, _080A3054 @ =0x0000ffff
|
|
cmp r1, r0
|
|
bne _080A3060
|
|
ldr r0, _080A3058 @ =gTasks
|
|
lsls r2, r3, 2
|
|
adds r1, r2, r3
|
|
lsls r1, 3
|
|
adds r6, r1, r0
|
|
movs r1, 0x8
|
|
ldrsh r5, [r6, r1]
|
|
adds r4, r0, 0
|
|
cmp r5, 0
|
|
bne _080A3074
|
|
movs r0, 0x1
|
|
bl GetAnimBankSpriteId
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
adds r0, r4, 0
|
|
bl sub_8075980
|
|
ldr r1, _080A305C @ =gSprites
|
|
lsls r0, r4, 4
|
|
adds r0, r4
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
strh r5, [r0, 0x24]
|
|
strh r5, [r0, 0x26]
|
|
ldrh r0, [r6, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r6, 0x8]
|
|
b _080A308E
|
|
.align 2, 0
|
|
_080A3050: .4byte gUnknown_2037F02
|
|
_080A3054: .4byte 0x0000ffff
|
|
_080A3058: .4byte gTasks
|
|
_080A305C: .4byte gSprites
|
|
_080A3060:
|
|
ldr r1, _080A3094 @ =gTasks
|
|
lsls r2, r3, 2
|
|
adds r0, r2, r3
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
movs r4, 0x8
|
|
ldrsh r0, [r0, r4]
|
|
adds r4, r1, 0
|
|
cmp r0, 0
|
|
beq _080A308E
|
|
_080A3074:
|
|
adds r1, r2, r3
|
|
lsls r1, 3
|
|
adds r1, r4
|
|
ldrh r0, [r1, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x8]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x3
|
|
bne _080A308E
|
|
adds r0, r3, 0
|
|
bl DestroyAnimVisualTask
|
|
_080A308E:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A3094: .4byte gTasks
|
|
thumb_func_end sub_80A3004
|
|
|
|
thumb_func_start sub_80A3098
|
|
sub_80A3098: @ 80A3098
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0
|
|
beq _080A30AA
|
|
cmp r0, 0x1
|
|
beq _080A3104
|
|
b _080A3156
|
|
_080A30AA:
|
|
ldr r6, _080A30FC @ =gUnknown_2037F1B
|
|
ldrb r0, [r6]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080A30C2
|
|
ldr r1, _080A3100 @ =gUnknown_2037F02
|
|
movs r2, 0
|
|
ldrsh r0, [r1, r2]
|
|
negs r0, r0
|
|
strh r0, [r1]
|
|
_080A30C2:
|
|
ldrb r0, [r6]
|
|
movs r1, 0
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
ldr r4, _080A3100 @ =gUnknown_2037F02
|
|
lsrs r0, 24
|
|
ldrh r1, [r4]
|
|
adds r0, r1
|
|
strh r0, [r5, 0x20]
|
|
ldrb r0, [r6]
|
|
movs r1, 0x1
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrh r4, [r4, 0x2]
|
|
adds r0, r4
|
|
strh r0, [r5, 0x22]
|
|
adds r2, r5, 0
|
|
adds r2, 0x3E
|
|
ldrb r0, [r2]
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldrh r0, [r5, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x2E]
|
|
b _080A3156
|
|
.align 2, 0
|
|
_080A30FC: .4byte gUnknown_2037F1B
|
|
_080A3100: .4byte gUnknown_2037F02
|
|
_080A3104:
|
|
adds r2, r5, 0
|
|
adds r2, 0x3E
|
|
ldrb r1, [r2]
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
adds r0, r5, 0
|
|
adds r0, 0x3F
|
|
ldrb r1, [r0]
|
|
movs r0, 0x20
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080A3156
|
|
adds r0, r5, 0
|
|
movs r1, 0x1
|
|
bl ChangeSpriteAffineAnim
|
|
movs r0, 0x19
|
|
strh r0, [r5, 0x2E]
|
|
ldr r4, _080A315C @ =gUnknown_2037F1A
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x32]
|
|
ldrb r0, [r4]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x36]
|
|
ldr r0, _080A3160 @ =sub_8075764
|
|
str r0, [r5, 0x1C]
|
|
ldr r1, _080A3164 @ =DestroyAnimSprite
|
|
adds r0, r5, 0
|
|
bl StoreSpriteCallbackInData6
|
|
_080A3156:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A315C: .4byte gUnknown_2037F1A
|
|
_080A3160: .4byte sub_8075764
|
|
_080A3164: .4byte DestroyAnimSprite
|
|
thumb_func_end sub_80A3098
|
|
|
|
thumb_func_start sub_80A3168
|
|
sub_80A3168: @ 80A3168
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0
|
|
bne _080A31D4
|
|
ldr r4, _080A31E0 @ =gUnknown_2037F1A
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x20]
|
|
ldrb r0, [r4]
|
|
movs r1, 0x1
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x22]
|
|
ldr r4, _080A31E4 @ =gUnknown_2037F02
|
|
ldrh r0, [r4]
|
|
strh r0, [r5, 0x24]
|
|
ldrh r0, [r4, 0x2]
|
|
strh r0, [r5, 0x26]
|
|
ldrb r0, [r4, 0x4]
|
|
adds r0, 0x1E
|
|
adds r1, r5, 0
|
|
adds r1, 0x43
|
|
strb r0, [r1]
|
|
ldrb r1, [r4, 0x6]
|
|
adds r0, r5, 0
|
|
bl StartSpriteAnim
|
|
ldrh r0, [r4, 0x8]
|
|
strh r0, [r5, 0x32]
|
|
ldrh r0, [r5, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x2E]
|
|
movs r2, 0x22
|
|
ldrsh r0, [r5, r2]
|
|
movs r2, 0x26
|
|
ldrsh r1, [r5, r2]
|
|
adds r0, r1
|
|
cmp r0, 0x78
|
|
ble _080A31D4
|
|
ldrh r0, [r5, 0x22]
|
|
adds r1, r0, 0
|
|
subs r1, 0x78
|
|
ldrh r2, [r5, 0x26]
|
|
adds r0, r2
|
|
adds r1, r0
|
|
strh r1, [r5, 0x22]
|
|
_080A31D4:
|
|
ldr r0, _080A31E8 @ =sub_80A32DC
|
|
str r0, [r5, 0x1C]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A31E0: .4byte gUnknown_2037F1A
|
|
_080A31E4: .4byte gUnknown_2037F02
|
|
_080A31E8: .4byte sub_80A32DC
|
|
thumb_func_end sub_80A3168
|
|
|
|
thumb_func_start sub_80A31EC
|
|
sub_80A31EC: @ 80A31EC
|
|
push {r4-r6,lr}
|
|
mov r6, r10
|
|
mov r5, r9
|
|
mov r4, r8
|
|
push {r4-r6}
|
|
sub sp, 0x4
|
|
mov r9, r0
|
|
ldr r4, _080A32C8 @ =gUnknown_2037F1A
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
adds r5, r0, 0
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
ldrb r0, [r4]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
mov r8, r0
|
|
mov r0, r8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
ldr r6, _080A32CC @ =gUnknown_2037F1B
|
|
ldrb r0, [r6]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
ldrb r0, [r6]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
subs r4, r5
|
|
lsls r4, 16
|
|
lsrs r2, 24
|
|
mov r1, r8
|
|
subs r2, r1
|
|
lsls r2, 16
|
|
lsrs r2, 16
|
|
lsrs r3, r4, 16
|
|
mov r10, r3
|
|
asrs r4, 16
|
|
ldr r6, _080A32D0 @ =gUnknown_2037F02
|
|
movs r1, 0
|
|
ldrsh r0, [r6, r1]
|
|
muls r0, r4
|
|
movs r1, 0x64
|
|
str r2, [sp]
|
|
bl __divsi3
|
|
adds r5, r0
|
|
mov r3, r9
|
|
strh r5, [r3, 0x20]
|
|
ldr r2, [sp]
|
|
lsls r0, r2, 16
|
|
asrs r0, 16
|
|
movs r3, 0
|
|
ldrsh r1, [r6, r3]
|
|
muls r0, r1
|
|
movs r1, 0x64
|
|
bl __divsi3
|
|
add r8, r0
|
|
mov r1, r8
|
|
mov r0, r9
|
|
strh r1, [r0, 0x22]
|
|
ldrh r0, [r6, 0x2]
|
|
mov r3, r9
|
|
strh r0, [r3, 0x24]
|
|
ldrh r0, [r6, 0x4]
|
|
strh r0, [r3, 0x26]
|
|
ldrb r0, [r6, 0x6]
|
|
adds r0, 0x1E
|
|
mov r1, r9
|
|
adds r1, 0x43
|
|
strb r0, [r1]
|
|
ldrb r1, [r6, 0x8]
|
|
mov r0, r9
|
|
bl StartSpriteAnim
|
|
ldrh r0, [r6, 0xA]
|
|
mov r1, r9
|
|
strh r0, [r1, 0x32]
|
|
ldr r0, _080A32D4 @ =sub_80A32DC
|
|
str r0, [r1, 0x1C]
|
|
ldr r1, _080A32D8 @ =gUnknown_203999C
|
|
mov r3, r9
|
|
ldrh r0, [r3, 0x20]
|
|
strh r0, [r1]
|
|
ldrh r0, [r3, 0x22]
|
|
strh r0, [r1, 0x2]
|
|
mov r0, r10
|
|
strh r0, [r1, 0x4]
|
|
ldr r2, [sp]
|
|
strh r2, [r1, 0x6]
|
|
add sp, 0x4
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A32C8: .4byte gUnknown_2037F1A
|
|
_080A32CC: .4byte gUnknown_2037F1B
|
|
_080A32D0: .4byte gUnknown_2037F02
|
|
_080A32D4: .4byte sub_80A32DC
|
|
_080A32D8: .4byte gUnknown_203999C
|
|
thumb_func_end sub_80A31EC
|
|
|
|
thumb_func_start sub_80A32DC
|
|
sub_80A32DC: @ 80A32DC
|
|
push {lr}
|
|
adds r3, r0, 0
|
|
ldrh r1, [r3, 0x2E]
|
|
adds r1, 0x1
|
|
strh r1, [r3, 0x2E]
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
movs r2, 0x32
|
|
ldrsh r0, [r3, r2]
|
|
subs r0, 0xA
|
|
cmp r1, r0
|
|
ble _080A331C
|
|
movs r0, 0x2E
|
|
ldrsh r1, [r3, r0]
|
|
lsrs r0, r1, 31
|
|
adds r0, r1, r0
|
|
asrs r0, 1
|
|
lsls r0, 1
|
|
subs r1, r0
|
|
movs r2, 0x3E
|
|
adds r2, r3
|
|
mov r12, r2
|
|
movs r0, 0x1
|
|
ands r1, r0
|
|
lsls r1, 2
|
|
ldrb r2, [r2]
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
mov r1, r12
|
|
strb r0, [r1]
|
|
_080A331C:
|
|
movs r2, 0x2E
|
|
ldrsh r1, [r3, r2]
|
|
movs r2, 0x32
|
|
ldrsh r0, [r3, r2]
|
|
cmp r1, r0
|
|
ble _080A332E
|
|
adds r0, r3, 0
|
|
bl DestroyAnimSprite
|
|
_080A332E:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A32DC
|
|
|
|
thumb_func_start sub_80A3334
|
|
sub_80A3334: @ 80A3334
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r6, r1]
|
|
cmp r0, 0
|
|
bne _080A3374
|
|
ldr r5, _080A33B0 @ =gUnknown_2037F1A
|
|
ldrb r0, [r5]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
ldr r4, _080A33B4 @ =gUnknown_2037F02
|
|
lsrs r0, 24
|
|
ldrh r2, [r4]
|
|
adds r0, r2
|
|
strh r0, [r6, 0x20]
|
|
ldrb r0, [r5]
|
|
movs r1, 0x1
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrh r1, [r4, 0x2]
|
|
adds r0, r1
|
|
strh r0, [r6, 0x22]
|
|
ldrh r0, [r4, 0x4]
|
|
strh r0, [r6, 0x30]
|
|
ldrh r0, [r4, 0x6]
|
|
strh r0, [r6, 0x32]
|
|
ldrh r0, [r4, 0x8]
|
|
strh r0, [r6, 0x34]
|
|
_080A3374:
|
|
ldrh r0, [r6, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r6, 0x2E]
|
|
ldrh r1, [r6, 0x30]
|
|
muls r0, r1
|
|
strh r0, [r6, 0x24]
|
|
movs r2, 0x2E
|
|
ldrsh r1, [r6, r2]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
movs r1, 0xFF
|
|
ands r0, r1
|
|
movs r2, 0x32
|
|
ldrsh r1, [r6, r2]
|
|
bl Sin
|
|
strh r0, [r6, 0x26]
|
|
movs r0, 0x2E
|
|
ldrsh r1, [r6, r0]
|
|
movs r2, 0x34
|
|
ldrsh r0, [r6, r2]
|
|
cmp r1, r0
|
|
ble _080A33AA
|
|
adds r0, r6, 0
|
|
bl DestroyAnimSprite
|
|
_080A33AA:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A33B0: .4byte gUnknown_2037F1A
|
|
_080A33B4: .4byte gUnknown_2037F02
|
|
thumb_func_end sub_80A3334
|
|
|
|
thumb_func_start sub_80A33B8
|
|
sub_80A33B8: @ 80A33B8
|
|
push {r4,r5,lr}
|
|
movs r2, 0x20
|
|
ldrsh r4, [r0, r2]
|
|
lsls r4, 8
|
|
movs r3, 0x22
|
|
ldrsh r2, [r0, r3]
|
|
orrs r4, r2
|
|
movs r5, 0x3A
|
|
ldrsh r2, [r0, r5]
|
|
lsls r2, 8
|
|
movs r5, 0x3C
|
|
ldrsh r3, [r0, r5]
|
|
orrs r2, r3
|
|
lsls r1, 8
|
|
strh r4, [r0, 0x38]
|
|
strh r2, [r0, 0x3A]
|
|
strh r1, [r0, 0x3C]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A33B8
|
|
|
|
thumb_func_start sub_80A33E0
|
|
sub_80A33E0: @ 80A33E0
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
mov r8, r0
|
|
ldrh r0, [r0, 0x38]
|
|
lsrs r1, r0, 8
|
|
mov r10, r1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
mov r1, r8
|
|
ldrh r0, [r1, 0x3A]
|
|
lsrs r2, r0, 8
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldrh r1, [r1, 0x3C]
|
|
lsls r0, r1, 16
|
|
asrs r0, 24
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
movs r3, 0xFF
|
|
ands r3, r1
|
|
cmp r2, 0
|
|
bne _080A341A
|
|
movs r2, 0x20
|
|
negs r2, r2
|
|
b _080A3422
|
|
_080A341A:
|
|
cmp r2, 0xFF
|
|
bne _080A3422
|
|
movs r2, 0x88
|
|
lsls r2, 1
|
|
_080A3422:
|
|
mov r0, r9
|
|
subs r4, r0
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
mov r1, r10
|
|
subs r0, r2, r1
|
|
lsls r5, r3, 16
|
|
asrs r5, 16
|
|
muls r0, r5
|
|
lsls r1, r6, 16
|
|
asrs r7, r1, 16
|
|
adds r1, r7, 0
|
|
bl __divsi3
|
|
adds r6, r0, 0
|
|
lsls r4, 16
|
|
asrs r4, 16
|
|
adds r0, r4, 0
|
|
muls r0, r5
|
|
adds r1, r7, 0
|
|
bl __divsi3
|
|
add r6, r10
|
|
mov r1, r8
|
|
strh r6, [r1, 0x20]
|
|
add r0, r9
|
|
strh r0, [r1, 0x22]
|
|
adds r5, 0x1
|
|
lsls r5, 16
|
|
lsrs r3, r5, 16
|
|
asrs r5, 16
|
|
cmp r5, r7
|
|
beq _080A3474
|
|
lsls r1, r7, 8
|
|
lsls r0, r3, 16
|
|
asrs r0, 16
|
|
orrs r0, r1
|
|
mov r1, r8
|
|
strh r0, [r1, 0x3C]
|
|
movs r0, 0
|
|
b _080A3476
|
|
_080A3474:
|
|
movs r0, 0x1
|
|
_080A3476:
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80A33E0
|
|
|
|
thumb_func_start sub_80A3484
|
|
sub_80A3484: @ 80A3484
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0xA
|
|
bne _080A3498
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl StartSpriteAffineAnim
|
|
_080A3498:
|
|
ldrh r0, [r4, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x32
|
|
ble _080A34AC
|
|
adds r0, r4, 0
|
|
bl DestroyAnimSprite
|
|
_080A34AC:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A3484
|
|
|
|
thumb_func_start sub_80A34B4
|
|
sub_80A34B4: @ 80A34B4
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x34
|
|
ldrsh r0, [r4, r1]
|
|
lsls r0, 7
|
|
movs r2, 0x36
|
|
ldrsh r1, [r4, r2]
|
|
bl __divsi3
|
|
ldrh r1, [r4, 0x2E]
|
|
adds r1, r0
|
|
movs r5, 0
|
|
strh r1, [r4, 0x2E]
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
cmp r1, 0x7F
|
|
ble _080A34DE
|
|
ldrh r0, [r4, 0x30]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x30]
|
|
strh r5, [r4, 0x2E]
|
|
_080A34DE:
|
|
ldrh r0, [r4, 0x2E]
|
|
adds r0, 0x80
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r1, 0x30
|
|
ldrsh r2, [r4, r1]
|
|
lsls r2, 3
|
|
movs r1, 0x1E
|
|
subs r1, r2
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
bl Sin
|
|
strh r0, [r4, 0x26]
|
|
adds r0, r4, 0
|
|
bl sub_80A33E0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A350E
|
|
strh r5, [r4, 0x26]
|
|
strh r5, [r4, 0x2E]
|
|
ldr r0, _080A3514 @ =sub_80A3484
|
|
str r0, [r4, 0x1C]
|
|
_080A350E:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A3514: .4byte sub_80A3484
|
|
thumb_func_end sub_80A34B4
|
|
|
|
thumb_func_start sub_80A3518
|
|
sub_80A3518: @ 80A3518
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
movs r1, 0
|
|
bl sub_8075160
|
|
ldr r4, _080A3560 @ =gUnknown_2037F1B
|
|
ldrb r0, [r4]
|
|
movs r1, 0
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
ldrb r0, [r4]
|
|
movs r1, 0x1
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
ldr r0, _080A3564 @ =gUnknown_2037F1A
|
|
ldrb r1, [r0]
|
|
movs r0, 0x2
|
|
eors r0, r1
|
|
ldrb r4, [r4]
|
|
cmp r0, r4
|
|
bne _080A3568
|
|
strh r6, [r5, 0x3A]
|
|
adds r0, r2, 0
|
|
adds r0, 0xA
|
|
strh r0, [r5, 0x3C]
|
|
adds r0, r5, 0
|
|
movs r1, 0x3C
|
|
bl sub_80A33B8
|
|
movs r0, 0x1
|
|
b _080A357A
|
|
.align 2, 0
|
|
_080A3560: .4byte gUnknown_2037F1B
|
|
_080A3564: .4byte gUnknown_2037F1A
|
|
_080A3568:
|
|
strh r6, [r5, 0x3A]
|
|
adds r0, r2, 0
|
|
adds r0, 0xA
|
|
strh r0, [r5, 0x3C]
|
|
adds r0, r5, 0
|
|
movs r1, 0x3C
|
|
bl sub_80A33B8
|
|
movs r0, 0x3
|
|
_080A357A:
|
|
strh r0, [r5, 0x34]
|
|
movs r0, 0x3C
|
|
strh r0, [r5, 0x36]
|
|
ldr r0, _080A358C @ =sub_80A34B4
|
|
str r0, [r5, 0x1C]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A358C: .4byte sub_80A34B4
|
|
thumb_func_end sub_80A3518
|
|
|
|
thumb_func_start sub_80A3590
|
|
sub_80A3590: @ 80A3590
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x34
|
|
ldrsh r0, [r4, r1]
|
|
lsls r0, 7
|
|
movs r2, 0x36
|
|
ldrsh r1, [r4, r2]
|
|
bl __divsi3
|
|
ldrh r1, [r4, 0x2E]
|
|
adds r1, r0
|
|
movs r5, 0
|
|
strh r1, [r4, 0x2E]
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
cmp r1, 0x7F
|
|
ble _080A35BA
|
|
ldrh r0, [r4, 0x30]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x30]
|
|
strh r5, [r4, 0x2E]
|
|
_080A35BA:
|
|
ldrh r0, [r4, 0x2E]
|
|
adds r0, 0x80
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r1, 0x30
|
|
ldrsh r2, [r4, r1]
|
|
lsls r2, 3
|
|
movs r1, 0x1E
|
|
subs r1, r2
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
bl Sin
|
|
strh r0, [r4, 0x26]
|
|
adds r0, r4, 0
|
|
bl sub_80A33E0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A35EC
|
|
strh r5, [r4, 0x26]
|
|
strh r5, [r4, 0x2E]
|
|
adds r0, r4, 0
|
|
bl DestroyAnimSprite
|
|
_080A35EC:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A3590
|
|
|
|
thumb_func_start sub_80A35F4
|
|
sub_80A35F4: @ 80A35F4
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
ldr r4, _080A3630 @ =gUnknown_2037F1B
|
|
ldrb r0, [r4]
|
|
movs r1, 0x1
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
ldrb r0, [r4]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0
|
|
bne _080A3638
|
|
strh r0, [r5, 0x3A]
|
|
adds r0, r6, 0
|
|
adds r0, 0xA
|
|
strh r0, [r5, 0x3C]
|
|
adds r0, r5, 0
|
|
movs r1, 0x28
|
|
bl sub_80A33B8
|
|
movs r0, 0x3
|
|
strh r0, [r5, 0x34]
|
|
movs r0, 0x3C
|
|
strh r0, [r5, 0x36]
|
|
ldr r0, _080A3634 @ =sub_80A34B4
|
|
b _080A3662
|
|
.align 2, 0
|
|
_080A3630: .4byte gUnknown_2037F1B
|
|
_080A3634: .4byte sub_80A34B4
|
|
_080A3638:
|
|
movs r0, 0xFF
|
|
strh r0, [r5, 0x3A]
|
|
adds r0, r6, 0
|
|
adds r0, 0xA
|
|
strh r0, [r5, 0x3C]
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A3650
|
|
movs r0, 0
|
|
strh r0, [r5, 0x3A]
|
|
_080A3650:
|
|
adds r0, r5, 0
|
|
movs r1, 0x28
|
|
bl sub_80A33B8
|
|
movs r0, 0x3
|
|
strh r0, [r5, 0x34]
|
|
movs r0, 0x3C
|
|
strh r0, [r5, 0x36]
|
|
ldr r0, _080A366C @ =sub_80A3590
|
|
_080A3662:
|
|
str r0, [r5, 0x1C]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A366C: .4byte sub_80A3590
|
|
thumb_func_end sub_80A35F4
|
|
|
|
thumb_func_start sub_80A3670
|
|
sub_80A3670: @ 80A3670
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bne _080A368A
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl sub_8075114
|
|
ldr r0, _080A36B0 @ =gUnknown_2037F02
|
|
ldrh r0, [r0, 0x4]
|
|
strh r0, [r4, 0x30]
|
|
_080A368A:
|
|
ldrh r0, [r4, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
ldrh r1, [r4, 0x30]
|
|
muls r0, r1
|
|
strh r0, [r4, 0x26]
|
|
adds r0, r4, 0
|
|
adds r0, 0x3F
|
|
ldrb r1, [r0]
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080A36AA
|
|
adds r0, r4, 0
|
|
bl DestroyAnimSprite
|
|
_080A36AA:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A36B0: .4byte gUnknown_2037F02
|
|
thumb_func_end sub_80A3670
|
|
|
|
thumb_func_start sub_80A36B4
|
|
sub_80A36B4: @ 80A36B4
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
movs r1, 0
|
|
bl sub_8075114
|
|
ldr r4, _080A36FC @ =gUnknown_2037F1A
|
|
ldrb r0, [r4]
|
|
movs r1, 0
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
ldrb r0, [r4]
|
|
movs r1, 0x1
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
ldr r0, _080A3700 @ =gUnknown_2037F1B
|
|
ldrb r1, [r0]
|
|
movs r0, 0x2
|
|
eors r0, r1
|
|
ldrb r4, [r4]
|
|
cmp r0, r4
|
|
bne _080A3704
|
|
strh r6, [r5, 0x3A]
|
|
adds r0, r2, 0
|
|
adds r0, 0xA
|
|
strh r0, [r5, 0x3C]
|
|
adds r0, r5, 0
|
|
movs r1, 0x3C
|
|
bl sub_80A33B8
|
|
movs r0, 0x1
|
|
b _080A3716
|
|
.align 2, 0
|
|
_080A36FC: .4byte gUnknown_2037F1A
|
|
_080A3700: .4byte gUnknown_2037F1B
|
|
_080A3704:
|
|
strh r6, [r5, 0x3A]
|
|
adds r0, r2, 0
|
|
adds r0, 0xA
|
|
strh r0, [r5, 0x3C]
|
|
adds r0, r5, 0
|
|
movs r1, 0x3C
|
|
bl sub_80A33B8
|
|
movs r0, 0x3
|
|
_080A3716:
|
|
strh r0, [r5, 0x34]
|
|
movs r0, 0x3C
|
|
strh r0, [r5, 0x36]
|
|
ldr r0, _080A3728 @ =sub_80A372C
|
|
str r0, [r5, 0x1C]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A3728: .4byte sub_80A372C
|
|
thumb_func_end sub_80A36B4
|
|
|
|
thumb_func_start sub_80A372C
|
|
sub_80A372C: @ 80A372C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x34
|
|
ldrsh r0, [r4, r1]
|
|
lsls r0, 7
|
|
movs r2, 0x36
|
|
ldrsh r1, [r4, r2]
|
|
bl __divsi3
|
|
ldrh r1, [r4, 0x2E]
|
|
adds r1, r0
|
|
movs r5, 0
|
|
strh r1, [r4, 0x2E]
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
cmp r1, 0x7F
|
|
ble _080A3756
|
|
ldrh r0, [r4, 0x30]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x30]
|
|
strh r5, [r4, 0x2E]
|
|
_080A3756:
|
|
ldrh r0, [r4, 0x2E]
|
|
adds r0, 0x80
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r1, 0x30
|
|
ldrsh r2, [r4, r1]
|
|
lsls r2, 3
|
|
movs r1, 0x1E
|
|
subs r1, r2
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
bl Sin
|
|
strh r0, [r4, 0x26]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bne _080A378A
|
|
movs r0, 0x3F
|
|
bl sub_8073A44
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
asrs r1, 24
|
|
movs r0, 0x76
|
|
bl PlaySE12WithPanning
|
|
_080A378A:
|
|
adds r0, r4, 0
|
|
bl sub_80A33E0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A37B2
|
|
strh r5, [r4, 0x26]
|
|
strh r5, [r4, 0x2E]
|
|
ldr r0, _080A37B8 @ =sub_80A3484
|
|
str r0, [r4, 0x1C]
|
|
movs r0, 0x40
|
|
negs r0, r0
|
|
bl sub_8073A44
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
asrs r1, 24
|
|
movs r0, 0x76
|
|
bl PlaySE12WithPanning
|
|
_080A37B2:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A37B8: .4byte sub_80A3484
|
|
thumb_func_end sub_80A372C
|
|
|
|
thumb_func_start sub_80A37BC
|
|
sub_80A37BC: @ 80A37BC
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bne _080A3850
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080A37E4
|
|
ldr r0, _080A37E0 @ =gUnknown_2037F02
|
|
ldrh r1, [r0, 0x2]
|
|
strh r1, [r4, 0x30]
|
|
movs r1, 0x78
|
|
strh r1, [r4, 0x20]
|
|
adds r5, r0, 0
|
|
b _080A3806
|
|
.align 2, 0
|
|
_080A37E0: .4byte gUnknown_2037F02
|
|
_080A37E4:
|
|
ldr r0, _080A3840 @ =gUnknown_2037F02
|
|
movs r1, 0x2
|
|
ldrsh r3, [r0, r1]
|
|
adds r1, r3, 0
|
|
subs r1, 0x20
|
|
adds r2, r1, 0
|
|
adds r5, r0, 0
|
|
cmp r1, 0
|
|
bge _080A37FA
|
|
adds r2, r3, 0
|
|
adds r2, 0xDF
|
|
_080A37FA:
|
|
asrs r0, r2, 8
|
|
lsls r0, 8
|
|
subs r0, r1, r0
|
|
strh r0, [r4, 0x30]
|
|
movs r0, 0x46
|
|
strh r0, [r4, 0x20]
|
|
_080A3806:
|
|
ldrh r0, [r5]
|
|
strh r0, [r4, 0x22]
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x14
|
|
strh r0, [r4, 0x36]
|
|
movs r1, 0x30
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0x3C
|
|
bl Cos
|
|
strh r0, [r4, 0x24]
|
|
movs r1, 0x30
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0x14
|
|
bl Sin
|
|
strh r0, [r4, 0x26]
|
|
ldr r0, _080A3844 @ =sub_80A3858
|
|
str r0, [r4, 0x1C]
|
|
ldrh r0, [r4, 0x30]
|
|
subs r0, 0x1
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0xBE
|
|
bhi _080A3848
|
|
adds r1, r4, 0
|
|
adds r1, 0x43
|
|
movs r0, 0x1F
|
|
b _080A384E
|
|
.align 2, 0
|
|
_080A3840: .4byte gUnknown_2037F02
|
|
_080A3844: .4byte sub_80A3858
|
|
_080A3848:
|
|
adds r1, r4, 0
|
|
adds r1, 0x43
|
|
movs r0, 0x1D
|
|
_080A384E:
|
|
strb r0, [r1]
|
|
_080A3850:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A37BC
|
|
|
|
thumb_func_start sub_80A3858
|
|
sub_80A3858: @ 80A3858
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x34
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
beq _080A386A
|
|
cmp r0, 0x1
|
|
beq _080A389A
|
|
b _080A38BA
|
|
_080A386A:
|
|
ldrh r5, [r4, 0x32]
|
|
movs r1, 0x32
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x4E
|
|
ble _080A3882
|
|
movs r0, 0x1
|
|
strh r0, [r4, 0x34]
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl StartSpriteAffineAnim
|
|
b _080A38BA
|
|
_080A3882:
|
|
movs r1, 0x36
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0xA
|
|
bl __divsi3
|
|
adds r0, r5, r0
|
|
strh r0, [r4, 0x32]
|
|
ldrh r1, [r4, 0x36]
|
|
adds r1, 0x3
|
|
strh r1, [r4, 0x36]
|
|
strh r0, [r4, 0x22]
|
|
b _080A38BA
|
|
_080A389A:
|
|
movs r1, 0x34
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
beq _080A38BA
|
|
adds r0, r4, 0
|
|
adds r0, 0x3F
|
|
ldrb r1, [r0]
|
|
movs r0, 0x20
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080A38BA
|
|
movs r0, 0
|
|
strh r0, [r4, 0x2E]
|
|
strh r0, [r4, 0x32]
|
|
ldr r0, _080A38C0 @ =sub_80A38C4
|
|
str r0, [r4, 0x1C]
|
|
_080A38BA:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A38C0: .4byte sub_80A38C4
|
|
thumb_func_end sub_80A3858
|
|
|
|
thumb_func_start sub_80A38C4
|
|
sub_80A38C4: @ 80A38C4
|
|
push {r4-r6,lr}
|
|
adds r4, r0, 0
|
|
ldr r5, _080A3908 @ =gUnknown_83E2F78
|
|
movs r0, 0x2E
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 1
|
|
adds r3, r0, r1
|
|
adds r0, r5, 0x1
|
|
adds r0, r3, r0
|
|
ldrh r2, [r4, 0x32]
|
|
movs r6, 0x32
|
|
ldrsh r1, [r4, r6]
|
|
ldrb r0, [r0]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
cmp r1, r0
|
|
bne _080A3910
|
|
adds r0, r5, 0x2
|
|
adds r0, r3, r0
|
|
ldrb r0, [r0]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
cmp r0, 0x7F
|
|
bne _080A38FC
|
|
movs r0, 0
|
|
strh r0, [r4, 0x2E]
|
|
ldr r0, _080A390C @ =sub_80A397C
|
|
str r0, [r4, 0x1C]
|
|
_080A38FC:
|
|
movs r0, 0
|
|
strh r0, [r4, 0x32]
|
|
ldrh r0, [r4, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
b _080A3976
|
|
.align 2, 0
|
|
_080A3908: .4byte gUnknown_83E2F78
|
|
_080A390C: .4byte sub_80A397C
|
|
_080A3910:
|
|
adds r0, r2, 0x1
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x2E
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
adds r1, r0, r5
|
|
movs r2, 0
|
|
ldrsb r2, [r1, r2]
|
|
adds r1, r5, 0x2
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
muls r0, r2
|
|
ldrh r1, [r4, 0x30]
|
|
adds r0, r1
|
|
movs r1, 0xFF
|
|
ands r0, r1
|
|
strh r0, [r4, 0x30]
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080A395E
|
|
ldrh r0, [r4, 0x30]
|
|
subs r0, 0x1
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0xBE
|
|
bhi _080A3956
|
|
adds r1, r4, 0
|
|
adds r1, 0x43
|
|
movs r0, 0x1F
|
|
b _080A395C
|
|
_080A3956:
|
|
adds r1, r4, 0
|
|
adds r1, 0x43
|
|
movs r0, 0x1D
|
|
_080A395C:
|
|
strb r0, [r1]
|
|
_080A395E:
|
|
movs r6, 0x30
|
|
ldrsh r0, [r4, r6]
|
|
movs r1, 0x3C
|
|
bl Cos
|
|
strh r0, [r4, 0x24]
|
|
movs r1, 0x30
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0x14
|
|
bl Sin
|
|
strh r0, [r4, 0x26]
|
|
_080A3976:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A38C4
|
|
|
|
thumb_func_start sub_80A397C
|
|
sub_80A397C: @ 80A397C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x14
|
|
ble _080A398E
|
|
adds r0, r4, 0
|
|
bl DestroyAnimSprite
|
|
_080A398E:
|
|
movs r0, 0x2E
|
|
ldrsh r1, [r4, r0]
|
|
lsrs r0, r1, 31
|
|
adds r0, r1, r0
|
|
asrs r0, 1
|
|
lsls r0, 1
|
|
subs r1, r0
|
|
adds r3, r4, 0
|
|
adds r3, 0x3E
|
|
movs r0, 0x1
|
|
ands r1, r0
|
|
lsls r1, 2
|
|
ldrb r2, [r3]
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r3]
|
|
ldrh r0, [r4, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A397C
|
|
|
|
thumb_func_start sub_80A39C0
|
|
sub_80A39C0: @ 80A39C0
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r6, r0, 0
|
|
lsls r0, r6, 2
|
|
adds r0, r6
|
|
lsls r0, 3
|
|
ldr r1, _080A3B14 @ =gTasks
|
|
adds r5, r0, r1
|
|
ldr r4, _080A3B18 @ =gUnknown_2037F1B
|
|
ldrb r0, [r4]
|
|
bl sub_807685C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
subs r0, 0x1
|
|
strh r0, [r5, 0x10]
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x14]
|
|
ldrb r0, [r4]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x16]
|
|
ldrb r0, [r4]
|
|
movs r1, 0x1
|
|
bl sub_8076B2C
|
|
strh r0, [r5, 0x1C]
|
|
ldrb r0, [r4]
|
|
movs r1, 0
|
|
bl sub_8076B2C
|
|
strh r0, [r5, 0x1E]
|
|
ldrb r0, [r4]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
adds r1, r2, 0
|
|
cmp r0, 0x1
|
|
bne _080A3A28
|
|
movs r1, 0x1
|
|
_080A3A28:
|
|
strh r1, [r5, 0x12]
|
|
movs r3, 0x12
|
|
ldrsh r0, [r5, r3]
|
|
lsls r0, 6
|
|
movs r1, 0x38
|
|
subs r1, r0
|
|
strh r1, [r5, 0x1A]
|
|
ldrh r0, [r5, 0x16]
|
|
subs r0, r1
|
|
ldrh r1, [r5, 0x14]
|
|
adds r0, r1
|
|
strh r0, [r5, 0x18]
|
|
ldr r0, _080A3B1C @ =gUnknown_83E2FF0
|
|
movs r2, 0x18
|
|
ldrsh r1, [r5, r2]
|
|
movs r3, 0x1A
|
|
ldrsh r2, [r5, r3]
|
|
ldrb r3, [r5, 0x10]
|
|
bl CreateSprite
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0xC]
|
|
cmp r0, 0x40
|
|
bne _080A3A60
|
|
adds r0, r6, 0
|
|
bl DestroyAnimVisualTask
|
|
_080A3A60:
|
|
ldr r4, _080A3B20 @ =gSprites
|
|
movs r0, 0xC
|
|
ldrsh r1, [r5, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
movs r1, 0xA
|
|
strh r1, [r0, 0x2E]
|
|
movs r2, 0xC
|
|
ldrsh r1, [r5, r2]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldrh r1, [r5, 0x18]
|
|
strh r1, [r0, 0x30]
|
|
movs r3, 0xC
|
|
ldrsh r0, [r5, r3]
|
|
lsls r2, r0, 4
|
|
adds r2, r0
|
|
lsls r2, 2
|
|
adds r2, r4
|
|
movs r1, 0x1C
|
|
ldrsh r0, [r5, r1]
|
|
lsrs r1, r0, 31
|
|
adds r0, r1
|
|
asrs r0, 1
|
|
adds r0, 0xA
|
|
movs r3, 0x12
|
|
ldrsh r1, [r5, r3]
|
|
muls r1, r0
|
|
ldrh r0, [r5, 0x14]
|
|
subs r0, r1
|
|
strh r0, [r2, 0x32]
|
|
movs r0, 0xC
|
|
ldrsh r1, [r5, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldrh r1, [r5, 0x1A]
|
|
strh r1, [r0, 0x34]
|
|
movs r1, 0xC
|
|
ldrsh r0, [r5, r1]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r4
|
|
movs r2, 0x1E
|
|
ldrsh r0, [r5, r2]
|
|
lsrs r2, r0, 31
|
|
adds r0, r2
|
|
asrs r0, 1
|
|
adds r0, 0xA
|
|
movs r3, 0x12
|
|
ldrsh r2, [r5, r3]
|
|
muls r0, r2
|
|
ldrh r2, [r5, 0x16]
|
|
adds r0, r2
|
|
strh r0, [r1, 0x36]
|
|
movs r3, 0xC
|
|
ldrsh r1, [r5, r3]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
bl sub_80A3F04
|
|
movs r1, 0xC
|
|
ldrsh r2, [r5, r1]
|
|
lsls r1, r2, 4
|
|
adds r1, r2
|
|
lsls r1, 2
|
|
adds r1, r4
|
|
strh r0, [r1, 0x38]
|
|
movs r2, 0xC
|
|
ldrsh r1, [r5, r2]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
bl sub_8075068
|
|
ldr r0, _080A3B24 @ =sub_80A3B28
|
|
str r0, [r5]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A3B14: .4byte gTasks
|
|
_080A3B18: .4byte gUnknown_2037F1B
|
|
_080A3B1C: .4byte gUnknown_83E2FF0
|
|
_080A3B20: .4byte gSprites
|
|
_080A3B24: .4byte sub_80A3B28
|
|
thumb_func_end sub_80A39C0
|
|
|
|
thumb_func_start sub_80A3B28
|
|
sub_80A3B28: @ 80A3B28
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
lsls r0, r2, 2
|
|
adds r0, r2
|
|
lsls r0, 3
|
|
ldr r1, _080A3B6C @ =gTasks
|
|
adds r6, r0, r1
|
|
movs r0, 0xC
|
|
ldrsh r1, [r6, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _080A3B70 @ =gSprites
|
|
adds r4, r0, r1
|
|
movs r1, 0x8
|
|
ldrsh r5, [r6, r1]
|
|
cmp r5, 0x7
|
|
bne _080A3B50
|
|
b _080A3D80
|
|
_080A3B50:
|
|
cmp r5, 0x7
|
|
bgt _080A3B9E
|
|
cmp r5, 0x3
|
|
bne _080A3B5A
|
|
b _080A3C72
|
|
_080A3B5A:
|
|
cmp r5, 0x3
|
|
bgt _080A3B74
|
|
cmp r5, 0x1
|
|
beq _080A3C04
|
|
cmp r5, 0x1
|
|
bgt _080A3C54
|
|
cmp r5, 0
|
|
beq _080A3BE6
|
|
b _080A3EFC
|
|
.align 2, 0
|
|
_080A3B6C: .4byte gTasks
|
|
_080A3B70: .4byte gSprites
|
|
_080A3B74:
|
|
cmp r5, 0x5
|
|
bne _080A3B7A
|
|
b _080A3CE8
|
|
_080A3B7A:
|
|
cmp r5, 0x5
|
|
ble _080A3B80
|
|
b _080A3D62
|
|
_080A3B80:
|
|
adds r0, r6, 0
|
|
adds r1, r2, 0
|
|
bl sub_80A3F24
|
|
adds r0, r4, 0
|
|
bl AnimateBallThrow
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080A3B96
|
|
b _080A3EFC
|
|
_080A3B96:
|
|
movs r0, 0x5
|
|
strh r0, [r6, 0x26]
|
|
movs r0, 0xFF
|
|
b _080A3EFA
|
|
_080A3B9E:
|
|
cmp r5, 0xB
|
|
bne _080A3BA4
|
|
b _080A3E64
|
|
_080A3BA4:
|
|
cmp r5, 0xB
|
|
bgt _080A3BD2
|
|
cmp r5, 0x9
|
|
bne _080A3BAE
|
|
b _080A3DD2
|
|
_080A3BAE:
|
|
cmp r5, 0x9
|
|
ble _080A3BB4
|
|
b _080A3E48
|
|
_080A3BB4:
|
|
adds r0, r6, 0
|
|
adds r1, r2, 0
|
|
bl sub_80A3F24
|
|
adds r0, r4, 0
|
|
bl AnimateBallThrow
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080A3BCA
|
|
b _080A3EFC
|
|
_080A3BCA:
|
|
movs r0, 0x9
|
|
strh r0, [r6, 0x26]
|
|
movs r0, 0xFF
|
|
b _080A3EFA
|
|
_080A3BD2:
|
|
cmp r5, 0xD
|
|
bne _080A3BD8
|
|
b _080A3ED6
|
|
_080A3BD8:
|
|
cmp r5, 0xD
|
|
bge _080A3BDE
|
|
b _080A3EB6
|
|
_080A3BDE:
|
|
cmp r5, 0xFF
|
|
bne _080A3BE4
|
|
b _080A3EE6
|
|
_080A3BE4:
|
|
b _080A3EFC
|
|
_080A3BE6:
|
|
adds r0, r6, 0
|
|
adds r1, r2, 0
|
|
bl sub_80A3F24
|
|
adds r0, r4, 0
|
|
bl AnimateBallThrow
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080A3BFC
|
|
b _080A3EFC
|
|
_080A3BFC:
|
|
movs r0, 0x1
|
|
strh r0, [r6, 0x26]
|
|
movs r0, 0xFF
|
|
b _080A3EFA
|
|
_080A3C04:
|
|
ldrh r2, [r4, 0x24]
|
|
ldrh r3, [r4, 0x20]
|
|
adds r2, r3
|
|
movs r0, 0
|
|
strh r2, [r4, 0x20]
|
|
ldrh r1, [r4, 0x26]
|
|
ldrh r3, [r4, 0x22]
|
|
adds r1, r3
|
|
strh r1, [r4, 0x22]
|
|
strh r0, [r4, 0x24]
|
|
strh r0, [r4, 0x26]
|
|
movs r0, 0xA
|
|
strh r0, [r4, 0x2E]
|
|
strh r2, [r4, 0x30]
|
|
ldrh r0, [r6, 0x14]
|
|
strh r0, [r4, 0x32]
|
|
strh r1, [r4, 0x34]
|
|
ldrh r0, [r6, 0x16]
|
|
strh r0, [r4, 0x36]
|
|
adds r0, r4, 0
|
|
bl sub_80A3F04
|
|
strh r0, [r4, 0x38]
|
|
ldrh r0, [r6, 0x10]
|
|
adds r0, 0x2
|
|
strh r0, [r6, 0x10]
|
|
strh r5, [r6, 0xE]
|
|
adds r1, r4, 0
|
|
adds r1, 0x43
|
|
strb r0, [r1]
|
|
ldrb r1, [r6, 0xE]
|
|
adds r0, r4, 0
|
|
bl StartSpriteAnim
|
|
adds r0, r4, 0
|
|
bl sub_8075068
|
|
ldrh r0, [r6, 0x8]
|
|
adds r0, 0x1
|
|
b _080A3EFA
|
|
_080A3C54:
|
|
adds r0, r6, 0
|
|
adds r1, r2, 0
|
|
bl sub_80A3F24
|
|
adds r0, r4, 0
|
|
bl AnimateBallThrow
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080A3C6A
|
|
b _080A3EFC
|
|
_080A3C6A:
|
|
movs r0, 0x3
|
|
strh r0, [r6, 0x26]
|
|
movs r0, 0xFF
|
|
b _080A3EFA
|
|
_080A3C72:
|
|
ldrh r1, [r4, 0x24]
|
|
ldrh r0, [r4, 0x20]
|
|
adds r1, r0
|
|
movs r0, 0
|
|
strh r1, [r4, 0x20]
|
|
ldrh r2, [r4, 0x26]
|
|
ldrh r3, [r4, 0x22]
|
|
adds r2, r3
|
|
strh r2, [r4, 0x22]
|
|
strh r0, [r4, 0x24]
|
|
strh r0, [r4, 0x26]
|
|
movs r0, 0xA
|
|
strh r0, [r4, 0x2E]
|
|
strh r1, [r4, 0x30]
|
|
movs r1, 0x1C
|
|
ldrsh r0, [r6, r1]
|
|
lsrs r1, r0, 31
|
|
adds r0, r1
|
|
asrs r0, 1
|
|
adds r0, 0xA
|
|
movs r3, 0x12
|
|
ldrsh r1, [r6, r3]
|
|
muls r1, r0
|
|
ldrh r0, [r6, 0x14]
|
|
subs r0, r1
|
|
strh r0, [r4, 0x32]
|
|
strh r2, [r4, 0x34]
|
|
movs r1, 0x1E
|
|
ldrsh r0, [r6, r1]
|
|
lsrs r1, r0, 31
|
|
adds r0, r1
|
|
asrs r0, 1
|
|
adds r0, 0xA
|
|
movs r2, 0x12
|
|
ldrsh r1, [r6, r2]
|
|
muls r1, r0
|
|
ldrh r0, [r6, 0x16]
|
|
subs r0, r1
|
|
strh r0, [r4, 0x36]
|
|
adds r0, r4, 0
|
|
bl sub_80A3F04
|
|
strh r0, [r4, 0x38]
|
|
movs r0, 0x2
|
|
strh r0, [r6, 0xE]
|
|
ldrh r0, [r6, 0x10]
|
|
adds r1, r4, 0
|
|
adds r1, 0x43
|
|
strb r0, [r1]
|
|
ldrb r1, [r6, 0xE]
|
|
adds r0, r4, 0
|
|
bl StartSpriteAnim
|
|
adds r0, r4, 0
|
|
bl sub_8075068
|
|
ldrh r0, [r6, 0x8]
|
|
adds r0, 0x1
|
|
b _080A3EFA
|
|
_080A3CE8:
|
|
ldrh r1, [r4, 0x24]
|
|
ldrh r3, [r4, 0x20]
|
|
adds r1, r3
|
|
movs r0, 0
|
|
strh r1, [r4, 0x20]
|
|
ldrh r2, [r4, 0x26]
|
|
ldrh r3, [r4, 0x22]
|
|
adds r2, r3
|
|
strh r2, [r4, 0x22]
|
|
strh r0, [r4, 0x24]
|
|
strh r0, [r4, 0x26]
|
|
movs r0, 0xA
|
|
strh r0, [r4, 0x2E]
|
|
strh r1, [r4, 0x30]
|
|
movs r1, 0x1C
|
|
ldrsh r0, [r6, r1]
|
|
lsrs r1, r0, 31
|
|
adds r0, r1
|
|
asrs r0, 1
|
|
adds r0, 0xA
|
|
movs r3, 0x12
|
|
ldrsh r1, [r6, r3]
|
|
muls r0, r1
|
|
ldrh r1, [r6, 0x14]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x32]
|
|
strh r2, [r4, 0x34]
|
|
movs r2, 0x1E
|
|
ldrsh r0, [r6, r2]
|
|
lsrs r1, r0, 31
|
|
adds r0, r1
|
|
asrs r0, 1
|
|
adds r0, 0xA
|
|
movs r3, 0x12
|
|
ldrsh r1, [r6, r3]
|
|
muls r0, r1
|
|
ldrh r1, [r6, 0x16]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x36]
|
|
adds r0, r4, 0
|
|
bl sub_80A3F04
|
|
strh r0, [r4, 0x38]
|
|
ldrh r1, [r6, 0x10]
|
|
subs r1, 0x2
|
|
strh r1, [r6, 0x10]
|
|
movs r0, 0x3
|
|
strh r0, [r6, 0xE]
|
|
adds r0, r4, 0
|
|
adds r0, 0x43
|
|
strb r1, [r0]
|
|
ldrb r1, [r6, 0xE]
|
|
adds r0, r4, 0
|
|
bl StartSpriteAnim
|
|
adds r0, r4, 0
|
|
bl sub_8075068
|
|
ldrh r0, [r6, 0x8]
|
|
adds r0, 0x1
|
|
b _080A3EFA
|
|
_080A3D62:
|
|
adds r0, r6, 0
|
|
adds r1, r2, 0
|
|
bl sub_80A3F24
|
|
adds r0, r4, 0
|
|
bl AnimateBallThrow
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080A3D78
|
|
b _080A3EFC
|
|
_080A3D78:
|
|
movs r0, 0x7
|
|
strh r0, [r6, 0x26]
|
|
movs r0, 0xFF
|
|
b _080A3EFA
|
|
_080A3D80:
|
|
ldrh r2, [r4, 0x24]
|
|
ldrh r3, [r4, 0x20]
|
|
adds r2, r3
|
|
movs r0, 0
|
|
strh r2, [r4, 0x20]
|
|
ldrh r1, [r4, 0x26]
|
|
ldrh r3, [r4, 0x22]
|
|
adds r1, r3
|
|
strh r1, [r4, 0x22]
|
|
strh r0, [r4, 0x24]
|
|
strh r0, [r4, 0x26]
|
|
movs r0, 0xA
|
|
strh r0, [r4, 0x2E]
|
|
strh r2, [r4, 0x30]
|
|
ldrh r0, [r6, 0x14]
|
|
strh r0, [r4, 0x32]
|
|
strh r1, [r4, 0x34]
|
|
ldrh r0, [r6, 0x16]
|
|
strh r0, [r4, 0x36]
|
|
adds r0, r4, 0
|
|
bl sub_80A3F04
|
|
strh r0, [r4, 0x38]
|
|
ldrh r1, [r6, 0x10]
|
|
adds r1, 0x2
|
|
strh r1, [r6, 0x10]
|
|
movs r0, 0x4
|
|
strh r0, [r6, 0xE]
|
|
adds r0, r4, 0
|
|
adds r0, 0x43
|
|
strb r1, [r0]
|
|
ldrb r1, [r6, 0xE]
|
|
adds r0, r4, 0
|
|
bl StartSpriteAnim
|
|
adds r0, r4, 0
|
|
bl sub_8075068
|
|
ldrh r0, [r6, 0x8]
|
|
adds r0, 0x1
|
|
b _080A3EFA
|
|
_080A3DD2:
|
|
ldrh r1, [r4, 0x24]
|
|
ldrh r0, [r4, 0x20]
|
|
adds r1, r0
|
|
movs r0, 0
|
|
strh r1, [r4, 0x20]
|
|
ldrh r2, [r4, 0x26]
|
|
ldrh r3, [r4, 0x22]
|
|
adds r2, r3
|
|
strh r2, [r4, 0x22]
|
|
strh r0, [r4, 0x24]
|
|
strh r0, [r4, 0x26]
|
|
movs r0, 0xA
|
|
strh r0, [r4, 0x2E]
|
|
strh r1, [r4, 0x30]
|
|
movs r1, 0x1C
|
|
ldrsh r0, [r6, r1]
|
|
lsrs r1, r0, 31
|
|
adds r0, r1
|
|
asrs r0, 1
|
|
adds r0, 0xA
|
|
movs r3, 0x12
|
|
ldrsh r1, [r6, r3]
|
|
muls r1, r0
|
|
ldrh r0, [r6, 0x14]
|
|
subs r0, r1
|
|
strh r0, [r4, 0x32]
|
|
strh r2, [r4, 0x34]
|
|
movs r1, 0x1E
|
|
ldrsh r0, [r6, r1]
|
|
lsrs r1, r0, 31
|
|
adds r0, r1
|
|
asrs r0, 1
|
|
adds r0, 0xA
|
|
movs r2, 0x12
|
|
ldrsh r1, [r6, r2]
|
|
muls r0, r1
|
|
ldrh r3, [r6, 0x16]
|
|
adds r0, r3
|
|
strh r0, [r4, 0x36]
|
|
adds r0, r4, 0
|
|
bl sub_80A3F04
|
|
strh r0, [r4, 0x38]
|
|
movs r0, 0x5
|
|
strh r0, [r6, 0xE]
|
|
ldrh r0, [r6, 0x10]
|
|
adds r1, r4, 0
|
|
adds r1, 0x43
|
|
strb r0, [r1]
|
|
ldrb r1, [r6, 0xE]
|
|
adds r0, r4, 0
|
|
bl StartSpriteAnim
|
|
adds r0, r4, 0
|
|
bl sub_8075068
|
|
ldrh r0, [r6, 0x8]
|
|
adds r0, 0x1
|
|
b _080A3EFA
|
|
_080A3E48:
|
|
adds r0, r6, 0
|
|
adds r1, r2, 0
|
|
bl sub_80A3F24
|
|
adds r0, r4, 0
|
|
bl AnimateBallThrow
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A3EFC
|
|
movs r0, 0xB
|
|
strh r0, [r6, 0x26]
|
|
movs r0, 0xFF
|
|
b _080A3EFA
|
|
_080A3E64:
|
|
ldrh r2, [r4, 0x24]
|
|
ldrh r0, [r4, 0x20]
|
|
adds r2, r0
|
|
movs r0, 0
|
|
strh r2, [r4, 0x20]
|
|
ldrh r1, [r4, 0x26]
|
|
ldrh r3, [r4, 0x22]
|
|
adds r1, r3
|
|
strh r1, [r4, 0x22]
|
|
strh r0, [r4, 0x24]
|
|
strh r0, [r4, 0x26]
|
|
movs r0, 0xA
|
|
strh r0, [r4, 0x2E]
|
|
strh r2, [r4, 0x30]
|
|
ldrh r0, [r6, 0x18]
|
|
strh r0, [r4, 0x32]
|
|
strh r1, [r4, 0x34]
|
|
ldrh r0, [r6, 0x1A]
|
|
strh r0, [r4, 0x36]
|
|
adds r0, r4, 0
|
|
bl sub_80A3F04
|
|
strh r0, [r4, 0x38]
|
|
ldrh r1, [r6, 0x10]
|
|
subs r1, 0x2
|
|
strh r1, [r6, 0x10]
|
|
movs r0, 0x6
|
|
strh r0, [r6, 0xE]
|
|
adds r0, r4, 0
|
|
adds r0, 0x43
|
|
strb r1, [r0]
|
|
ldrb r1, [r6, 0xE]
|
|
adds r0, r4, 0
|
|
bl StartSpriteAnim
|
|
adds r0, r4, 0
|
|
bl sub_8075068
|
|
ldrh r0, [r6, 0x8]
|
|
adds r0, 0x1
|
|
b _080A3EFA
|
|
_080A3EB6:
|
|
adds r0, r6, 0
|
|
adds r1, r2, 0
|
|
bl sub_80A3F24
|
|
adds r0, r4, 0
|
|
bl AnimateBallThrow
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A3EFC
|
|
adds r0, r4, 0
|
|
bl DestroySprite
|
|
ldrh r0, [r6, 0x8]
|
|
adds r0, 0x1
|
|
b _080A3EFA
|
|
_080A3ED6:
|
|
movs r1, 0x20
|
|
ldrsh r0, [r6, r1]
|
|
cmp r0, 0
|
|
bne _080A3EFC
|
|
adds r0, r2, 0
|
|
bl DestroyAnimVisualTask
|
|
b _080A3EFC
|
|
_080A3EE6:
|
|
ldrh r0, [r6, 0xA]
|
|
adds r0, 0x1
|
|
strh r0, [r6, 0xA]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x5
|
|
ble _080A3EFC
|
|
movs r0, 0
|
|
strh r0, [r6, 0xA]
|
|
ldrh r0, [r6, 0x26]
|
|
_080A3EFA:
|
|
strh r0, [r6, 0x8]
|
|
_080A3EFC:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A3B28
|
|
|
|
thumb_func_start sub_80A3F04
|
|
sub_80A3F04: @ 80A3F04
|
|
push {lr}
|
|
movs r2, 0x8
|
|
movs r3, 0x36
|
|
ldrsh r1, [r0, r3]
|
|
movs r3, 0x22
|
|
ldrsh r0, [r0, r3]
|
|
cmp r1, r0
|
|
bge _080A3F1A
|
|
negs r0, r2
|
|
lsls r0, 16
|
|
lsrs r2, r0, 16
|
|
_080A3F1A:
|
|
lsls r0, r2, 16
|
|
asrs r0, 16
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80A3F04
|
|
|
|
thumb_func_start sub_80A3F24
|
|
sub_80A3F24: @ 80A3F24
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
adds r6, r0, 0
|
|
lsls r1, 24
|
|
lsrs r7, r1, 24
|
|
ldrh r0, [r6, 0x24]
|
|
adds r0, 0x1
|
|
strh r0, [r6, 0x24]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
ble _080A3FBA
|
|
movs r0, 0
|
|
strh r0, [r6, 0x24]
|
|
ldr r0, _080A3FC4 @ =gSprites
|
|
mov r8, r0
|
|
movs r2, 0xC
|
|
ldrsh r1, [r6, r2]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
add r0, r8
|
|
ldrh r1, [r0, 0x24]
|
|
ldrh r2, [r0, 0x20]
|
|
adds r1, r2
|
|
ldrh r2, [r0, 0x26]
|
|
ldrh r0, [r0, 0x22]
|
|
adds r2, r0
|
|
ldr r0, _080A3FC8 @ =gUnknown_83E2FF0
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
lsls r2, 16
|
|
asrs r2, 16
|
|
ldrb r3, [r6, 0x10]
|
|
bl CreateSprite
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x40
|
|
beq _080A3FBA
|
|
lsls r5, r0, 4
|
|
adds r5, r0
|
|
lsls r5, 2
|
|
mov r0, r8
|
|
adds r4, r5, r0
|
|
strh r7, [r4, 0x3A]
|
|
movs r0, 0xC
|
|
strh r0, [r4, 0x3C]
|
|
ldr r0, _080A3FCC @ =gTasks
|
|
lsls r1, r7, 2
|
|
adds r1, r7
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldrh r0, [r1, 0x20]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x20]
|
|
ldrh r2, [r6, 0x22]
|
|
movs r0, 0x1
|
|
ands r0, r2
|
|
strh r0, [r4, 0x2E]
|
|
ldrh r0, [r1, 0x22]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x22]
|
|
ldrb r1, [r6, 0xE]
|
|
adds r0, r4, 0
|
|
bl StartSpriteAnim
|
|
ldrh r0, [r6, 0x10]
|
|
adds r4, 0x43
|
|
strb r0, [r4]
|
|
mov r0, r8
|
|
adds r0, 0x1C
|
|
adds r5, r0
|
|
ldr r0, _080A3FD0 @ =sub_80A3FD4
|
|
str r0, [r5]
|
|
_080A3FBA:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A3FC4: .4byte gSprites
|
|
_080A3FC8: .4byte gUnknown_83E2FF0
|
|
_080A3FCC: .4byte gTasks
|
|
_080A3FD0: .4byte sub_80A3FD4
|
|
thumb_func_end sub_80A3F24
|
|
|
|
thumb_func_start sub_80A3FD4
|
|
sub_80A3FD4: @ 80A3FD4
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrh r0, [r4, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1
|
|
ble _080A4036
|
|
movs r0, 0
|
|
strh r0, [r4, 0x2E]
|
|
adds r3, r4, 0
|
|
adds r3, 0x3E
|
|
ldrb r2, [r3]
|
|
lsls r0, r2, 29
|
|
lsrs r0, 31
|
|
movs r1, 0x1
|
|
eors r1, r0
|
|
lsls r1, 2
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r3]
|
|
ldrh r0, [r4, 0x30]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x30]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x8
|
|
ble _080A4036
|
|
ldr r3, _080A403C @ =gTasks
|
|
movs r0, 0x3C
|
|
ldrsh r1, [r4, r0]
|
|
lsls r1, 1
|
|
movs r0, 0x3A
|
|
ldrsh r2, [r4, r0]
|
|
lsls r0, r2, 2
|
|
adds r0, r2
|
|
lsls r0, 3
|
|
adds r1, r0
|
|
adds r3, 0x8
|
|
adds r1, r3
|
|
ldrh r0, [r1]
|
|
subs r0, 0x1
|
|
strh r0, [r1]
|
|
adds r0, r4, 0
|
|
bl DestroySprite
|
|
_080A4036:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A403C: .4byte gTasks
|
|
thumb_func_end sub_80A3FD4
|
|
|
|
thumb_func_start sub_80A4040
|
|
sub_80A4040: @ 80A4040
|
|
push {r4-r7,lr}
|
|
adds r4, r0, 0
|
|
ldr r0, _080A4054 @ =gUnknown_2037F02
|
|
movs r1, 0xC
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0
|
|
bne _080A405C
|
|
ldr r0, _080A4058 @ =gUnknown_2037F1A
|
|
b _080A405E
|
|
.align 2, 0
|
|
_080A4054: .4byte gUnknown_2037F02
|
|
_080A4058: .4byte gUnknown_2037F1A
|
|
_080A405C:
|
|
ldr r0, _080A407C @ =gUnknown_2037F1B
|
|
_080A405E:
|
|
ldrb r6, [r0]
|
|
adds r0, r6, 0
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A4088
|
|
movs r0, 0
|
|
strh r0, [r4, 0x36]
|
|
ldr r1, _080A4080 @ =gUnknown_2037F02
|
|
ldrh r0, [r1, 0x6]
|
|
strh r0, [r4, 0x32]
|
|
ldr r0, _080A4084 @ =0x0000fff0
|
|
b _080A4098
|
|
.align 2, 0
|
|
_080A407C: .4byte gUnknown_2037F1B
|
|
_080A4080: .4byte gUnknown_2037F02
|
|
_080A4084: .4byte 0x0000fff0
|
|
_080A4088:
|
|
movs r0, 0x1
|
|
strh r0, [r4, 0x36]
|
|
ldr r1, _080A40BC @ =gUnknown_2037F02
|
|
ldrh r0, [r1, 0x6]
|
|
negs r0, r0
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x80
|
|
lsls r0, 1
|
|
_080A4098:
|
|
strh r0, [r4, 0x20]
|
|
adds r7, r1, 0
|
|
adds r5, r7, 0
|
|
ldrh r0, [r5, 0x2]
|
|
strh r0, [r4, 0x30]
|
|
ldrh r0, [r5, 0x4]
|
|
strh r0, [r4, 0x2E]
|
|
ldrh r0, [r5, 0x8]
|
|
strh r0, [r4, 0x34]
|
|
movs r1, 0xA
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0x1
|
|
beq _080A40CE
|
|
cmp r0, 0x1
|
|
bgt _080A40C0
|
|
cmp r0, 0
|
|
beq _080A40CA
|
|
b _080A4138
|
|
.align 2, 0
|
|
_080A40BC: .4byte gUnknown_2037F02
|
|
_080A40C0:
|
|
cmp r0, 0x2
|
|
beq _080A40D4
|
|
cmp r0, 0x3
|
|
beq _080A4100
|
|
b _080A4138
|
|
_080A40CA:
|
|
ldrh r0, [r5]
|
|
b _080A40E4
|
|
_080A40CE:
|
|
ldrh r0, [r5]
|
|
strh r0, [r4, 0x22]
|
|
b _080A411A
|
|
_080A40D4:
|
|
adds r0, r6, 0
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrh r5, [r5]
|
|
adds r0, r5
|
|
_080A40E4:
|
|
strh r0, [r4, 0x22]
|
|
adds r0, r6, 0
|
|
bl sub_8076884
|
|
movs r1, 0x3
|
|
ands r1, r0
|
|
lsls r1, 2
|
|
ldrb r2, [r4, 0x5]
|
|
movs r0, 0xD
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r4, 0x5]
|
|
b _080A4138
|
|
_080A4100:
|
|
ldr r0, _080A4144 @ =gUnknown_2037F1B
|
|
ldrb r0, [r0]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrh r7, [r7]
|
|
adds r0, r7
|
|
strh r0, [r4, 0x22]
|
|
movs r0, 0x1
|
|
bl GetAnimBankSpriteId
|
|
_080A411A:
|
|
adds r0, r6, 0
|
|
bl sub_8076884
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r0, 0x1
|
|
movs r1, 0x3
|
|
ands r0, r1
|
|
lsls r0, 2
|
|
ldrb r2, [r4, 0x5]
|
|
movs r1, 0xD
|
|
negs r1, r1
|
|
ands r1, r2
|
|
orrs r1, r0
|
|
strb r1, [r4, 0x5]
|
|
_080A4138:
|
|
ldr r0, _080A4148 @ =sub_80A414C
|
|
str r0, [r4, 0x1C]
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A4144: .4byte gUnknown_2037F1B
|
|
_080A4148: .4byte sub_80A414C
|
|
thumb_func_end sub_80A4040
|
|
|
|
thumb_func_start sub_80A414C
|
|
sub_80A414C: @ 80A414C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x3C
|
|
ldrsh r3, [r4, r0]
|
|
ldrh r0, [r4, 0x3C]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x3C]
|
|
movs r1, 0x30
|
|
ldrsh r2, [r4, r1]
|
|
ldr r1, _080A41A0 @ =gUnknown_825E074
|
|
movs r5, 0x2E
|
|
ldrsh r0, [r4, r5]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
muls r0, r2
|
|
asrs r0, 8
|
|
strh r0, [r4, 0x26]
|
|
movs r2, 0x32
|
|
ldrsh r0, [r4, r2]
|
|
muls r0, r3
|
|
strh r0, [r4, 0x24]
|
|
movs r5, 0x34
|
|
ldrsh r0, [r4, r5]
|
|
muls r0, r3
|
|
movs r1, 0xFF
|
|
ands r0, r1
|
|
strh r0, [r4, 0x2E]
|
|
movs r1, 0x36
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bne _080A41A4
|
|
movs r2, 0x24
|
|
ldrsh r0, [r4, r2]
|
|
movs r5, 0x20
|
|
ldrsh r1, [r4, r5]
|
|
adds r0, r1
|
|
cmp r0, 0xF7
|
|
ble _080A41BC
|
|
b _080A41B6
|
|
.align 2, 0
|
|
_080A41A0: .4byte gUnknown_825E074
|
|
_080A41A4:
|
|
movs r1, 0x24
|
|
ldrsh r0, [r4, r1]
|
|
movs r2, 0x20
|
|
ldrsh r1, [r4, r2]
|
|
adds r0, r1
|
|
movs r1, 0x10
|
|
negs r1, r1
|
|
cmp r0, r1
|
|
bgt _080A41BC
|
|
_080A41B6:
|
|
adds r0, r4, 0
|
|
bl move_anim_8074EE0
|
|
_080A41BC:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A414C
|
|
|
|
thumb_func_start sub_80A41C4
|
|
sub_80A41C4: @ 80A41C4
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
lsls r0, r6, 2
|
|
adds r0, r6
|
|
lsls r0, 3
|
|
ldr r1, _080A41E4 @ =gTasks
|
|
adds r5, r0, r1
|
|
movs r1, 0x8
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0
|
|
beq _080A41E8
|
|
cmp r0, 0x1
|
|
beq _080A421C
|
|
b _080A4276
|
|
.align 2, 0
|
|
_080A41E4: .4byte gTasks
|
|
_080A41E8:
|
|
ldr r0, _080A4214 @ =0x0000274f
|
|
bl IndexOfSpritePaletteTag
|
|
lsls r0, 24
|
|
lsrs r0, 20
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r4, r2, 0
|
|
adds r0, r4
|
|
strh r0, [r5, 0x18]
|
|
ldr r0, _080A4218 @ =0x000027b0
|
|
bl IndexOfSpritePaletteTag
|
|
lsls r0, 24
|
|
lsrs r0, 20
|
|
adds r0, r4
|
|
strh r0, [r5, 0x20]
|
|
ldrh r0, [r5, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x8]
|
|
b _080A4276
|
|
.align 2, 0
|
|
_080A4214: .4byte 0x0000274f
|
|
_080A4218: .4byte 0x000027b0
|
|
_080A421C:
|
|
ldrh r0, [r5, 0x1A]
|
|
adds r0, 0x1
|
|
movs r7, 0
|
|
strh r0, [r5, 0x1A]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
blt _080A4276
|
|
strh r7, [r5, 0x1A]
|
|
ldrh r0, [r5, 0x18]
|
|
ldrb r2, [r5, 0x1C]
|
|
ldr r4, _080A4290 @ =gUnknown_83E30F0
|
|
movs r3, 0x1E
|
|
ldrsh r1, [r5, r3]
|
|
lsls r1, 1
|
|
adds r1, r4
|
|
ldrh r3, [r1]
|
|
movs r1, 0x10
|
|
bl BlendPalette
|
|
ldrh r0, [r5, 0x20]
|
|
ldrb r2, [r5, 0x1C]
|
|
movs r3, 0x1E
|
|
ldrsh r1, [r5, r3]
|
|
lsls r1, 1
|
|
adds r1, r4
|
|
ldrh r3, [r1]
|
|
movs r1, 0x10
|
|
bl BlendPalette
|
|
ldrh r0, [r5, 0x1C]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x1C]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x11
|
|
bne _080A4276
|
|
strh r7, [r5, 0x1C]
|
|
ldrh r0, [r5, 0x1E]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x1E]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x7
|
|
bne _080A4276
|
|
strh r7, [r5, 0x1E]
|
|
_080A4276:
|
|
ldr r0, _080A4294 @ =gUnknown_2037F02
|
|
movs r2, 0xE
|
|
ldrsh r1, [r0, r2]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
bne _080A428A
|
|
adds r0, r6, 0
|
|
bl DestroyAnimVisualTask
|
|
_080A428A:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A4290: .4byte gUnknown_83E30F0
|
|
_080A4294: .4byte gUnknown_2037F02
|
|
thumb_func_end sub_80A41C4
|
|
|
|
thumb_func_start sub_80A4298
|
|
sub_80A4298: @ 80A4298
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
adds r6, r0, 0
|
|
ldr r1, _080A42B0 @ =gUnknown_2037F02
|
|
movs r2, 0x8
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, 0
|
|
bne _080A42B4
|
|
adds r0, r6, 0
|
|
bl DestroyAnimSprite
|
|
b _080A438E
|
|
.align 2, 0
|
|
_080A42B0: .4byte gUnknown_2037F02
|
|
_080A42B4:
|
|
movs r3, 0
|
|
ldrsh r0, [r1, r3]
|
|
cmp r0, 0
|
|
bne _080A42C4
|
|
ldr r4, _080A42C0 @ =gUnknown_2037F1A
|
|
b _080A42C6
|
|
.align 2, 0
|
|
_080A42C0: .4byte gUnknown_2037F1A
|
|
_080A42C4:
|
|
ldr r4, _080A4300 @ =gUnknown_2037F1B
|
|
_080A42C6:
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldrb r0, [r4]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
ldr r0, _080A4304 @ =gUnknown_2037F02
|
|
ldrh r1, [r0, 0x8]
|
|
strh r1, [r6, 0x2E]
|
|
movs r3, 0x2
|
|
ldrsh r1, [r0, r3]
|
|
adds r7, r0, 0
|
|
cmp r1, 0
|
|
bne _080A4308
|
|
ldrh r0, [r7, 0x4]
|
|
adds r0, r5
|
|
strh r0, [r6, 0x20]
|
|
ldrh r0, [r7, 0x6]
|
|
adds r0, r2
|
|
strh r0, [r6, 0x22]
|
|
strh r5, [r6, 0x38]
|
|
strh r2, [r6, 0x3A]
|
|
b _080A4318
|
|
.align 2, 0
|
|
_080A4300: .4byte gUnknown_2037F1B
|
|
_080A4304: .4byte gUnknown_2037F02
|
|
_080A4308:
|
|
strh r5, [r6, 0x20]
|
|
strh r2, [r6, 0x22]
|
|
ldrh r0, [r7, 0x4]
|
|
adds r0, r5
|
|
strh r0, [r6, 0x38]
|
|
ldrh r0, [r7, 0x6]
|
|
adds r0, r2
|
|
strh r0, [r6, 0x3A]
|
|
_080A4318:
|
|
ldrh r4, [r6, 0x20]
|
|
lsls r0, r4, 4
|
|
strh r0, [r6, 0x30]
|
|
ldrh r5, [r6, 0x22]
|
|
lsls r0, r5, 4
|
|
strh r0, [r6, 0x32]
|
|
movs r1, 0x38
|
|
ldrsh r0, [r6, r1]
|
|
movs r2, 0x20
|
|
ldrsh r1, [r6, r2]
|
|
subs r0, r1
|
|
lsls r0, 4
|
|
movs r3, 0x8
|
|
ldrsh r1, [r7, r3]
|
|
bl __divsi3
|
|
strh r0, [r6, 0x34]
|
|
movs r1, 0x3A
|
|
ldrsh r0, [r6, r1]
|
|
movs r2, 0x22
|
|
ldrsh r1, [r6, r2]
|
|
subs r0, r1
|
|
lsls r0, 4
|
|
movs r3, 0x8
|
|
ldrsh r1, [r7, r3]
|
|
bl __divsi3
|
|
strh r0, [r6, 0x36]
|
|
ldrh r0, [r6, 0x38]
|
|
subs r0, r4
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
ldrh r1, [r6, 0x3A]
|
|
subs r1, r5
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
bl sub_8075B30
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A437A
|
|
ldr r1, _080A4398 @ =0xffff8000
|
|
adds r0, r4, r1
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
_080A437A:
|
|
movs r3, 0x80
|
|
lsls r3, 1
|
|
str r4, [sp]
|
|
adds r0, r6, 0
|
|
movs r1, 0
|
|
adds r2, r3, 0
|
|
bl sub_8075A1C
|
|
ldr r0, _080A439C @ =sub_80A43A0
|
|
str r0, [r6, 0x1C]
|
|
_080A438E:
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A4398: .4byte 0xffff8000
|
|
_080A439C: .4byte sub_80A43A0
|
|
thumb_func_end sub_80A4298
|
|
|
|
thumb_func_start sub_80A43A0
|
|
sub_80A43A0: @ 80A43A0
|
|
push {r4,lr}
|
|
adds r2, r0, 0
|
|
ldrh r3, [r2, 0x2E]
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r2, r1]
|
|
cmp r0, 0
|
|
beq _080A43D0
|
|
ldrh r0, [r2, 0x34]
|
|
ldrh r4, [r2, 0x30]
|
|
adds r0, r4
|
|
strh r0, [r2, 0x30]
|
|
ldrh r1, [r2, 0x36]
|
|
ldrh r4, [r2, 0x32]
|
|
adds r1, r4
|
|
strh r1, [r2, 0x32]
|
|
lsls r0, 16
|
|
asrs r0, 20
|
|
strh r0, [r2, 0x20]
|
|
lsls r1, 16
|
|
asrs r1, 20
|
|
strh r1, [r2, 0x22]
|
|
subs r0, r3, 0x1
|
|
strh r0, [r2, 0x2E]
|
|
b _080A43D6
|
|
_080A43D0:
|
|
adds r0, r2, 0
|
|
bl move_anim_8074EE0
|
|
_080A43D6:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A43A0
|
|
|
|
thumb_func_start sub_80A43DC
|
|
sub_80A43DC: @ 80A43DC
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
adds r0, 0x3F
|
|
ldrb r1, [r0]
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080A43F2
|
|
adds r0, r2, 0
|
|
bl DestroyAnimSprite
|
|
_080A43F2:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A43DC
|
|
|
|
thumb_func_start sub_80A43F8
|
|
sub_80A43F8: @ 80A43F8
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldr r0, _080A4418 @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A4420
|
|
ldr r2, _080A441C @ =gUnknown_2037F02
|
|
ldrh r0, [r4, 0x20]
|
|
ldrh r1, [r2]
|
|
subs r0, r1
|
|
strh r0, [r4, 0x20]
|
|
ldrh r0, [r2, 0x2]
|
|
b _080A442C
|
|
.align 2, 0
|
|
_080A4418: .4byte gUnknown_2037F1A
|
|
_080A441C: .4byte gUnknown_2037F02
|
|
_080A4420:
|
|
ldr r0, _080A4444 @ =gUnknown_2037F02
|
|
ldrh r1, [r0]
|
|
ldrh r2, [r4, 0x20]
|
|
adds r1, r2
|
|
strh r1, [r4, 0x20]
|
|
ldrh r0, [r0, 0x2]
|
|
_080A442C:
|
|
ldrh r1, [r4, 0x22]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x22]
|
|
ldr r0, _080A4448 @ =sub_8074F6C
|
|
str r0, [r4, 0x1C]
|
|
ldr r1, _080A444C @ =DestroyAnimSprite
|
|
adds r0, r4, 0
|
|
bl StoreSpriteCallbackInData6
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A4444: .4byte gUnknown_2037F02
|
|
_080A4448: .4byte sub_8074F6C
|
|
_080A444C: .4byte DestroyAnimSprite
|
|
thumb_func_end sub_80A43F8
|
|
|
|
thumb_func_start sub_80A4450
|
|
sub_80A4450: @ 80A4450
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
ldr r0, _080A4488 @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080A446A
|
|
adds r0, r5, 0
|
|
movs r1, 0x1
|
|
bl StartSpriteAnim
|
|
_080A446A:
|
|
ldr r0, _080A448C @ =sub_80A43DC
|
|
str r0, [r5, 0x1C]
|
|
ldr r4, _080A4490 @ =gUnknown_2037F02
|
|
movs r0, 0
|
|
ldrsh r1, [r4, r0]
|
|
adds r0, r5, 0
|
|
bl sub_8074FF8
|
|
ldrh r0, [r4, 0x2]
|
|
ldrh r1, [r5, 0x22]
|
|
adds r0, r1
|
|
strh r0, [r5, 0x22]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A4488: .4byte gUnknown_2037F1A
|
|
_080A448C: .4byte sub_80A43DC
|
|
_080A4490: .4byte gUnknown_2037F02
|
|
thumb_func_end sub_80A4450
|
|
|
|
thumb_func_start sub_80A4494
|
|
sub_80A4494: @ 80A4494
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldr r1, _080A44D4 @ =gUnknown_2037F02
|
|
ldrh r0, [r1]
|
|
ldrh r2, [r4, 0x20]
|
|
adds r0, r2
|
|
strh r0, [r4, 0x20]
|
|
ldrh r0, [r1, 0x2]
|
|
ldrh r2, [r4, 0x22]
|
|
adds r0, r2
|
|
strh r0, [r4, 0x22]
|
|
ldrh r0, [r1, 0x4]
|
|
strh r0, [r4, 0x2E]
|
|
ldrh r0, [r1, 0x6]
|
|
strh r0, [r4, 0x30]
|
|
ldrh r0, [r1, 0x8]
|
|
strh r0, [r4, 0x34]
|
|
ldrh r0, [r1, 0xA]
|
|
strh r0, [r4, 0x38]
|
|
ldrb r1, [r1, 0xC]
|
|
adds r0, r4, 0
|
|
bl StartSpriteAffineAnim
|
|
ldr r1, _080A44D8 @ =move_anim_8074EE0
|
|
adds r0, r4, 0
|
|
bl StoreSpriteCallbackInData6
|
|
ldr r0, _080A44DC @ =sub_8074E70
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A44D4: .4byte gUnknown_2037F02
|
|
_080A44D8: .4byte move_anim_8074EE0
|
|
_080A44DC: .4byte sub_8074E70
|
|
thumb_func_end sub_80A4494
|
|
|
|
thumb_func_start sub_80A44E0
|
|
sub_80A44E0: @ 80A44E0
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
ldr r4, _080A4530 @ =gUnknown_2037F1B
|
|
ldrb r0, [r4]
|
|
movs r1, 0
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x20]
|
|
ldrb r0, [r4]
|
|
movs r1, 0x1
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x22]
|
|
ldrb r0, [r4]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080A4514
|
|
ldrh r0, [r5, 0x22]
|
|
adds r0, 0x8
|
|
strh r0, [r5, 0x22]
|
|
_080A4514:
|
|
ldr r0, _080A4534 @ =sub_80A46CC
|
|
str r0, [r5, 0x1C]
|
|
ldr r0, _080A4538 @ =gUnknown_2037F02
|
|
movs r2, 0x4
|
|
ldrsh r1, [r0, r2]
|
|
adds r3, r0, 0
|
|
cmp r1, 0
|
|
bne _080A453C
|
|
ldrh r0, [r3]
|
|
ldrh r1, [r5, 0x20]
|
|
adds r0, r1
|
|
strh r0, [r5, 0x20]
|
|
b _080A4550
|
|
.align 2, 0
|
|
_080A4530: .4byte gUnknown_2037F1B
|
|
_080A4534: .4byte sub_80A46CC
|
|
_080A4538: .4byte gUnknown_2037F02
|
|
_080A453C:
|
|
ldrh r0, [r5, 0x20]
|
|
ldrh r1, [r3]
|
|
subs r0, r1
|
|
strh r0, [r5, 0x20]
|
|
adds r2, r5, 0
|
|
adds r2, 0x3F
|
|
ldrb r0, [r2]
|
|
movs r1, 0x1
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
_080A4550:
|
|
ldrh r0, [r3, 0x2]
|
|
ldrh r2, [r5, 0x22]
|
|
adds r0, r2
|
|
strh r0, [r5, 0x22]
|
|
ldr r1, _080A4584 @ =0xfffffc00
|
|
adds r0, r1, 0
|
|
ldrh r2, [r5, 0x30]
|
|
adds r1, r0, r2
|
|
strh r1, [r5, 0x30]
|
|
movs r2, 0x80
|
|
lsls r2, 3
|
|
adds r0, r2, 0
|
|
ldrh r2, [r5, 0x32]
|
|
adds r0, r2
|
|
strh r0, [r5, 0x32]
|
|
ldrh r0, [r3, 0x4]
|
|
strh r0, [r5, 0x38]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1
|
|
bne _080A457E
|
|
negs r0, r1
|
|
strh r0, [r5, 0x30]
|
|
_080A457E:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A4584: .4byte 0xfffffc00
|
|
thumb_func_end sub_80A44E0
|
|
|
|
thumb_func_start sub_80A4588
|
|
sub_80A4588: @ 80A4588
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
adds r6, r0, 0
|
|
ldr r0, _080A45A4 @ =gUnknown_2037F02
|
|
movs r1, 0x6
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0x1
|
|
beq _080A45A8
|
|
cmp r0, 0x1
|
|
ble _080A4624
|
|
cmp r0, 0x2
|
|
beq _080A45C8
|
|
b _080A4624
|
|
.align 2, 0
|
|
_080A45A4: .4byte gUnknown_2037F02
|
|
_080A45A8:
|
|
ldr r5, _080A45C4 @ =gUnknown_2037F1B
|
|
ldrb r0, [r5]
|
|
movs r4, 0x2
|
|
eors r0, r4
|
|
movs r1, 0
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
ldrb r0, [r5]
|
|
eors r4, r0
|
|
adds r0, r4, 0
|
|
b _080A4634
|
|
.align 2, 0
|
|
_080A45C4: .4byte gUnknown_2037F1B
|
|
_080A45C8:
|
|
ldr r5, _080A4620 @ =gUnknown_2037F1B
|
|
ldrb r0, [r5]
|
|
movs r1, 0
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
ldrb r0, [r5]
|
|
movs r1, 0x1
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldrb r0, [r5]
|
|
movs r2, 0x2
|
|
mov r8, r2
|
|
mov r1, r8
|
|
eors r0, r1
|
|
bl sub_8072DF0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A463E
|
|
ldrb r0, [r5]
|
|
mov r2, r8
|
|
eors r0, r2
|
|
movs r1, 0
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r0, r7
|
|
lsrs r7, r0, 1
|
|
ldrb r0, [r5]
|
|
mov r1, r8
|
|
eors r0, r1
|
|
movs r1, 0x1
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r0, r4
|
|
lsrs r4, r0, 1
|
|
b _080A463E
|
|
.align 2, 0
|
|
_080A4620: .4byte gUnknown_2037F1B
|
|
_080A4624:
|
|
ldr r4, _080A4670 @ =gUnknown_2037F1B
|
|
ldrb r0, [r4]
|
|
movs r1, 0
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
ldrb r0, [r4]
|
|
_080A4634:
|
|
movs r1, 0x1
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
_080A463E:
|
|
strh r7, [r6, 0x20]
|
|
strh r4, [r6, 0x22]
|
|
ldr r0, _080A4670 @ =gUnknown_2037F1B
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080A4656
|
|
ldrh r0, [r6, 0x22]
|
|
adds r0, 0x8
|
|
strh r0, [r6, 0x22]
|
|
_080A4656:
|
|
ldr r0, _080A4674 @ =sub_80A46CC
|
|
str r0, [r6, 0x1C]
|
|
ldr r0, _080A4678 @ =gUnknown_2037F02
|
|
movs r2, 0x4
|
|
ldrsh r1, [r0, r2]
|
|
adds r3, r0, 0
|
|
cmp r1, 0
|
|
bne _080A467C
|
|
ldrh r0, [r3]
|
|
ldrh r1, [r6, 0x20]
|
|
adds r0, r1
|
|
strh r0, [r6, 0x20]
|
|
b _080A4690
|
|
.align 2, 0
|
|
_080A4670: .4byte gUnknown_2037F1B
|
|
_080A4674: .4byte sub_80A46CC
|
|
_080A4678: .4byte gUnknown_2037F02
|
|
_080A467C:
|
|
ldrh r0, [r6, 0x20]
|
|
ldrh r1, [r3]
|
|
subs r0, r1
|
|
strh r0, [r6, 0x20]
|
|
adds r2, r6, 0
|
|
adds r2, 0x3F
|
|
ldrb r0, [r2]
|
|
movs r1, 0x1
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
_080A4690:
|
|
ldrh r0, [r3, 0x2]
|
|
ldrh r2, [r6, 0x22]
|
|
adds r0, r2
|
|
strh r0, [r6, 0x22]
|
|
ldr r1, _080A46C8 @ =0xfffffc00
|
|
adds r0, r1, 0
|
|
ldrh r2, [r6, 0x30]
|
|
adds r1, r0, r2
|
|
strh r1, [r6, 0x30]
|
|
movs r2, 0x80
|
|
lsls r2, 3
|
|
adds r0, r2, 0
|
|
ldrh r2, [r6, 0x32]
|
|
adds r0, r2
|
|
strh r0, [r6, 0x32]
|
|
ldrh r0, [r3, 0x4]
|
|
strh r0, [r6, 0x38]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1
|
|
bne _080A46BE
|
|
negs r0, r1
|
|
strh r0, [r6, 0x30]
|
|
_080A46BE:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A46C8: .4byte 0xfffffc00
|
|
thumb_func_end sub_80A4588
|
|
|
|
thumb_func_start sub_80A46CC
|
|
sub_80A46CC: @ 80A46CC
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrh r1, [r4, 0x30]
|
|
ldrh r2, [r4, 0x34]
|
|
adds r0, r1, r2
|
|
strh r0, [r4, 0x34]
|
|
ldrh r0, [r4, 0x32]
|
|
ldrh r2, [r4, 0x36]
|
|
adds r0, r2
|
|
strh r0, [r4, 0x36]
|
|
movs r2, 0x38
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0
|
|
bne _080A46EE
|
|
adds r0, r1, 0
|
|
adds r0, 0x18
|
|
b _080A46F2
|
|
_080A46EE:
|
|
adds r0, r1, 0
|
|
subs r0, 0x18
|
|
_080A46F2:
|
|
strh r0, [r4, 0x30]
|
|
ldrh r0, [r4, 0x32]
|
|
subs r0, 0x18
|
|
strh r0, [r4, 0x32]
|
|
ldrh r0, [r4, 0x34]
|
|
lsls r0, 16
|
|
asrs r0, 24
|
|
strh r0, [r4, 0x24]
|
|
ldrh r0, [r4, 0x36]
|
|
lsls r0, 16
|
|
asrs r0, 24
|
|
strh r0, [r4, 0x26]
|
|
ldrh r0, [r4, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x14
|
|
bne _080A4728
|
|
ldr r1, _080A4730 @ =DestroyAnimSprite
|
|
adds r0, r4, 0
|
|
bl StoreSpriteCallbackInData6
|
|
movs r0, 0x3
|
|
strh r0, [r4, 0x2E]
|
|
ldr r0, _080A4734 @ =sub_8074C44
|
|
str r0, [r4, 0x1C]
|
|
_080A4728:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A4730: .4byte DestroyAnimSprite
|
|
_080A4734: .4byte sub_8074C44
|
|
thumb_func_end sub_80A46CC
|
|
|
|
thumb_func_start sub_80A4738
|
|
sub_80A4738: @ 80A4738
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
ldrh r1, [r5, 0x32]
|
|
movs r2, 0x32
|
|
ldrsh r0, [r5, r2]
|
|
cmp r0, 0x1
|
|
ble _080A47DC
|
|
ldrh r1, [r5, 0x34]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080A4794
|
|
adds r3, r5, 0
|
|
adds r3, 0x3E
|
|
ldrb r1, [r3]
|
|
movs r2, 0x5
|
|
negs r2, r2
|
|
adds r0, r2, 0
|
|
ands r0, r1
|
|
strb r0, [r3]
|
|
ldr r4, _080A4790 @ =gSprites
|
|
movs r0, 0x2E
|
|
ldrsh r1, [r5, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
adds r0, 0x3E
|
|
ldrb r3, [r0]
|
|
adds r1, r2, 0
|
|
ands r1, r3
|
|
strb r1, [r0]
|
|
movs r0, 0x30
|
|
ldrsh r1, [r5, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
adds r0, 0x3E
|
|
ldrb r1, [r0]
|
|
ands r2, r1
|
|
strb r2, [r0]
|
|
b _080A47CA
|
|
.align 2, 0
|
|
_080A4790: .4byte gSprites
|
|
_080A4794:
|
|
adds r1, r5, 0
|
|
adds r1, 0x3E
|
|
ldrb r0, [r1]
|
|
movs r2, 0x4
|
|
orrs r0, r2
|
|
strb r0, [r1]
|
|
ldr r3, _080A47D8 @ =gSprites
|
|
movs r0, 0x2E
|
|
ldrsh r1, [r5, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
adds r0, 0x3E
|
|
ldrb r1, [r0]
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
movs r0, 0x30
|
|
ldrsh r1, [r5, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
adds r0, 0x3E
|
|
ldrb r1, [r0]
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
_080A47CA:
|
|
movs r0, 0
|
|
strh r0, [r5, 0x32]
|
|
ldrh r0, [r5, 0x34]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x34]
|
|
b _080A47E0
|
|
.align 2, 0
|
|
_080A47D8: .4byte gSprites
|
|
_080A47DC:
|
|
adds r0, r1, 0x1
|
|
strh r0, [r5, 0x32]
|
|
_080A47E0:
|
|
movs r1, 0x34
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0xA
|
|
bne _080A4810
|
|
movs r2, 0x2E
|
|
ldrsh r1, [r5, r2]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r4, _080A4818 @ =gSprites
|
|
adds r0, r4
|
|
bl DestroySprite
|
|
movs r0, 0x30
|
|
ldrsh r1, [r5, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
bl DestroySprite
|
|
adds r0, r5, 0
|
|
bl DestroyAnimSprite
|
|
_080A4810:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A4818: .4byte gSprites
|
|
thumb_func_end sub_80A4738
|
|
|
|
thumb_func_start sub_80A481C
|
|
sub_80A481C: @ 80A481C
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
ldr r4, _080A483C @ =gUnknown_2037F02
|
|
ldrh r0, [r4, 0x4]
|
|
strh r0, [r5, 0x2E]
|
|
ldr r0, _080A4840 @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A4844
|
|
ldrh r0, [r5, 0x20]
|
|
ldrh r1, [r4]
|
|
subs r0, r1
|
|
b _080A484A
|
|
.align 2, 0
|
|
_080A483C: .4byte gUnknown_2037F02
|
|
_080A4840: .4byte gUnknown_2037F1A
|
|
_080A4844:
|
|
ldrh r0, [r4]
|
|
ldrh r1, [r5, 0x20]
|
|
adds r0, r1
|
|
_080A484A:
|
|
strh r0, [r5, 0x20]
|
|
ldr r4, _080A4878 @ =gUnknown_2037F02
|
|
ldrb r1, [r4, 0xA]
|
|
adds r0, r5, 0
|
|
bl StartSpriteAnim
|
|
ldrh r0, [r4, 0x6]
|
|
negs r0, r0
|
|
strh r0, [r5, 0x30]
|
|
ldrh r0, [r4, 0x2]
|
|
ldrh r1, [r5, 0x22]
|
|
adds r0, r1
|
|
strh r0, [r5, 0x22]
|
|
ldrh r0, [r4, 0x8]
|
|
strh r0, [r5, 0x34]
|
|
ldr r1, _080A487C @ =sub_80A4880
|
|
str r1, [r5, 0x1C]
|
|
adds r0, r5, 0
|
|
bl _call_via_r1
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A4878: .4byte gUnknown_2037F02
|
|
_080A487C: .4byte sub_80A4880
|
|
thumb_func_end sub_80A481C
|
|
|
|
thumb_func_start sub_80A4880
|
|
sub_80A4880: @ 80A4880
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0x64
|
|
bl Cos
|
|
strh r0, [r4, 0x24]
|
|
movs r2, 0x2E
|
|
ldrsh r0, [r4, r2]
|
|
movs r1, 0x14
|
|
bl Sin
|
|
strh r0, [r4, 0x26]
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x7F
|
|
bgt _080A48AC
|
|
adds r1, r4, 0
|
|
adds r1, 0x43
|
|
movs r0, 0
|
|
b _080A48B2
|
|
_080A48AC:
|
|
adds r1, r4, 0
|
|
adds r1, 0x43
|
|
movs r0, 0xE
|
|
_080A48B2:
|
|
strb r0, [r1]
|
|
ldrh r0, [r4, 0x30]
|
|
ldrh r2, [r4, 0x2E]
|
|
adds r0, r2
|
|
movs r1, 0xFF
|
|
ands r0, r1
|
|
strh r0, [r4, 0x2E]
|
|
ldrh r0, [r4, 0x38]
|
|
adds r0, 0x82
|
|
strh r0, [r4, 0x38]
|
|
lsls r0, 16
|
|
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]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r2, 0x34
|
|
ldrsh r1, [r4, r2]
|
|
cmp r0, r1
|
|
bne _080A48E8
|
|
adds r0, r4, 0
|
|
bl DestroyAnimSprite
|
|
_080A48E8:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A4880
|
|
|
|
thumb_func_start sub_80A48F0
|
|
sub_80A48F0: @ 80A48F0
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A4906
|
|
ldr r1, _080A4964 @ =gUnknown_2037F02
|
|
ldrh r0, [r1, 0x2]
|
|
adds r0, 0x8
|
|
strh r0, [r1, 0x2]
|
|
_080A4906:
|
|
ldr r6, _080A4968 @ =gUnknown_2037F1A
|
|
ldrb r0, [r6]
|
|
movs r1, 0
|
|
bl sub_8074844
|
|
lsls r0, 24
|
|
ldr r4, _080A4964 @ =gUnknown_2037F02
|
|
lsrs r0, 24
|
|
ldrh r1, [r4]
|
|
adds r0, r1
|
|
strh r0, [r5, 0x20]
|
|
ldrb r0, [r6]
|
|
movs r1, 0x1
|
|
bl sub_8074844
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrh r4, [r4, 0x2]
|
|
adds r0, r4
|
|
strh r0, [r5, 0x22]
|
|
ldrb r0, [r6]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A4944
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A496C
|
|
_080A4944:
|
|
ldrb r0, [r6]
|
|
bl sub_8076884
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r0, 0x1
|
|
movs r1, 0x3
|
|
ands r0, r1
|
|
lsls r0, 2
|
|
ldrb r2, [r5, 0x5]
|
|
movs r1, 0xD
|
|
negs r1, r1
|
|
ands r1, r2
|
|
orrs r1, r0
|
|
strb r1, [r5, 0x5]
|
|
b _080A4984
|
|
.align 2, 0
|
|
_080A4964: .4byte gUnknown_2037F02
|
|
_080A4968: .4byte gUnknown_2037F1A
|
|
_080A496C:
|
|
ldrb r0, [r6]
|
|
bl sub_8076884
|
|
movs r1, 0x3
|
|
ands r1, r0
|
|
lsls r1, 2
|
|
ldrb r2, [r5, 0x5]
|
|
movs r0, 0xD
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r5, 0x5]
|
|
_080A4984:
|
|
ldr r0, _080A49C8 @ =gUnknown_2037F02
|
|
ldrh r0, [r0, 0x4]
|
|
strh r0, [r5, 0x2E]
|
|
ldr r0, _080A49CC @ =0x00002828
|
|
bl IndexOfSpritePaletteTag
|
|
lsls r0, 24
|
|
lsrs r0, 20
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
strh r0, [r5, 0x32]
|
|
movs r4, 0x10
|
|
movs r0, 0x10
|
|
strh r0, [r5, 0x3C]
|
|
movs r1, 0xFD
|
|
lsls r1, 6
|
|
movs r0, 0x50
|
|
bl SetGpuReg
|
|
ldrh r0, [r5, 0x3C]
|
|
lsls r1, r0, 8
|
|
subs r4, r0
|
|
orrs r1, r4
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
ldr r0, _080A49D0 @ =sub_80A49D4
|
|
str r0, [r5, 0x1C]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A49C8: .4byte gUnknown_2037F02
|
|
_080A49CC: .4byte 0x00002828
|
|
_080A49D0: .4byte sub_80A49D4
|
|
thumb_func_end sub_80A48F0
|
|
|
|
thumb_func_start sub_80A49D4
|
|
sub_80A49D4: @ 80A49D4
|
|
push {r4-r6,lr}
|
|
adds r4, r0, 0
|
|
ldrh r0, [r4, 0x38]
|
|
adds r0, 0x60
|
|
strh r0, [r4, 0x38]
|
|
lsls r0, 16
|
|
asrs r0, 24
|
|
negs r0, r0
|
|
strh r0, [r4, 0x24]
|
|
ldrh r0, [r4, 0x30]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x30]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1
|
|
ble _080A4A32
|
|
movs r0, 0
|
|
strh r0, [r4, 0x30]
|
|
ldr r1, _080A4A7C @ =gPlttBufferFaded
|
|
movs r2, 0x32
|
|
ldrsh r0, [r4, r2]
|
|
adds r0, 0x1
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
ldrh r5, [r0]
|
|
movs r2, 0
|
|
adds r6, r1, 0
|
|
adds r3, r6, 0
|
|
_080A4A0C:
|
|
movs r1, 0x32
|
|
ldrsh r0, [r4, r1]
|
|
adds r2, 0x1
|
|
adds r0, r2
|
|
lsls r1, r0, 1
|
|
adds r1, r3
|
|
adds r0, 0x1
|
|
lsls r0, 1
|
|
adds r0, r3
|
|
ldrh r0, [r0]
|
|
strh r0, [r1]
|
|
cmp r2, 0x5
|
|
ble _080A4A0C
|
|
movs r2, 0x32
|
|
ldrsh r0, [r4, r2]
|
|
adds r0, 0x7
|
|
lsls r0, 1
|
|
adds r0, r6
|
|
strh r5, [r0]
|
|
_080A4A32:
|
|
ldrh r2, [r4, 0x3C]
|
|
movs r1, 0x3C
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x6
|
|
ble _080A4A6C
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
ble _080A4A80
|
|
ldrh r0, [r4, 0x3A]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x3A]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1
|
|
ble _080A4A6C
|
|
movs r0, 0
|
|
strh r0, [r4, 0x3A]
|
|
subs r2, 0x1
|
|
strh r2, [r4, 0x3C]
|
|
lsls r1, r2, 8
|
|
movs r0, 0x10
|
|
subs r0, r2
|
|
orrs r1, r0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
_080A4A6C:
|
|
ldrh r1, [r4, 0x2E]
|
|
movs r2, 0x2E
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0
|
|
ble _080A4A80
|
|
subs r0, r1, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
b _080A4AC2
|
|
.align 2, 0
|
|
_080A4A7C: .4byte gPlttBufferFaded
|
|
_080A4A80:
|
|
ldrh r0, [r4, 0x3A]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x3A]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1
|
|
ble _080A4AC2
|
|
movs r0, 0
|
|
strh r0, [r4, 0x3A]
|
|
ldrh r2, [r4, 0x3C]
|
|
adds r2, 0x1
|
|
strh r2, [r4, 0x3C]
|
|
lsls r1, r2, 8
|
|
movs r0, 0x10
|
|
subs r0, r2
|
|
orrs r1, r0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
movs r1, 0x3C
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x10
|
|
bne _080A4AC2
|
|
adds r2, r4, 0
|
|
adds r2, 0x3E
|
|
ldrb r0, [r2]
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r0, _080A4AC8 @ =sub_8074F88
|
|
str r0, [r4, 0x1C]
|
|
_080A4AC2:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A4AC8: .4byte sub_8074F88
|
|
thumb_func_end sub_80A49D4
|
|
|
|
thumb_func_start sub_80A4ACC
|
|
sub_80A4ACC: @ 80A4ACC
|
|
push {r4-r6,lr}
|
|
adds r4, r0, 0
|
|
ldr r6, _080A4B2C @ =gUnknown_2037F1B
|
|
ldrb r0, [r6]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r5, 0
|
|
strh r0, [r4, 0x20]
|
|
ldrb r0, [r6]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _080A4B30 @ =0x0000ffe8
|
|
adds r0, r1
|
|
strh r0, [r4, 0x22]
|
|
strh r5, [r4, 0x2E]
|
|
strh r5, [r4, 0x30]
|
|
strh r5, [r4, 0x32]
|
|
strh r5, [r4, 0x34]
|
|
strh r5, [r4, 0x36]
|
|
strh r5, [r4, 0x3A]
|
|
movs r0, 0x10
|
|
strh r0, [r4, 0x3C]
|
|
movs r1, 0xFD
|
|
lsls r1, 6
|
|
movs r0, 0x50
|
|
bl SetGpuReg
|
|
ldrh r1, [r4, 0x3C]
|
|
lsls r1, 8
|
|
ldrh r0, [r4, 0x3A]
|
|
orrs r1, r0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
ldr r0, _080A4B34 @ =sub_80A4B38
|
|
str r0, [r4, 0x1C]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A4B2C: .4byte gUnknown_2037F1B
|
|
_080A4B30: .4byte 0x0000ffe8
|
|
_080A4B34: .4byte sub_80A4B38
|
|
thumb_func_end sub_80A4ACC
|
|
|
|
thumb_func_start sub_80A4B38
|
|
sub_80A4B38: @ 80A4B38
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x4
|
|
bls _080A4B46
|
|
b _080A4C90
|
|
_080A4B46:
|
|
lsls r0, 2
|
|
ldr r1, _080A4B50 @ =_080A4B54
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080A4B50: .4byte _080A4B54
|
|
.align 2, 0
|
|
_080A4B54:
|
|
.4byte _080A4B68
|
|
.4byte _080A4BCC
|
|
.4byte _080A4BE8
|
|
.4byte _080A4C66
|
|
.4byte _080A4C7A
|
|
_080A4B68:
|
|
ldrh r0, [r4, 0x32]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x32]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bgt _080A4B76
|
|
b _080A4C90
|
|
_080A4B76:
|
|
movs r0, 0
|
|
strh r0, [r4, 0x32]
|
|
ldrh r0, [r4, 0x30]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x30]
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080A4B98
|
|
ldrh r1, [r4, 0x3A]
|
|
movs r2, 0x3A
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0xF
|
|
bgt _080A4BA6
|
|
adds r0, r1, 0x1
|
|
strh r0, [r4, 0x3A]
|
|
b _080A4BA6
|
|
_080A4B98:
|
|
ldrh r1, [r4, 0x3C]
|
|
movs r2, 0x3C
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0
|
|
ble _080A4BA6
|
|
subs r0, r1, 0x1
|
|
strh r0, [r4, 0x3C]
|
|
_080A4BA6:
|
|
ldrh r1, [r4, 0x3C]
|
|
lsls r1, 8
|
|
ldrh r0, [r4, 0x3A]
|
|
orrs r1, r0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
movs r1, 0x3A
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x10
|
|
bne _080A4C90
|
|
movs r2, 0x3C
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0
|
|
bne _080A4C90
|
|
strh r0, [r4, 0x30]
|
|
b _080A4C72
|
|
_080A4BCC:
|
|
ldrh r0, [r4, 0x30]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x30]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x8
|
|
ble _080A4C90
|
|
movs r0, 0
|
|
strh r0, [r4, 0x30]
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl StartSpriteAffineAnim
|
|
b _080A4C72
|
|
_080A4BE8:
|
|
adds r0, r4, 0
|
|
movs r1, 0x10
|
|
movs r2, 0x4
|
|
bl sub_80A4C98
|
|
ldrh r0, [r4, 0x30]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x30]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x2
|
|
ble _080A4C0A
|
|
movs r0, 0
|
|
strh r0, [r4, 0x30]
|
|
ldrh r0, [r4, 0x22]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x22]
|
|
_080A4C0A:
|
|
ldrh r0, [r4, 0x32]
|
|
adds r1, r0, 0x1
|
|
strh r1, [r4, 0x32]
|
|
lsls r0, r1, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1D
|
|
ble _080A4C90
|
|
movs r0, 0x1
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _080A4C30
|
|
ldrh r1, [r4, 0x3A]
|
|
movs r2, 0x3A
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0
|
|
ble _080A4C3E
|
|
subs r0, r1, 0x1
|
|
strh r0, [r4, 0x3A]
|
|
b _080A4C3E
|
|
_080A4C30:
|
|
ldrh r1, [r4, 0x3C]
|
|
movs r2, 0x3C
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0xF
|
|
bgt _080A4C3E
|
|
adds r0, r1, 0x1
|
|
strh r0, [r4, 0x3C]
|
|
_080A4C3E:
|
|
ldrh r1, [r4, 0x3C]
|
|
lsls r1, 8
|
|
ldrh r0, [r4, 0x3A]
|
|
orrs r1, r0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
movs r0, 0x3A
|
|
ldrsh r1, [r4, r0]
|
|
cmp r1, 0
|
|
bne _080A4C90
|
|
movs r2, 0x3C
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0x10
|
|
bne _080A4C90
|
|
strh r1, [r4, 0x30]
|
|
strh r1, [r4, 0x32]
|
|
b _080A4C72
|
|
_080A4C66:
|
|
adds r2, r4, 0
|
|
adds r2, 0x3E
|
|
ldrb r0, [r2]
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
_080A4C72:
|
|
ldrh r0, [r4, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
b _080A4C90
|
|
_080A4C7A:
|
|
movs r0, 0x50
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x52
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
adds r0, r4, 0
|
|
bl DestroyAnimSprite
|
|
_080A4C90:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A4B38
|
|
|
|
thumb_func_start sub_80A4C98
|
|
sub_80A4C98: @ 80A4C98
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x34
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0xB
|
|
bgt _080A4CAA
|
|
ldrh r0, [r4, 0x36]
|
|
adds r0, 0x2
|
|
strh r0, [r4, 0x36]
|
|
_080A4CAA:
|
|
ldrh r5, [r4, 0x34]
|
|
adds r0, r5, 0
|
|
subs r0, 0x12
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
adds r1, r5, 0
|
|
cmp r0, 0x17
|
|
bhi _080A4CC0
|
|
ldrh r0, [r4, 0x36]
|
|
subs r0, 0x2
|
|
strh r0, [r4, 0x36]
|
|
_080A4CC0:
|
|
lsls r0, r1, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x2F
|
|
ble _080A4CCE
|
|
ldrh r0, [r4, 0x36]
|
|
adds r0, 0x2
|
|
strh r0, [r4, 0x36]
|
|
_080A4CCE:
|
|
movs r1, 0x36
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0x9
|
|
bl __divsi3
|
|
strh r0, [r4, 0x24]
|
|
movs r1, 0x36
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0xE
|
|
bl __divsi3
|
|
strh r0, [r4, 0x26]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bge _080A4CF4
|
|
movs r1, 0x26
|
|
ldrsh r0, [r4, r1]
|
|
negs r0, r0
|
|
strh r0, [r4, 0x26]
|
|
_080A4CF4:
|
|
adds r0, r5, 0x1
|
|
strh r0, [r4, 0x34]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x3B
|
|
ble _080A4D04
|
|
movs r0, 0
|
|
strh r0, [r4, 0x34]
|
|
_080A4D04:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A4C98
|
|
|
|
thumb_func_start sub_80A4D0C
|
|
sub_80A4D0C: @ 80A4D0C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
ldr r5, _080A4D50 @ =gUnknown_2037F02
|
|
movs r1, 0x4
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0
|
|
bne _080A4D20
|
|
adds r0, r4, 0
|
|
bl sub_8074FCC
|
|
_080A4D20:
|
|
movs r0, 0
|
|
ldrsh r1, [r5, r0]
|
|
adds r0, r4, 0
|
|
bl sub_8074FF8
|
|
ldrh r0, [r5, 0x2]
|
|
ldrh r1, [r4, 0x22]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x22]
|
|
ldrh r0, [r5, 0xA]
|
|
strh r0, [r4, 0x2E]
|
|
ldrh r0, [r5, 0x6]
|
|
strh r0, [r4, 0x30]
|
|
ldrh r0, [r5, 0x8]
|
|
strh r0, [r4, 0x32]
|
|
ldr r1, _080A4D54 @ =DestroyAnimSprite
|
|
adds r0, r4, 0
|
|
bl StoreSpriteCallbackInData6
|
|
ldr r0, _080A4D58 @ =sub_8074D00
|
|
str r0, [r4, 0x1C]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A4D50: .4byte gUnknown_2037F02
|
|
_080A4D54: .4byte DestroyAnimSprite
|
|
_080A4D58: .4byte sub_8074D00
|
|
thumb_func_end sub_80A4D0C
|
|
|
|
thumb_func_start sub_80A4D5C
|
|
sub_80A4D5C: @ 80A4D5C
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
ldr r0, _080A4D70 @ =gUnknown_2037F02
|
|
movs r1, 0x4
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0
|
|
bne _080A4D78
|
|
ldr r0, _080A4D74 @ =gUnknown_2037F1A
|
|
b _080A4D7A
|
|
.align 2, 0
|
|
_080A4D70: .4byte gUnknown_2037F02
|
|
_080A4D74: .4byte gUnknown_2037F1A
|
|
_080A4D78:
|
|
ldr r0, _080A4DBC @ =gUnknown_2037F1B
|
|
_080A4D7A:
|
|
ldrb r6, [r0]
|
|
bl sub_8075290
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A4DC4
|
|
movs r1, 0x2
|
|
adds r0, r6, 0
|
|
eors r0, r1
|
|
bl sub_8072DF0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A4DC4
|
|
ldr r4, _080A4DC0 @ =gUnknown_2037F02
|
|
ldrb r1, [r4, 0xC]
|
|
adds r2, r5, 0
|
|
adds r2, 0x20
|
|
adds r3, r5, 0
|
|
adds r3, 0x22
|
|
adds r0, r6, 0
|
|
bl sub_8076D9C
|
|
movs r2, 0
|
|
ldrsh r1, [r4, r2]
|
|
adds r0, r5, 0
|
|
bl sub_8074FF8
|
|
ldrh r0, [r4, 0x2]
|
|
ldrh r1, [r5, 0x22]
|
|
adds r0, r1
|
|
strh r0, [r5, 0x22]
|
|
b _080A4E14
|
|
.align 2, 0
|
|
_080A4DBC: .4byte gUnknown_2037F1B
|
|
_080A4DC0: .4byte gUnknown_2037F02
|
|
_080A4DC4:
|
|
ldr r4, _080A4DE4 @ =gUnknown_2037F02
|
|
movs r2, 0xC
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0
|
|
bne _080A4DE8
|
|
adds r0, r6, 0
|
|
movs r1, 0
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x20]
|
|
adds r0, r6, 0
|
|
movs r1, 0x1
|
|
b _080A4DFA
|
|
.align 2, 0
|
|
_080A4DE4: .4byte gUnknown_2037F02
|
|
_080A4DE8:
|
|
adds r0, r6, 0
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x20]
|
|
adds r0, r6, 0
|
|
movs r1, 0x3
|
|
_080A4DFA:
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrh r4, [r4, 0x2]
|
|
adds r0, r4
|
|
strh r0, [r5, 0x22]
|
|
ldr r0, _080A4E34 @ =gUnknown_2037F02
|
|
movs r2, 0
|
|
ldrsh r1, [r0, r2]
|
|
adds r0, r5, 0
|
|
bl sub_8074FF8
|
|
_080A4E14:
|
|
ldr r1, _080A4E34 @ =gUnknown_2037F02
|
|
ldrh r0, [r1, 0xA]
|
|
strh r0, [r5, 0x2E]
|
|
ldrh r0, [r1, 0x6]
|
|
strh r0, [r5, 0x30]
|
|
ldrh r0, [r1, 0x8]
|
|
strh r0, [r5, 0x32]
|
|
ldr r1, _080A4E38 @ =DestroyAnimSprite
|
|
adds r0, r5, 0
|
|
bl StoreSpriteCallbackInData6
|
|
ldr r0, _080A4E3C @ =sub_8074D00
|
|
str r0, [r5, 0x1C]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A4E34: .4byte gUnknown_2037F02
|
|
_080A4E38: .4byte DestroyAnimSprite
|
|
_080A4E3C: .4byte sub_8074D00
|
|
thumb_func_end sub_80A4D5C
|
|
|
|
thumb_func_start sub_80A4E40
|
|
sub_80A4E40: @ 80A4E40
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_8074FCC
|
|
ldr r0, _080A4E6C @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080A4E74
|
|
ldr r0, _080A4E70 @ =gUnknown_2037F02
|
|
ldrh r1, [r0]
|
|
ldrh r2, [r4, 0x20]
|
|
adds r1, r2
|
|
strh r1, [r4, 0x20]
|
|
ldrh r0, [r0, 0x2]
|
|
ldrh r1, [r4, 0x22]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x22]
|
|
b _080A4E8E
|
|
.align 2, 0
|
|
_080A4E6C: .4byte gUnknown_2037F1A
|
|
_080A4E70: .4byte gUnknown_2037F02
|
|
_080A4E74:
|
|
ldr r2, _080A4E98 @ =gUnknown_2037F02
|
|
ldrh r0, [r4, 0x20]
|
|
ldrh r1, [r2]
|
|
subs r0, r1
|
|
strh r0, [r4, 0x20]
|
|
ldrh r0, [r2, 0x2]
|
|
ldrh r2, [r4, 0x22]
|
|
adds r0, r2
|
|
strh r0, [r4, 0x22]
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl StartSpriteAnim
|
|
_080A4E8E:
|
|
ldr r0, _080A4E9C @ =sub_80A4EA0
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A4E98: .4byte gUnknown_2037F02
|
|
_080A4E9C: .4byte sub_80A4EA0
|
|
thumb_func_end sub_80A4E40
|
|
|
|
thumb_func_start sub_80A4EA0
|
|
sub_80A4EA0: @ 80A4EA0
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrh r0, [r4, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1E
|
|
ble _080A4ED8
|
|
movs r0, 0x2E
|
|
ldrsh r1, [r4, r0]
|
|
movs r0, 0x1E
|
|
subs r0, r1
|
|
movs r1, 0x3
|
|
bl __divsi3
|
|
strh r0, [r4, 0x26]
|
|
movs r1, 0x30
|
|
ldrsh r0, [r4, r1]
|
|
lsls r0, 18
|
|
asrs r0, 16
|
|
movs r1, 0x3
|
|
bl Sin
|
|
strh r0, [r4, 0x24]
|
|
ldrh r0, [r4, 0x30]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x30]
|
|
_080A4ED8:
|
|
adds r0, r4, 0
|
|
adds r0, 0x3F
|
|
ldrb r1, [r0]
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080A4EEC
|
|
adds r0, r4, 0
|
|
bl DestroyAnimSprite
|
|
_080A4EEC:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A4EA0
|
|
|
|
thumb_func_start sub_80A4EF4
|
|
sub_80A4EF4: @ 80A4EF4
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_8074FCC
|
|
ldr r0, _080A4F24 @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080A4F2C
|
|
ldr r1, _080A4F28 @ =gUnknown_2037F02
|
|
ldrh r0, [r1]
|
|
ldrh r2, [r4, 0x20]
|
|
adds r0, r2
|
|
strh r0, [r4, 0x20]
|
|
ldrh r0, [r1, 0x2]
|
|
ldrh r1, [r4, 0x22]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x22]
|
|
movs r0, 0x1
|
|
strh r0, [r4, 0x34]
|
|
b _080A4F4A
|
|
.align 2, 0
|
|
_080A4F24: .4byte gUnknown_2037F1A
|
|
_080A4F28: .4byte gUnknown_2037F02
|
|
_080A4F2C:
|
|
ldr r2, _080A4F54 @ =gUnknown_2037F02
|
|
ldrh r0, [r4, 0x20]
|
|
ldrh r1, [r2]
|
|
subs r0, r1
|
|
strh r0, [r4, 0x20]
|
|
ldrh r0, [r2, 0x2]
|
|
ldrh r2, [r4, 0x22]
|
|
adds r0, r2
|
|
strh r0, [r4, 0x22]
|
|
ldr r0, _080A4F58 @ =0x0000ffff
|
|
strh r0, [r4, 0x34]
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl StartSpriteAffineAnim
|
|
_080A4F4A:
|
|
ldr r0, _080A4F5C @ =sub_80A4F60
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A4F54: .4byte gUnknown_2037F02
|
|
_080A4F58: .4byte 0x0000ffff
|
|
_080A4F5C: .4byte sub_80A4F60
|
|
thumb_func_end sub_80A4EF4
|
|
|
|
thumb_func_start sub_80A4F60
|
|
sub_80A4F60: @ 80A4F60
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0x28
|
|
bl __divsi3
|
|
negs r0, r0
|
|
strh r0, [r4, 0x26]
|
|
movs r2, 0x36
|
|
ldrsh r0, [r4, r2]
|
|
movs r1, 0xA
|
|
bl __divsi3
|
|
strh r0, [r4, 0x24]
|
|
movs r1, 0x34
|
|
ldrsh r0, [r4, r1]
|
|
lsls r0, 1
|
|
ldrh r2, [r4, 0x36]
|
|
adds r0, r2
|
|
strh r0, [r4, 0x36]
|
|
ldrh r0, [r4, 0x30]
|
|
ldrh r2, [r4, 0x2E]
|
|
adds r1, r0, r2
|
|
strh r1, [r4, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x30]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x3C
|
|
ble _080A4FA4
|
|
adds r0, r4, 0
|
|
bl move_anim_8074EE0
|
|
_080A4FA4:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A4F60
|
|
|
|
thumb_func_start sub_80A4FAC
|
|
sub_80A4FAC: @ 80A4FAC
|
|
push {lr}
|
|
ldrh r1, [r0, 0x20]
|
|
subs r1, 0x20
|
|
strh r1, [r0, 0x20]
|
|
ldrh r1, [r0, 0x22]
|
|
subs r1, 0x20
|
|
strh r1, [r0, 0x22]
|
|
movs r1, 0x14
|
|
strh r1, [r0, 0x2E]
|
|
ldr r1, _080A4FCC @ =sub_8074C44
|
|
str r1, [r0, 0x1C]
|
|
ldr r1, _080A4FD0 @ =sub_80A4FD4
|
|
bl StoreSpriteCallbackInData6
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A4FCC: .4byte sub_8074C44
|
|
_080A4FD0: .4byte sub_80A4FD4
|
|
thumb_func_end sub_80A4FAC
|
|
|
|
thumb_func_start sub_80A4FD4
|
|
sub_80A4FD4: @ 80A4FD4
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
ldrh r6, [r5, 0x38]
|
|
movs r1, 0x1
|
|
adds r0, r1, 0
|
|
ands r0, r6
|
|
cmp r0, 0
|
|
beq _080A4FEA
|
|
cmp r0, 0x1
|
|
beq _080A5004
|
|
b _080A506A
|
|
_080A4FEA:
|
|
strh r1, [r5, 0x2E]
|
|
ldr r0, _080A4FFC @ =sub_8074C44
|
|
str r0, [r5, 0x1C]
|
|
ldr r1, _080A5000 @ =sub_80A4FD4
|
|
adds r0, r5, 0
|
|
bl StoreSpriteCallbackInData6
|
|
b _080A506A
|
|
.align 2, 0
|
|
_080A4FFC: .4byte sub_8074C44
|
|
_080A5000: .4byte sub_80A4FD4
|
|
_080A5004:
|
|
ldrh r3, [r5, 0x24]
|
|
ldrh r0, [r5, 0x20]
|
|
adds r3, r0
|
|
movs r0, 0
|
|
strh r3, [r5, 0x20]
|
|
ldrh r4, [r5, 0x26]
|
|
ldrh r1, [r5, 0x22]
|
|
adds r4, r1
|
|
strh r4, [r5, 0x22]
|
|
strh r0, [r5, 0x26]
|
|
strh r0, [r5, 0x24]
|
|
movs r0, 0x8
|
|
strh r0, [r5, 0x2E]
|
|
ldr r2, _080A5078 @ =gUnknown_83E3548
|
|
lsls r0, r6, 16
|
|
asrs r0, 24
|
|
lsls r0, 1
|
|
adds r1, r0, r2
|
|
ldrb r1, [r1]
|
|
lsls r1, 24
|
|
asrs r1, 24
|
|
adds r3, r1
|
|
strh r3, [r5, 0x32]
|
|
adds r2, 0x1
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
adds r4, r0
|
|
strh r4, [r5, 0x36]
|
|
ldr r0, _080A507C @ =sub_8075590
|
|
str r0, [r5, 0x1C]
|
|
ldr r1, _080A5080 @ =sub_80A5084
|
|
adds r0, r5, 0
|
|
bl StoreSpriteCallbackInData6
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
adds r0, r1, 0
|
|
ldrh r1, [r5, 0x38]
|
|
adds r0, r1
|
|
strh r0, [r5, 0x38]
|
|
movs r0, 0x3F
|
|
bl sub_8073A44
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
asrs r1, 24
|
|
movs r0, 0xCB
|
|
bl PlaySE12WithPanning
|
|
_080A506A:
|
|
ldrh r0, [r5, 0x38]
|
|
movs r1, 0x1
|
|
eors r0, r1
|
|
strh r0, [r5, 0x38]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A5078: .4byte gUnknown_83E3548
|
|
_080A507C: .4byte sub_8075590
|
|
_080A5080: .4byte sub_80A5084
|
|
thumb_func_end sub_80A4FD4
|
|
|
|
thumb_func_start sub_80A5084
|
|
sub_80A5084: @ 80A5084
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
ldrh r0, [r2, 0x38]
|
|
lsls r0, 16
|
|
asrs r0, 24
|
|
cmp r0, 0x4
|
|
bne _080A50AC
|
|
movs r0, 0xA
|
|
strh r0, [r2, 0x2E]
|
|
ldr r0, _080A50A4 @ =sub_8074C44
|
|
str r0, [r2, 0x1C]
|
|
ldr r1, _080A50A8 @ =sub_80A50B8
|
|
adds r0, r2, 0
|
|
bl StoreSpriteCallbackInData6
|
|
b _080A50B0
|
|
.align 2, 0
|
|
_080A50A4: .4byte sub_8074C44
|
|
_080A50A8: .4byte sub_80A50B8
|
|
_080A50AC:
|
|
ldr r0, _080A50B4 @ =sub_80A4FD4
|
|
str r0, [r2, 0x1C]
|
|
_080A50B0:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A50B4: .4byte sub_80A4FD4
|
|
thumb_func_end sub_80A5084
|
|
|
|
thumb_func_start sub_80A50B8
|
|
sub_80A50B8: @ 80A50B8
|
|
push {r4-r7,lr}
|
|
adds r5, r0, 0
|
|
ldrh r1, [r5, 0x6]
|
|
cmp r1, 0
|
|
bne _080A50E0
|
|
movs r0, 0x3
|
|
strh r0, [r5, 0x2E]
|
|
strh r1, [r5, 0x30]
|
|
strh r1, [r5, 0x32]
|
|
ldr r0, _080A50D8 @ =sub_8074C44
|
|
str r0, [r5, 0x1C]
|
|
ldr r1, _080A50DC @ =sub_80A5174
|
|
adds r0, r5, 0
|
|
bl StoreSpriteCallbackInData6
|
|
b _080A5160
|
|
.align 2, 0
|
|
_080A50D8: .4byte sub_8074C44
|
|
_080A50DC: .4byte sub_80A5174
|
|
_080A50E0:
|
|
ldrh r0, [r5, 0x6]
|
|
cmp r0, 0x2
|
|
beq _080A5100
|
|
cmp r0, 0x2
|
|
bgt _080A50F0
|
|
cmp r0, 0x1
|
|
beq _080A50F6
|
|
b _080A5114
|
|
_080A50F0:
|
|
cmp r0, 0x3
|
|
beq _080A5108
|
|
b _080A5114
|
|
_080A50F6:
|
|
ldr r6, _080A50FC @ =0x0000fff8
|
|
adds r7, r6, 0
|
|
b _080A5118
|
|
.align 2, 0
|
|
_080A50FC: .4byte 0x0000fff8
|
|
_080A5100:
|
|
ldr r7, _080A5104 @ =0x0000fff8
|
|
b _080A5116
|
|
.align 2, 0
|
|
_080A5104: .4byte 0x0000fff8
|
|
_080A5108:
|
|
movs r7, 0x8
|
|
ldr r6, _080A5110 @ =0x0000fff8
|
|
b _080A5118
|
|
.align 2, 0
|
|
_080A5110: .4byte 0x0000fff8
|
|
_080A5114:
|
|
movs r7, 0x8
|
|
_080A5116:
|
|
movs r6, 0x8
|
|
_080A5118:
|
|
ldrh r0, [r5, 0x24]
|
|
ldrh r1, [r5, 0x20]
|
|
adds r0, r1
|
|
movs r1, 0
|
|
strh r0, [r5, 0x20]
|
|
ldrh r0, [r5, 0x26]
|
|
ldrh r2, [r5, 0x22]
|
|
adds r0, r2
|
|
strh r0, [r5, 0x22]
|
|
strh r1, [r5, 0x26]
|
|
strh r1, [r5, 0x24]
|
|
movs r0, 0x6
|
|
strh r0, [r5, 0x2E]
|
|
ldr r4, _080A5168 @ =gUnknown_2037F1B
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r0, r7
|
|
strh r0, [r5, 0x32]
|
|
ldrb r0, [r4]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r0, r6
|
|
strh r0, [r5, 0x36]
|
|
ldr r0, _080A516C @ =sub_8075590
|
|
str r0, [r5, 0x1C]
|
|
ldr r1, _080A5170 @ =sub_80A5220
|
|
adds r0, r5, 0
|
|
bl StoreSpriteCallbackInData6
|
|
_080A5160:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A5168: .4byte gUnknown_2037F1B
|
|
_080A516C: .4byte sub_8075590
|
|
_080A5170: .4byte sub_80A5220
|
|
thumb_func_end sub_80A50B8
|
|
|
|
thumb_func_start sub_80A5174
|
|
sub_80A5174: @ 80A5174
|
|
push {r4,lr}
|
|
sub sp, 0xC
|
|
adds r4, r0, 0
|
|
movs r1, 0x32
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bne _080A5194
|
|
ldrh r0, [r4, 0x30]
|
|
adds r0, 0x3
|
|
strh r0, [r4, 0x30]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x10
|
|
ble _080A51A4
|
|
movs r0, 0x10
|
|
b _080A51A2
|
|
_080A5194:
|
|
ldrh r0, [r4, 0x30]
|
|
subs r0, 0x3
|
|
strh r0, [r4, 0x30]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bge _080A51A4
|
|
movs r0, 0
|
|
_080A51A2:
|
|
strh r0, [r4, 0x30]
|
|
_080A51A4:
|
|
movs r0, 0x1
|
|
str r0, [sp]
|
|
movs r0, 0
|
|
str r0, [sp, 0x4]
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0x1
|
|
movs r1, 0x1
|
|
movs r2, 0x1
|
|
movs r3, 0x1
|
|
bl sub_8075BE8
|
|
ldrh r1, [r4, 0x30]
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
ldr r2, _080A5200 @ =0x00007fff
|
|
bl BlendPalettes
|
|
movs r3, 0x30
|
|
ldrsh r0, [r4, r3]
|
|
cmp r0, 0x10
|
|
bne _080A520C
|
|
ldrh r0, [r4, 0x32]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x32]
|
|
ldrb r1, [r4, 0x5]
|
|
lsrs r1, 4
|
|
lsls r0, r1, 5
|
|
ldr r2, _080A5204 @ =gPlttBufferUnfaded + 0x210
|
|
adds r0, r2
|
|
lsls r1, 4
|
|
ldr r3, _080A5208 @ =0x00000101
|
|
adds r2, r3, 0
|
|
orrs r1, r2
|
|
movs r2, 0x4
|
|
bl LoadPalette
|
|
movs r0, 0x3F
|
|
bl sub_8073A44
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
asrs r1, 24
|
|
movs r0, 0xB9
|
|
bl PlaySE12WithPanning
|
|
b _080A5214
|
|
.align 2, 0
|
|
_080A5200: .4byte 0x00007fff
|
|
_080A5204: .4byte gPlttBufferUnfaded + 0x210
|
|
_080A5208: .4byte 0x00000101
|
|
_080A520C:
|
|
cmp r0, 0
|
|
bne _080A5214
|
|
ldr r0, _080A521C @ =sub_80A5220
|
|
str r0, [r4, 0x1C]
|
|
_080A5214:
|
|
add sp, 0xC
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A521C: .4byte sub_80A5220
|
|
thumb_func_end sub_80A5174
|
|
|
|
thumb_func_start sub_80A5220
|
|
sub_80A5220: @ 80A5220
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
ldr r0, _080A523C @ =gUnknown_2037F02
|
|
ldrh r1, [r0, 0xE]
|
|
ldr r0, _080A5240 @ =0x0000ffff
|
|
cmp r1, r0
|
|
bne _080A5238
|
|
movs r0, 0
|
|
strh r0, [r2, 0x30]
|
|
strh r0, [r2, 0x2E]
|
|
ldr r0, _080A5244 @ =sub_80A5248
|
|
str r0, [r2, 0x1C]
|
|
_080A5238:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A523C: .4byte gUnknown_2037F02
|
|
_080A5240: .4byte 0x0000ffff
|
|
_080A5244: .4byte sub_80A5248
|
|
thumb_func_end sub_80A5220
|
|
|
|
thumb_func_start sub_80A5248
|
|
sub_80A5248: @ 80A5248
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0x3
|
|
bl __modsi3
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bne _080A527C
|
|
ldrh r0, [r4, 0x30]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x30]
|
|
adds r3, r4, 0
|
|
adds r3, 0x3E
|
|
ldrb r2, [r3]
|
|
lsls r0, r2, 29
|
|
lsrs r0, 31
|
|
movs r1, 0x1
|
|
eors r1, r0
|
|
lsls r1, 2
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r3]
|
|
_080A527C:
|
|
ldrh r0, [r4, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
movs r1, 0x30
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x8
|
|
bne _080A5290
|
|
adds r0, r4, 0
|
|
bl DestroyAnimSprite
|
|
_080A5290:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A5248
|
|
|
|
thumb_func_start sub_80A5298
|
|
sub_80A5298: @ 80A5298
|
|
push {r4,lr}
|
|
adds r3, r0, 0
|
|
ldr r0, _080A52B8 @ =gUnknown_2037F02
|
|
ldrh r0, [r0]
|
|
strh r0, [r3, 0x6]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1
|
|
bne _080A52BC
|
|
ldrh r0, [r3, 0x20]
|
|
subs r0, 0x18
|
|
strh r0, [r3, 0x20]
|
|
ldrh r0, [r3, 0x22]
|
|
subs r0, 0x18
|
|
strh r0, [r3, 0x22]
|
|
b _080A530E
|
|
.align 2, 0
|
|
_080A52B8: .4byte gUnknown_2037F02
|
|
_080A52BC:
|
|
cmp r0, 0x2
|
|
bne _080A52D8
|
|
ldrh r0, [r3, 0x20]
|
|
subs r0, 0x18
|
|
strh r0, [r3, 0x20]
|
|
ldrh r0, [r3, 0x22]
|
|
adds r0, 0x18
|
|
strh r0, [r3, 0x22]
|
|
ldrb r1, [r3, 0x3]
|
|
movs r0, 0x3F
|
|
negs r0, r0
|
|
ands r0, r1
|
|
movs r1, 0x20
|
|
b _080A530A
|
|
_080A52D8:
|
|
cmp r0, 0x3
|
|
bne _080A52F4
|
|
ldrh r0, [r3, 0x20]
|
|
adds r0, 0x18
|
|
strh r0, [r3, 0x20]
|
|
ldrh r0, [r3, 0x22]
|
|
subs r0, 0x18
|
|
strh r0, [r3, 0x22]
|
|
ldrb r1, [r3, 0x3]
|
|
movs r0, 0x3F
|
|
negs r0, r0
|
|
ands r0, r1
|
|
movs r1, 0x10
|
|
b _080A530A
|
|
_080A52F4:
|
|
ldrh r0, [r3, 0x20]
|
|
adds r0, 0x18
|
|
strh r0, [r3, 0x20]
|
|
ldrh r0, [r3, 0x22]
|
|
adds r0, 0x18
|
|
strh r0, [r3, 0x22]
|
|
ldrb r1, [r3, 0x3]
|
|
movs r0, 0x3F
|
|
negs r0, r0
|
|
ands r0, r1
|
|
movs r1, 0x30
|
|
_080A530A:
|
|
orrs r0, r1
|
|
strb r0, [r3, 0x3]
|
|
_080A530E:
|
|
ldrh r2, [r3, 0x4]
|
|
lsls r1, r2, 22
|
|
lsrs r1, 22
|
|
adds r1, 0x10
|
|
ldr r4, _080A5334 @ =0x000003ff
|
|
adds r0, r4, 0
|
|
ands r1, r0
|
|
ldr r0, _080A5338 @ =0xfffffc00
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strh r0, [r3, 0x4]
|
|
ldr r1, _080A533C @ =sub_80A4FAC
|
|
str r1, [r3, 0x1C]
|
|
adds r0, r3, 0
|
|
bl _call_via_r1
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A5334: .4byte 0x000003ff
|
|
_080A5338: .4byte 0xfffffc00
|
|
_080A533C: .4byte sub_80A4FAC
|
|
thumb_func_end sub_80A5298
|
|
|
|
thumb_func_start sub_80A5340
|
|
sub_80A5340: @ 80A5340
|
|
push {lr}
|
|
adds r3, r0, 0
|
|
adds r2, r3, 0
|
|
adds r2, 0x3E
|
|
ldrb r0, [r2]
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
movs r0, 0
|
|
strh r0, [r3, 0x2E]
|
|
ldr r0, _080A5368 @ =gUnknown_2037F02
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0x1
|
|
beq _080A537C
|
|
cmp r0, 0x1
|
|
bgt _080A536C
|
|
cmp r0, 0
|
|
beq _080A5372
|
|
b _080A538C
|
|
.align 2, 0
|
|
_080A5368: .4byte gUnknown_2037F02
|
|
_080A536C:
|
|
cmp r0, 0x2
|
|
beq _080A5384
|
|
b _080A538C
|
|
_080A5372:
|
|
ldr r0, _080A5378 @ =sub_80A5398
|
|
b _080A538E
|
|
.align 2, 0
|
|
_080A5378: .4byte sub_80A5398
|
|
_080A537C:
|
|
ldr r0, _080A5380 @ =sub_80A5474
|
|
b _080A538E
|
|
.align 2, 0
|
|
_080A5380: .4byte sub_80A5474
|
|
_080A5384:
|
|
ldr r0, _080A5388 @ =sub_80A54C4
|
|
b _080A538E
|
|
.align 2, 0
|
|
_080A5388: .4byte sub_80A54C4
|
|
_080A538C:
|
|
ldr r0, _080A5394 @ =sub_80A5584
|
|
_080A538E:
|
|
str r0, [r3, 0x1C]
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A5394: .4byte sub_80A5584
|
|
thumb_func_end sub_80A5340
|
|
|
|
thumb_func_start sub_80A5398
|
|
sub_80A5398: @ 80A5398
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x6
|
|
strh r0, [r4, 0x2E]
|
|
ldr r5, _080A53D8 @ =gUnknown_2037F1A
|
|
ldrb r0, [r5]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
movs r2, 0x2
|
|
negs r2, r2
|
|
adds r1, r2, 0
|
|
cmp r0, 0
|
|
beq _080A53B6
|
|
movs r1, 0x2
|
|
_080A53B6:
|
|
strh r1, [r4, 0x30]
|
|
movs r0, 0
|
|
strh r0, [r4, 0x32]
|
|
ldr r1, _080A53DC @ =gUnknown_2023D44
|
|
ldrb r0, [r5]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
strh r0, [r4, 0x34]
|
|
ldr r1, _080A53E0 @ =sub_80A53E8
|
|
adds r0, r4, 0
|
|
bl StoreSpriteCallbackInData6
|
|
ldr r0, _080A53E4 @ =sub_8074DC4
|
|
str r0, [r4, 0x1C]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A53D8: .4byte gUnknown_2037F1A
|
|
_080A53DC: .4byte gUnknown_2023D44
|
|
_080A53E0: .4byte sub_80A53E8
|
|
_080A53E4: .4byte sub_8074DC4
|
|
thumb_func_end sub_80A5398
|
|
|
|
thumb_func_start sub_80A53E8
|
|
sub_80A53E8: @ 80A53E8
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
movs r0, 0x2E
|
|
ldrsh r6, [r5, r0]
|
|
cmp r6, 0
|
|
bne _080A5424
|
|
ldr r1, _080A5464 @ =gUnknown_2023D44
|
|
ldr r4, _080A5468 @ =gUnknown_2037F1A
|
|
ldrb r0, [r4]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
strh r0, [r5, 0x34]
|
|
movs r1, 0
|
|
bl sub_80758E0
|
|
ldrb r0, [r4]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x3A]
|
|
ldr r2, _080A546C @ =0xfffffd00
|
|
adds r1, r2, 0
|
|
cmp r0, 0
|
|
beq _080A5420
|
|
movs r0, 0xC0
|
|
lsls r0, 2
|
|
adds r1, r0, 0
|
|
_080A5420:
|
|
strh r1, [r5, 0x36]
|
|
strh r6, [r5, 0x38]
|
|
_080A5424:
|
|
ldrh r0, [r5, 0x36]
|
|
ldrh r1, [r5, 0x38]
|
|
adds r0, r1
|
|
strh r0, [r5, 0x38]
|
|
ldrh r0, [r5, 0x34]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
ldrh r3, [r5, 0x38]
|
|
adds r1, r2, 0
|
|
bl obj_id_set_rotscale
|
|
ldrh r0, [r5, 0x34]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl sub_80759DC
|
|
ldrh r0, [r5, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x2E]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x3
|
|
ble _080A545E
|
|
movs r0, 0
|
|
strh r0, [r5, 0x2E]
|
|
ldr r0, _080A5470 @ =sub_80A5584
|
|
str r0, [r5, 0x1C]
|
|
_080A545E:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A5464: .4byte gUnknown_2023D44
|
|
_080A5468: .4byte gUnknown_2037F1A
|
|
_080A546C: .4byte 0xfffffd00
|
|
_080A5470: .4byte sub_80A5584
|
|
thumb_func_end sub_80A53E8
|
|
|
|
thumb_func_start sub_80A5474
|
|
sub_80A5474: @ 80A5474
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x4
|
|
strh r0, [r4, 0x2E]
|
|
ldr r5, _080A54B4 @ =gUnknown_2037F1A
|
|
ldrb r0, [r5]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
movs r1, 0x3
|
|
cmp r0, 0
|
|
beq _080A5492
|
|
movs r0, 0x3
|
|
negs r0, r0
|
|
adds r1, r0, 0
|
|
_080A5492:
|
|
strh r1, [r4, 0x30]
|
|
movs r0, 0
|
|
strh r0, [r4, 0x32]
|
|
ldr r1, _080A54B8 @ =gUnknown_2023D44
|
|
ldrb r0, [r5]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
strh r0, [r4, 0x34]
|
|
ldr r1, _080A54BC @ =sub_80A5584
|
|
adds r0, r4, 0
|
|
bl StoreSpriteCallbackInData6
|
|
ldr r0, _080A54C0 @ =sub_8074DC4
|
|
str r0, [r4, 0x1C]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A54B4: .4byte gUnknown_2037F1A
|
|
_080A54B8: .4byte gUnknown_2023D44
|
|
_080A54BC: .4byte sub_80A5584
|
|
_080A54C0: .4byte sub_8074DC4
|
|
thumb_func_end sub_80A5474
|
|
|
|
thumb_func_start sub_80A54C4
|
|
sub_80A54C4: @ 80A54C4
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
ldrh r0, [r1, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x2E]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x8
|
|
ble _080A54DE
|
|
movs r0, 0
|
|
strh r0, [r1, 0x2E]
|
|
ldr r0, _080A54E4 @ =sub_80A54E8
|
|
str r0, [r1, 0x1C]
|
|
_080A54DE:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A54E4: .4byte sub_80A54E8
|
|
thumb_func_end sub_80A54C4
|
|
|
|
thumb_func_start sub_80A54E8
|
|
sub_80A54E8: @ 80A54E8
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0
|
|
bne _080A5538
|
|
ldr r1, _080A5524 @ =gUnknown_2023D44
|
|
ldr r4, _080A5528 @ =gUnknown_2037F1A
|
|
ldrb r0, [r4]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
strh r0, [r5, 0x34]
|
|
ldrb r0, [r4]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x3A]
|
|
ldrb r0, [r4]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A552C
|
|
movs r0, 0xFC
|
|
lsls r0, 8
|
|
strh r0, [r5, 0x36]
|
|
movs r0, 0xC0
|
|
lsls r0, 4
|
|
b _080A5536
|
|
.align 2, 0
|
|
_080A5524: .4byte gUnknown_2023D44
|
|
_080A5528: .4byte gUnknown_2037F1A
|
|
_080A552C:
|
|
movs r0, 0x80
|
|
lsls r0, 3
|
|
strh r0, [r5, 0x36]
|
|
movs r0, 0xF4
|
|
lsls r0, 8
|
|
_080A5536:
|
|
strh r0, [r5, 0x38]
|
|
_080A5538:
|
|
ldrh r0, [r5, 0x36]
|
|
ldrh r1, [r5, 0x38]
|
|
adds r0, r1
|
|
strh r0, [r5, 0x38]
|
|
ldrh r0, [r5, 0x34]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
ldrh r3, [r5, 0x38]
|
|
adds r1, r2, 0
|
|
bl obj_id_set_rotscale
|
|
ldrh r0, [r5, 0x34]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl sub_80759DC
|
|
ldrh r0, [r5, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x2E]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x2
|
|
ble _080A5578
|
|
ldrh r0, [r5, 0x34]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl sub_8075980
|
|
ldr r0, _080A5580 @ =sub_80A5584
|
|
str r0, [r5, 0x1C]
|
|
_080A5578:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A5580: .4byte sub_80A5584
|
|
thumb_func_end sub_80A54E8
|
|
|
|
thumb_func_start sub_80A5584
|
|
sub_80A5584: @ 80A5584
|
|
push {lr}
|
|
bl DestroyAnimSprite
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A5584
|
|
|
|
thumb_func_start sub_80A5590
|
|
sub_80A5590: @ 80A5590
|
|
movs r1, 0
|
|
strh r1, [r0, 0x2E]
|
|
ldr r1, _080A559C @ =sub_80A55A0
|
|
str r1, [r0, 0x1C]
|
|
bx lr
|
|
.align 2, 0
|
|
_080A559C: .4byte sub_80A55A0
|
|
thumb_func_end sub_80A5590
|
|
|
|
thumb_func_start sub_80A55A0
|
|
sub_80A55A0: @ 80A55A0
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x2E
|
|
ldrsh r5, [r4, r0]
|
|
cmp r5, 0x1
|
|
beq _080A55FA
|
|
cmp r5, 0x1
|
|
bgt _080A55B6
|
|
cmp r5, 0
|
|
beq _080A55BC
|
|
b _080A568E
|
|
_080A55B6:
|
|
cmp r5, 0x2
|
|
beq _080A564C
|
|
b _080A568E
|
|
_080A55BC:
|
|
strh r5, [r4, 0x30]
|
|
ldr r1, _080A5640 @ =gUnknown_2023D44
|
|
ldr r2, _080A5644 @ =gUnknown_2037F1A
|
|
ldrb r0, [r2]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
strh r0, [r4, 0x32]
|
|
ldrb r0, [r2]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x34]
|
|
ldr r2, _080A5648 @ =0xfffffe00
|
|
adds r1, r2, 0
|
|
cmp r0, 0
|
|
beq _080A55E4
|
|
movs r0, 0x80
|
|
lsls r0, 2
|
|
adds r1, r0, 0
|
|
_080A55E4:
|
|
strh r1, [r4, 0x36]
|
|
strh r5, [r4, 0x38]
|
|
ldrh r0, [r4, 0x32]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0
|
|
bl sub_80758E0
|
|
ldrh r0, [r4, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
_080A55FA:
|
|
ldrh r0, [r4, 0x36]
|
|
ldrh r1, [r4, 0x38]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x38]
|
|
ldrh r0, [r4, 0x32]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
ldrh r3, [r4, 0x38]
|
|
adds r1, r2, 0
|
|
bl obj_id_set_rotscale
|
|
ldrh r0, [r4, 0x32]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl sub_80759DC
|
|
ldrh r0, [r4, 0x30]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x30]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x3
|
|
ble _080A568E
|
|
movs r0, 0
|
|
strh r0, [r4, 0x30]
|
|
movs r2, 0x36
|
|
ldrsh r0, [r4, r2]
|
|
negs r0, r0
|
|
strh r0, [r4, 0x36]
|
|
ldrh r0, [r4, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
b _080A568E
|
|
.align 2, 0
|
|
_080A5640: .4byte gUnknown_2023D44
|
|
_080A5644: .4byte gUnknown_2037F1A
|
|
_080A5648: .4byte 0xfffffe00
|
|
_080A564C:
|
|
ldrh r0, [r4, 0x36]
|
|
ldrh r1, [r4, 0x38]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x38]
|
|
ldrh r0, [r4, 0x32]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
ldrh r3, [r4, 0x38]
|
|
adds r1, r2, 0
|
|
bl obj_id_set_rotscale
|
|
ldrh r0, [r4, 0x32]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl sub_80759DC
|
|
ldrh r0, [r4, 0x30]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x30]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x3
|
|
ble _080A568E
|
|
ldrh r0, [r4, 0x32]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl sub_8075980
|
|
adds r0, r4, 0
|
|
bl DestroyAnimSprite
|
|
_080A568E:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A55A0
|
|
|
|
thumb_func_start sub_80A5694
|
|
sub_80A5694: @ 80A5694
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
ldr r1, _080A56D8 @ =gTasks
|
|
lsls r0, r6, 2
|
|
adds r0, r6
|
|
lsls r0, 3
|
|
adds r5, r0, r1
|
|
ldr r1, _080A56DC @ =gUnknown_2023D44
|
|
ldr r2, _080A56E0 @ =gUnknown_2037F1A
|
|
ldrb r0, [r2]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
movs r4, 0
|
|
strh r0, [r5, 0x8]
|
|
ldrb r0, [r2]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
strh r2, [r5, 0xA]
|
|
strh r4, [r5, 0xC]
|
|
ldr r0, _080A56E4 @ =gUnknown_2037F02
|
|
movs r3, 0
|
|
ldrsh r1, [r0, r3]
|
|
cmp r1, 0
|
|
beq _080A56E8
|
|
cmp r1, 0x1
|
|
beq _080A5704
|
|
adds r0, r6, 0
|
|
bl DestroyAnimVisualTask
|
|
b _080A5722
|
|
.align 2, 0
|
|
_080A56D8: .4byte gTasks
|
|
_080A56DC: .4byte gUnknown_2023D44
|
|
_080A56E0: .4byte gUnknown_2037F1A
|
|
_080A56E4: .4byte gUnknown_2037F02
|
|
_080A56E8:
|
|
strh r1, [r5, 0xC]
|
|
movs r0, 0x8
|
|
strh r0, [r5, 0xE]
|
|
strh r1, [r5, 0x10]
|
|
movs r0, 0x3
|
|
strh r0, [r5, 0x12]
|
|
cmp r2, 0
|
|
bne _080A56FC
|
|
negs r0, r0
|
|
strh r0, [r5, 0x12]
|
|
_080A56FC:
|
|
ldr r0, _080A5700 @ =sub_80A572C
|
|
b _080A5720
|
|
.align 2, 0
|
|
_080A5700: .4byte sub_80A572C
|
|
_080A5704:
|
|
movs r0, 0x8
|
|
strh r0, [r5, 0xE]
|
|
movs r0, 0xC0
|
|
lsls r0, 3
|
|
strh r0, [r5, 0x10]
|
|
movs r1, 0xC0
|
|
strh r1, [r5, 0x12]
|
|
cmp r2, 0
|
|
bne _080A571E
|
|
negs r0, r0
|
|
strh r0, [r5, 0x10]
|
|
negs r0, r1
|
|
strh r0, [r5, 0x12]
|
|
_080A571E:
|
|
ldr r0, _080A5728 @ =sub_80A58EC
|
|
_080A5720:
|
|
str r0, [r5]
|
|
_080A5722:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A5728: .4byte sub_80A58EC
|
|
thumb_func_end sub_80A5694
|
|
|
|
thumb_func_start sub_80A572C
|
|
sub_80A572C: @ 80A572C
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
lsls r0, r2, 2
|
|
adds r0, r2
|
|
lsls r0, 3
|
|
ldr r1, _080A5750 @ =gTasks
|
|
adds r4, r0, r1
|
|
movs r1, 0xC
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x4
|
|
bls _080A5746
|
|
b _080A58E6
|
|
_080A5746:
|
|
lsls r0, 2
|
|
ldr r1, _080A5754 @ =_080A5758
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080A5750: .4byte gTasks
|
|
_080A5754: .4byte _080A5758
|
|
.align 2, 0
|
|
_080A5758:
|
|
.4byte _080A576C
|
|
.4byte _080A579E
|
|
.4byte _080A57F8
|
|
.4byte _080A5870
|
|
.4byte _080A58B4
|
|
_080A576C:
|
|
movs r2, 0xE
|
|
ldrsh r1, [r4, r2]
|
|
cmp r1, 0
|
|
beq _080A577C
|
|
ldrh r2, [r4, 0x12]
|
|
ldrh r3, [r4, 0x10]
|
|
adds r2, r3
|
|
b _080A58C2
|
|
_080A577C:
|
|
movs r0, 0x8
|
|
strh r0, [r4, 0xE]
|
|
strh r1, [r4, 0x10]
|
|
movs r1, 0xA
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0xC0
|
|
cmp r0, 0
|
|
bne _080A5792
|
|
movs r2, 0xC0
|
|
negs r2, r2
|
|
adds r1, r2, 0
|
|
_080A5792:
|
|
strh r1, [r4, 0x12]
|
|
ldrb r0, [r4, 0x8]
|
|
movs r1, 0
|
|
bl sub_80758E0
|
|
b _080A58A8
|
|
_080A579E:
|
|
movs r3, 0xE
|
|
ldrsh r0, [r4, r3]
|
|
cmp r0, 0
|
|
beq _080A57C4
|
|
ldrh r0, [r4, 0x12]
|
|
ldrh r1, [r4, 0x10]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x10]
|
|
ldrb r0, [r4, 0x8]
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
ldrh r3, [r4, 0x10]
|
|
adds r1, r2, 0
|
|
bl obj_id_set_rotscale
|
|
ldrb r0, [r4, 0x8]
|
|
bl sub_80759DC
|
|
b _080A58D4
|
|
_080A57C4:
|
|
movs r0, 0x8
|
|
strh r0, [r4, 0xE]
|
|
ldr r2, _080A57F4 @ =gSprites
|
|
movs r3, 0x8
|
|
ldrsh r1, [r4, r3]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrh r0, [r0, 0x24]
|
|
strh r0, [r4, 0x10]
|
|
movs r1, 0xA
|
|
ldrsh r0, [r4, r1]
|
|
movs r2, 0x2
|
|
negs r2, r2
|
|
adds r1, r2, 0
|
|
cmp r0, 0
|
|
bne _080A57EA
|
|
movs r1, 0x2
|
|
_080A57EA:
|
|
strh r1, [r4, 0x12]
|
|
movs r0, 0x1
|
|
strh r0, [r4, 0x14]
|
|
b _080A58A8
|
|
.align 2, 0
|
|
_080A57F4: .4byte gSprites
|
|
_080A57F8:
|
|
ldrh r2, [r4, 0xE]
|
|
movs r3, 0xE
|
|
ldrsh r0, [r4, r3]
|
|
cmp r0, 0
|
|
beq _080A5854
|
|
ldrh r1, [r4, 0x14]
|
|
movs r3, 0x14
|
|
ldrsh r0, [r4, r3]
|
|
cmp r0, 0
|
|
beq _080A5812
|
|
subs r0, r1, 0x1
|
|
strh r0, [r4, 0x14]
|
|
b _080A58E6
|
|
_080A5812:
|
|
movs r0, 0x1
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _080A5834
|
|
ldr r2, _080A5830 @ =gSprites
|
|
movs r0, 0x8
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrh r1, [r4, 0x12]
|
|
ldrh r2, [r4, 0x10]
|
|
adds r1, r2
|
|
b _080A5848
|
|
.align 2, 0
|
|
_080A5830: .4byte gSprites
|
|
_080A5834:
|
|
ldr r2, _080A5850 @ =gSprites
|
|
movs r3, 0x8
|
|
ldrsh r1, [r4, r3]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrh r1, [r4, 0x10]
|
|
ldrh r2, [r4, 0x12]
|
|
subs r1, r2
|
|
_080A5848:
|
|
strh r1, [r0, 0x24]
|
|
movs r0, 0x1
|
|
strh r0, [r4, 0x14]
|
|
b _080A58D4
|
|
.align 2, 0
|
|
_080A5850: .4byte gSprites
|
|
_080A5854:
|
|
ldr r2, _080A586C @ =gSprites
|
|
movs r0, 0x8
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrh r1, [r4, 0x10]
|
|
strh r1, [r0, 0x24]
|
|
movs r0, 0xC
|
|
strh r0, [r4, 0xE]
|
|
b _080A58A8
|
|
.align 2, 0
|
|
_080A586C: .4byte gSprites
|
|
_080A5870:
|
|
ldrh r1, [r4, 0xE]
|
|
movs r2, 0xE
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0
|
|
beq _080A5880
|
|
subs r0, r1, 0x1
|
|
strh r0, [r4, 0xE]
|
|
b _080A58E6
|
|
_080A5880:
|
|
movs r0, 0x3
|
|
strh r0, [r4, 0xE]
|
|
ldr r2, _080A58B0 @ =gSprites
|
|
movs r3, 0x8
|
|
ldrsh r1, [r4, r3]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrh r0, [r0, 0x24]
|
|
strh r0, [r4, 0x10]
|
|
movs r1, 0xA
|
|
ldrsh r0, [r4, r1]
|
|
movs r2, 0x8
|
|
negs r2, r2
|
|
adds r1, r2, 0
|
|
cmp r0, 0
|
|
bne _080A58A6
|
|
movs r1, 0x8
|
|
_080A58A6:
|
|
strh r1, [r4, 0x12]
|
|
_080A58A8:
|
|
ldrh r0, [r4, 0xC]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0xC]
|
|
b _080A58E6
|
|
.align 2, 0
|
|
_080A58B0: .4byte gSprites
|
|
_080A58B4:
|
|
movs r3, 0xE
|
|
ldrsh r0, [r4, r3]
|
|
cmp r0, 0
|
|
beq _080A58E0
|
|
ldrh r2, [r4, 0x12]
|
|
ldrh r0, [r4, 0x10]
|
|
adds r2, r0
|
|
_080A58C2:
|
|
strh r2, [r4, 0x10]
|
|
ldr r3, _080A58DC @ =gSprites
|
|
movs r0, 0x8
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
strh r2, [r0, 0x24]
|
|
_080A58D4:
|
|
ldrh r0, [r4, 0xE]
|
|
subs r0, 0x1
|
|
strh r0, [r4, 0xE]
|
|
b _080A58E6
|
|
.align 2, 0
|
|
_080A58DC: .4byte gSprites
|
|
_080A58E0:
|
|
adds r0, r2, 0
|
|
bl DestroyAnimVisualTask
|
|
_080A58E6:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A572C
|
|
|
|
thumb_func_start sub_80A58EC
|
|
sub_80A58EC: @ 80A58EC
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
ldr r1, _080A5928 @ =gTasks
|
|
adds r4, r0, r1
|
|
movs r1, 0xE
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
beq _080A592C
|
|
ldrh r0, [r4, 0x10]
|
|
ldrh r1, [r4, 0x12]
|
|
subs r0, r1
|
|
strh r0, [r4, 0x10]
|
|
ldrb r0, [r4, 0x8]
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
ldrh r3, [r4, 0x10]
|
|
adds r1, r2, 0
|
|
bl obj_id_set_rotscale
|
|
ldrb r0, [r4, 0x8]
|
|
bl sub_80759DC
|
|
ldrh r0, [r4, 0xE]
|
|
subs r0, 0x1
|
|
strh r0, [r4, 0xE]
|
|
b _080A5938
|
|
.align 2, 0
|
|
_080A5928: .4byte gTasks
|
|
_080A592C:
|
|
ldrb r0, [r4, 0x8]
|
|
bl sub_8075980
|
|
adds r0, r5, 0
|
|
bl DestroyAnimVisualTask
|
|
_080A5938:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A58EC
|
|
|
|
thumb_func_start sub_80A5940
|
|
sub_80A5940: @ 80A5940
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
ldr r6, _080A5954 @ =gUnknown_2037F02
|
|
movs r1, 0
|
|
ldrsh r0, [r6, r1]
|
|
cmp r0, 0
|
|
bne _080A595C
|
|
ldr r4, _080A5958 @ =gUnknown_2037F1A
|
|
b _080A595E
|
|
.align 2, 0
|
|
_080A5954: .4byte gUnknown_2037F02
|
|
_080A5958: .4byte gUnknown_2037F1A
|
|
_080A595C:
|
|
ldr r4, _080A599C @ =gUnknown_2037F1B
|
|
_080A595E:
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrh r1, [r6, 0x2]
|
|
adds r0, r1
|
|
strh r0, [r5, 0x20]
|
|
ldrb r0, [r4]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrh r6, [r6, 0x4]
|
|
adds r0, r6
|
|
strh r0, [r5, 0x22]
|
|
movs r0, 0
|
|
strh r0, [r5, 0x2E]
|
|
strh r0, [r5, 0x30]
|
|
ldr r1, _080A59A0 @ =sub_80A5A8C
|
|
adds r0, r5, 0
|
|
bl StoreSpriteCallbackInData6
|
|
ldr r0, _080A59A4 @ =sub_8074F6C
|
|
str r0, [r5, 0x1C]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A599C: .4byte gUnknown_2037F1B
|
|
_080A59A0: .4byte sub_80A5A8C
|
|
_080A59A4: .4byte sub_8074F6C
|
|
thumb_func_end sub_80A5940
|
|
|
|
thumb_func_start sub_80A59A8
|
|
sub_80A59A8: @ 80A59A8
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
ldr r5, _080A59E0 @ =gUnknown_2037F1B
|
|
ldrb r0, [r5]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _080A59E4 @ =0x0000ffd0
|
|
adds r0, r1
|
|
strh r0, [r4, 0x20]
|
|
ldrb r0, [r5]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x22]
|
|
ldr r1, _080A59E8 @ =sub_80A5A44
|
|
adds r0, r4, 0
|
|
bl StoreSpriteCallbackInData6
|
|
ldr r0, _080A59EC @ =sub_8074F6C
|
|
str r0, [r4, 0x1C]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A59E0: .4byte gUnknown_2037F1B
|
|
_080A59E4: .4byte 0x0000ffd0
|
|
_080A59E8: .4byte sub_80A5A44
|
|
_080A59EC: .4byte sub_8074F6C
|
|
thumb_func_end sub_80A59A8
|
|
|
|
thumb_func_start sub_80A59F0
|
|
sub_80A59F0: @ 80A59F0
|
|
push {r4-r6,lr}
|
|
adds r4, r0, 0
|
|
ldr r5, _080A5A34 @ =gUnknown_2037F1B
|
|
ldrb r0, [r5]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _080A5A38 @ =gUnknown_2037F02
|
|
ldr r2, _080A5A3C @ =0x0000ffd0
|
|
adds r0, r2
|
|
ldrh r1, [r1]
|
|
adds r0, r1
|
|
movs r6, 0
|
|
strh r0, [r4, 0x20]
|
|
ldrb r0, [r5]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x22]
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl StartSpriteAnim
|
|
strh r6, [r4, 0x2E]
|
|
strh r6, [r4, 0x30]
|
|
ldr r0, _080A5A40 @ =sub_80A5A8C
|
|
str r0, [r4, 0x1C]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A5A34: .4byte gUnknown_2037F1B
|
|
_080A5A38: .4byte gUnknown_2037F02
|
|
_080A5A3C: .4byte 0x0000ffd0
|
|
_080A5A40: .4byte sub_80A5A8C
|
|
thumb_func_end sub_80A59F0
|
|
|
|
thumb_func_start sub_80A5A44
|
|
sub_80A5A44: @ 80A5A44
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrh r0, [r4, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x8
|
|
ble _080A5A6E
|
|
movs r0, 0xC
|
|
strh r0, [r4, 0x2E]
|
|
movs r0, 0x8
|
|
strh r0, [r4, 0x30]
|
|
movs r0, 0
|
|
strh r0, [r4, 0x32]
|
|
ldr r1, _080A5A74 @ =sub_80A5A7C
|
|
adds r0, r4, 0
|
|
bl StoreSpriteCallbackInData6
|
|
ldr r0, _080A5A78 @ =sub_8074CD0
|
|
str r0, [r4, 0x1C]
|
|
_080A5A6E:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A5A74: .4byte sub_80A5A7C
|
|
_080A5A78: .4byte sub_8074CD0
|
|
thumb_func_end sub_80A5A44
|
|
|
|
thumb_func_start sub_80A5A7C
|
|
sub_80A5A7C: @ 80A5A7C
|
|
movs r1, 0
|
|
strh r1, [r0, 0x2E]
|
|
strh r1, [r0, 0x30]
|
|
ldr r1, _080A5A88 @ =sub_80A5A8C
|
|
str r1, [r0, 0x1C]
|
|
bx lr
|
|
.align 2, 0
|
|
_080A5A88: .4byte sub_80A5A8C
|
|
thumb_func_end sub_80A5A7C
|
|
|
|
thumb_func_start sub_80A5A8C
|
|
sub_80A5A8C: @ 80A5A8C
|
|
push {lr}
|
|
adds r3, r0, 0
|
|
ldrh r0, [r3, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r3, 0x2E]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1
|
|
ble _080A5AD4
|
|
movs r0, 0
|
|
strh r0, [r3, 0x2E]
|
|
movs r0, 0x3E
|
|
adds r0, r3
|
|
mov r12, r0
|
|
ldrb r2, [r0]
|
|
lsrs r1, r2, 2
|
|
movs r0, 0x1
|
|
eors r1, r0
|
|
ands r1, r0
|
|
lsls r1, 2
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
mov r1, r12
|
|
strb r0, [r1]
|
|
ldrh r0, [r3, 0x30]
|
|
adds r0, 0x1
|
|
strh r0, [r3, 0x30]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x8
|
|
ble _080A5AD4
|
|
adds r0, r3, 0
|
|
bl DestroyAnimSprite
|
|
_080A5AD4:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A5A8C
|
|
|
|
thumb_func_start sub_80A5AD8
|
|
sub_80A5AD8: @ 80A5AD8
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
ldr r6, _080A5AEC @ =gUnknown_2037F02
|
|
movs r1, 0
|
|
ldrsh r0, [r6, r1]
|
|
cmp r0, 0
|
|
bne _080A5AF4
|
|
ldr r4, _080A5AF0 @ =gUnknown_2037F1A
|
|
b _080A5AF6
|
|
.align 2, 0
|
|
_080A5AEC: .4byte gUnknown_2037F02
|
|
_080A5AF0: .4byte gUnknown_2037F1A
|
|
_080A5AF4:
|
|
ldr r4, _080A5B30 @ =gUnknown_2037F1B
|
|
_080A5AF6:
|
|
ldrb r0, [r4]
|
|
movs r1, 0
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrh r1, [r6, 0x2]
|
|
adds r0, r1
|
|
strh r0, [r5, 0x20]
|
|
ldrb r0, [r4]
|
|
movs r1, 0x1
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrh r6, [r6, 0x4]
|
|
adds r0, r6
|
|
strh r0, [r5, 0x22]
|
|
movs r0, 0
|
|
strh r0, [r5, 0x2E]
|
|
ldr r0, _080A5B34 @ =gUnknown_2037F02
|
|
ldrh r0, [r0, 0x6]
|
|
strh r0, [r5, 0x30]
|
|
ldr r0, _080A5B38 @ =sub_80A5B3C
|
|
str r0, [r5, 0x1C]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A5B30: .4byte gUnknown_2037F1B
|
|
_080A5B34: .4byte gUnknown_2037F02
|
|
_080A5B38: .4byte sub_80A5B3C
|
|
thumb_func_end sub_80A5AD8
|
|
|
|
thumb_func_start sub_80A5B3C
|
|
sub_80A5B3C: @ 80A5B3C
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
ldrh r0, [r2, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r2, 0x2E]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r3, 0x30
|
|
ldrsh r1, [r2, r3]
|
|
cmp r0, r1
|
|
ble _080A5B5C
|
|
movs r0, 0
|
|
strh r0, [r2, 0x2E]
|
|
ldrh r0, [r2, 0x22]
|
|
subs r0, 0x1
|
|
strh r0, [r2, 0x22]
|
|
_080A5B5C:
|
|
ldrh r0, [r2, 0x22]
|
|
ldrh r1, [r2, 0x2E]
|
|
subs r0, r1
|
|
strh r0, [r2, 0x22]
|
|
adds r0, r2, 0
|
|
adds r0, 0x3F
|
|
ldrb r1, [r0]
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080A5B78
|
|
adds r0, r2, 0
|
|
bl DestroyAnimSprite
|
|
_080A5B78:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A5B3C
|
|
|
|
thumb_func_start sub_80A5B7C
|
|
sub_80A5B7C: @ 80A5B7C
|
|
push {r4-r6,lr}
|
|
adds r4, r0, 0
|
|
ldr r6, _080A5BC4 @ =gUnknown_2037F1A
|
|
ldrb r0, [r6]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r5, 0
|
|
strh r0, [r4, 0x20]
|
|
ldrb r0, [r6]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
subs r0, 0xC
|
|
strh r0, [r4, 0x22]
|
|
strh r5, [r4, 0x2E]
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x30]
|
|
strh r5, [r4, 0x32]
|
|
strh r5, [r4, 0x34]
|
|
strh r5, [r4, 0x36]
|
|
subs r0, 0x42
|
|
bl sub_8073A44
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
strh r0, [r4, 0x38]
|
|
ldr r0, _080A5BC8 @ =sub_80A5BCC
|
|
str r0, [r4, 0x1C]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A5BC4: .4byte gUnknown_2037F1A
|
|
_080A5BC8: .4byte sub_80A5BCC
|
|
thumb_func_end sub_80A5B7C
|
|
|
|
thumb_func_start sub_80A5BCC
|
|
sub_80A5BCC: @ 80A5BCC
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrh r0, [r4, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r2, 0x30
|
|
ldrsh r1, [r4, r2]
|
|
cmp r0, r1
|
|
blt _080A5C38
|
|
adds r3, r4, 0
|
|
adds r3, 0x3E
|
|
ldrb r2, [r3]
|
|
lsrs r1, r2, 2
|
|
movs r0, 0x1
|
|
eors r1, r0
|
|
ands r1, r0
|
|
lsls r1, 2
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r3]
|
|
movs r1, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080A5C1E
|
|
ldrh r0, [r4, 0x36]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x36]
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080A5C1E
|
|
ldrh r1, [r4, 0x38]
|
|
lsls r1, 24
|
|
asrs r1, 24
|
|
movs r0, 0xBB
|
|
bl PlaySE12WithPanning
|
|
_080A5C1E:
|
|
movs r1, 0
|
|
strh r1, [r4, 0x2E]
|
|
ldrh r0, [r4, 0x32]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x32]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1
|
|
ble _080A5C38
|
|
strh r1, [r4, 0x32]
|
|
ldrh r0, [r4, 0x30]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x30]
|
|
_080A5C38:
|
|
adds r0, r4, 0
|
|
adds r0, 0x3F
|
|
ldrb r1, [r0]
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080A5C62
|
|
movs r1, 0x30
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x10
|
|
ble _080A5C62
|
|
adds r0, r4, 0
|
|
adds r0, 0x3E
|
|
ldrb r1, [r0]
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080A5C62
|
|
adds r0, r4, 0
|
|
bl DestroyAnimSprite
|
|
_080A5C62:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A5BCC
|
|
|
|
thumb_func_start sub_80A5C68
|
|
sub_80A5C68: @ 80A5C68
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r6, r1]
|
|
cmp r0, 0
|
|
bne _080A5CB2
|
|
ldr r4, _080A5CC8 @ =gUnknown_2037F1A
|
|
ldrb r0, [r4]
|
|
movs r1, 0
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
ldr r5, _080A5CCC @ =gUnknown_2037F02
|
|
lsrs r0, 24
|
|
ldrh r1, [r5]
|
|
adds r0, r1
|
|
strh r0, [r6, 0x20]
|
|
ldrb r0, [r4]
|
|
movs r1, 0x1
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrh r5, [r5, 0x2]
|
|
adds r0, r5
|
|
strh r0, [r6, 0x22]
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A5CAC
|
|
ldrh r0, [r6, 0x22]
|
|
adds r0, 0xA
|
|
strh r0, [r6, 0x22]
|
|
_080A5CAC:
|
|
ldrh r0, [r6, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r6, 0x2E]
|
|
_080A5CB2:
|
|
ldr r0, _080A5CCC @ =gUnknown_2037F02
|
|
ldrh r1, [r0, 0xE]
|
|
ldr r0, _080A5CD0 @ =0x0000ffff
|
|
cmp r1, r0
|
|
bne _080A5CC2
|
|
adds r0, r6, 0
|
|
bl DestroyAnimSprite
|
|
_080A5CC2:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A5CC8: .4byte gUnknown_2037F1A
|
|
_080A5CCC: .4byte gUnknown_2037F02
|
|
_080A5CD0: .4byte 0x0000ffff
|
|
thumb_func_end sub_80A5C68
|
|
|
|
thumb_func_start sub_80A5CD4
|
|
sub_80A5CD4: @ 80A5CD4
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
ldr r1, _080A5CF4 @ =gTasks
|
|
lsls r0, r2, 2
|
|
adds r0, r2
|
|
lsls r0, 3
|
|
adds r4, r0, r1
|
|
movs r1, 0xC
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x1
|
|
bne _080A5D00
|
|
ldr r1, _080A5CF8 @ =gUnknown_2037F02
|
|
ldr r0, _080A5CFC @ =0x0000ffff
|
|
strh r0, [r1, 0xE]
|
|
b _080A5D3E
|
|
.align 2, 0
|
|
_080A5CF4: .4byte gTasks
|
|
_080A5CF8: .4byte gUnknown_2037F02
|
|
_080A5CFC: .4byte 0x0000ffff
|
|
_080A5D00:
|
|
cmp r0, 0x2
|
|
bne _080A5D0C
|
|
adds r0, r2, 0
|
|
bl DestroyAnimVisualTask
|
|
b _080A5D44
|
|
_080A5D0C:
|
|
ldrh r0, [r4, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x8]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x4
|
|
bne _080A5D44
|
|
movs r0, 0
|
|
strh r0, [r4, 0x8]
|
|
ldrh r2, [r4, 0xA]
|
|
adds r2, 0x1
|
|
strh r2, [r4, 0xA]
|
|
lsls r1, r2, 8
|
|
movs r0, 0x10
|
|
subs r0, r2
|
|
orrs r1, r0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
movs r1, 0xA
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x10
|
|
bne _080A5D44
|
|
_080A5D3E:
|
|
ldrh r0, [r4, 0xC]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0xC]
|
|
_080A5D44:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A5CD4
|
|
|
|
thumb_func_start sub_80A5D4C
|
|
sub_80A5D4C: @ 80A5D4C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0
|
|
bl sub_8075114
|
|
adds r2, r4, 0
|
|
adds r2, 0x2C
|
|
ldrb r0, [r2]
|
|
movs r1, 0x40
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r0, _080A5D74 @ =gUnknown_2037F02
|
|
ldrh r0, [r0, 0x4]
|
|
strh r0, [r4, 0x2E]
|
|
ldr r0, _080A5D78 @ =sub_80A5D7C
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A5D74: .4byte gUnknown_2037F02
|
|
_080A5D78: .4byte sub_80A5D7C
|
|
thumb_func_end sub_80A5D4C
|
|
|
|
thumb_func_start sub_80A5D7C
|
|
sub_80A5D7C: @ 80A5D7C
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
ldrh r1, [r5, 0x2E]
|
|
movs r2, 0x2E
|
|
ldrsh r0, [r5, r2]
|
|
cmp r0, 0
|
|
beq _080A5D90
|
|
subs r0, r1, 0x1
|
|
strh r0, [r5, 0x2E]
|
|
b _080A5DCC
|
|
_080A5D90:
|
|
adds r2, r5, 0
|
|
adds r2, 0x2C
|
|
ldrb r1, [r2]
|
|
movs r0, 0x41
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
movs r0, 0x1E
|
|
strh r0, [r5, 0x2E]
|
|
ldr r4, _080A5DD4 @ =gUnknown_2037F1A
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x32]
|
|
ldrb r0, [r4]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x36]
|
|
ldr r0, _080A5DD8 @ =sub_8075590
|
|
str r0, [r5, 0x1C]
|
|
ldr r1, _080A5DDC @ =DestroyAnimSprite
|
|
adds r0, r5, 0
|
|
bl StoreSpriteCallbackInData6
|
|
_080A5DCC:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A5DD4: .4byte gUnknown_2037F1A
|
|
_080A5DD8: .4byte sub_8075590
|
|
_080A5DDC: .4byte DestroyAnimSprite
|
|
thumb_func_end sub_80A5D7C
|
|
|
|
thumb_func_start sub_80A5DE0
|
|
sub_80A5DE0: @ 80A5DE0
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r1, _080A5E30 @ =gTasks
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
adds r4, r0, r1
|
|
ldrh r0, [r4, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x8]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x4
|
|
bne _080A5E28
|
|
movs r0, 0
|
|
strh r0, [r4, 0x8]
|
|
ldrh r1, [r4, 0xA]
|
|
adds r1, 0x1
|
|
strh r1, [r4, 0xA]
|
|
movs r0, 0x10
|
|
subs r0, r1
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
movs r1, 0xA
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x10
|
|
bne _080A5E28
|
|
adds r0, r5, 0
|
|
bl DestroyAnimVisualTask
|
|
_080A5E28:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A5E30: .4byte gTasks
|
|
thumb_func_end sub_80A5DE0
|
|
|
|
thumb_func_start sub_80A5E34
|
|
sub_80A5E34: @ 80A5E34
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
movs r4, 0
|
|
ldr r0, _080A5E9C @ =gBattlersCount
|
|
ldrb r0, [r0]
|
|
cmp r4, r0
|
|
bcs _080A5E90
|
|
ldr r6, _080A5EA0 @ =gUnknown_2037F02
|
|
ldr r5, _080A5EA4 @ =gUnknown_3004FF0
|
|
_080A5E48:
|
|
movs r1, 0
|
|
ldrsh r0, [r6, r1]
|
|
cmp r0, 0x1
|
|
bne _080A5E64
|
|
adds r0, r4, 0
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080A5E64
|
|
adds r0, r4, r5
|
|
ldrb r0, [r0]
|
|
bl SetHealthboxSpriteInvisible
|
|
_080A5E64:
|
|
movs r1, 0x2
|
|
ldrsh r0, [r6, r1]
|
|
cmp r0, 0x1
|
|
bne _080A5E82
|
|
adds r0, r4, 0
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _080A5E82
|
|
adds r0, r4, r5
|
|
ldrb r0, [r0]
|
|
bl SetHealthboxSpriteInvisible
|
|
_080A5E82:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r0, _080A5E9C @ =gBattlersCount
|
|
ldrb r0, [r0]
|
|
cmp r4, r0
|
|
bcc _080A5E48
|
|
_080A5E90:
|
|
adds r0, r7, 0
|
|
bl DestroyAnimVisualTask
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A5E9C: .4byte gBattlersCount
|
|
_080A5EA0: .4byte gUnknown_2037F02
|
|
_080A5EA4: .4byte gUnknown_3004FF0
|
|
thumb_func_end sub_80A5E34
|
|
|
|
thumb_func_start sub_80A5EA8
|
|
sub_80A5EA8: @ 80A5EA8
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
movs r4, 0
|
|
b _080A5EC2
|
|
_080A5EB2:
|
|
ldr r0, _080A5ED8 @ =gUnknown_3004FF0
|
|
adds r0, r4, r0
|
|
ldrb r0, [r0]
|
|
bl SetHealthboxSpriteVisible
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
_080A5EC2:
|
|
ldr r0, _080A5EDC @ =gBattlersCount
|
|
ldrb r0, [r0]
|
|
cmp r4, r0
|
|
bcc _080A5EB2
|
|
adds r0, r5, 0
|
|
bl DestroyAnimVisualTask
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A5ED8: .4byte gUnknown_3004FF0
|
|
_080A5EDC: .4byte gBattlersCount
|
|
thumb_func_end sub_80A5EA8
|
|
|
|
thumb_func_start sub_80A5EE0
|
|
sub_80A5EE0: @ 80A5EE0
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A5EF6
|
|
movs r0, 0x30
|
|
strh r0, [r4, 0x20]
|
|
movs r0, 0x28
|
|
b _080A5EFE
|
|
_080A5EF6:
|
|
ldr r0, _080A5F20 @ =gUnknown_2037F02
|
|
ldrh r1, [r0]
|
|
strh r1, [r4, 0x20]
|
|
ldrh r0, [r0, 0x2]
|
|
_080A5EFE:
|
|
strh r0, [r4, 0x22]
|
|
ldrb r1, [r4, 0x1]
|
|
movs r0, 0x3F
|
|
ands r0, r1
|
|
strb r0, [r4, 0x1]
|
|
ldrb r0, [r4, 0x3]
|
|
movs r1, 0xC0
|
|
orrs r0, r1
|
|
strb r0, [r4, 0x3]
|
|
movs r0, 0
|
|
strh r0, [r4, 0x2E]
|
|
ldr r0, _080A5F24 @ =sub_80A5F28
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A5F20: .4byte gUnknown_2037F02
|
|
_080A5F24: .4byte sub_80A5F28
|
|
thumb_func_end sub_80A5EE0
|
|
|
|
thumb_func_start sub_80A5F28
|
|
sub_80A5F28: @ 80A5F28
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
movs r2, 0x2E
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, 0
|
|
beq _080A5F3A
|
|
adds r0, r1, 0
|
|
bl DestroyAnimSprite
|
|
_080A5F3A:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A5F28
|
|
|
|
thumb_func_start sub_80A5F40
|
|
sub_80A5F40: @ 80A5F40
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldr r0, _080A5F78 @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
ldr r2, _080A5F7C @ =gUnknown_2037F02
|
|
lsrs r0, 24
|
|
ldrh r1, [r2]
|
|
adds r0, r1
|
|
movs r1, 0
|
|
strh r0, [r4, 0x20]
|
|
ldrh r0, [r2, 0x2]
|
|
strh r0, [r4, 0x22]
|
|
strh r1, [r4, 0x2E]
|
|
strh r1, [r4, 0x30]
|
|
strh r1, [r4, 0x32]
|
|
strh r1, [r4, 0x34]
|
|
movs r0, 0x1
|
|
strh r0, [r4, 0x36]
|
|
ldr r0, _080A5F80 @ =sub_80A5F84
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A5F78: .4byte gUnknown_2037F1A
|
|
_080A5F7C: .4byte gUnknown_2037F02
|
|
_080A5F80: .4byte sub_80A5F84
|
|
thumb_func_end sub_80A5F40
|
|
|
|
thumb_func_start sub_80A5F84
|
|
sub_80A5F84: @ 80A5F84
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
ldrh r0, [r1, 0x30]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x30]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1
|
|
ble _080A5FAE
|
|
movs r0, 0
|
|
strh r0, [r1, 0x30]
|
|
ldrh r2, [r1, 0x32]
|
|
movs r3, 0x32
|
|
ldrsh r0, [r1, r3]
|
|
cmp r0, 0x77
|
|
bgt _080A5FAE
|
|
ldrh r0, [r1, 0x22]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x22]
|
|
adds r0, r2, 0x1
|
|
strh r0, [r1, 0x32]
|
|
_080A5FAE:
|
|
movs r2, 0x2E
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, 0
|
|
beq _080A5FBC
|
|
adds r0, r1, 0
|
|
bl DestroyAnimSprite
|
|
_080A5FBC:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A5F84
|
|
|
|
thumb_func_start sub_80A5FC0
|
|
sub_80A5FC0: @ 80A5FC0
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0xC
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
movs r4, 0
|
|
str r4, [sp]
|
|
str r4, [sp, 0x4]
|
|
str r4, [sp, 0x8]
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl sub_8075BE8
|
|
mov r8, r0
|
|
ldr r0, _080A6090 @ =0x0000ffff
|
|
mov r1, r8
|
|
ands r1, r0
|
|
mov r8, r1
|
|
ldr r0, _080A6094 @ =gTasks
|
|
mov r9, r0
|
|
lsls r5, r7, 2
|
|
adds r5, r7
|
|
lsls r5, 3
|
|
adds r6, r5, r0
|
|
strh r4, [r6, 0x8]
|
|
strh r4, [r6, 0xA]
|
|
strh r4, [r6, 0xC]
|
|
strh r1, [r6, 0xE]
|
|
strh r4, [r6, 0x10]
|
|
strh r4, [r6, 0x12]
|
|
strh r4, [r6, 0x14]
|
|
movs r0, 0xD
|
|
strh r0, [r6, 0x16]
|
|
movs r0, 0xE
|
|
strh r0, [r6, 0x18]
|
|
movs r0, 0xF
|
|
strh r0, [r6, 0x1A]
|
|
movs r0, 0x1
|
|
movs r1, 0x1
|
|
movs r2, 0x1
|
|
movs r3, 0x1
|
|
bl sub_8075CB8
|
|
mov r10, r0
|
|
mov r1, r8
|
|
orrs r1, r0
|
|
mov r8, r1
|
|
movs r0, 0x8
|
|
add r9, r0
|
|
add r5, r9
|
|
adds r0, r5, 0
|
|
adds r0, 0x1C
|
|
adds r5, 0x1E
|
|
adds r1, r5, 0
|
|
mov r2, r8
|
|
bl sub_80765C0
|
|
ldr r0, _080A6098 @ =0x000027d2
|
|
bl IndexOfSpritePaletteTag
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r4, 0x80
|
|
lsls r4, 9
|
|
adds r1, r4, 0
|
|
lsls r1, r0
|
|
mov r0, r10
|
|
orrs r0, r1
|
|
mov r10, r0
|
|
ldr r0, _080A609C @ =0x000027d3
|
|
bl IndexOfSpritePaletteTag
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r4, r0
|
|
mov r1, r10
|
|
orrs r4, r1
|
|
ldr r0, _080A60A0 @ =0x00007fbb
|
|
str r0, [sp]
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0x10
|
|
bl BeginNormalPaletteFade
|
|
ldr r1, _080A60A4 @ =sub_80A60A8
|
|
str r1, [r6]
|
|
adds r0, r7, 0
|
|
bl _call_via_r1
|
|
add sp, 0xC
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A6090: .4byte 0x0000ffff
|
|
_080A6094: .4byte gTasks
|
|
_080A6098: .4byte 0x000027d2
|
|
_080A609C: .4byte 0x000027d3
|
|
_080A60A0: .4byte 0x00007fbb
|
|
_080A60A4: .4byte sub_80A60A8
|
|
thumb_func_end sub_80A5FC0
|
|
|
|
thumb_func_start sub_80A60A8
|
|
sub_80A60A8: @ 80A60A8
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
lsls r0, r2, 2
|
|
adds r0, r2
|
|
lsls r0, 3
|
|
ldr r1, _080A60D0 @ =gTasks
|
|
adds r4, r0, r1
|
|
movs r0, 0x8
|
|
ldrsh r1, [r4, r0]
|
|
cmp r1, 0x1
|
|
beq _080A6194
|
|
cmp r1, 0x1
|
|
bgt _080A60D4
|
|
cmp r1, 0
|
|
beq _080A60E2
|
|
b _080A6232
|
|
.align 2, 0
|
|
_080A60D0: .4byte gTasks
|
|
_080A60D4:
|
|
cmp r1, 0x2
|
|
bne _080A60DA
|
|
b _080A61EC
|
|
_080A60DA:
|
|
cmp r1, 0x3
|
|
bne _080A60E0
|
|
b _080A6220
|
|
_080A60E0:
|
|
b _080A6232
|
|
_080A60E2:
|
|
ldrh r0, [r4, 0xA]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0xA]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bgt _080A60F0
|
|
b _080A6232
|
|
_080A60F0:
|
|
strh r1, [r4, 0xA]
|
|
ldrh r0, [r4, 0xC]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0xC]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0xF
|
|
bgt _080A613C
|
|
ldrh r0, [r4, 0x16]
|
|
ldrh r1, [r4, 0x10]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x10]
|
|
ldrh r2, [r4, 0x18]
|
|
ldrh r3, [r4, 0x12]
|
|
adds r2, r3
|
|
strh r2, [r4, 0x12]
|
|
ldrh r1, [r4, 0x1A]
|
|
ldrh r5, [r4, 0x14]
|
|
adds r1, r5
|
|
strh r1, [r4, 0x14]
|
|
lsls r0, 16
|
|
asrs r0, 19
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
lsls r2, 16
|
|
asrs r2, 19
|
|
lsls r2, 16
|
|
lsls r1, 16
|
|
asrs r1, 19
|
|
lsls r1, 16
|
|
lsrs r2, 11
|
|
orrs r0, r2
|
|
lsrs r1, 6
|
|
orrs r0, r1
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
mov r12, r0
|
|
b _080A6146
|
|
_080A613C:
|
|
ldr r7, _080A618C @ =0x00007fbb
|
|
mov r12, r7
|
|
ldrh r0, [r4, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x8]
|
|
_080A6146:
|
|
movs r2, 0x1
|
|
movs r3, 0
|
|
movs r1, 0
|
|
_080A614C:
|
|
movs r5, 0xE
|
|
ldrsh r0, [r4, r5]
|
|
ands r0, r2
|
|
lsls r5, r2, 17
|
|
adds r6, r3, 0
|
|
adds r6, 0x10
|
|
adds r1, 0x1
|
|
mov r8, r1
|
|
cmp r0, 0
|
|
beq _080A6178
|
|
movs r1, 0x1
|
|
ldr r2, _080A6190 @ =gPlttBufferFaded
|
|
_080A6164:
|
|
adds r0, r3, r1
|
|
lsls r0, 1
|
|
adds r0, r2
|
|
mov r7, r12
|
|
strh r7, [r0]
|
|
adds r0, r1, 0x1
|
|
lsls r0, 16
|
|
lsrs r1, r0, 16
|
|
cmp r1, 0xF
|
|
bls _080A6164
|
|
_080A6178:
|
|
lsrs r2, r5, 16
|
|
lsls r0, r6, 16
|
|
lsrs r3, r0, 16
|
|
mov r1, r8
|
|
lsls r0, r1, 16
|
|
lsrs r1, r0, 16
|
|
cmp r1, 0xF
|
|
bls _080A614C
|
|
b _080A6232
|
|
.align 2, 0
|
|
_080A618C: .4byte 0x00007fbb
|
|
_080A6190: .4byte gPlttBufferFaded
|
|
_080A6194:
|
|
ldr r0, _080A61DC @ =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080A6232
|
|
movs r2, 0
|
|
ldr r3, _080A61E0 @ =gSprites
|
|
movs r5, 0x14
|
|
adds r5, r3
|
|
mov r12, r5
|
|
ldr r7, _080A61E4 @ =gUnknown_83E3734
|
|
mov r8, r7
|
|
ldr r6, _080A61E8 @ =gUnknown_83E3764
|
|
movs r5, 0x1
|
|
_080A61B2:
|
|
lsls r0, r2, 4
|
|
adds r0, r2
|
|
lsls r1, r0, 2
|
|
mov r7, r12
|
|
adds r0, r1, r7
|
|
ldr r0, [r0]
|
|
cmp r0, r8
|
|
beq _080A61C6
|
|
cmp r0, r6
|
|
bne _080A61CA
|
|
_080A61C6:
|
|
adds r0, r1, r3
|
|
strh r5, [r0, 0x2E]
|
|
_080A61CA:
|
|
adds r0, r2, 0x1
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0x3F
|
|
bls _080A61B2
|
|
movs r0, 0
|
|
strh r0, [r4, 0xA]
|
|
b _080A6214
|
|
.align 2, 0
|
|
_080A61DC: .4byte gPaletteFade
|
|
_080A61E0: .4byte gSprites
|
|
_080A61E4: .4byte gUnknown_83E3734
|
|
_080A61E8: .4byte gUnknown_83E3764
|
|
_080A61EC:
|
|
ldrh r0, [r4, 0xA]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0xA]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1E
|
|
ble _080A6232
|
|
movs r1, 0x24
|
|
ldrsh r0, [r4, r1]
|
|
movs r2, 0x26
|
|
ldrsh r1, [r4, r2]
|
|
bl sub_80765C8
|
|
ldr r1, _080A621C @ =0x00007fbb
|
|
str r1, [sp]
|
|
movs r1, 0
|
|
movs r2, 0x10
|
|
movs r3, 0
|
|
bl BeginNormalPaletteFade
|
|
_080A6214:
|
|
ldrh r0, [r4, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x8]
|
|
b _080A6232
|
|
.align 2, 0
|
|
_080A621C: .4byte 0x00007fbb
|
|
_080A6220:
|
|
ldr r0, _080A6240 @ =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080A6232
|
|
adds r0, r2, 0
|
|
bl DestroyAnimVisualTask
|
|
_080A6232:
|
|
add sp, 0x4
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A6240: .4byte gPaletteFade
|
|
thumb_func_end sub_80A60A8
|
|
|
|
thumb_func_start sub_80A6244
|
|
sub_80A6244: @ 80A6244
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
ldr r6, _080A62C8 @ =gUnknown_2037F02
|
|
movs r1, 0x4
|
|
ldrsh r0, [r6, r1]
|
|
cmp r0, 0x1
|
|
bgt _080A6256
|
|
movs r0, 0x2
|
|
strh r0, [r6, 0x4]
|
|
_080A6256:
|
|
movs r1, 0x4
|
|
ldrsh r0, [r6, r1]
|
|
cmp r0, 0x7F
|
|
ble _080A6262
|
|
movs r0, 0x7F
|
|
strh r0, [r6, 0x4]
|
|
_080A6262:
|
|
movs r0, 0
|
|
strh r0, [r5, 0x2E]
|
|
ldrh r0, [r6, 0x4]
|
|
strh r0, [r5, 0x30]
|
|
ldr r4, _080A62CC @ =gUnknown_2037F1B
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrh r1, [r6]
|
|
adds r0, r1
|
|
strh r0, [r5, 0x20]
|
|
ldrb r0, [r4]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrh r6, [r6, 0x2]
|
|
adds r0, r6
|
|
strh r0, [r5, 0x22]
|
|
ldrh r1, [r5, 0x20]
|
|
strh r1, [r5, 0x3A]
|
|
strh r0, [r5, 0x3C]
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A62D4
|
|
ldrb r1, [r5, 0x3]
|
|
movs r0, 0x3F
|
|
negs r0, r0
|
|
ands r0, r1
|
|
movs r1, 0x10
|
|
orrs r0, r1
|
|
strb r0, [r5, 0x3]
|
|
ldrh r0, [r5, 0x20]
|
|
adds r0, 0x28
|
|
strh r0, [r5, 0x20]
|
|
ldrh r4, [r5, 0x22]
|
|
adds r4, 0x14
|
|
strh r4, [r5, 0x22]
|
|
lsls r0, 7
|
|
strh r0, [r5, 0x32]
|
|
movs r0, 0x30
|
|
ldrsh r1, [r5, r0]
|
|
ldr r0, _080A62D0 @ =0xffffec00
|
|
b _080A62FA
|
|
.align 2, 0
|
|
_080A62C8: .4byte gUnknown_2037F02
|
|
_080A62CC: .4byte gUnknown_2037F1B
|
|
_080A62D0: .4byte 0xffffec00
|
|
_080A62D4:
|
|
ldr r0, _080A6314 @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080A631C
|
|
ldrh r0, [r5, 0x20]
|
|
subs r0, 0x28
|
|
strh r0, [r5, 0x20]
|
|
ldrh r4, [r5, 0x22]
|
|
adds r4, 0x14
|
|
strh r4, [r5, 0x22]
|
|
lsls r0, 7
|
|
strh r0, [r5, 0x32]
|
|
movs r0, 0x30
|
|
ldrsh r1, [r5, r0]
|
|
movs r0, 0xA0
|
|
lsls r0, 5
|
|
_080A62FA:
|
|
bl __divsi3
|
|
strh r0, [r5, 0x34]
|
|
lsls r4, 7
|
|
strh r4, [r5, 0x36]
|
|
movs r0, 0x30
|
|
ldrsh r1, [r5, r0]
|
|
ldr r0, _080A6318 @ =0xfffff600
|
|
bl __divsi3
|
|
strh r0, [r5, 0x38]
|
|
b _080A6358
|
|
.align 2, 0
|
|
_080A6314: .4byte gUnknown_2037F1A
|
|
_080A6318: .4byte 0xfffff600
|
|
_080A631C:
|
|
ldrh r0, [r5, 0x20]
|
|
adds r0, 0x28
|
|
strh r0, [r5, 0x20]
|
|
ldrh r4, [r5, 0x22]
|
|
subs r4, 0x14
|
|
strh r4, [r5, 0x22]
|
|
lsls r0, 7
|
|
strh r0, [r5, 0x32]
|
|
movs r0, 0x30
|
|
ldrsh r1, [r5, r0]
|
|
ldr r0, _080A6364 @ =0xffffec00
|
|
bl __divsi3
|
|
strh r0, [r5, 0x34]
|
|
lsls r4, 7
|
|
strh r4, [r5, 0x36]
|
|
movs r0, 0x30
|
|
ldrsh r1, [r5, r0]
|
|
movs r0, 0xA0
|
|
lsls r0, 4
|
|
bl __divsi3
|
|
strh r0, [r5, 0x38]
|
|
ldrb r1, [r5, 0x3]
|
|
movs r0, 0x3F
|
|
negs r0, r0
|
|
ands r0, r1
|
|
movs r1, 0x30
|
|
orrs r0, r1
|
|
strb r0, [r5, 0x3]
|
|
_080A6358:
|
|
ldr r0, _080A6368 @ =sub_80A636C
|
|
str r0, [r5, 0x1C]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A6364: .4byte 0xffffec00
|
|
_080A6368: .4byte sub_80A636C
|
|
thumb_func_end sub_80A6244
|
|
|
|
thumb_func_start sub_80A636C
|
|
sub_80A636C: @ 80A636C
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
ldrh r0, [r2, 0x34]
|
|
ldrh r1, [r2, 0x32]
|
|
adds r0, r1
|
|
strh r0, [r2, 0x32]
|
|
ldrh r1, [r2, 0x38]
|
|
ldrh r3, [r2, 0x36]
|
|
adds r1, r3
|
|
strh r1, [r2, 0x36]
|
|
lsls r0, 16
|
|
asrs r0, 23
|
|
strh r0, [r2, 0x20]
|
|
lsls r1, 16
|
|
asrs r1, 23
|
|
strh r1, [r2, 0x22]
|
|
ldrh r0, [r2, 0x30]
|
|
subs r0, 0x1
|
|
strh r0, [r2, 0x30]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1
|
|
bne _080A63A2
|
|
ldrh r0, [r2, 0x3A]
|
|
strh r0, [r2, 0x20]
|
|
ldrh r0, [r2, 0x3C]
|
|
strh r0, [r2, 0x22]
|
|
_080A63A2:
|
|
movs r1, 0x30
|
|
ldrsh r0, [r2, r1]
|
|
cmp r0, 0
|
|
bne _080A63B0
|
|
adds r0, r2, 0
|
|
bl DestroyAnimSprite
|
|
_080A63B0:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A636C
|
|
|
|
thumb_func_start sub_80A63B4
|
|
sub_80A63B4: @ 80A63B4
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
lsls r0, 2
|
|
add r0, r8
|
|
lsls r0, 3
|
|
ldr r1, _080A6444 @ =gTasks
|
|
adds r6, r0, r1
|
|
movs r0, 0
|
|
bl GetAnimBankSpriteId
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r6, 0x8]
|
|
ldr r0, _080A6448 @ =0x00002771
|
|
bl AllocSpritePalette
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r6, 0xA]
|
|
movs r1, 0xA
|
|
ldrsh r0, [r6, r1]
|
|
lsls r0, 20
|
|
movs r1, 0x80
|
|
lsls r1, 17
|
|
adds r0, r1
|
|
lsrs r3, r0, 16
|
|
ldr r2, _080A644C @ =gSprites
|
|
movs r0, 0x8
|
|
ldrsh r1, [r6, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0x5]
|
|
lsrs r0, 4
|
|
adds r0, 0x10
|
|
lsls r4, r0, 4
|
|
movs r5, 0x1
|
|
ldr r2, _080A6450 @ =gPlttBufferUnfaded
|
|
_080A640C:
|
|
adds r1, r3, r5
|
|
lsls r1, 1
|
|
adds r1, r2
|
|
adds r0, r4, r5
|
|
lsls r0, 1
|
|
adds r0, r2
|
|
ldrh r0, [r0]
|
|
strh r0, [r1]
|
|
adds r0, r5, 0x1
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
cmp r5, 0xF
|
|
bls _080A640C
|
|
adds r0, r3, 0
|
|
movs r1, 0x10
|
|
movs r2, 0xB
|
|
movs r3, 0
|
|
bl BlendPalette
|
|
movs r0, 0
|
|
strh r0, [r6, 0xE]
|
|
movs r5, 0
|
|
ldr r7, _080A644C @ =gSprites
|
|
movs r1, 0x1C
|
|
adds r1, r7
|
|
mov r9, r1
|
|
b _080A6488
|
|
.align 2, 0
|
|
_080A6444: .4byte gTasks
|
|
_080A6448: .4byte 0x00002771
|
|
_080A644C: .4byte gSprites
|
|
_080A6450: .4byte gPlttBufferUnfaded
|
|
_080A6454:
|
|
lsls r2, r0, 4
|
|
adds r2, r0
|
|
lsls r2, 2
|
|
adds r4, r2, r7
|
|
ldrb r1, [r6, 0xA]
|
|
lsls r1, 4
|
|
ldrb r3, [r4, 0x5]
|
|
movs r0, 0xF
|
|
ands r0, r3
|
|
orrs r0, r1
|
|
strb r0, [r4, 0x5]
|
|
movs r0, 0
|
|
strh r0, [r4, 0x2E]
|
|
lsls r0, r5, 7
|
|
strh r0, [r4, 0x30]
|
|
mov r0, r8
|
|
strh r0, [r4, 0x32]
|
|
add r2, r9
|
|
ldr r0, _080A64BC @ =sub_80A653C
|
|
str r0, [r2]
|
|
ldrh r0, [r6, 0xE]
|
|
adds r0, 0x1
|
|
strh r0, [r6, 0xE]
|
|
adds r0, r5, 0x1
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
_080A6488:
|
|
cmp r5, 0x1
|
|
bhi _080A649A
|
|
movs r0, 0
|
|
bl duplicate_obj_of_side_rel2move_in_transparent_mode
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0
|
|
bge _080A6454
|
|
_080A649A:
|
|
ldr r0, _080A64C0 @ =sub_80A64E0
|
|
str r0, [r6]
|
|
ldr r0, _080A64C4 @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl sub_80768B0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _080A64C8
|
|
movs r1, 0x80
|
|
lsls r1, 2
|
|
movs r0, 0
|
|
bl ClearGpuRegBits
|
|
b _080A64D2
|
|
.align 2, 0
|
|
_080A64BC: .4byte sub_80A653C
|
|
_080A64C0: .4byte sub_80A64E0
|
|
_080A64C4: .4byte gUnknown_2037F1A
|
|
_080A64C8:
|
|
movs r1, 0x80
|
|
lsls r1, 3
|
|
movs r0, 0
|
|
bl ClearGpuRegBits
|
|
_080A64D2:
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A63B4
|
|
|
|
thumb_func_start sub_80A64E0
|
|
sub_80A64E0: @ 80A64E0
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
ldr r1, _080A6514 @ =gTasks
|
|
adds r0, r1
|
|
movs r1, 0xE
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0
|
|
bne _080A6532
|
|
ldr r0, _080A6518 @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl sub_80768B0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _080A651C
|
|
movs r1, 0x80
|
|
lsls r1, 2
|
|
movs r0, 0
|
|
bl SetGpuRegBits
|
|
b _080A6526
|
|
.align 2, 0
|
|
_080A6514: .4byte gTasks
|
|
_080A6518: .4byte gUnknown_2037F1A
|
|
_080A651C:
|
|
movs r1, 0x80
|
|
lsls r1, 3
|
|
movs r0, 0
|
|
bl SetGpuRegBits
|
|
_080A6526:
|
|
ldr r0, _080A6538 @ =0x00002771
|
|
bl FreeSpritePaletteByTag
|
|
adds r0, r4, 0
|
|
bl DestroyAnimVisualTask
|
|
_080A6532:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A6538: .4byte 0x00002771
|
|
thumb_func_end sub_80A64E0
|
|
|
|
thumb_func_start sub_80A653C
|
|
sub_80A653C: @ 80A653C
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
ldrh r0, [r5, 0x34]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x34]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1
|
|
ble _080A6558
|
|
movs r0, 0
|
|
strh r0, [r5, 0x34]
|
|
ldrh r0, [r5, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x2E]
|
|
_080A6558:
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0x40
|
|
ble _080A6580
|
|
ldr r2, _080A657C @ =gTasks
|
|
movs r0, 0x32
|
|
ldrsh r1, [r5, r0]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r0, r2
|
|
ldrh r1, [r0, 0xE]
|
|
subs r1, 0x1
|
|
strh r1, [r0, 0xE]
|
|
adds r0, r5, 0
|
|
bl obj_delete_but_dont_free_vram
|
|
b _080A65C2
|
|
.align 2, 0
|
|
_080A657C: .4byte gTasks
|
|
_080A6580:
|
|
ldr r4, _080A65C8 @ =gUnknown_825E074
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r5, r1]
|
|
lsls r0, 1
|
|
adds r0, r4
|
|
movs r2, 0
|
|
ldrsh r0, [r0, r2]
|
|
movs r1, 0x6
|
|
bl __divsi3
|
|
strh r0, [r5, 0x36]
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r5, r1]
|
|
lsls r0, 1
|
|
adds r0, r4
|
|
movs r2, 0
|
|
ldrsh r0, [r0, r2]
|
|
movs r1, 0xD
|
|
bl __divsi3
|
|
strh r0, [r5, 0x38]
|
|
ldrh r1, [r5, 0x30]
|
|
adds r1, r0
|
|
movs r0, 0xFF
|
|
ands r1, r0
|
|
strh r1, [r5, 0x30]
|
|
movs r1, 0x30
|
|
ldrsh r0, [r5, r1]
|
|
movs r2, 0x36
|
|
ldrsh r1, [r5, r2]
|
|
bl Sin
|
|
strh r0, [r5, 0x24]
|
|
_080A65C2:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A65C8: .4byte gUnknown_825E074
|
|
thumb_func_end sub_80A653C
|
|
|
|
thumb_func_start sub_80A65CC
|
|
sub_80A65CC: @ 80A65CC
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldr r1, _080A65E0 @ =DestroyAnimSprite
|
|
bl StoreSpriteCallbackInData6
|
|
ldr r0, _080A65E4 @ =sub_8074F6C
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A65E0: .4byte DestroyAnimSprite
|
|
_080A65E4: .4byte sub_8074F6C
|
|
thumb_func_end sub_80A65CC
|
|
|
|
thumb_func_start sub_80A65E8
|
|
sub_80A65E8: @ 80A65E8
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
ldr r4, _080A6698 @ =gUnknown_83E3898
|
|
ldrh r0, [r4]
|
|
bl IndexOfSpritePaletteTag
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
cmp r3, 0xFF
|
|
beq _080A662C
|
|
lsls r0, r3, 20
|
|
movs r1, 0x80
|
|
lsls r1, 17
|
|
adds r0, r1
|
|
lsrs r3, r0, 16
|
|
movs r2, 0x1
|
|
ldr r5, _080A669C @ =gPlttBufferFaded
|
|
_080A6614:
|
|
adds r1, r3, r2
|
|
lsls r1, 1
|
|
adds r1, r5
|
|
lsls r0, r2, 1
|
|
adds r0, r4
|
|
ldrh r0, [r0]
|
|
strh r0, [r1]
|
|
adds r0, r2, 0x1
|
|
lsls r0, 16
|
|
lsrs r2, r0, 16
|
|
cmp r2, 0x5
|
|
bls _080A6614
|
|
_080A662C:
|
|
movs r4, 0x1
|
|
ldr r0, _080A6698 @ =gUnknown_83E3898
|
|
mov r8, r0
|
|
_080A6632:
|
|
lsls r0, r4, 1
|
|
adds r0, r4
|
|
lsls r5, r0, 2
|
|
mov r1, r8
|
|
adds r0, r5, r1
|
|
ldrh r0, [r0]
|
|
bl AllocSpritePalette
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
adds r4, 0x1
|
|
mov r12, r4
|
|
cmp r3, 0xFF
|
|
beq _080A667A
|
|
lsls r0, r3, 20
|
|
movs r1, 0x80
|
|
lsls r1, 17
|
|
adds r0, r1
|
|
lsrs r3, r0, 16
|
|
movs r2, 0x1
|
|
ldr r7, _080A669C @ =gPlttBufferFaded
|
|
ldr r6, _080A6698 @ =gUnknown_83E3898
|
|
adds r4, r5, 0
|
|
_080A6660:
|
|
adds r1, r3, r2
|
|
lsls r1, 1
|
|
adds r1, r7
|
|
lsls r0, r2, 1
|
|
adds r0, r4
|
|
adds r0, r6
|
|
ldrh r0, [r0]
|
|
strh r0, [r1]
|
|
adds r0, r2, 0x1
|
|
lsls r0, 16
|
|
lsrs r2, r0, 16
|
|
cmp r2, 0x5
|
|
bls _080A6660
|
|
_080A667A:
|
|
mov r1, r12
|
|
lsls r0, r1, 16
|
|
lsrs r4, r0, 16
|
|
cmp r4, 0x3
|
|
bls _080A6632
|
|
mov r0, r9
|
|
bl DestroyAnimVisualTask
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A6698: .4byte gUnknown_83E3898
|
|
_080A669C: .4byte gPlttBufferFaded
|
|
thumb_func_end sub_80A65E8
|
|
|
|
thumb_func_start sub_80A66A0
|
|
sub_80A66A0: @ 80A66A0
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
movs r4, 0x1
|
|
ldr r6, _080A66D0 @ =gUnknown_83E3898
|
|
_080A66AA:
|
|
lsls r0, r4, 1
|
|
adds r0, r4
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
ldrh r0, [r0]
|
|
bl FreeSpritePaletteByTag
|
|
adds r0, r4, 0x1
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
cmp r4, 0x3
|
|
bls _080A66AA
|
|
adds r0, r5, 0
|
|
bl DestroyAnimVisualTask
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A66D0: .4byte gUnknown_83E3898
|
|
thumb_func_end sub_80A66A0
|
|
|
|
thumb_func_start sub_80A66D4
|
|
sub_80A66D4: @ 80A66D4
|
|
push {r4-r6,lr}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
bl sub_8074FCC
|
|
ldr r4, _080A672C @ =gUnknown_2037F02
|
|
ldrb r1, [r4]
|
|
adds r0, r5, 0
|
|
bl StartSpriteAnim
|
|
ldr r2, _080A6730 @ =gUnknown_83E3898
|
|
movs r0, 0x2
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrh r0, [r0]
|
|
bl IndexOfSpritePaletteTag
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0xFF
|
|
beq _080A6710
|
|
lsls r2, r0, 4
|
|
ldrb r1, [r5, 0x5]
|
|
movs r0, 0xF
|
|
ands r0, r1
|
|
orrs r0, r2
|
|
strb r0, [r5, 0x5]
|
|
_080A6710:
|
|
ldrh r0, [r4, 0x2]
|
|
movs r1, 0
|
|
strh r0, [r5, 0x30]
|
|
strh r1, [r5, 0x32]
|
|
ldrh r0, [r4, 0x4]
|
|
strh r0, [r5, 0x34]
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A6734
|
|
movs r6, 0x30
|
|
movs r3, 0x28
|
|
b _080A674E
|
|
.align 2, 0
|
|
_080A672C: .4byte gUnknown_2037F02
|
|
_080A6730: .4byte gUnknown_83E3898
|
|
_080A6734:
|
|
ldr r4, _080A6784 @ =gUnknown_2037F1B
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
ldrb r0, [r4]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
_080A674E:
|
|
ldrh r0, [r5, 0x20]
|
|
lsls r1, r0, 4
|
|
strh r1, [r5, 0x36]
|
|
ldrh r1, [r5, 0x22]
|
|
lsls r2, r1, 4
|
|
strh r2, [r5, 0x38]
|
|
subs r0, r6, r0
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
subs r1, r3, r1
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
adds r2, r5, 0
|
|
adds r2, 0x3A
|
|
adds r3, r5, 0
|
|
adds r3, 0x3C
|
|
movs r4, 0x28
|
|
str r4, [sp]
|
|
bl sub_80A678C
|
|
ldr r0, _080A6788 @ =sub_80A67E4
|
|
str r0, [r5, 0x1C]
|
|
add sp, 0x4
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A6784: .4byte gUnknown_2037F1B
|
|
_080A6788: .4byte sub_80A67E4
|
|
thumb_func_end sub_80A66D4
|
|
|
|
thumb_func_start sub_80A678C
|
|
sub_80A678C: @ 80A678C
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
adds r7, r2, 0
|
|
mov r8, r3
|
|
ldr r2, [sp, 0x18]
|
|
lsls r1, 16
|
|
lsrs r6, r1, 16
|
|
lsls r2, 24
|
|
lsrs r1, r2, 24
|
|
lsls r0, 16
|
|
asrs r2, r0, 16
|
|
cmp r2, 0
|
|
bge _080A67AE
|
|
lsls r0, r1, 24
|
|
negs r0, r0
|
|
lsrs r1, r0, 24
|
|
_080A67AE:
|
|
lsls r5, r2, 8
|
|
lsls r1, 24
|
|
asrs r1, 24
|
|
adds r0, r5, 0
|
|
bl __divsi3
|
|
adds r4, r0, 0
|
|
cmp r4, 0
|
|
bne _080A67C2
|
|
movs r4, 0x1
|
|
_080A67C2:
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl __divsi3
|
|
strh r0, [r7]
|
|
lsls r0, r6, 16
|
|
asrs r0, 8
|
|
adds r1, r4, 0
|
|
bl __divsi3
|
|
mov r1, r8
|
|
strh r0, [r1]
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A678C
|
|
|
|
thumb_func_start sub_80A67E4
|
|
sub_80A67E4: @ 80A67E4
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
ldrh r0, [r4, 0x2E]
|
|
adds r0, 0x1
|
|
movs r5, 0
|
|
strh r0, [r4, 0x2E]
|
|
movs r0, 0x2E
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 2
|
|
adds r1, r0, r1
|
|
adds r0, r1, 0
|
|
cmp r1, 0
|
|
bge _080A6800
|
|
adds r0, 0xFF
|
|
_080A6800:
|
|
asrs r0, 8
|
|
lsls r0, 8
|
|
subs r0, r1, r0
|
|
ldrh r1, [r4, 0x3A]
|
|
ldrh r2, [r4, 0x36]
|
|
adds r1, r2
|
|
strh r1, [r4, 0x36]
|
|
ldrh r2, [r4, 0x3C]
|
|
ldrh r3, [r4, 0x38]
|
|
adds r2, r3
|
|
strh r2, [r4, 0x38]
|
|
lsls r1, 16
|
|
asrs r1, 20
|
|
strh r1, [r4, 0x20]
|
|
lsls r2, 16
|
|
asrs r2, 20
|
|
strh r2, [r4, 0x22]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r1, 0xF
|
|
bl Sin
|
|
strh r0, [r4, 0x26]
|
|
ldrh r2, [r4, 0x22]
|
|
ldrh r0, [r4, 0x20]
|
|
adds r0, 0x10
|
|
lsls r0, 16
|
|
movs r1, 0x88
|
|
lsls r1, 17
|
|
cmp r0, r1
|
|
bhi _080A684E
|
|
lsls r0, r2, 16
|
|
asrs r1, r0, 16
|
|
movs r0, 0x10
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
blt _080A684E
|
|
cmp r1, 0x80
|
|
ble _080A6856
|
|
_080A684E:
|
|
adds r0, r4, 0
|
|
bl move_anim_8074EE0
|
|
b _080A68A6
|
|
_080A6856:
|
|
movs r0, 0x34
|
|
ldrsh r1, [r4, r0]
|
|
cmp r1, 0
|
|
beq _080A68A6
|
|
ldrh r0, [r4, 0x32]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x32]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, r1
|
|
ble _080A68A6
|
|
strh r5, [r4, 0x32]
|
|
ldrh r0, [r4, 0x30]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x30]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x3
|
|
ble _080A687E
|
|
strh r5, [r4, 0x30]
|
|
_080A687E:
|
|
ldr r2, _080A68AC @ =gUnknown_83E3898
|
|
movs r3, 0x30
|
|
ldrsh r1, [r4, r3]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrh r0, [r0]
|
|
bl IndexOfSpritePaletteTag
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0xFF
|
|
beq _080A68A6
|
|
lsls r2, r0, 4
|
|
ldrb r1, [r4, 0x5]
|
|
movs r0, 0xF
|
|
ands r0, r1
|
|
orrs r0, r2
|
|
strb r0, [r4, 0x5]
|
|
_080A68A6:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A68AC: .4byte gUnknown_83E3898
|
|
thumb_func_end sub_80A67E4
|
|
|
|
thumb_func_start sub_80A68B0
|
|
sub_80A68B0: @ 80A68B0
|
|
push {r4-r7,lr}
|
|
adds r6, r0, 0
|
|
ldr r7, _080A6934 @ =gUnknown_2037F1A
|
|
ldrb r0, [r7]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _080A68CE
|
|
ldr r1, _080A6938 @ =gUnknown_2037F02
|
|
movs r2, 0x2
|
|
ldrsh r0, [r1, r2]
|
|
negs r0, r0
|
|
strh r0, [r1, 0x2]
|
|
_080A68CE:
|
|
ldrb r0, [r7]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
ldr r4, _080A6938 @ =gUnknown_2037F02
|
|
lsrs r0, 24
|
|
ldrh r1, [r4, 0x2]
|
|
adds r0, r1
|
|
movs r5, 0
|
|
strh r0, [r6, 0x20]
|
|
ldrb r0, [r7]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrh r2, [r4, 0x4]
|
|
adds r0, r2
|
|
strh r0, [r6, 0x22]
|
|
ldrb r1, [r4]
|
|
adds r0, r6, 0
|
|
bl StartSpriteAnim
|
|
strh r5, [r6, 0x32]
|
|
strh r5, [r6, 0x34]
|
|
ldrh r0, [r6, 0x20]
|
|
lsls r0, 4
|
|
strh r0, [r6, 0x36]
|
|
ldrh r0, [r6, 0x22]
|
|
lsls r0, 4
|
|
strh r0, [r6, 0x38]
|
|
movs r1, 0x2
|
|
ldrsh r0, [r4, r1]
|
|
lsls r0, 4
|
|
movs r1, 0x5
|
|
bl __divsi3
|
|
strh r0, [r6, 0x3A]
|
|
movs r2, 0x4
|
|
ldrsh r0, [r4, r2]
|
|
lsls r0, 7
|
|
movs r1, 0x5
|
|
bl __divsi3
|
|
strh r0, [r6, 0x3C]
|
|
ldr r0, _080A693C @ =sub_80A6940
|
|
str r0, [r6, 0x1C]
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A6934: .4byte gUnknown_2037F1A
|
|
_080A6938: .4byte gUnknown_2037F02
|
|
_080A693C: .4byte sub_80A6940
|
|
thumb_func_end sub_80A68B0
|
|
|
|
thumb_func_start sub_80A6940
|
|
sub_80A6940: @ 80A6940
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrh r0, [r4, 0x3A]
|
|
ldrh r1, [r4, 0x36]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x36]
|
|
ldrh r1, [r4, 0x3C]
|
|
ldrh r2, [r4, 0x38]
|
|
adds r1, r2
|
|
strh r1, [r4, 0x38]
|
|
lsls r0, 16
|
|
asrs r0, 20
|
|
strh r0, [r4, 0x20]
|
|
lsls r1, 16
|
|
asrs r1, 20
|
|
strh r1, [r4, 0x22]
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x5
|
|
ble _080A699E
|
|
movs r2, 0x34
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0
|
|
bne _080A699E
|
|
ldrh r0, [r4, 0x32]
|
|
adds r0, 0x10
|
|
movs r1, 0xFF
|
|
ands r0, r1
|
|
strh r0, [r4, 0x32]
|
|
movs r1, 0x32
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0x12
|
|
bl Cos
|
|
strh r0, [r4, 0x24]
|
|
movs r2, 0x32
|
|
ldrsh r0, [r4, r2]
|
|
movs r1, 0x12
|
|
bl Sin
|
|
strh r0, [r4, 0x26]
|
|
movs r1, 0x32
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bne _080A699E
|
|
movs r0, 0x1
|
|
strh r0, [r4, 0x34]
|
|
_080A699E:
|
|
ldrh r0, [r4, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x30
|
|
bne _080A69B2
|
|
adds r0, r4, 0
|
|
bl move_anim_8074EE0
|
|
_080A69B2:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A6940
|
|
|
|
thumb_func_start sub_80A69B8
|
|
sub_80A69B8: @ 80A69B8
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
ldr r0, _080A69D8 @ =gUnknown_2037F02
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0x1
|
|
bne _080A69DC
|
|
ldrb r0, [r5, 0x3]
|
|
movs r1, 0x3F
|
|
negs r1, r1
|
|
ands r1, r0
|
|
movs r0, 0x10
|
|
orrs r1, r0
|
|
strb r1, [r5, 0x3]
|
|
movs r6, 0x10
|
|
b _080A69DE
|
|
.align 2, 0
|
|
_080A69D8: .4byte gUnknown_2037F02
|
|
_080A69DC:
|
|
ldr r6, _080A6A18 @ =0x0000fff0
|
|
_080A69DE:
|
|
ldr r4, _080A6A1C @ =gUnknown_2037F1A
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r0, r6
|
|
strh r0, [r5, 0x20]
|
|
ldrb r0, [r4]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r0, 0x8
|
|
strh r0, [r5, 0x22]
|
|
movs r0, 0x8
|
|
strh r0, [r5, 0x2E]
|
|
ldr r0, _080A6A20 @ =sub_8074C44
|
|
str r0, [r5, 0x1C]
|
|
ldr r1, _080A6A24 @ =DestroyAnimSprite
|
|
adds r0, r5, 0
|
|
bl StoreSpriteCallbackInData6
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A6A18: .4byte 0x0000fff0
|
|
_080A6A1C: .4byte gUnknown_2037F1A
|
|
_080A6A20: .4byte sub_8074C44
|
|
_080A6A24: .4byte DestroyAnimSprite
|
|
thumb_func_end sub_80A69B8
|
|
|
|
thumb_func_start sub_80A6A28
|
|
sub_80A6A28: @ 80A6A28
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
bl sub_8074FCC
|
|
ldrh r0, [r4, 0x22]
|
|
adds r0, 0x8
|
|
strh r0, [r4, 0x22]
|
|
ldr r5, _080A6AA0 @ =gUnknown_2037F02
|
|
ldrb r1, [r5, 0x2]
|
|
adds r0, r4, 0
|
|
bl StartSpriteAnim
|
|
ldr r2, _080A6AA4 @ =gUnknown_83E3898
|
|
movs r0, 0x4
|
|
ldrsh r1, [r5, r0]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrh r0, [r0]
|
|
bl IndexOfSpritePaletteTag
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0xFF
|
|
beq _080A6A68
|
|
lsls r2, r0, 4
|
|
ldrb r1, [r4, 0x5]
|
|
movs r0, 0xF
|
|
ands r0, r1
|
|
orrs r0, r2
|
|
strb r0, [r4, 0x5]
|
|
_080A6A68:
|
|
movs r1, 0
|
|
ldrsh r0, [r5, r1]
|
|
movs r2, 0x20
|
|
cmp r0, 0
|
|
bne _080A6A74
|
|
ldr r2, _080A6AA8 @ =0x0000ffe0
|
|
_080A6A74:
|
|
movs r0, 0x28
|
|
strh r0, [r4, 0x2E]
|
|
ldrh r1, [r4, 0x20]
|
|
strh r1, [r4, 0x30]
|
|
lsls r0, r2, 16
|
|
asrs r0, 16
|
|
adds r0, r1
|
|
strh r0, [r4, 0x32]
|
|
ldrh r0, [r4, 0x22]
|
|
strh r0, [r4, 0x34]
|
|
subs r0, 0x28
|
|
strh r0, [r4, 0x36]
|
|
adds r0, r4, 0
|
|
bl obj_translate_based_on_private_1_2_3_4
|
|
ldrh r0, [r5, 0x6]
|
|
strh r0, [r4, 0x38]
|
|
ldr r0, _080A6AAC @ =sub_80A6AB0
|
|
str r0, [r4, 0x1C]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A6AA0: .4byte gUnknown_2037F02
|
|
_080A6AA4: .4byte gUnknown_83E3898
|
|
_080A6AA8: .4byte 0x0000ffe0
|
|
_080A6AAC: .4byte sub_80A6AB0
|
|
thumb_func_end sub_80A6A28
|
|
|
|
thumb_func_start sub_80A6AB0
|
|
sub_80A6AB0: @ 80A6AB0
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_80755E0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080A6B00
|
|
movs r1, 0x38
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0x8
|
|
bl Sin
|
|
lsls r0, 16
|
|
lsrs r1, r0, 16
|
|
ldrh r2, [r4, 0x24]
|
|
movs r3, 0x24
|
|
ldrsh r0, [r4, r3]
|
|
cmp r0, 0
|
|
bge _080A6ADC
|
|
lsls r0, r1, 16
|
|
negs r0, r0
|
|
lsrs r1, r0, 16
|
|
_080A6ADC:
|
|
lsls r0, r1, 16
|
|
asrs r0, 16
|
|
adds r0, r2
|
|
strh r0, [r4, 0x24]
|
|
movs r1, 0x38
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0x4
|
|
bl Sin
|
|
ldrh r3, [r4, 0x26]
|
|
adds r0, r3
|
|
strh r0, [r4, 0x26]
|
|
ldrh r0, [r4, 0x38]
|
|
adds r0, 0x8
|
|
movs r1, 0xFF
|
|
ands r0, r1
|
|
strh r0, [r4, 0x38]
|
|
b _080A6B06
|
|
_080A6B00:
|
|
adds r0, r4, 0
|
|
bl DestroyAnimSprite
|
|
_080A6B06:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A6AB0
|
|
|
|
thumb_func_start sub_80A6B0C
|
|
sub_80A6B0C: @ 80A6B0C
|
|
push {r4-r6,lr}
|
|
adds r6, r1, 0
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
adds r0, r5, 0
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080A6B2C
|
|
adds r0, r5, 0
|
|
movs r1, 0x5
|
|
bl sub_8076B2C
|
|
adds r0, 0x8
|
|
b _080A6B36
|
|
_080A6B2C:
|
|
adds r0, r5, 0
|
|
movs r1, 0x4
|
|
bl sub_8076B2C
|
|
subs r0, 0x8
|
|
_080A6B36:
|
|
strh r0, [r6, 0x20]
|
|
adds r0, r5, 0
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
adds r4, r0, 0
|
|
adds r0, r5, 0
|
|
movs r1, 0
|
|
bl sub_8076B2C
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0
|
|
bge _080A6B58
|
|
adds r0, 0x3
|
|
_080A6B58:
|
|
asrs r0, 2
|
|
subs r0, r4, r0
|
|
strh r0, [r6, 0x22]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A6B0C
|
|
|
|
thumb_func_start sub_80A6B64
|
|
sub_80A6B64: @ 80A6B64
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
ldr r0, _080A6B78 @ =gUnknown_2037F02
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0
|
|
bne _080A6B80
|
|
ldr r0, _080A6B7C @ =gUnknown_2037F1A
|
|
b _080A6B82
|
|
.align 2, 0
|
|
_080A6B78: .4byte gUnknown_2037F02
|
|
_080A6B7C: .4byte gUnknown_2037F1A
|
|
_080A6B80:
|
|
ldr r0, _080A6BC0 @ =gUnknown_2037F1B
|
|
_080A6B82:
|
|
ldrb r4, [r0]
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_80A6B0C
|
|
adds r0, r4, 0
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
negs r1, r0
|
|
orrs r1, r0
|
|
lsrs r1, 31
|
|
ldr r0, _080A6BC4 @ =gUnknown_2037F02
|
|
ldrh r0, [r0, 0x2]
|
|
strh r0, [r5, 0x2E]
|
|
adds r0, r1, 0x2
|
|
strh r0, [r5, 0x30]
|
|
adds r0, r5, 0
|
|
bl StartSpriteAnim
|
|
ldr r1, _080A6BC8 @ =sub_80A6BD0
|
|
adds r0, r5, 0
|
|
bl StoreSpriteCallbackInData6
|
|
ldr r0, _080A6BCC @ =sub_8074F6C
|
|
str r0, [r5, 0x1C]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A6BC0: .4byte gUnknown_2037F1B
|
|
_080A6BC4: .4byte gUnknown_2037F02
|
|
_080A6BC8: .4byte sub_80A6BD0
|
|
_080A6BCC: .4byte sub_8074F6C
|
|
thumb_func_end sub_80A6B64
|
|
|
|
thumb_func_start sub_80A6BD0
|
|
sub_80A6BD0: @ 80A6BD0
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrh r0, [r4, 0x2E]
|
|
subs r0, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bne _080A6BF8
|
|
ldr r1, _080A6C00 @ =DestroyAnimSprite
|
|
adds r0, r4, 0
|
|
bl StoreSpriteCallbackInData6
|
|
ldrh r1, [r4, 0x30]
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r4, 0
|
|
bl StartSpriteAnim
|
|
ldr r0, _080A6C04 @ =sub_8074F6C
|
|
str r0, [r4, 0x1C]
|
|
_080A6BF8:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A6C00: .4byte DestroyAnimSprite
|
|
_080A6C04: .4byte sub_8074F6C
|
|
thumb_func_end sub_80A6BD0
|
|
|
|
thumb_func_start sub_80A6C08
|
|
sub_80A6C08: @ 80A6C08
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldr r0, _080A6C1C @ =gUnknown_2037F02
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0
|
|
bne _080A6C24
|
|
ldr r0, _080A6C20 @ =gUnknown_2037F1A
|
|
b _080A6C26
|
|
.align 2, 0
|
|
_080A6C1C: .4byte gUnknown_2037F02
|
|
_080A6C20: .4byte gUnknown_2037F1A
|
|
_080A6C24:
|
|
ldr r0, _080A6C44 @ =gUnknown_2037F1B
|
|
_080A6C26:
|
|
ldrb r0, [r0]
|
|
adds r1, r4, 0
|
|
bl sub_80A6B0C
|
|
movs r0, 0
|
|
strh r0, [r4, 0x2E]
|
|
ldr r1, _080A6C48 @ =sub_80A6C50
|
|
adds r0, r4, 0
|
|
bl StoreSpriteCallbackInData6
|
|
ldr r0, _080A6C4C @ =sub_8074F50
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A6C44: .4byte gUnknown_2037F1B
|
|
_080A6C48: .4byte sub_80A6C50
|
|
_080A6C4C: .4byte sub_8074F50
|
|
thumb_func_end sub_80A6C08
|
|
|
|
thumb_func_start sub_80A6C50
|
|
sub_80A6C50: @ 80A6C50
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrh r0, [r4, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x10
|
|
ble _080A6C76
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl StartSpriteAffineAnim
|
|
ldr r1, _080A6C7C @ =move_anim_8074EE0
|
|
adds r0, r4, 0
|
|
bl StoreSpriteCallbackInData6
|
|
ldr r0, _080A6C80 @ =sub_8074F50
|
|
str r0, [r4, 0x1C]
|
|
_080A6C76:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A6C7C: .4byte move_anim_8074EE0
|
|
_080A6C80: .4byte sub_8074F50
|
|
thumb_func_end sub_80A6C50
|
|
|
|
thumb_func_start sub_80A6C84
|
|
sub_80A6C84: @ 80A6C84
|
|
push {r4-r6,lr}
|
|
adds r4, r0, 0
|
|
ldr r0, _080A6C98 @ =gUnknown_2037F02
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0
|
|
bne _080A6CA0
|
|
ldr r0, _080A6C9C @ =gUnknown_2037F1A
|
|
b _080A6CA2
|
|
.align 2, 0
|
|
_080A6C98: .4byte gUnknown_2037F02
|
|
_080A6C9C: .4byte gUnknown_2037F1A
|
|
_080A6CA0:
|
|
ldr r0, _080A6CF4 @ =gUnknown_2037F1B
|
|
_080A6CA2:
|
|
ldrb r5, [r0]
|
|
adds r0, r5, 0
|
|
movs r1, 0
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r6, 0
|
|
strh r0, [r4, 0x20]
|
|
adds r0, r5, 0
|
|
movs r1, 0x2
|
|
bl sub_8076B2C
|
|
strh r0, [r4, 0x22]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x9
|
|
bgt _080A6CCA
|
|
movs r0, 0xA
|
|
strh r0, [r4, 0x22]
|
|
_080A6CCA:
|
|
movs r0, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
strh r6, [r4, 0x30]
|
|
adds r1, r4, 0
|
|
adds r1, 0x43
|
|
ldrb r0, [r1]
|
|
strh r0, [r4, 0x32]
|
|
ldrb r0, [r1]
|
|
adds r0, 0x4
|
|
strh r0, [r4, 0x34]
|
|
strh r6, [r4, 0x36]
|
|
ldr r1, _080A6CF8 @ =sub_80A6D00
|
|
adds r0, r4, 0
|
|
bl StoreSpriteCallbackInData6
|
|
ldr r0, _080A6CFC @ =sub_8074F50
|
|
str r0, [r4, 0x1C]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A6CF4: .4byte gUnknown_2037F1B
|
|
_080A6CF8: .4byte sub_80A6D00
|
|
_080A6CFC: .4byte sub_8074F50
|
|
thumb_func_end sub_80A6C84
|
|
|
|
thumb_func_start sub_80A6D00
|
|
sub_80A6D00: @ 80A6D00
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
ldrh r0, [r1, 0x36]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x36]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0xC
|
|
ble _080A6D16
|
|
ldr r0, _080A6D1C @ =sub_80A6D20
|
|
str r0, [r1, 0x1C]
|
|
_080A6D16:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A6D1C: .4byte sub_80A6D20
|
|
thumb_func_end sub_80A6D00
|
|
|
|
thumb_func_start sub_80A6D20
|
|
sub_80A6D20: @ 80A6D20
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
ldrh r0, [r2, 0x30]
|
|
adds r1, r0, 0x4
|
|
strh r1, [r2, 0x30]
|
|
lsls r0, r1, 16
|
|
asrs r0, 16
|
|
cmp r0, 0xFE
|
|
ble _080A6D52
|
|
ldrh r0, [r2, 0x2E]
|
|
subs r0, 0x1
|
|
strh r0, [r2, 0x2E]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0
|
|
bne _080A6D4C
|
|
strh r0, [r2, 0x24]
|
|
ldr r0, _080A6D48 @ =sub_80A6C50
|
|
str r0, [r2, 0x1C]
|
|
b _080A6D88
|
|
.align 2, 0
|
|
_080A6D48: .4byte sub_80A6C50
|
|
_080A6D4C:
|
|
movs r0, 0xFF
|
|
ands r1, r0
|
|
strh r1, [r2, 0x30]
|
|
_080A6D52:
|
|
movs r1, 0x30
|
|
ldrsh r0, [r2, r1]
|
|
cmp r0, 0x4F
|
|
ble _080A6D62
|
|
ldrh r0, [r2, 0x34]
|
|
adds r1, r2, 0
|
|
adds r1, 0x43
|
|
strb r0, [r1]
|
|
_080A6D62:
|
|
movs r3, 0x30
|
|
ldrsh r0, [r2, r3]
|
|
cmp r0, 0x9F
|
|
ble _080A6D72
|
|
ldrh r0, [r2, 0x32]
|
|
adds r1, r2, 0
|
|
adds r1, 0x43
|
|
strb r0, [r1]
|
|
_080A6D72:
|
|
ldr r1, _080A6D8C @ =gUnknown_825E074
|
|
movs r3, 0x30
|
|
ldrsh r0, [r2, r3]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
lsls r0, 16
|
|
asrs r0, 19
|
|
asrs r1, r0, 1
|
|
adds r0, r1
|
|
strh r0, [r2, 0x24]
|
|
_080A6D88:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A6D8C: .4byte gUnknown_825E074
|
|
thumb_func_end sub_80A6D20
|
|
|
|
thumb_func_start sub_80A6D90
|
|
sub_80A6D90: @ 80A6D90
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
ldr r0, _080A6DA4 @ =gUnknown_2037F02
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0
|
|
bne _080A6DAC
|
|
ldr r0, _080A6DA8 @ =gUnknown_2037F1A
|
|
b _080A6DAE
|
|
.align 2, 0
|
|
_080A6DA4: .4byte gUnknown_2037F02
|
|
_080A6DA8: .4byte gUnknown_2037F1A
|
|
_080A6DAC:
|
|
ldr r0, _080A6DD0 @ =gUnknown_2037F1B
|
|
_080A6DAE:
|
|
ldrb r4, [r0]
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_80A6B0C
|
|
adds r0, r4, 0
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080A6DD4
|
|
adds r0, r5, 0
|
|
movs r1, 0
|
|
bl StartSpriteAnim
|
|
movs r0, 0x2
|
|
b _080A6DDE
|
|
.align 2, 0
|
|
_080A6DD0: .4byte gUnknown_2037F1B
|
|
_080A6DD4:
|
|
adds r0, r5, 0
|
|
movs r1, 0x1
|
|
bl StartSpriteAnim
|
|
movs r0, 0x3
|
|
_080A6DDE:
|
|
strh r0, [r5, 0x2E]
|
|
ldr r0, _080A6DEC @ =sub_80A6DF0
|
|
str r0, [r5, 0x1C]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A6DEC: .4byte sub_80A6DF0
|
|
thumb_func_end sub_80A6D90
|
|
|
|
thumb_func_start sub_80A6DF0
|
|
sub_80A6DF0: @ 80A6DF0
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrh r0, [r4, 0x30]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x30]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0xA
|
|
ble _080A6E1E
|
|
movs r0, 0
|
|
strh r0, [r4, 0x30]
|
|
ldrh r1, [r4, 0x2E]
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r4, 0
|
|
bl StartSpriteAnim
|
|
ldr r1, _080A6E24 @ =sub_80A6E2C
|
|
adds r0, r4, 0
|
|
bl StoreSpriteCallbackInData6
|
|
ldr r0, _080A6E28 @ =sub_8074F6C
|
|
str r0, [r4, 0x1C]
|
|
_080A6E1E:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A6E24: .4byte sub_80A6E2C
|
|
_080A6E28: .4byte sub_8074F6C
|
|
thumb_func_end sub_80A6DF0
|
|
|
|
thumb_func_start sub_80A6E2C
|
|
sub_80A6E2C: @ 80A6E2C
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
ldrh r0, [r1, 0x30]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x30]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x5
|
|
ble _080A6E44
|
|
adds r0, r1, 0
|
|
bl DestroyAnimSprite
|
|
_080A6E44:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A6E2C
|
|
|
|
thumb_func_start sub_80A6E48
|
|
sub_80A6E48: @ 80A6E48
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
bl sub_8074FCC
|
|
ldr r5, _080A6E8C @ =gUnknown_2037F02
|
|
movs r0, 0
|
|
ldrsh r1, [r5, r0]
|
|
adds r0, r4, 0
|
|
bl sub_8074FF8
|
|
ldrh r0, [r5, 0x2]
|
|
ldrh r1, [r4, 0x22]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x22]
|
|
ldrh r0, [r5, 0x4]
|
|
strh r0, [r4, 0x30]
|
|
ldrh r0, [r5, 0x8]
|
|
strh r0, [r4, 0x32]
|
|
ldrh r0, [r5, 0xA]
|
|
strh r0, [r4, 0x34]
|
|
ldrh r0, [r5, 0x6]
|
|
strh r0, [r4, 0x36]
|
|
ldr r1, _080A6E90 @ =move_anim_8074EE0
|
|
adds r0, r4, 0
|
|
bl StoreSpriteCallbackInData6
|
|
ldr r1, _080A6E94 @ =sub_8074BE4
|
|
str r1, [r4, 0x1C]
|
|
adds r0, r4, 0
|
|
bl _call_via_r1
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A6E8C: .4byte gUnknown_2037F02
|
|
_080A6E90: .4byte move_anim_8074EE0
|
|
_080A6E94: .4byte sub_8074BE4
|
|
thumb_func_end sub_80A6E48
|
|
|
|
thumb_func_start sub_80A6E98
|
|
sub_80A6E98: @ 80A6E98
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldr r0, _080A6EAC @ =gUnknown_2037F02
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0
|
|
bne _080A6EB4
|
|
ldr r0, _080A6EB0 @ =gUnknown_2037F1A
|
|
b _080A6EB6
|
|
.align 2, 0
|
|
_080A6EAC: .4byte gUnknown_2037F02
|
|
_080A6EB0: .4byte gUnknown_2037F1A
|
|
_080A6EB4:
|
|
ldr r0, _080A6ED0 @ =gUnknown_2037F1B
|
|
_080A6EB6:
|
|
ldrb r0, [r0]
|
|
adds r1, r4, 0
|
|
bl sub_80A6B0C
|
|
movs r0, 0
|
|
strh r0, [r4, 0x2E]
|
|
strh r0, [r4, 0x30]
|
|
ldr r0, _080A6ED4 @ =sub_80A6ED8
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A6ED0: .4byte gUnknown_2037F1B
|
|
_080A6ED4: .4byte sub_80A6ED8
|
|
thumb_func_end sub_80A6E98
|
|
|
|
thumb_func_start sub_80A6ED8
|
|
sub_80A6ED8: @ 80A6ED8
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
movs r2, 0x2E
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, 0x1
|
|
beq _080A6F0A
|
|
cmp r0, 0x1
|
|
bgt _080A6EEE
|
|
cmp r0, 0
|
|
beq _080A6EF4
|
|
b _080A6F38
|
|
_080A6EEE:
|
|
cmp r0, 0x2
|
|
beq _080A6F24
|
|
b _080A6F38
|
|
_080A6EF4:
|
|
ldrh r0, [r1, 0x26]
|
|
subs r0, 0x3
|
|
strh r0, [r1, 0x26]
|
|
ldrh r0, [r1, 0x30]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x30]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x6
|
|
bne _080A6F38
|
|
b _080A6F1C
|
|
_080A6F0A:
|
|
ldrh r0, [r1, 0x26]
|
|
adds r0, 0x3
|
|
strh r0, [r1, 0x26]
|
|
ldrh r0, [r1, 0x30]
|
|
subs r0, 0x1
|
|
strh r0, [r1, 0x30]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bne _080A6F38
|
|
_080A6F1C:
|
|
ldrh r0, [r1, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x2E]
|
|
b _080A6F38
|
|
_080A6F24:
|
|
ldrh r0, [r1, 0x30]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x30]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x40
|
|
bne _080A6F38
|
|
adds r0, r1, 0
|
|
bl DestroyAnimSprite
|
|
_080A6F38:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A6ED8
|
|
|
|
thumb_func_start sub_80A6F3C
|
|
sub_80A6F3C: @ 80A6F3C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldr r3, _080A6F88 @ =gSprites
|
|
movs r0, 0x32
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
ldrh r1, [r4, 0x30]
|
|
ldrh r2, [r0, 0x24]
|
|
adds r1, r2
|
|
strh r1, [r0, 0x24]
|
|
movs r1, 0x30
|
|
ldrsh r0, [r4, r1]
|
|
negs r0, r0
|
|
strh r0, [r4, 0x30]
|
|
movs r0, 0x2E
|
|
ldrsh r2, [r4, r0]
|
|
cmp r2, 0
|
|
bne _080A6F7A
|
|
movs r0, 0x32
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
strh r2, [r0, 0x24]
|
|
adds r0, r4, 0
|
|
bl move_anim_8074EE0
|
|
_080A6F7A:
|
|
ldrh r0, [r4, 0x2E]
|
|
subs r0, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A6F88: .4byte gSprites
|
|
thumb_func_end sub_80A6F3C
|
|
|
|
thumb_func_start sub_80A6F8C
|
|
sub_80A6F8C: @ 80A6F8C
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
ldr r4, _080A6FD4 @ =gUnknown_2037F1A
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x20]
|
|
ldrb r0, [r4]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x22]
|
|
ldr r1, _080A6FD8 @ =gUnknown_2023D44
|
|
ldr r0, _080A6FDC @ =gUnknown_2037F1B
|
|
ldrb r0, [r0]
|
|
adds r0, r1
|
|
ldrb r6, [r0]
|
|
ldrb r0, [r4]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A6FE4
|
|
ldr r0, _080A6FE0 @ =gUnknown_2037F02
|
|
ldrh r1, [r5, 0x20]
|
|
ldrh r2, [r0]
|
|
subs r1, r2
|
|
strh r1, [r5, 0x20]
|
|
adds r1, r0, 0
|
|
b _080A6FEE
|
|
.align 2, 0
|
|
_080A6FD4: .4byte gUnknown_2037F1A
|
|
_080A6FD8: .4byte gUnknown_2023D44
|
|
_080A6FDC: .4byte gUnknown_2037F1B
|
|
_080A6FE0: .4byte gUnknown_2037F02
|
|
_080A6FE4:
|
|
ldr r1, _080A7018 @ =gUnknown_2037F02
|
|
ldrh r0, [r1]
|
|
ldrh r2, [r5, 0x20]
|
|
adds r0, r2
|
|
strh r0, [r5, 0x20]
|
|
_080A6FEE:
|
|
ldrh r0, [r1, 0x2]
|
|
ldrh r2, [r5, 0x22]
|
|
adds r0, r2
|
|
strh r0, [r5, 0x22]
|
|
ldrh r0, [r1, 0x4]
|
|
strh r0, [r5, 0x2E]
|
|
ldrh r0, [r1, 0x6]
|
|
strh r0, [r5, 0x30]
|
|
strh r6, [r5, 0x32]
|
|
ldr r0, _080A701C @ =sub_80A6F3C
|
|
str r0, [r5, 0x1C]
|
|
adds r2, r5, 0
|
|
adds r2, 0x3E
|
|
ldrb r0, [r2]
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A7018: .4byte gUnknown_2037F02
|
|
_080A701C: .4byte sub_80A6F3C
|
|
thumb_func_end sub_80A6F8C
|
|
|
|
thumb_func_start sub_80A7020
|
|
sub_80A7020: @ 80A7020
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x1
|
|
bl sub_8075160
|
|
ldr r1, _080A704C @ =gUnknown_2037F02
|
|
ldrh r0, [r1, 0x4]
|
|
strh r0, [r4, 0x2E]
|
|
ldrh r0, [r1, 0x6]
|
|
strh r0, [r4, 0x30]
|
|
ldrh r0, [r1, 0x8]
|
|
strh r0, [r4, 0x38]
|
|
ldr r0, _080A7050 @ =sub_8074C44
|
|
str r0, [r4, 0x1C]
|
|
ldr r1, _080A7054 @ =sub_80A7058
|
|
adds r0, r4, 0
|
|
bl StoreSpriteCallbackInData6
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A704C: .4byte gUnknown_2037F02
|
|
_080A7050: .4byte sub_8074C44
|
|
_080A7054: .4byte sub_80A7058
|
|
thumb_func_end sub_80A7020
|
|
|
|
thumb_func_start sub_80A7058
|
|
sub_80A7058: @ 80A7058
|
|
push {lr}
|
|
ldrh r1, [r0, 0x30]
|
|
strh r1, [r0, 0x2E]
|
|
ldrh r1, [r0, 0x20]
|
|
strh r1, [r0, 0x32]
|
|
ldrh r1, [r0, 0x22]
|
|
adds r1, 0xF
|
|
strh r1, [r0, 0x36]
|
|
ldr r1, _080A7078 @ =sub_8075590
|
|
str r1, [r0, 0x1C]
|
|
ldr r1, _080A707C @ =sub_80A7080
|
|
bl StoreSpriteCallbackInData6
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A7078: .4byte sub_8075590
|
|
_080A707C: .4byte sub_80A7080
|
|
thumb_func_end sub_80A7058
|
|
|
|
thumb_func_start sub_80A7080
|
|
sub_80A7080: @ 80A7080
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
ldrh r2, [r1, 0x38]
|
|
movs r3, 0x38
|
|
ldrsh r0, [r1, r3]
|
|
cmp r0, 0
|
|
bne _080A7096
|
|
adds r0, r1, 0
|
|
bl DestroyAnimSprite
|
|
b _080A709A
|
|
_080A7096:
|
|
subs r0, r2, 0x1
|
|
strh r0, [r1, 0x38]
|
|
_080A709A:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A7080
|
|
|
|
thumb_func_start sub_80A70A0
|
|
sub_80A70A0: @ 80A70A0
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
ldr r1, _080A70CC @ =gUnknown_2023D44
|
|
ldr r0, _080A70D0 @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
movs r1, 0
|
|
bl sub_80758E0
|
|
ldr r1, _080A70D4 @ =gTasks
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldr r1, _080A70D8 @ =sub_80A70DC
|
|
str r1, [r0]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A70CC: .4byte gUnknown_2023D44
|
|
_080A70D0: .4byte gUnknown_2037F1A
|
|
_080A70D4: .4byte gTasks
|
|
_080A70D8: .4byte sub_80A70DC
|
|
thumb_func_end sub_80A70A0
|
|
|
|
thumb_func_start sub_80A70DC
|
|
sub_80A70DC: @ 80A70DC
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r1, _080A710C @ =gUnknown_2023D44
|
|
ldr r0, _080A7110 @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
adds r1, r0, r1
|
|
ldrb r4, [r1]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080A7118
|
|
ldr r1, _080A7114 @ =gTasks
|
|
lsls r2, r5, 2
|
|
adds r0, r2, r5
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldrh r0, [r0, 0x8]
|
|
negs r0, r0
|
|
lsls r0, 16
|
|
lsrs r3, r0, 16
|
|
adds r6, r2, 0
|
|
b _080A7126
|
|
.align 2, 0
|
|
_080A710C: .4byte gUnknown_2023D44
|
|
_080A7110: .4byte gUnknown_2037F1A
|
|
_080A7114: .4byte gTasks
|
|
_080A7118:
|
|
ldr r2, _080A7158 @ =gTasks
|
|
lsls r1, r5, 2
|
|
adds r0, r1, r5
|
|
lsls r0, 3
|
|
adds r0, r2
|
|
ldrh r3, [r0, 0x8]
|
|
adds r6, r1, 0
|
|
_080A7126:
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r0, r4, 0
|
|
adds r1, r2, 0
|
|
bl obj_id_set_rotscale
|
|
ldr r1, _080A7158 @ =gTasks
|
|
adds r0, r6, r5
|
|
lsls r0, 3
|
|
adds r1, r0, r1
|
|
movs r2, 0xA
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, 0
|
|
bne _080A7160
|
|
ldrh r0, [r1, 0x8]
|
|
adds r0, 0xB0
|
|
strh r0, [r1, 0x8]
|
|
ldr r1, _080A715C @ =gSprites
|
|
lsls r0, r4, 4
|
|
adds r0, r4
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrh r1, [r0, 0x26]
|
|
adds r1, 0x1
|
|
b _080A718A
|
|
.align 2, 0
|
|
_080A7158: .4byte gTasks
|
|
_080A715C: .4byte gSprites
|
|
_080A7160:
|
|
cmp r0, 0x1
|
|
bne _080A7176
|
|
ldrh r0, [r1, 0xE]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0xE]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1E
|
|
bne _080A71D0
|
|
movs r0, 0x2
|
|
b _080A71CE
|
|
_080A7176:
|
|
ldrh r0, [r1, 0x8]
|
|
subs r0, 0xB0
|
|
strh r0, [r1, 0x8]
|
|
ldr r1, _080A71C4 @ =gSprites
|
|
lsls r0, r4, 4
|
|
adds r0, r4
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrh r1, [r0, 0x26]
|
|
subs r1, 0x1
|
|
_080A718A:
|
|
strh r1, [r0, 0x26]
|
|
adds r0, r4, 0
|
|
bl sub_80759DC
|
|
ldr r0, _080A71C8 @ =gTasks
|
|
adds r1, r6, r5
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
movs r3, 0x8
|
|
ldrsh r2, [r1, r3]
|
|
movs r0, 0xF2
|
|
lsls r0, 4
|
|
cmp r2, r0
|
|
beq _080A71AA
|
|
cmp r2, 0
|
|
bne _080A71D0
|
|
_080A71AA:
|
|
ldrh r2, [r1, 0xA]
|
|
movs r3, 0xA
|
|
ldrsh r0, [r1, r3]
|
|
cmp r0, 0x2
|
|
bne _080A71CC
|
|
adds r0, r4, 0
|
|
bl sub_8075980
|
|
adds r0, r5, 0
|
|
bl DestroyAnimVisualTask
|
|
b _080A71D0
|
|
.align 2, 0
|
|
_080A71C4: .4byte gSprites
|
|
_080A71C8: .4byte gTasks
|
|
_080A71CC:
|
|
adds r0, r2, 0x1
|
|
_080A71CE:
|
|
strh r0, [r1, 0xA]
|
|
_080A71D0:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A70DC
|
|
|
|
thumb_func_start sub_80A71D8
|
|
sub_80A71D8: @ 80A71D8
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
bl sub_8074FCC
|
|
ldr r0, _080A71FC @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A7204
|
|
ldr r0, _080A7200 @ =gUnknown_2037F02
|
|
ldrh r1, [r4, 0x20]
|
|
ldrh r2, [r0]
|
|
subs r1, r2
|
|
strh r1, [r4, 0x20]
|
|
adds r5, r0, 0
|
|
b _080A7210
|
|
.align 2, 0
|
|
_080A71FC: .4byte gUnknown_2037F1A
|
|
_080A7200: .4byte gUnknown_2037F02
|
|
_080A7204:
|
|
ldr r1, _080A7244 @ =gUnknown_2037F02
|
|
ldrh r0, [r1]
|
|
ldrh r2, [r4, 0x20]
|
|
adds r0, r2
|
|
strh r0, [r4, 0x20]
|
|
adds r5, r1, 0
|
|
_080A7210:
|
|
ldrh r0, [r5, 0x2]
|
|
ldrh r1, [r4, 0x22]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x22]
|
|
ldr r0, _080A7248 @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A724C
|
|
adds r3, r4, 0
|
|
adds r3, 0x3F
|
|
ldrb r0, [r3]
|
|
movs r1, 0x1
|
|
adds r2, r0, 0
|
|
orrs r2, r1
|
|
strb r2, [r3]
|
|
movs r1, 0x4
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0
|
|
beq _080A7260
|
|
movs r0, 0x2
|
|
orrs r2, r0
|
|
strb r2, [r3]
|
|
b _080A7260
|
|
.align 2, 0
|
|
_080A7244: .4byte gUnknown_2037F02
|
|
_080A7248: .4byte gUnknown_2037F1A
|
|
_080A724C:
|
|
movs r2, 0x4
|
|
ldrsh r0, [r5, r2]
|
|
cmp r0, 0
|
|
beq _080A7260
|
|
adds r2, r4, 0
|
|
adds r2, 0x3F
|
|
ldrb r0, [r2]
|
|
movs r1, 0x2
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
_080A7260:
|
|
ldr r0, _080A7274 @ =sub_8074F6C
|
|
str r0, [r4, 0x1C]
|
|
ldr r1, _080A7278 @ =DestroyAnimSprite
|
|
adds r0, r4, 0
|
|
bl StoreSpriteCallbackInData6
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A7274: .4byte sub_8074F6C
|
|
_080A7278: .4byte DestroyAnimSprite
|
|
thumb_func_end sub_80A71D8
|
|
|
|
thumb_func_start sub_80A727C
|
|
sub_80A727C: @ 80A727C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0
|
|
bl sub_8075160
|
|
ldr r0, _080A7298 @ =sub_8074F50
|
|
str r0, [r4, 0x1C]
|
|
ldr r1, _080A729C @ =sub_80A72A0
|
|
adds r0, r4, 0
|
|
bl StoreSpriteCallbackInData6
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A7298: .4byte sub_8074F50
|
|
_080A729C: .4byte sub_80A72A0
|
|
thumb_func_end sub_80A727C
|
|
|
|
thumb_func_start sub_80A72A0
|
|
sub_80A72A0: @ 80A72A0
|
|
push {lr}
|
|
movs r1, 0x6
|
|
strh r1, [r0, 0x2E]
|
|
ldrh r1, [r0, 0x20]
|
|
strh r1, [r0, 0x32]
|
|
ldrh r1, [r0, 0x22]
|
|
subs r1, 0x20
|
|
strh r1, [r0, 0x36]
|
|
ldr r1, _080A72C0 @ =sub_8075590
|
|
str r1, [r0, 0x1C]
|
|
ldr r1, _080A72C4 @ =DestroyAnimSprite
|
|
bl StoreSpriteCallbackInData6
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A72C0: .4byte sub_8075590
|
|
_080A72C4: .4byte DestroyAnimSprite
|
|
thumb_func_end sub_80A72A0
|
|
|
|
thumb_func_start sub_80A72C8
|
|
sub_80A72C8: @ 80A72C8
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A72EC
|
|
ldr r1, _080A72E8 @ =gUnknown_2037F02
|
|
ldrh r0, [r1, 0x4]
|
|
negs r0, r0
|
|
strh r0, [r1, 0x4]
|
|
b _080A730E
|
|
.align 2, 0
|
|
_080A72E8: .4byte gUnknown_2037F02
|
|
_080A72EC:
|
|
ldr r0, _080A73B4 @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A730E
|
|
ldr r1, _080A73B8 @ =gUnknown_2037F02
|
|
ldrh r0, [r1, 0x4]
|
|
negs r0, r0
|
|
strh r0, [r1, 0x4]
|
|
ldrh r0, [r1, 0x2]
|
|
negs r0, r0
|
|
strh r0, [r1, 0x2]
|
|
ldrh r0, [r1, 0x6]
|
|
negs r0, r0
|
|
strh r0, [r1, 0x6]
|
|
_080A730E:
|
|
adds r0, r5, 0
|
|
movs r1, 0x1
|
|
bl sub_8075160
|
|
ldr r4, _080A73BC @ =gUnknown_2037F1B
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
ldr r6, _080A73B8 @ =gUnknown_2037F02
|
|
lsrs r0, 24
|
|
ldrh r1, [r6, 0x4]
|
|
adds r0, r1
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
mov r8, r0
|
|
ldrb r0, [r4]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrh r2, [r6, 0x6]
|
|
adds r0, r2
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
adds r7, r0, 0
|
|
ldrh r1, [r5, 0x20]
|
|
mov r2, r8
|
|
lsls r0, r2, 16
|
|
asrs r0, 16
|
|
subs r0, r1
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
ldrh r2, [r5, 0x22]
|
|
lsls r1, r7, 16
|
|
asrs r1, 16
|
|
subs r1, r2
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
bl sub_8075B30
|
|
lsls r0, 16
|
|
movs r1, 0xF0
|
|
lsls r1, 24
|
|
adds r0, r1
|
|
lsrs r4, r0, 16
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A7380
|
|
ldr r2, _080A73C0 @ =0xffffa000
|
|
adds r0, r4, r2
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
_080A7380:
|
|
movs r3, 0x80
|
|
lsls r3, 1
|
|
str r4, [sp]
|
|
adds r0, r5, 0
|
|
movs r1, 0
|
|
adds r2, r3, 0
|
|
bl sub_8075A1C
|
|
ldrh r0, [r6, 0x8]
|
|
strh r0, [r5, 0x2E]
|
|
mov r0, r8
|
|
strh r0, [r5, 0x32]
|
|
strh r7, [r5, 0x36]
|
|
ldr r0, _080A73C4 @ =sub_8075590
|
|
str r0, [r5, 0x1C]
|
|
ldr r1, _080A73C8 @ =DestroyAnimSprite
|
|
adds r0, r5, 0
|
|
bl StoreSpriteCallbackInData6
|
|
add sp, 0x4
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A73B4: .4byte gUnknown_2037F1A
|
|
_080A73B8: .4byte gUnknown_2037F02
|
|
_080A73BC: .4byte gUnknown_2037F1B
|
|
_080A73C0: .4byte 0xffffa000
|
|
_080A73C4: .4byte sub_8075590
|
|
_080A73C8: .4byte DestroyAnimSprite
|
|
thumb_func_end sub_80A72C8
|
|
|
|
thumb_func_start sub_80A73CC
|
|
sub_80A73CC: @ 80A73CC
|
|
push {lr}
|
|
adds r3, r0, 0
|
|
ldrh r0, [r3, 0x2E]
|
|
subs r1, r0, 0x1
|
|
strh r1, [r3, 0x2E]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bgt _080A73F6
|
|
ldr r2, _080A73FC @ =gTasks
|
|
movs r0, 0x3C
|
|
ldrsh r1, [r3, r0]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r0, r2
|
|
ldrh r1, [r0, 0xA]
|
|
subs r1, 0x1
|
|
strh r1, [r0, 0xA]
|
|
adds r0, r3, 0
|
|
bl DestroySprite
|
|
_080A73F6:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A73FC: .4byte gTasks
|
|
thumb_func_end sub_80A73CC
|
|
|
|
thumb_func_start sub_80A7400
|
|
sub_80A7400: @ 80A7400
|
|
push {r4,lr}
|
|
adds r2, r0, 0
|
|
movs r0, 0x3C
|
|
ldrsh r1, [r2, r0]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
ldr r1, _080A7430 @ =gTasks
|
|
adds r4, r0, r1
|
|
movs r3, 0x2E
|
|
ldrsh r1, [r2, r3]
|
|
movs r3, 0x12
|
|
ldrsh r0, [r4, r3]
|
|
cmp r1, r0
|
|
ble _080A7434
|
|
ldrh r0, [r2, 0x34]
|
|
ldrh r1, [r2, 0x38]
|
|
adds r0, r1
|
|
strh r0, [r2, 0x38]
|
|
ldrh r0, [r2, 0x36]
|
|
ldrh r3, [r2, 0x3A]
|
|
adds r0, r3
|
|
b _080A7442
|
|
.align 2, 0
|
|
_080A7430: .4byte gTasks
|
|
_080A7434:
|
|
ldrh r0, [r2, 0x38]
|
|
ldrh r1, [r2, 0x34]
|
|
subs r0, r1
|
|
strh r0, [r2, 0x38]
|
|
ldrh r0, [r2, 0x3A]
|
|
ldrh r1, [r2, 0x36]
|
|
subs r0, r1
|
|
_080A7442:
|
|
strh r0, [r2, 0x3A]
|
|
ldrh r0, [r2, 0x38]
|
|
ldrh r1, [r2, 0x30]
|
|
adds r3, r0, r1
|
|
strh r3, [r2, 0x30]
|
|
ldrh r0, [r2, 0x3A]
|
|
ldrh r1, [r2, 0x32]
|
|
adds r0, r1
|
|
strh r0, [r2, 0x32]
|
|
ldrh r1, [r4, 0x16]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080A7466
|
|
lsls r0, r3, 16
|
|
lsrs r0, 24
|
|
negs r0, r0
|
|
b _080A746A
|
|
_080A7466:
|
|
lsls r0, r3, 16
|
|
lsrs r0, 24
|
|
_080A746A:
|
|
strh r0, [r2, 0x24]
|
|
ldrh r1, [r4, 0x18]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080A747E
|
|
ldrh r0, [r2, 0x32]
|
|
lsrs r0, 8
|
|
negs r0, r0
|
|
b _080A7482
|
|
_080A747E:
|
|
ldrh r0, [r2, 0x32]
|
|
lsrs r0, 8
|
|
_080A7482:
|
|
strh r0, [r2, 0x26]
|
|
ldrh r0, [r2, 0x2E]
|
|
subs r1, r0, 0x1
|
|
strh r1, [r2, 0x2E]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bgt _080A7498
|
|
movs r0, 0x1E
|
|
strh r0, [r2, 0x2E]
|
|
ldr r0, _080A74A0 @ =sub_80A73CC
|
|
str r0, [r2, 0x1C]
|
|
_080A7498:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A74A0: .4byte sub_80A73CC
|
|
thumb_func_end sub_80A7400
|
|
|
|
thumb_func_start sub_80A74A4
|
|
sub_80A74A4: @ 80A74A4
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
adds r7, r0, 0
|
|
movs r0, 0x3C
|
|
ldrsh r1, [r7, r0]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
ldr r1, _080A74E8 @ =gTasks
|
|
adds r6, r0, r1
|
|
ldrh r2, [r6, 0x16]
|
|
movs r1, 0x2
|
|
negs r1, r1
|
|
adds r0, r1, 0
|
|
ands r0, r2
|
|
ldrh r3, [r7, 0x30]
|
|
adds r2, r0, r3
|
|
strh r2, [r7, 0x30]
|
|
ldrh r0, [r6, 0x18]
|
|
ands r1, r0
|
|
ldrh r0, [r7, 0x32]
|
|
adds r1, r0
|
|
strh r1, [r7, 0x32]
|
|
ldrh r1, [r6, 0x16]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080A74EC
|
|
lsls r0, r2, 16
|
|
lsrs r0, 24
|
|
negs r0, r0
|
|
b _080A74F0
|
|
.align 2, 0
|
|
_080A74E8: .4byte gTasks
|
|
_080A74EC:
|
|
lsls r0, r2, 16
|
|
lsrs r0, 24
|
|
_080A74F0:
|
|
strh r0, [r7, 0x24]
|
|
ldrh r1, [r6, 0x18]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080A7504
|
|
ldrh r0, [r7, 0x32]
|
|
lsrs r0, 8
|
|
negs r0, r0
|
|
b _080A7508
|
|
_080A7504:
|
|
ldrh r0, [r7, 0x32]
|
|
lsrs r0, 8
|
|
_080A7508:
|
|
strh r0, [r7, 0x26]
|
|
ldrh r0, [r7, 0x2E]
|
|
subs r1, r0, 0x1
|
|
strh r1, [r7, 0x2E]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bgt _080A75D4
|
|
movs r4, 0
|
|
movs r0, 0x8
|
|
strh r0, [r7, 0x2E]
|
|
movs r0, 0x4
|
|
strh r0, [r6, 0x12]
|
|
movs r0, 0x80
|
|
lsls r0, 5
|
|
bl sub_80D8B90
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
ldrh r0, [r7, 0x24]
|
|
ldrh r1, [r7, 0x20]
|
|
adds r2, r0, r1
|
|
strh r2, [r7, 0x20]
|
|
ldrh r0, [r7, 0x26]
|
|
ldrh r3, [r7, 0x22]
|
|
adds r0, r3
|
|
strh r0, [r7, 0x22]
|
|
strh r4, [r7, 0x26]
|
|
strh r4, [r7, 0x24]
|
|
ldrh r3, [r6, 0x1E]
|
|
movs r0, 0x1E
|
|
ldrsh r1, [r6, r0]
|
|
lsls r0, r2, 16
|
|
asrs r0, 16
|
|
cmp r1, r0
|
|
blt _080A7552
|
|
subs r0, r3, r2
|
|
b _080A7554
|
|
_080A7552:
|
|
subs r0, r2, r3
|
|
_080A7554:
|
|
lsls r0, 24
|
|
lsrs r4, r0, 16
|
|
ldrh r3, [r6, 0x20]
|
|
movs r0, 0x20
|
|
ldrsh r1, [r6, r0]
|
|
ldrh r2, [r7, 0x22]
|
|
movs r6, 0x22
|
|
ldrsh r0, [r7, r6]
|
|
cmp r1, r0
|
|
blt _080A756C
|
|
subs r0, r3, r2
|
|
b _080A756E
|
|
_080A756C:
|
|
subs r0, r2, r3
|
|
_080A756E:
|
|
lsls r0, 24
|
|
lsrs r0, 16
|
|
mov r8, r0
|
|
movs r0, 0
|
|
strh r0, [r7, 0x32]
|
|
strh r0, [r7, 0x30]
|
|
strh r0, [r7, 0x3A]
|
|
strh r0, [r7, 0x38]
|
|
lsls r0, r4, 16
|
|
asrs r0, 16
|
|
lsls r5, 16
|
|
asrs r5, 16
|
|
adds r1, r5, 0
|
|
bl sub_80D8AA0
|
|
adds r4, r0, 0
|
|
lsls r4, 16
|
|
asrs r4, 16
|
|
movs r6, 0xE0
|
|
lsls r6, 1
|
|
adds r0, r6, 0
|
|
bl sub_80D8B90
|
|
adds r1, r0, 0
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
adds r0, r4, 0
|
|
bl sub_80D8AA0
|
|
strh r0, [r7, 0x34]
|
|
mov r1, r8
|
|
lsls r0, r1, 16
|
|
asrs r0, 16
|
|
adds r1, r5, 0
|
|
bl sub_80D8AA0
|
|
adds r4, r0, 0
|
|
lsls r4, 16
|
|
asrs r4, 16
|
|
adds r0, r6, 0
|
|
bl sub_80D8B90
|
|
adds r1, r0, 0
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
adds r0, r4, 0
|
|
bl sub_80D8AA0
|
|
strh r0, [r7, 0x36]
|
|
ldr r0, _080A75E0 @ =sub_80A7400
|
|
str r0, [r7, 0x1C]
|
|
_080A75D4:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A75E0: .4byte sub_80A7400
|
|
thumb_func_end sub_80A74A4
|
|
|
|
thumb_func_start sub_80A75E4
|
|
sub_80A75E4: @ 80A75E4
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
ldr r1, _080A7608 @ =gTasks
|
|
lsls r0, r2, 2
|
|
adds r0, r2
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
movs r1, 0xA
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0
|
|
bne _080A7602
|
|
adds r0, r2, 0
|
|
bl DestroyAnimVisualTask
|
|
_080A7602:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A7608: .4byte gTasks
|
|
thumb_func_end sub_80A75E4
|
|
|
|
thumb_func_start sub_80A760C
|
|
sub_80A760C: @ 80A760C
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
ldr r1, _080A7660 @ =gTasks
|
|
lsls r0, r7, 2
|
|
adds r0, r7
|
|
lsls r0, 3
|
|
adds r5, r0, r1
|
|
ldrh r0, [r5, 0x8]
|
|
subs r1, r0, 0x1
|
|
strh r1, [r5, 0x8]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bgt _080A76E0
|
|
ldr r0, _080A7664 @ =gUnknown_83E3C28
|
|
movs r2, 0x1A
|
|
ldrsh r1, [r5, r2]
|
|
movs r3, 0x1C
|
|
ldrsh r2, [r5, r3]
|
|
ldrb r3, [r5, 0xC]
|
|
ldrb r4, [r5, 0xA]
|
|
subs r3, r4
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
bl CreateSprite
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r12, r0
|
|
lsls r0, 4
|
|
add r0, r12
|
|
lsls r0, 2
|
|
ldr r1, _080A7668 @ =gSprites
|
|
adds r6, r0, r1
|
|
movs r1, 0x10
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0x1
|
|
beq _080A766C
|
|
cmp r0, 0x2
|
|
beq _080A7682
|
|
b _080A7690
|
|
.align 2, 0
|
|
_080A7660: .4byte gTasks
|
|
_080A7664: .4byte gUnknown_83E3C28
|
|
_080A7668: .4byte gSprites
|
|
_080A766C:
|
|
ldrb r2, [r6, 0x3]
|
|
lsls r1, r2, 26
|
|
lsrs r1, 27
|
|
movs r0, 0x18
|
|
orrs r1, r0
|
|
lsls r1, 1
|
|
subs r0, 0x57
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r6, 0x3]
|
|
b _080A7690
|
|
_080A7682:
|
|
ldrb r0, [r6, 0x3]
|
|
movs r1, 0x3F
|
|
negs r1, r1
|
|
ands r1, r0
|
|
movs r0, 0x10
|
|
orrs r1, r0
|
|
strb r1, [r6, 0x3]
|
|
_080A7690:
|
|
ldr r3, _080A76E8 @ =gTasks
|
|
lsls r2, r7, 2
|
|
adds r2, r7
|
|
lsls r2, 3
|
|
adds r4, r2, r3
|
|
ldrh r0, [r4, 0x12]
|
|
ldrh r1, [r4, 0x14]
|
|
subs r0, r1
|
|
strh r0, [r6, 0x2E]
|
|
strh r7, [r6, 0x3C]
|
|
movs r1, 0xA
|
|
ldrsh r0, [r4, r1]
|
|
adds r0, 0xD
|
|
lsls r0, 1
|
|
adds r0, r2
|
|
adds r3, 0x8
|
|
adds r0, r3
|
|
mov r2, r12
|
|
strh r2, [r0]
|
|
ldrh r0, [r4, 0xE]
|
|
strh r0, [r4, 0x8]
|
|
ldrh r0, [r4, 0xA]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0xA]
|
|
movs r0, 0x3F
|
|
negs r0, r0
|
|
bl sub_8073A44
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
asrs r1, 24
|
|
movs r0, 0x93
|
|
bl PlaySE12WithPanning
|
|
movs r3, 0xA
|
|
ldrsh r0, [r4, r3]
|
|
cmp r0, 0x2
|
|
ble _080A76E0
|
|
ldr r0, _080A76EC @ =sub_80A75E4
|
|
str r0, [r4]
|
|
_080A76E0:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A76E8: .4byte gTasks
|
|
_080A76EC: .4byte sub_80A75E4
|
|
thumb_func_end sub_80A760C
|
|
|
|
thumb_func_start sub_80A76F0
|
|
sub_80A76F0: @ 80A76F0
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
movs r0, 0
|
|
mov r9, r0
|
|
movs r5, 0
|
|
mov r0, sp
|
|
mov r1, r9
|
|
strh r1, [r0]
|
|
mov r4, sp
|
|
adds r4, 0x2
|
|
strh r1, [r4]
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
mov r10, r4
|
|
cmp r0, 0
|
|
beq _080A775C
|
|
ldr r1, _080A774C @ =gTasks
|
|
lsls r2, r7, 2
|
|
adds r0, r2, r7
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
movs r1, 0x2
|
|
strh r1, [r0, 0x10]
|
|
ldr r3, _080A7750 @ =gUnknown_2037F02
|
|
ldrh r0, [r3]
|
|
negs r0, r0
|
|
strh r0, [r3]
|
|
ldrh r1, [r3, 0x4]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
mov r8, r2
|
|
cmp r0, 0
|
|
beq _080A7754
|
|
movs r0, 0x2
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strh r0, [r3, 0x4]
|
|
b _080A77B6
|
|
.align 2, 0
|
|
_080A774C: .4byte gTasks
|
|
_080A7750: .4byte gUnknown_2037F02
|
|
_080A7754:
|
|
movs r0, 0x1
|
|
orrs r0, r1
|
|
strh r0, [r3, 0x4]
|
|
b _080A77B6
|
|
_080A775C:
|
|
ldr r1, _080A77A0 @ =gUnknown_2023BD6
|
|
ldr r0, _080A77A4 @ =gUnknown_2037F1B
|
|
ldrb r0, [r0]
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r3, 0x1
|
|
adds r0, r3, 0
|
|
ands r0, r1
|
|
lsls r2, r7, 2
|
|
mov r8, r2
|
|
cmp r0, 0
|
|
bne _080A77B6
|
|
ldr r1, _080A77A8 @ =gTasks
|
|
adds r0, r2, r7
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
strh r3, [r0, 0x10]
|
|
ldr r2, _080A77AC @ =gUnknown_2037F02
|
|
ldrh r0, [r2]
|
|
negs r0, r0
|
|
strh r0, [r2]
|
|
ldrh r0, [r2, 0x2]
|
|
negs r0, r0
|
|
strh r0, [r2, 0x2]
|
|
ldrh r1, [r2, 0x4]
|
|
adds r0, r3, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080A77B0
|
|
movs r0, 0x2
|
|
negs r0, r0
|
|
ands r0, r1
|
|
b _080A77B4
|
|
.align 2, 0
|
|
_080A77A0: .4byte gUnknown_2023BD6
|
|
_080A77A4: .4byte gUnknown_2037F1B
|
|
_080A77A8: .4byte gTasks
|
|
_080A77AC: .4byte gUnknown_2037F02
|
|
_080A77B0:
|
|
movs r0, 0x1
|
|
orrs r0, r1
|
|
_080A77B4:
|
|
strh r0, [r2, 0x4]
|
|
_080A77B6:
|
|
ldr r5, _080A7810 @ =gUnknown_2037F1A
|
|
ldrb r0, [r5]
|
|
movs r1, 0
|
|
bl sub_8074480
|
|
ldr r1, _080A7814 @ =gTasks
|
|
mov r3, r8
|
|
adds r4, r3, r7
|
|
lsls r4, 3
|
|
adds r4, r1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x1A]
|
|
adds r6, r0, 0
|
|
ldrb r0, [r5]
|
|
movs r1, 0x1
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x1C]
|
|
mov r9, r0
|
|
ldr r0, _080A7818 @ =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080A7820
|
|
ldr r4, _080A781C @ =gUnknown_2037F1B
|
|
ldrb r1, [r4]
|
|
movs r0, 0x2
|
|
eors r0, r1
|
|
bl sub_8072DF0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A7820
|
|
ldrb r0, [r4]
|
|
movs r1, 0
|
|
mov r2, sp
|
|
mov r3, r10
|
|
bl sub_8076D9C
|
|
b _080A7842
|
|
.align 2, 0
|
|
_080A7810: .4byte gUnknown_2037F1A
|
|
_080A7814: .4byte gTasks
|
|
_080A7818: .4byte gBattleTypeFlags
|
|
_080A781C: .4byte gUnknown_2037F1B
|
|
_080A7820:
|
|
mov r5, sp
|
|
ldr r4, _080A787C @ =gUnknown_2037F1B
|
|
ldrb r0, [r4]
|
|
movs r1, 0
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5]
|
|
ldrb r0, [r4]
|
|
movs r1, 0x1
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r1, r10
|
|
strh r0, [r1]
|
|
_080A7842:
|
|
mov r4, sp
|
|
ldr r0, _080A7880 @ =gTasks
|
|
mov r2, r8
|
|
adds r1, r2, r7
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
mov r2, sp
|
|
ldr r3, _080A7884 @ =gUnknown_2037F02
|
|
ldrh r0, [r3]
|
|
ldrh r2, [r2]
|
|
adds r0, r2
|
|
strh r0, [r1, 0x1E]
|
|
strh r0, [r4]
|
|
ldrh r0, [r3, 0x2]
|
|
mov r3, r10
|
|
ldrh r3, [r3]
|
|
adds r0, r3
|
|
strh r0, [r1, 0x20]
|
|
mov r1, r10
|
|
strh r0, [r1]
|
|
mov r0, sp
|
|
ldrh r2, [r0]
|
|
movs r3, 0
|
|
ldrsh r0, [r0, r3]
|
|
adds r1, r6, 0
|
|
cmp r0, r1
|
|
blt _080A7888
|
|
subs r0, r2, r1
|
|
b _080A788A
|
|
.align 2, 0
|
|
_080A787C: .4byte gUnknown_2037F1B
|
|
_080A7880: .4byte gTasks
|
|
_080A7884: .4byte gUnknown_2037F02
|
|
_080A7888:
|
|
subs r0, r1, r2
|
|
_080A788A:
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
lsls r4, r0, 16
|
|
asrs r4, 16
|
|
ldr r5, _080A7900 @ =gUnknown_2037F02
|
|
ldrh r1, [r5, 0x4]
|
|
movs r0, 0x2
|
|
negs r0, r0
|
|
ands r0, r1
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
bl sub_80D8B90
|
|
adds r1, r0, 0
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
adds r0, r4, 0
|
|
bl sub_80D8AA0
|
|
ldr r2, _080A7904 @ =gTasks
|
|
mov r3, r8
|
|
adds r1, r3, r7
|
|
lsls r1, 3
|
|
adds r6, r1, r2
|
|
strh r0, [r6, 0x12]
|
|
movs r1, 0x12
|
|
ldrsh r0, [r6, r1]
|
|
movs r1, 0x80
|
|
bl sub_80D8AA0
|
|
strh r0, [r6, 0x14]
|
|
ldrh r0, [r5, 0x4]
|
|
strh r0, [r6, 0x16]
|
|
mov r2, r10
|
|
ldrh r1, [r2]
|
|
movs r3, 0
|
|
ldrsh r0, [r2, r3]
|
|
mov r4, r9
|
|
cmp r0, r4
|
|
blt _080A7908
|
|
subs r4, r1, r4
|
|
lsls r4, 16
|
|
asrs r4, 16
|
|
movs r1, 0x12
|
|
ldrsh r0, [r6, r1]
|
|
bl sub_80D8B90
|
|
adds r1, r0, 0
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
adds r0, r4, 0
|
|
bl sub_80D8AA0
|
|
movs r1, 0x2
|
|
negs r1, r1
|
|
ands r1, r0
|
|
strh r1, [r6, 0x18]
|
|
b _080A7928
|
|
.align 2, 0
|
|
_080A7900: .4byte gUnknown_2037F02
|
|
_080A7904: .4byte gTasks
|
|
_080A7908:
|
|
subs r4, r1
|
|
lsls r4, 16
|
|
asrs r4, 16
|
|
movs r2, 0x12
|
|
ldrsh r0, [r6, r2]
|
|
bl sub_80D8B90
|
|
adds r1, r0, 0
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
adds r0, r4, 0
|
|
bl sub_80D8AA0
|
|
movs r1, 0x1
|
|
orrs r0, r1
|
|
strh r0, [r6, 0x18]
|
|
_080A7928:
|
|
ldr r1, _080A7968 @ =gTasks
|
|
mov r3, r8
|
|
adds r0, r3, r7
|
|
lsls r0, 3
|
|
adds r5, r0, r1
|
|
ldr r4, _080A796C @ =gUnknown_2037F02
|
|
ldrh r0, [r4, 0x6]
|
|
strh r0, [r5, 0xE]
|
|
ldrh r1, [r4, 0x8]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080A7978
|
|
movs r0, 0x80
|
|
eors r0, r1
|
|
strh r0, [r4, 0x8]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x3F
|
|
ble _080A79A0
|
|
ldr r0, _080A7970 @ =gUnknown_2037F1B
|
|
ldrb r0, [r0]
|
|
bl sub_807685C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, _080A7974 @ =0x0000ffc0
|
|
adds r1, r2, 0
|
|
ldrh r4, [r4, 0x8]
|
|
adds r1, r4
|
|
adds r0, r1
|
|
b _080A79B0
|
|
.align 2, 0
|
|
_080A7968: .4byte gTasks
|
|
_080A796C: .4byte gUnknown_2037F02
|
|
_080A7970: .4byte gUnknown_2037F1B
|
|
_080A7974: .4byte 0x0000ffc0
|
|
_080A7978:
|
|
lsls r0, r1, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x3F
|
|
ble _080A79A0
|
|
ldr r0, _080A7998 @ =gUnknown_2037F1B
|
|
ldrb r0, [r0]
|
|
bl sub_807685C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r3, _080A799C @ =0x0000ffc0
|
|
adds r1, r3, 0
|
|
ldrh r4, [r4, 0x8]
|
|
adds r1, r4
|
|
adds r0, r1
|
|
b _080A79B0
|
|
.align 2, 0
|
|
_080A7998: .4byte gUnknown_2037F1B
|
|
_080A799C: .4byte 0x0000ffc0
|
|
_080A79A0:
|
|
ldr r0, _080A79DC @ =gUnknown_2037F1B
|
|
ldrb r0, [r0]
|
|
bl sub_807685C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrh r1, [r4, 0x8]
|
|
subs r0, r1
|
|
_080A79B0:
|
|
strh r0, [r5, 0xC]
|
|
ldr r0, _080A79E0 @ =gTasks
|
|
mov r2, r8
|
|
adds r1, r2, r7
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
movs r3, 0xC
|
|
ldrsh r0, [r1, r3]
|
|
cmp r0, 0x2
|
|
bgt _080A79C8
|
|
movs r0, 0x3
|
|
strh r0, [r1, 0xC]
|
|
_080A79C8:
|
|
ldr r0, _080A79E4 @ =sub_80A760C
|
|
str r0, [r1]
|
|
add sp, 0x4
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A79DC: .4byte gUnknown_2037F1B
|
|
_080A79E0: .4byte gTasks
|
|
_080A79E4: .4byte sub_80A760C
|
|
thumb_func_end sub_80A76F0
|
|
|
|
thumb_func_start sub_80A79E8
|
|
sub_80A79E8: @ 80A79E8
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0
|
|
bl sub_8075160
|
|
ldr r0, _080A7A10 @ =gUnknown_83E3D18
|
|
ldrh r0, [r0, 0x2]
|
|
bl IndexOfSpritePaletteTag
|
|
lsls r0, 24
|
|
lsrs r0, 20
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
strh r0, [r4, 0x2E]
|
|
ldr r0, _080A7A14 @ =sub_80A7A18
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A7A10: .4byte gUnknown_83E3D18
|
|
_080A7A14: .4byte sub_80A7A18
|
|
thumb_func_end sub_80A79E8
|
|
|
|
thumb_func_start sub_80A7A18
|
|
sub_80A7A18: @ 80A7A18
|
|
push {r4-r7,lr}
|
|
adds r4, r0, 0
|
|
ldrh r0, [r4, 0x30]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x30]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x2
|
|
bne _080A7A7C
|
|
movs r0, 0
|
|
strh r0, [r4, 0x30]
|
|
ldrh r5, [r4, 0x2E]
|
|
ldr r1, _080A7A84 @ =gPlttBufferFaded
|
|
adds r0, r5, 0
|
|
adds r0, 0x8
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
ldrh r7, [r0]
|
|
adds r6, r1, 0
|
|
adds r1, r5, 0
|
|
adds r1, 0x9
|
|
lsls r0, r5, 1
|
|
adds r0, r6
|
|
adds r2, r0, 0
|
|
adds r2, 0x10
|
|
movs r3, 0x7
|
|
lsls r1, 1
|
|
adds r1, r6
|
|
_080A7A50:
|
|
ldrh r0, [r1]
|
|
strh r0, [r2]
|
|
adds r1, 0x2
|
|
adds r2, 0x2
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bge _080A7A50
|
|
adds r0, r5, 0
|
|
adds r0, 0xF
|
|
lsls r0, 1
|
|
adds r0, r6
|
|
strh r7, [r0]
|
|
ldrh r0, [r4, 0x32]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x32]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x18
|
|
bne _080A7A7C
|
|
adds r0, r4, 0
|
|
bl DestroyAnimSprite
|
|
_080A7A7C:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A7A84: .4byte gPlttBufferFaded
|
|
thumb_func_end sub_80A7A18
|
|
|
|
thumb_func_start sub_80A7A88
|
|
sub_80A7A88: @ 80A7A88
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
movs r1, 0x1
|
|
bl sub_8075160
|
|
ldr r4, _080A7B28 @ =gUnknown_2037F1B
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
ldrb r0, [r4]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
ldr r4, _080A7B2C @ =gUnknown_2037F02
|
|
lsrs r0, 24
|
|
ldrh r1, [r4, 0x6]
|
|
adds r0, r1
|
|
lsls r0, 16
|
|
lsrs r7, r0, 16
|
|
ldr r0, _080A7B30 @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A7ACC
|
|
ldrh r0, [r4, 0x4]
|
|
negs r0, r0
|
|
strh r0, [r4, 0x4]
|
|
_080A7ACC:
|
|
lsls r0, r6, 16
|
|
asrs r0, 16
|
|
ldrh r1, [r4, 0x4]
|
|
adds r0, r1
|
|
lsls r0, 16
|
|
ldrh r1, [r5, 0x20]
|
|
lsrs r6, r0, 16
|
|
asrs r0, 16
|
|
subs r0, r1
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
ldrh r2, [r5, 0x22]
|
|
lsls r1, r7, 16
|
|
asrs r1, 16
|
|
subs r1, r2
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
bl sub_8075B30
|
|
lsls r0, 16
|
|
movs r1, 0xC0
|
|
lsls r1, 24
|
|
adds r0, r1
|
|
lsrs r0, 16
|
|
movs r3, 0x80
|
|
lsls r3, 1
|
|
str r0, [sp]
|
|
adds r0, r5, 0
|
|
movs r1, 0
|
|
adds r2, r3, 0
|
|
bl sub_8075A1C
|
|
ldrh r0, [r4, 0x8]
|
|
strh r0, [r5, 0x2E]
|
|
strh r6, [r5, 0x32]
|
|
strh r7, [r5, 0x36]
|
|
ldr r0, _080A7B34 @ =sub_80756A4
|
|
str r0, [r5, 0x1C]
|
|
ldr r1, _080A7B38 @ =DestroyAnimSprite
|
|
adds r0, r5, 0
|
|
bl StoreSpriteCallbackInData6
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A7B28: .4byte gUnknown_2037F1B
|
|
_080A7B2C: .4byte gUnknown_2037F02
|
|
_080A7B30: .4byte gUnknown_2037F1A
|
|
_080A7B34: .4byte sub_80756A4
|
|
_080A7B38: .4byte DestroyAnimSprite
|
|
thumb_func_end sub_80A7A88
|
|
|
|
thumb_func_start sub_80A7B3C
|
|
sub_80A7B3C: @ 80A7B3C
|
|
ldr r1, _080A7B4C @ =0x0000fff0
|
|
strh r1, [r0, 0x32]
|
|
ldrh r1, [r0, 0x22]
|
|
adds r1, 0x8
|
|
strh r1, [r0, 0x22]
|
|
ldr r1, _080A7B50 @ =sub_80A7B54
|
|
str r1, [r0, 0x1C]
|
|
bx lr
|
|
.align 2, 0
|
|
_080A7B4C: .4byte 0x0000fff0
|
|
_080A7B50: .4byte sub_80A7B54
|
|
thumb_func_end sub_80A7B3C
|
|
|
|
thumb_func_start sub_80A7B54
|
|
sub_80A7B54: @ 80A7B54
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrh r0, [r4, 0x2E]
|
|
adds r0, 0x80
|
|
strh r0, [r4, 0x2E]
|
|
lsls r0, 16
|
|
asrs r0, 24
|
|
strh r0, [r4, 0x24]
|
|
ldr r0, _080A7BC0 @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080A7B78
|
|
ldrh r0, [r4, 0x24]
|
|
negs r0, r0
|
|
strh r0, [r4, 0x24]
|
|
_080A7B78:
|
|
movs r1, 0x30
|
|
ldrsh r0, [r4, r1]
|
|
movs r2, 0x32
|
|
ldrsh r1, [r4, r2]
|
|
bl Sin
|
|
strh r0, [r4, 0x26]
|
|
ldrh r0, [r4, 0x30]
|
|
adds r0, 0x5
|
|
strh r0, [r4, 0x30]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x7E
|
|
ble _080A7BB8
|
|
movs r0, 0
|
|
strh r0, [r4, 0x30]
|
|
movs r1, 0x32
|
|
ldrsh r0, [r4, r1]
|
|
lsrs r1, r0, 31
|
|
adds r0, r1
|
|
asrs r0, 1
|
|
strh r0, [r4, 0x32]
|
|
ldrh r0, [r4, 0x34]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x34]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x2
|
|
bne _080A7BB8
|
|
adds r0, r4, 0
|
|
bl DestroyAnimSprite
|
|
_080A7BB8:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A7BC0: .4byte gUnknown_2037F1A
|
|
thumb_func_end sub_80A7B54
|
|
|
|
thumb_func_start sub_80A7BC4
|
|
sub_80A7BC4: @ 80A7BC4
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x1
|
|
bl sub_8075160
|
|
movs r0, 0x14
|
|
strh r0, [r4, 0x2E]
|
|
ldr r5, _080A7C10 @ =gUnknown_2037F1B
|
|
ldrb r0, [r5]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x32]
|
|
ldrb r0, [r5]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x36]
|
|
ldr r0, _080A7C14 @ =sub_8075590
|
|
str r0, [r4, 0x1C]
|
|
adds r2, r4, 0
|
|
adds r2, 0x2C
|
|
ldrb r0, [r2]
|
|
movs r1, 0x80
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r1, _080A7C18 @ =sub_80A7C1C
|
|
adds r0, r4, 0
|
|
bl StoreSpriteCallbackInData6
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A7C10: .4byte gUnknown_2037F1B
|
|
_080A7C14: .4byte sub_8075590
|
|
_080A7C18: .4byte sub_80A7C1C
|
|
thumb_func_end sub_80A7BC4
|
|
|
|
thumb_func_start sub_80A7C1C
|
|
sub_80A7C1C: @ 80A7C1C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x3F
|
|
bl sub_8073A44
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
asrs r1, 24
|
|
movs r0, 0x9F
|
|
bl PlaySE12WithPanning
|
|
ldrh r0, [r4, 0x24]
|
|
ldrh r1, [r4, 0x20]
|
|
adds r0, r1
|
|
movs r1, 0
|
|
strh r0, [r4, 0x20]
|
|
ldrh r0, [r4, 0x26]
|
|
ldrh r2, [r4, 0x22]
|
|
adds r0, r2
|
|
strh r0, [r4, 0x22]
|
|
strh r1, [r4, 0x26]
|
|
strh r1, [r4, 0x24]
|
|
movs r2, 0
|
|
movs r1, 0x7
|
|
adds r0, r4, 0
|
|
adds r0, 0x3C
|
|
_080A7C50:
|
|
strh r2, [r0]
|
|
subs r0, 0x2
|
|
subs r1, 0x1
|
|
cmp r1, 0
|
|
bge _080A7C50
|
|
bl Random
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x7
|
|
ands r0, r1
|
|
ldr r2, _080A7C98 @ =0x0000fff4
|
|
adds r1, r2, 0
|
|
subs r1, r0
|
|
strh r1, [r4, 0x3A]
|
|
bl Random
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0xA0
|
|
bl __umodsi3
|
|
adds r0, 0xA0
|
|
strh r0, [r4, 0x3C]
|
|
ldr r0, _080A7C9C @ =sub_80A7CA0
|
|
str r0, [r4, 0x1C]
|
|
adds r2, r4, 0
|
|
adds r2, 0x2C
|
|
ldrb r1, [r2]
|
|
movs r0, 0x7F
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A7C98: .4byte 0x0000fff4
|
|
_080A7C9C: .4byte sub_80A7CA0
|
|
thumb_func_end sub_80A7C1C
|
|
|
|
thumb_func_start sub_80A7CA0
|
|
sub_80A7CA0: @ 80A7CA0
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrh r1, [r4, 0x3C]
|
|
ldrh r2, [r4, 0x2E]
|
|
adds r0, r1, r2
|
|
strh r0, [r4, 0x2E]
|
|
lsls r0, 16
|
|
asrs r2, r0, 24
|
|
strh r2, [r4, 0x24]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080A7CBE
|
|
negs r0, r2
|
|
strh r0, [r4, 0x24]
|
|
_080A7CBE:
|
|
movs r1, 0x30
|
|
ldrsh r0, [r4, r1]
|
|
movs r2, 0x3A
|
|
ldrsh r1, [r4, r2]
|
|
bl Sin
|
|
strh r0, [r4, 0x26]
|
|
ldrh r0, [r4, 0x30]
|
|
adds r0, 0x8
|
|
strh r0, [r4, 0x30]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x7E
|
|
ble _080A7CFE
|
|
movs r0, 0
|
|
strh r0, [r4, 0x30]
|
|
movs r1, 0x32
|
|
ldrsh r0, [r4, r1]
|
|
lsrs r1, r0, 31
|
|
adds r0, r1
|
|
asrs r0, 1
|
|
strh r0, [r4, 0x32]
|
|
ldrh r0, [r4, 0x34]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x34]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1
|
|
bne _080A7CFE
|
|
adds r0, r4, 0
|
|
bl DestroyAnimSprite
|
|
_080A7CFE:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A7CA0
|
|
|
|
thumb_func_start sub_80A7D04
|
|
sub_80A7D04: @ 80A7D04
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0
|
|
bl sub_8075160
|
|
ldr r0, _080A7D54 @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080A7D22
|
|
ldrh r0, [r4, 0x22]
|
|
adds r0, 0x10
|
|
strh r0, [r4, 0x22]
|
|
_080A7D22:
|
|
ldr r1, _080A7D58 @ =gUnknown_2037F02
|
|
ldrh r0, [r1, 0x8]
|
|
strh r0, [r4, 0x2E]
|
|
ldrh r0, [r1, 0x4]
|
|
strh r0, [r4, 0x30]
|
|
ldrh r0, [r1, 0xA]
|
|
strh r0, [r4, 0x32]
|
|
ldrh r0, [r1, 0xC]
|
|
strh r0, [r4, 0x34]
|
|
ldrh r0, [r1, 0x6]
|
|
strh r0, [r4, 0x36]
|
|
ldr r0, _080A7D5C @ =sub_8074A80
|
|
str r0, [r4, 0x1C]
|
|
ldr r1, _080A7D60 @ =DestroyAnimSprite
|
|
adds r0, r4, 0
|
|
bl StoreSpriteCallbackInData6
|
|
ldr r1, [r4, 0x1C]
|
|
adds r0, r4, 0
|
|
bl _call_via_r1
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A7D54: .4byte gUnknown_2037F1A
|
|
_080A7D58: .4byte gUnknown_2037F02
|
|
_080A7D5C: .4byte sub_8074A80
|
|
_080A7D60: .4byte DestroyAnimSprite
|
|
thumb_func_end sub_80A7D04
|
|
|
|
thumb_func_start sub_80A7D64
|
|
sub_80A7D64: @ 80A7D64
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
adds r5, r0, 0
|
|
movs r7, 0x20
|
|
ldr r4, _080A7DE0 @ =0x0000ffe0
|
|
movs r0, 0x10
|
|
mov r8, r0
|
|
ldr r6, _080A7DE4 @ =0x0000fff0
|
|
ldr r0, _080A7DE8 @ =gUnknown_2037F02
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0
|
|
beq _080A7D90
|
|
adds r7, r4, 0
|
|
movs r4, 0x20
|
|
mov r8, r6
|
|
movs r6, 0x10
|
|
adds r0, r5, 0
|
|
movs r1, 0x1
|
|
bl StartSpriteAnim
|
|
_080A7D90:
|
|
lsls r0, r7, 16
|
|
asrs r0, 16
|
|
ldrh r1, [r5, 0x20]
|
|
adds r0, r1
|
|
strh r0, [r5, 0x20]
|
|
lsls r0, r4, 16
|
|
asrs r0, 16
|
|
ldrh r1, [r5, 0x22]
|
|
adds r0, r1
|
|
strh r0, [r5, 0x22]
|
|
movs r0, 0x6
|
|
strh r0, [r5, 0x2E]
|
|
ldr r4, _080A7DEC @ =gUnknown_2037F1B
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add r0, r8
|
|
strh r0, [r5, 0x32]
|
|
ldrb r0, [r4]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r0, r6
|
|
strh r0, [r5, 0x36]
|
|
ldr r0, _080A7DF0 @ =sub_8075590
|
|
str r0, [r5, 0x1C]
|
|
ldr r1, _080A7DF4 @ =sub_80A7DF8
|
|
adds r0, r5, 0
|
|
bl StoreSpriteCallbackInData6
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A7DE0: .4byte 0x0000ffe0
|
|
_080A7DE4: .4byte 0x0000fff0
|
|
_080A7DE8: .4byte gUnknown_2037F02
|
|
_080A7DEC: .4byte gUnknown_2037F1B
|
|
_080A7DF0: .4byte sub_8075590
|
|
_080A7DF4: .4byte sub_80A7DF8
|
|
thumb_func_end sub_80A7D64
|
|
|
|
thumb_func_start sub_80A7DF8
|
|
sub_80A7DF8: @ 80A7DF8
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
adds r0, 0x3F
|
|
ldrb r1, [r0]
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080A7E0E
|
|
adds r0, r2, 0
|
|
bl DestroyAnimSprite
|
|
_080A7E0E:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A7DF8
|
|
|
|
thumb_func_start sub_80A7E14
|
|
sub_80A7E14: @ 80A7E14
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
adds r5, r0, 0
|
|
movs r0, 0x20
|
|
mov r8, r0
|
|
ldr r4, _080A7EA8 @ =0x0000ffe0
|
|
movs r2, 0x10
|
|
mov r9, r2
|
|
ldr r6, _080A7EAC @ =0x0000fff0
|
|
ldr r7, _080A7EB0 @ =gUnknown_2037F02
|
|
ldrh r1, [r7]
|
|
movs r2, 0
|
|
ldrsh r0, [r7, r2]
|
|
cmp r0, 0
|
|
beq _080A7E48
|
|
mov r8, r4
|
|
movs r4, 0x20
|
|
mov r9, r6
|
|
movs r6, 0x10
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r5, 0
|
|
bl StartSpriteAnim
|
|
_080A7E48:
|
|
mov r0, r8
|
|
lsls r1, r0, 16
|
|
asrs r1, 16
|
|
ldrh r2, [r5, 0x20]
|
|
adds r1, r2
|
|
strh r1, [r5, 0x20]
|
|
lsls r0, r4, 16
|
|
asrs r0, 16
|
|
ldrh r2, [r5, 0x22]
|
|
adds r0, r2
|
|
strh r0, [r5, 0x22]
|
|
movs r0, 0x6
|
|
strh r0, [r5, 0x2E]
|
|
strh r1, [r5, 0x30]
|
|
ldr r4, _080A7EB4 @ =gUnknown_2037F1B
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add r0, r9
|
|
strh r0, [r5, 0x32]
|
|
ldrh r0, [r5, 0x22]
|
|
strh r0, [r5, 0x34]
|
|
ldrb r0, [r4]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r0, r6
|
|
strh r0, [r5, 0x36]
|
|
adds r0, r5, 0
|
|
bl obj_translate_based_on_private_1_2_3_4
|
|
ldrh r0, [r7]
|
|
strh r0, [r5, 0x38]
|
|
ldrh r0, [r5, 0x2E]
|
|
strh r0, [r5, 0x3A]
|
|
ldr r0, _080A7EB8 @ =sub_80A7EBC
|
|
str r0, [r5, 0x1C]
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A7EA8: .4byte 0x0000ffe0
|
|
_080A7EAC: .4byte 0x0000fff0
|
|
_080A7EB0: .4byte gUnknown_2037F02
|
|
_080A7EB4: .4byte gUnknown_2037F1B
|
|
_080A7EB8: .4byte sub_80A7EBC
|
|
thumb_func_end sub_80A7E14
|
|
|
|
thumb_func_start sub_80A7EBC
|
|
sub_80A7EBC: @ 80A7EBC
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_80755E0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A7F20
|
|
adds r0, r4, 0
|
|
adds r0, 0x3F
|
|
ldrb r1, [r0]
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080A7F20
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl SeekSpriteAnim
|
|
adds r2, r4, 0
|
|
adds r2, 0x2C
|
|
ldrb r0, [r2]
|
|
movs r1, 0x40
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldrh r0, [r4, 0x24]
|
|
ldrh r1, [r4, 0x20]
|
|
adds r0, r1
|
|
movs r2, 0
|
|
strh r0, [r4, 0x20]
|
|
ldrh r0, [r4, 0x26]
|
|
ldrh r1, [r4, 0x22]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x22]
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x24]
|
|
ldr r0, _080A7F28 @ =0x0000fffe
|
|
strh r0, [r4, 0x26]
|
|
ldrh r0, [r4, 0x3A]
|
|
strh r0, [r4, 0x2E]
|
|
ldrh r0, [r4, 0x30]
|
|
movs r1, 0x1
|
|
eors r0, r1
|
|
strh r0, [r4, 0x30]
|
|
ldrh r0, [r4, 0x32]
|
|
eors r0, r1
|
|
strh r0, [r4, 0x32]
|
|
strh r2, [r4, 0x36]
|
|
strh r2, [r4, 0x34]
|
|
ldr r0, _080A7F2C @ =sub_80A7F30
|
|
str r0, [r4, 0x1C]
|
|
_080A7F20:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A7F28: .4byte 0x0000fffe
|
|
_080A7F2C: .4byte sub_80A7F30
|
|
thumb_func_end sub_80A7EBC
|
|
|
|
thumb_func_start sub_80A7F30
|
|
sub_80A7F30: @ 80A7F30
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x34
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
beq _080A7F48
|
|
ldrh r0, [r4, 0x24]
|
|
negs r0, r0
|
|
strh r0, [r4, 0x24]
|
|
ldrh r0, [r4, 0x26]
|
|
negs r0, r0
|
|
strh r0, [r4, 0x26]
|
|
_080A7F48:
|
|
ldrh r0, [r4, 0x34]
|
|
movs r1, 0x1
|
|
eors r0, r1
|
|
movs r1, 0
|
|
strh r0, [r4, 0x34]
|
|
ldrh r0, [r4, 0x36]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x36]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x33
|
|
bne _080A7F8A
|
|
strh r1, [r4, 0x26]
|
|
strh r1, [r4, 0x24]
|
|
strh r1, [r4, 0x36]
|
|
strh r1, [r4, 0x34]
|
|
adds r2, r4, 0
|
|
adds r2, 0x2C
|
|
ldrb r1, [r2]
|
|
movs r0, 0x41
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
ldrh r0, [r4, 0x38]
|
|
movs r1, 0x1
|
|
eors r1, r0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r4, 0
|
|
bl StartSpriteAnim
|
|
ldr r0, _080A7F90 @ =sub_80A7F94
|
|
str r0, [r4, 0x1C]
|
|
_080A7F8A:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A7F90: .4byte sub_80A7F94
|
|
thumb_func_end sub_80A7F30
|
|
|
|
thumb_func_start sub_80A7F94
|
|
sub_80A7F94: @ 80A7F94
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_80755E0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A7FA8
|
|
adds r0, r4, 0
|
|
bl DestroyAnimSprite
|
|
_080A7FA8:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A7F94
|
|
|
|
thumb_func_start sub_80A7FB0
|
|
sub_80A7FB0: @ 80A7FB0
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
movs r0, 0x1
|
|
bl GetAnimBankSpriteId
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl sub_80758E0
|
|
adds r0, r4, 0
|
|
movs r1, 0xD0
|
|
movs r2, 0xD0
|
|
movs r3, 0
|
|
bl obj_id_set_rotscale
|
|
ldr r1, _080A8008 @ =gSprites
|
|
lsls r0, r4, 4
|
|
adds r0, r4
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r0, [r0, 0x5]
|
|
lsrs r0, 4
|
|
adds r0, 0x10
|
|
movs r1, 0
|
|
bl sub_8075B48
|
|
ldr r1, _080A800C @ =gTasks
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
movs r1, 0x50
|
|
strh r1, [r0, 0x8]
|
|
ldr r1, _080A8010 @ =sub_80A8014
|
|
str r1, [r0]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A8008: .4byte gSprites
|
|
_080A800C: .4byte gTasks
|
|
_080A8010: .4byte sub_80A8014
|
|
thumb_func_end sub_80A7FB0
|
|
|
|
thumb_func_start sub_80A8014
|
|
sub_80A8014: @ 80A8014
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r1, _080A806C @ =gTasks
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldrh r1, [r0, 0x8]
|
|
subs r1, 0x1
|
|
strh r1, [r0, 0x8]
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
bne _080A8064
|
|
movs r0, 0x1
|
|
bl GetAnimBankSpriteId
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
adds r0, r4, 0
|
|
bl sub_8075980
|
|
ldr r1, _080A8070 @ =gSprites
|
|
lsls r0, r4, 4
|
|
adds r0, r4
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r0, [r0, 0x5]
|
|
lsrs r0, 4
|
|
adds r0, 0x10
|
|
movs r1, 0x1
|
|
bl sub_8075B48
|
|
adds r0, r5, 0
|
|
bl DestroyAnimVisualTask
|
|
_080A8064:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A806C: .4byte gTasks
|
|
_080A8070: .4byte gSprites
|
|
thumb_func_end sub_80A8014
|
|
|
|
thumb_func_start sub_80A8074
|
|
sub_80A8074: @ 80A8074
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r4, r0, 2
|
|
adds r4, r0
|
|
lsls r4, 3
|
|
ldr r0, _080A80C0 @ =gTasks
|
|
adds r4, r0
|
|
movs r0, 0
|
|
bl GetAnimBankSpriteId
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r5, 0
|
|
strh r0, [r4, 0x8]
|
|
movs r1, 0
|
|
bl sub_80758E0
|
|
strh r5, [r4, 0xA]
|
|
strh r5, [r4, 0xC]
|
|
strh r5, [r4, 0xE]
|
|
movs r0, 0x80
|
|
lsls r0, 1
|
|
strh r0, [r4, 0x10]
|
|
strh r5, [r4, 0x12]
|
|
strh r5, [r4, 0x14]
|
|
ldr r0, _080A80C4 @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl sub_807685C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x16]
|
|
ldr r0, _080A80C8 @ =sub_80A80CC
|
|
str r0, [r4]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A80C0: .4byte gTasks
|
|
_080A80C4: .4byte gUnknown_2037F1A
|
|
_080A80C8: .4byte sub_80A80CC
|
|
thumb_func_end sub_80A8074
|
|
|
|
thumb_func_start sub_80A80CC
|
|
sub_80A80CC: @ 80A80CC
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
ldr r1, _080A80F0 @ =gTasks
|
|
adds r4, r0, r1
|
|
movs r1, 0xA
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x5
|
|
bls _080A80E6
|
|
b _080A81F6
|
|
_080A80E6:
|
|
lsls r0, 2
|
|
ldr r1, _080A80F4 @ =_080A80F8
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080A80F0: .4byte gTasks
|
|
_080A80F4: .4byte _080A80F8
|
|
.align 2, 0
|
|
_080A80F8:
|
|
.4byte _080A8110
|
|
.4byte _080A8158
|
|
.4byte _080A818E
|
|
.4byte _080A8194
|
|
.4byte _080A81A4
|
|
.4byte _080A81D8
|
|
_080A8110:
|
|
movs r2, 0xC
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0
|
|
beq _080A8120
|
|
cmp r0, 0x3
|
|
beq _080A8120
|
|
cmp r0, 0x6
|
|
bne _080A8128
|
|
_080A8120:
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_80A8200
|
|
_080A8128:
|
|
ldrh r0, [r4, 0xC]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0xC]
|
|
ldrh r0, [r4, 0x10]
|
|
adds r0, 0x28
|
|
strh r0, [r4, 0x10]
|
|
ldrb r0, [r4, 0x8]
|
|
movs r1, 0x10
|
|
ldrsh r2, [r4, r1]
|
|
adds r1, r2, 0
|
|
movs r3, 0
|
|
bl obj_id_set_rotscale
|
|
ldrb r0, [r4, 0x8]
|
|
bl sub_8076440
|
|
movs r2, 0xC
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0x20
|
|
bne _080A81F6
|
|
ldrh r0, [r4, 0x12]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x12]
|
|
b _080A81D0
|
|
_080A8158:
|
|
movs r1, 0x14
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bne _080A81F6
|
|
movs r2, 0x12
|
|
ldrsh r1, [r4, r2]
|
|
cmp r1, 0x3
|
|
bne _080A816E
|
|
strh r0, [r4, 0xC]
|
|
strh r1, [r4, 0xA]
|
|
b _080A81F6
|
|
_080A816E:
|
|
strh r0, [r4, 0xC]
|
|
strh r0, [r4, 0xE]
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
strh r2, [r4, 0x10]
|
|
ldrb r0, [r4, 0x8]
|
|
adds r1, r2, 0
|
|
movs r3, 0
|
|
bl obj_id_set_rotscale
|
|
ldrb r0, [r4, 0x8]
|
|
bl sub_8076440
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0xA]
|
|
b _080A81F6
|
|
_080A818E:
|
|
movs r0, 0
|
|
strh r0, [r4, 0xA]
|
|
b _080A81F6
|
|
_080A8194:
|
|
ldrh r0, [r4, 0xC]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0xC]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x20
|
|
ble _080A81F6
|
|
b _080A81CC
|
|
_080A81A4:
|
|
ldrh r0, [r4, 0xC]
|
|
adds r0, 0x2
|
|
strh r0, [r4, 0xC]
|
|
ldrh r0, [r4, 0x10]
|
|
subs r0, 0x50
|
|
strh r0, [r4, 0x10]
|
|
ldrb r0, [r4, 0x8]
|
|
movs r1, 0x10
|
|
ldrsh r2, [r4, r1]
|
|
adds r1, r2, 0
|
|
movs r3, 0
|
|
bl obj_id_set_rotscale
|
|
ldrb r0, [r4, 0x8]
|
|
bl sub_8076440
|
|
movs r2, 0xC
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0x20
|
|
bne _080A81F6
|
|
_080A81CC:
|
|
movs r0, 0
|
|
strh r0, [r4, 0xC]
|
|
_080A81D0:
|
|
ldrh r0, [r4, 0xA]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0xA]
|
|
b _080A81F6
|
|
_080A81D8:
|
|
ldrb r0, [r4, 0x8]
|
|
bl sub_8075980
|
|
ldr r2, _080A81FC @ =gSprites
|
|
movs r0, 0x26
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
movs r1, 0
|
|
strh r1, [r0, 0x26]
|
|
adds r0, r5, 0
|
|
bl DestroyAnimVisualTask
|
|
_080A81F6:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A81FC: .4byte gSprites
|
|
thumb_func_end sub_80A80CC
|
|
|
|
thumb_func_start sub_80A8200
|
|
sub_80A8200: @ 80A8200
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
adds r7, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
mov r9, r1
|
|
movs r0, 0
|
|
bl duplicate_obj_of_side_rel2move_in_transparent_mode
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
mov r8, r0
|
|
lsls r0, 16
|
|
asrs r4, r0, 16
|
|
cmp r4, 0
|
|
blt _080A82DA
|
|
bl AllocOamMatrix
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
cmp r6, 0xFF
|
|
bne _080A8244
|
|
lsls r0, r4, 4
|
|
adds r0, r4
|
|
lsls r0, 2
|
|
ldr r1, _080A8240 @ =gSprites
|
|
adds r0, r1
|
|
bl obj_delete_but_dont_free_vram
|
|
b _080A82DA
|
|
.align 2, 0
|
|
_080A8240: .4byte gSprites
|
|
_080A8244:
|
|
ldr r5, _080A82E8 @ =gSprites
|
|
lsls r3, r4, 4
|
|
adds r3, r4
|
|
lsls r3, 2
|
|
adds r4, r3, r5
|
|
ldrb r1, [r4, 0x1]
|
|
movs r0, 0xD
|
|
negs r0, r0
|
|
ands r0, r1
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
movs r1, 0x3
|
|
orrs r0, r1
|
|
strb r0, [r4, 0x1]
|
|
adds r2, r4, 0
|
|
adds r2, 0x2C
|
|
ldrb r0, [r2]
|
|
movs r1, 0x80
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
movs r0, 0x1F
|
|
ands r6, r0
|
|
lsls r2, r6, 1
|
|
ldrb r1, [r4, 0x3]
|
|
movs r0, 0x3F
|
|
negs r0, r0
|
|
ands r0, r1
|
|
orrs r0, r2
|
|
strb r0, [r4, 0x3]
|
|
ldrb r0, [r7, 0x16]
|
|
ldrb r1, [r7, 0xE]
|
|
subs r0, r1
|
|
adds r1, r4, 0
|
|
adds r1, 0x43
|
|
strb r0, [r1]
|
|
ldrh r0, [r7, 0xE]
|
|
adds r0, 0x1
|
|
strh r0, [r7, 0xE]
|
|
ldrh r0, [r7, 0x14]
|
|
adds r0, 0x1
|
|
strh r0, [r7, 0x14]
|
|
movs r0, 0x10
|
|
strh r0, [r4, 0x2E]
|
|
mov r0, r9
|
|
strh r0, [r4, 0x30]
|
|
movs r0, 0x6
|
|
strh r0, [r4, 0x32]
|
|
adds r5, 0x1C
|
|
adds r3, r5
|
|
ldr r0, _080A82EC @ =sub_80A82F0
|
|
str r0, [r3]
|
|
mov r1, r8
|
|
lsls r0, r1, 24
|
|
lsrs r0, 24
|
|
movs r1, 0x10
|
|
ldrsh r2, [r7, r1]
|
|
adds r1, r2, 0
|
|
movs r3, 0
|
|
bl obj_id_set_rotscale
|
|
ldrb r0, [r4, 0x1]
|
|
movs r3, 0x4
|
|
negs r3, r3
|
|
ands r3, r0
|
|
movs r0, 0x1
|
|
orrs r3, r0
|
|
strb r3, [r4, 0x1]
|
|
lsrs r1, r3, 6
|
|
ldrb r2, [r4, 0x3]
|
|
lsrs r2, 6
|
|
lsls r3, 30
|
|
lsrs r3, 30
|
|
adds r0, r4, 0
|
|
bl CalcCenterToCornerVec
|
|
_080A82DA:
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A82E8: .4byte gSprites
|
|
_080A82EC: .4byte sub_80A82F0
|
|
thumb_func_end sub_80A8200
|
|
|
|
thumb_func_start sub_80A82F0
|
|
sub_80A82F0: @ 80A82F0
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrh r0, [r4, 0x2E]
|
|
subs r0, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bne _080A832E
|
|
ldr r3, _080A8334 @ =gTasks
|
|
movs r0, 0x32
|
|
ldrsh r1, [r4, r0]
|
|
lsls r1, 1
|
|
movs r0, 0x30
|
|
ldrsh r2, [r4, r0]
|
|
lsls r0, r2, 2
|
|
adds r0, r2
|
|
lsls r0, 3
|
|
adds r1, r0
|
|
adds r3, 0x8
|
|
adds r1, r3
|
|
ldrh r0, [r1]
|
|
subs r0, 0x1
|
|
strh r0, [r1]
|
|
ldrb r0, [r4, 0x3]
|
|
lsls r0, 26
|
|
lsrs r0, 27
|
|
bl FreeOamMatrix
|
|
adds r0, r4, 0
|
|
bl obj_delete_but_dont_free_vram
|
|
_080A832E:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A8334: .4byte gTasks
|
|
thumb_func_end sub_80A82F0
|
|
|
|
thumb_func_start sub_80A8338
|
|
sub_80A8338: @ 80A8338
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
lsls r0, r2, 2
|
|
adds r0, r2
|
|
lsls r0, 3
|
|
ldr r1, _080A835C @ =gTasks
|
|
adds r4, r0, r1
|
|
ldr r5, _080A8360 @ =gUnknown_2037F02
|
|
movs r1, 0x2
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0
|
|
bne _080A8364
|
|
adds r0, r2, 0
|
|
bl DestroyAnimVisualTask
|
|
b _080A838A
|
|
.align 2, 0
|
|
_080A835C: .4byte gTasks
|
|
_080A8360: .4byte gUnknown_2037F02
|
|
_080A8364:
|
|
ldrb r0, [r5]
|
|
bl GetAnimBankSpriteId
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
movs r2, 0
|
|
strh r1, [r4, 0x8]
|
|
strh r2, [r4, 0xA]
|
|
ldrh r0, [r5, 0x2]
|
|
strh r0, [r4, 0xC]
|
|
strh r2, [r4, 0xE]
|
|
strh r2, [r4, 0x10]
|
|
ldr r2, _080A8390 @ =gUnknown_83E3E60
|
|
adds r0, r4, 0
|
|
bl sub_80762D0
|
|
ldr r0, _080A8394 @ =sub_80A8398
|
|
str r0, [r4]
|
|
_080A838A:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A8390: .4byte gUnknown_83E3E60
|
|
_080A8394: .4byte sub_80A8398
|
|
thumb_func_end sub_80A8338
|
|
|
|
thumb_func_start sub_80A8398
|
|
sub_80A8398: @ 80A8398
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
lsls r0, r6, 2
|
|
adds r0, r6
|
|
lsls r0, 3
|
|
ldr r1, _080A83BC @ =gTasks
|
|
adds r4, r0, r1
|
|
movs r0, 0xA
|
|
ldrsh r5, [r4, r0]
|
|
cmp r5, 0x1
|
|
beq _080A8400
|
|
cmp r5, 0x1
|
|
bgt _080A83C0
|
|
cmp r5, 0
|
|
beq _080A83CA
|
|
b _080A84A8
|
|
.align 2, 0
|
|
_080A83BC: .4byte gTasks
|
|
_080A83C0:
|
|
cmp r5, 0x2
|
|
beq _080A8434
|
|
cmp r5, 0x3
|
|
beq _080A8464
|
|
b _080A84A8
|
|
_080A83CA:
|
|
adds r0, r4, 0
|
|
bl sub_8076308
|
|
ldrh r2, [r4, 0x10]
|
|
adds r2, 0x3
|
|
strh r2, [r4, 0x10]
|
|
ldr r3, _080A83FC @ =gSprites
|
|
movs r0, 0x8
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
ldrh r1, [r0, 0x26]
|
|
adds r1, r2
|
|
strh r1, [r0, 0x26]
|
|
ldrh r0, [r4, 0xE]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0xE]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x7
|
|
ble _080A84A8
|
|
strh r5, [r4, 0xE]
|
|
b _080A845C
|
|
.align 2, 0
|
|
_080A83FC: .4byte gSprites
|
|
_080A8400:
|
|
adds r0, r4, 0
|
|
bl sub_8076308
|
|
ldr r2, _080A8430 @ =gSprites
|
|
movs r0, 0x8
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrh r1, [r4, 0x10]
|
|
ldrh r2, [r0, 0x26]
|
|
adds r1, r2
|
|
strh r1, [r0, 0x26]
|
|
ldrh r0, [r4, 0xE]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0xE]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x7
|
|
ble _080A84A8
|
|
movs r0, 0
|
|
strh r0, [r4, 0xE]
|
|
b _080A845C
|
|
.align 2, 0
|
|
_080A8430: .4byte gSprites
|
|
_080A8434:
|
|
movs r1, 0x10
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
beq _080A845C
|
|
ldr r2, _080A8458 @ =gSprites
|
|
movs r0, 0x8
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrh r1, [r0, 0x26]
|
|
subs r1, 0x2
|
|
strh r1, [r0, 0x26]
|
|
ldrh r0, [r4, 0x10]
|
|
subs r0, 0x2
|
|
strh r0, [r4, 0x10]
|
|
b _080A84A8
|
|
.align 2, 0
|
|
_080A8458: .4byte gSprites
|
|
_080A845C:
|
|
ldrh r0, [r4, 0xA]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0xA]
|
|
b _080A84A8
|
|
_080A8464:
|
|
adds r0, r4, 0
|
|
bl sub_8076308
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0
|
|
bne _080A84A8
|
|
ldrh r0, [r4, 0xC]
|
|
subs r0, 0x1
|
|
strh r0, [r4, 0xC]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bne _080A849C
|
|
ldr r2, _080A8498 @ =gSprites
|
|
movs r0, 0x8
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
strh r5, [r0, 0x26]
|
|
adds r0, r6, 0
|
|
bl DestroyAnimVisualTask
|
|
b _080A84A8
|
|
.align 2, 0
|
|
_080A8498: .4byte gSprites
|
|
_080A849C:
|
|
ldrb r1, [r4, 0x8]
|
|
ldr r2, _080A84B0 @ =gUnknown_83E3E60
|
|
adds r0, r4, 0
|
|
bl sub_80762D0
|
|
strh r5, [r4, 0xA]
|
|
_080A84A8:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A84B0: .4byte gUnknown_83E3E60
|
|
thumb_func_end sub_80A8398
|
|
|
|
thumb_func_start sub_80A84B4
|
|
sub_80A84B4: @ 80A84B4
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r4, r0, 2
|
|
adds r4, r0
|
|
lsls r4, 3
|
|
ldr r0, _080A84E4 @ =gTasks
|
|
adds r4, r0
|
|
movs r0, 0
|
|
bl GetAnimBankSpriteId
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
ldr r2, _080A84E8 @ =gUnknown_83E3E80
|
|
adds r0, r4, 0
|
|
bl sub_80762D0
|
|
ldr r0, _080A84EC @ =sub_80A84F0
|
|
str r0, [r4]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A84E4: .4byte gTasks
|
|
_080A84E8: .4byte gUnknown_83E3E80
|
|
_080A84EC: .4byte sub_80A84F0
|
|
thumb_func_end sub_80A84B4
|
|
|
|
thumb_func_start sub_80A84F0
|
|
sub_80A84F0: @ 80A84F0
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
ldr r1, _080A8518 @ =gTasks
|
|
adds r0, r1
|
|
bl sub_8076308
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080A8510
|
|
adds r0, r4, 0
|
|
bl DestroyAnimVisualTask
|
|
_080A8510:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A8518: .4byte gTasks
|
|
thumb_func_end sub_80A84F0
|
|
|
|
thumb_func_start sub_80A851C
|
|
sub_80A851C: @ 80A851C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
ldr r5, _080A854C @ =gUnknown_2037F1A
|
|
ldrb r0, [r5]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080A8550
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl StartSpriteAnim
|
|
ldrb r0, [r5]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r0, 0x20
|
|
strh r0, [r4, 0x20]
|
|
movs r0, 0x40
|
|
b _080A856A
|
|
.align 2, 0
|
|
_080A854C: .4byte gUnknown_2037F1A
|
|
_080A8550:
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl StartSpriteAnim
|
|
ldrb r0, [r5]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
subs r0, 0x20
|
|
strh r0, [r4, 0x20]
|
|
ldr r0, _080A859C @ =0x0000ffc0
|
|
_080A856A:
|
|
strh r0, [r4, 0x30]
|
|
ldr r0, _080A85A0 @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0
|
|
strh r0, [r4, 0x22]
|
|
movs r0, 0x34
|
|
strh r0, [r4, 0x2E]
|
|
strh r1, [r4, 0x32]
|
|
strh r1, [r4, 0x34]
|
|
strh r1, [r4, 0x36]
|
|
ldr r1, _080A85A4 @ =DestroyAnimSprite
|
|
adds r0, r4, 0
|
|
bl StoreSpriteCallbackInData6
|
|
ldr r0, _080A85A8 @ =sub_8074D00
|
|
str r0, [r4, 0x1C]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A859C: .4byte 0x0000ffc0
|
|
_080A85A0: .4byte gUnknown_2037F1A
|
|
_080A85A4: .4byte DestroyAnimSprite
|
|
_080A85A8: .4byte sub_8074D00
|
|
thumb_func_end sub_80A851C
|
|
|
|
thumb_func_start sub_80A85AC
|
|
sub_80A85AC: @ 80A85AC
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
ldr r0, _080A85C0 @ =gUnknown_2037F02
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0
|
|
bne _080A85C8
|
|
ldr r0, _080A85C4 @ =gUnknown_2037F1A
|
|
b _080A85CA
|
|
.align 2, 0
|
|
_080A85C0: .4byte gUnknown_2037F02
|
|
_080A85C4: .4byte gUnknown_2037F1A
|
|
_080A85C8:
|
|
ldr r0, _080A8628 @ =gUnknown_2037F1B
|
|
_080A85CA:
|
|
ldrb r5, [r0]
|
|
adds r0, r5, 0
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _080A85E4
|
|
ldr r1, _080A862C @ =gUnknown_2037F02
|
|
movs r2, 0x2
|
|
ldrsh r0, [r1, r2]
|
|
negs r0, r0
|
|
strh r0, [r1, 0x2]
|
|
_080A85E4:
|
|
adds r0, r5, 0
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
ldr r4, _080A862C @ =gUnknown_2037F02
|
|
lsrs r0, 24
|
|
ldrh r1, [r4, 0x2]
|
|
adds r0, r1
|
|
strh r0, [r6, 0x20]
|
|
adds r0, r5, 0
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrh r4, [r4, 0x4]
|
|
adds r0, r4
|
|
strh r0, [r6, 0x22]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x7
|
|
bgt _080A8616
|
|
movs r0, 0x8
|
|
strh r0, [r6, 0x22]
|
|
_080A8616:
|
|
ldr r1, _080A8630 @ =move_anim_8074EE0
|
|
adds r0, r6, 0
|
|
bl StoreSpriteCallbackInData6
|
|
ldr r0, _080A8634 @ =sub_8074F50
|
|
str r0, [r6, 0x1C]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A8628: .4byte gUnknown_2037F1B
|
|
_080A862C: .4byte gUnknown_2037F02
|
|
_080A8630: .4byte move_anim_8074EE0
|
|
_080A8634: .4byte sub_8074F50
|
|
thumb_func_end sub_80A85AC
|
|
|
|
thumb_func_start sub_80A8638
|
|
sub_80A8638: @ 80A8638
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r4, r0, 2
|
|
adds r4, r0
|
|
lsls r4, 3
|
|
ldr r0, _080A866C @ =gTasks
|
|
adds r4, r0
|
|
movs r0, 0
|
|
bl GetAnimBankSpriteId
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
movs r0, 0
|
|
strh r1, [r4, 0x8]
|
|
strh r0, [r4, 0xA]
|
|
ldr r2, _080A8670 @ =gUnknown_83E3F1C
|
|
adds r0, r4, 0
|
|
bl sub_80762D0
|
|
ldr r0, _080A8674 @ =sub_80A8678
|
|
str r0, [r4]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A866C: .4byte gTasks
|
|
_080A8670: .4byte gUnknown_83E3F1C
|
|
_080A8674: .4byte sub_80A8678
|
|
thumb_func_end sub_80A8638
|
|
|
|
thumb_func_start sub_80A8678
|
|
sub_80A8678: @ 80A8678
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
ldr r1, _080A86A0 @ =gTasks
|
|
adds r0, r1
|
|
bl sub_8076308
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080A8698
|
|
adds r0, r4, 0
|
|
bl DestroyAnimVisualTask
|
|
_080A8698:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A86A0: .4byte gTasks
|
|
thumb_func_end sub_80A8678
|
|
|
|
thumb_func_start sub_80A86A4
|
|
sub_80A86A4: @ 80A86A4
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
ldr r0, _080A8718 @ =gTasks
|
|
adds r4, r1, r0
|
|
movs r0, 0
|
|
bl GetAnimBankSpriteId
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r2, 0
|
|
strh r0, [r4, 0x8]
|
|
strh r2, [r4, 0xA]
|
|
movs r0, 0x4
|
|
strh r0, [r4, 0xC]
|
|
movs r0, 0x7
|
|
strh r0, [r4, 0xE]
|
|
movs r0, 0x3
|
|
strh r0, [r4, 0x10]
|
|
ldr r3, _080A871C @ =gSprites
|
|
movs r0, 0x8
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
ldrh r0, [r0, 0x20]
|
|
strh r0, [r4, 0x12]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
ldrh r0, [r0, 0x22]
|
|
strh r0, [r4, 0x14]
|
|
strh r2, [r4, 0x16]
|
|
strh r2, [r4, 0x18]
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x1A]
|
|
ldr r0, _080A8720 @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _080A870E
|
|
movs r1, 0xC
|
|
ldrsh r0, [r4, r1]
|
|
negs r0, r0
|
|
strh r0, [r4, 0xC]
|
|
_080A870E:
|
|
ldr r0, _080A8724 @ =sub_80A8728
|
|
str r0, [r4]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A8718: .4byte gTasks
|
|
_080A871C: .4byte gSprites
|
|
_080A8720: .4byte gUnknown_2037F1A
|
|
_080A8724: .4byte sub_80A8728
|
|
thumb_func_end sub_80A86A4
|
|
|
|
thumb_func_start sub_80A8728
|
|
sub_80A8728: @ 80A8728
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
ldr r1, _080A8770 @ =gTasks
|
|
adds r3, r0, r1
|
|
ldrh r0, [r3, 0x16]
|
|
adds r0, 0x1
|
|
strh r0, [r3, 0x16]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x2
|
|
ble _080A878E
|
|
movs r0, 0
|
|
strh r0, [r3, 0x16]
|
|
ldrh r0, [r3, 0x18]
|
|
adds r0, 0x1
|
|
strh r0, [r3, 0x18]
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080A8778
|
|
ldr r2, _080A8774 @ =gSprites
|
|
movs r0, 0x8
|
|
ldrsh r1, [r3, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrh r1, [r3, 0x1A]
|
|
ldrh r2, [r0, 0x22]
|
|
adds r1, r2
|
|
b _080A878C
|
|
.align 2, 0
|
|
_080A8770: .4byte gTasks
|
|
_080A8774: .4byte gSprites
|
|
_080A8778:
|
|
ldr r2, _080A87A0 @ =gSprites
|
|
movs r5, 0x8
|
|
ldrsh r1, [r3, r5]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrh r1, [r0, 0x22]
|
|
ldrh r2, [r3, 0x1A]
|
|
subs r1, r2
|
|
_080A878C:
|
|
strh r1, [r0, 0x22]
|
|
_080A878E:
|
|
movs r1, 0xA
|
|
ldrsh r0, [r3, r1]
|
|
cmp r0, 0x1
|
|
beq _080A87DC
|
|
cmp r0, 0x1
|
|
bgt _080A87A4
|
|
cmp r0, 0
|
|
beq _080A87AA
|
|
b _080A886C
|
|
.align 2, 0
|
|
_080A87A0: .4byte gSprites
|
|
_080A87A4:
|
|
cmp r0, 0x2
|
|
beq _080A880C
|
|
b _080A886C
|
|
_080A87AA:
|
|
ldr r2, _080A87D8 @ =gSprites
|
|
movs r5, 0x8
|
|
ldrsh r1, [r3, r5]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrh r1, [r3, 0xC]
|
|
ldrh r2, [r0, 0x20]
|
|
adds r1, r2
|
|
strh r1, [r0, 0x20]
|
|
ldrh r0, [r3, 0xE]
|
|
subs r0, 0x1
|
|
strh r0, [r3, 0xE]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bne _080A886C
|
|
movs r0, 0xE
|
|
strh r0, [r3, 0xE]
|
|
movs r0, 0x1
|
|
strh r0, [r3, 0xA]
|
|
b _080A886C
|
|
.align 2, 0
|
|
_080A87D8: .4byte gSprites
|
|
_080A87DC:
|
|
ldr r2, _080A8808 @ =gSprites
|
|
movs r5, 0x8
|
|
ldrsh r1, [r3, r5]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrh r1, [r0, 0x20]
|
|
ldrh r2, [r3, 0xC]
|
|
subs r1, r2
|
|
strh r1, [r0, 0x20]
|
|
ldrh r0, [r3, 0xE]
|
|
subs r0, 0x1
|
|
strh r0, [r3, 0xE]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bne _080A886C
|
|
movs r0, 0x7
|
|
strh r0, [r3, 0xE]
|
|
movs r0, 0x2
|
|
strh r0, [r3, 0xA]
|
|
b _080A886C
|
|
.align 2, 0
|
|
_080A8808: .4byte gSprites
|
|
_080A880C:
|
|
ldr r2, _080A8844 @ =gSprites
|
|
movs r0, 0x8
|
|
ldrsh r1, [r3, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrh r1, [r3, 0xC]
|
|
ldrh r5, [r0, 0x20]
|
|
adds r1, r5
|
|
strh r1, [r0, 0x20]
|
|
ldrh r0, [r3, 0xE]
|
|
subs r0, 0x1
|
|
strh r0, [r3, 0xE]
|
|
lsls r0, 16
|
|
asrs r1, r0, 16
|
|
cmp r1, 0
|
|
bne _080A886C
|
|
ldrh r0, [r3, 0x10]
|
|
subs r0, 0x1
|
|
strh r0, [r3, 0x10]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
beq _080A8848
|
|
movs r0, 0x7
|
|
strh r0, [r3, 0xE]
|
|
strh r1, [r3, 0xA]
|
|
b _080A886C
|
|
.align 2, 0
|
|
_080A8844: .4byte gSprites
|
|
_080A8848:
|
|
ldrh r1, [r3, 0x18]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080A8866
|
|
movs r0, 0x8
|
|
ldrsh r1, [r3, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrh r1, [r0, 0x22]
|
|
ldrh r2, [r3, 0x1A]
|
|
subs r1, r2
|
|
strh r1, [r0, 0x22]
|
|
_080A8866:
|
|
adds r0, r4, 0
|
|
bl DestroyAnimVisualTask
|
|
_080A886C:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A8728
|
|
|
|
thumb_func_start sub_80A8874
|
|
sub_80A8874: @ 80A8874
|
|
push {r4-r6,lr}
|
|
sub sp, 0xC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
ldr r0, _080A88C4 @ =gTasks
|
|
adds r5, r1, r0
|
|
ldr r4, _080A88C8 @ =gUnknown_2037F1B
|
|
ldrb r0, [r4]
|
|
bl sub_807492C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r0, 0x20
|
|
movs r1, 0
|
|
strh r0, [r5, 0x8]
|
|
movs r0, 0x4
|
|
strh r0, [r5, 0xA]
|
|
strh r1, [r5, 0xC]
|
|
strh r1, [r5, 0xE]
|
|
strh r1, [r5, 0x10]
|
|
strh r1, [r5, 0x12]
|
|
ldrb r0, [r4]
|
|
bl sub_8076B2C
|
|
strh r0, [r5, 0x26]
|
|
ldrb r0, [r4]
|
|
bl sub_80768B0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _080A88D4
|
|
ldr r0, _080A88CC @ =gUnknown_2022978
|
|
ldrh r0, [r0]
|
|
strh r0, [r5, 0x14]
|
|
ldr r0, _080A88D0 @ =0x04000014
|
|
b _080A88DC
|
|
.align 2, 0
|
|
_080A88C4: .4byte gTasks
|
|
_080A88C8: .4byte gUnknown_2037F1B
|
|
_080A88CC: .4byte gUnknown_2022978
|
|
_080A88D0: .4byte 0x04000014
|
|
_080A88D4:
|
|
ldr r0, _080A8940 @ =gUnknown_202297C
|
|
ldrh r0, [r0]
|
|
strh r0, [r5, 0x14]
|
|
ldr r0, _080A8944 @ =0x04000018
|
|
_080A88DC:
|
|
str r0, [sp]
|
|
ldrh r0, [r5, 0x8]
|
|
adds r1, r0, 0
|
|
subs r1, 0x40
|
|
lsls r2, r1, 16
|
|
lsls r0, 16
|
|
cmp r2, r0
|
|
bgt _080A891A
|
|
ldr r4, _080A8948 @ =gUnknown_2038700
|
|
movs r0, 0xF0
|
|
lsls r0, 3
|
|
adds r6, r4, r0
|
|
_080A88F4:
|
|
asrs r3, r2, 16
|
|
cmp r3, 0
|
|
blt _080A890C
|
|
lsls r1, r3, 1
|
|
adds r2, r1, r4
|
|
ldrh r0, [r5, 0x14]
|
|
adds r0, 0xF0
|
|
strh r0, [r2]
|
|
adds r1, r6
|
|
ldrh r0, [r5, 0x14]
|
|
adds r0, 0xF0
|
|
strh r0, [r1]
|
|
_080A890C:
|
|
adds r0, r3, 0x1
|
|
lsls r2, r0, 16
|
|
asrs r1, r2, 16
|
|
movs r3, 0x8
|
|
ldrsh r0, [r5, r3]
|
|
cmp r1, r0
|
|
ble _080A88F4
|
|
_080A891A:
|
|
ldr r0, _080A894C @ =0xa2600001
|
|
str r0, [sp, 0x4]
|
|
mov r1, sp
|
|
movs r2, 0
|
|
movs r0, 0x1
|
|
strb r0, [r1, 0x8]
|
|
mov r0, sp
|
|
strb r2, [r0, 0x9]
|
|
ldr r0, [sp]
|
|
ldr r1, [sp, 0x4]
|
|
ldr r2, [sp, 0x8]
|
|
bl sub_8087EE4
|
|
ldr r0, _080A8950 @ =sub_80A8954
|
|
str r0, [r5]
|
|
add sp, 0xC
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A8940: .4byte gUnknown_202297C
|
|
_080A8944: .4byte 0x04000018
|
|
_080A8948: .4byte gUnknown_2038700
|
|
_080A894C: .4byte 0xa2600001
|
|
_080A8950: .4byte sub_80A8954
|
|
thumb_func_end sub_80A8874
|
|
|
|
thumb_func_start sub_80A8954
|
|
sub_80A8954: @ 80A8954
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
ldr r1, _080A8974 @ =gTasks
|
|
adds r3, r0, r1
|
|
movs r1, 0x10
|
|
ldrsh r0, [r3, r1]
|
|
cmp r0, 0
|
|
beq _080A8978
|
|
cmp r0, 0x1
|
|
beq _080A898E
|
|
b _080A8A0E
|
|
.align 2, 0
|
|
_080A8974: .4byte gTasks
|
|
_080A8978:
|
|
ldrh r0, [r3, 0x12]
|
|
adds r0, 0x1
|
|
strh r0, [r3, 0x12]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x14
|
|
ble _080A8A0E
|
|
ldrh r0, [r3, 0x10]
|
|
adds r0, 0x1
|
|
strh r0, [r3, 0x10]
|
|
b _080A8A0E
|
|
_080A898E:
|
|
ldrh r0, [r3, 0xA]
|
|
adds r0, 0x1
|
|
strh r0, [r3, 0xA]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x3
|
|
ble _080A8A0E
|
|
movs r0, 0
|
|
strh r0, [r3, 0xA]
|
|
ldrh r1, [r3, 0xE]
|
|
movs r0, 0x3
|
|
ands r0, r1
|
|
strh r0, [r3, 0xC]
|
|
ldrh r0, [r3, 0x8]
|
|
subs r0, r1
|
|
strh r0, [r3, 0x12]
|
|
movs r2, 0xC
|
|
ldrsh r1, [r3, r2]
|
|
cmp r1, 0x1
|
|
beq _080A89C4
|
|
cmp r1, 0x1
|
|
ble _080A89CC
|
|
cmp r1, 0x2
|
|
beq _080A89C8
|
|
cmp r1, 0x3
|
|
beq _080A89C8
|
|
b _080A89CC
|
|
_080A89C4:
|
|
subs r0, 0x2
|
|
b _080A89CA
|
|
_080A89C8:
|
|
adds r0, 0x1
|
|
_080A89CA:
|
|
strh r0, [r3, 0x12]
|
|
_080A89CC:
|
|
movs r1, 0x12
|
|
ldrsh r0, [r3, r1]
|
|
cmp r0, 0
|
|
blt _080A89F0
|
|
ldr r2, _080A8A14 @ =gUnknown_2038700
|
|
lsls r0, 1
|
|
adds r0, r2
|
|
ldrh r1, [r3, 0x14]
|
|
strh r1, [r0]
|
|
movs r1, 0x12
|
|
ldrsh r0, [r3, r1]
|
|
lsls r0, 1
|
|
movs r1, 0xF0
|
|
lsls r1, 3
|
|
adds r2, r1
|
|
adds r0, r2
|
|
ldrh r1, [r3, 0x14]
|
|
strh r1, [r0]
|
|
_080A89F0:
|
|
ldrh r0, [r3, 0xE]
|
|
adds r0, 0x1
|
|
strh r0, [r3, 0xE]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r2, 0x26
|
|
ldrsh r1, [r3, r2]
|
|
cmp r0, r1
|
|
blt _080A8A0E
|
|
ldr r1, _080A8A18 @ =gUnknown_2039600
|
|
movs r0, 0x3
|
|
strb r0, [r1, 0x15]
|
|
adds r0, r4, 0
|
|
bl DestroyAnimVisualTask
|
|
_080A8A0E:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A8A14: .4byte gUnknown_2038700
|
|
_080A8A18: .4byte gUnknown_2039600
|
|
thumb_func_end sub_80A8954
|
|
|
|
thumb_func_start sub_80A8A1C
|
|
sub_80A8A1C: @ 80A8A1C
|
|
push {r4-r6,lr}
|
|
adds r4, r0, 0
|
|
ldr r6, _080A8A70 @ =gUnknown_2037F1B
|
|
ldrb r0, [r6]
|
|
movs r1, 0
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
subs r0, 0x10
|
|
movs r5, 0
|
|
strh r0, [r4, 0x20]
|
|
ldrb r0, [r6]
|
|
bl sub_807492C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r0, 0x10
|
|
strh r0, [r4, 0x22]
|
|
strh r5, [r4, 0x2E]
|
|
strh r5, [r4, 0x30]
|
|
strh r5, [r4, 0x32]
|
|
movs r0, 0x10
|
|
strh r0, [r4, 0x34]
|
|
strh r5, [r4, 0x36]
|
|
ldrb r0, [r6]
|
|
movs r1, 0
|
|
bl sub_8076B2C
|
|
adds r0, 0x2
|
|
strh r0, [r4, 0x38]
|
|
movs r0, 0x3F
|
|
bl sub_8073A44
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
strh r0, [r4, 0x3A]
|
|
ldr r0, _080A8A74 @ =sub_80A8A78
|
|
str r0, [r4, 0x1C]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A8A70: .4byte gUnknown_2037F1B
|
|
_080A8A74: .4byte sub_80A8A78
|
|
thumb_func_end sub_80A8A1C
|
|
|
|
thumb_func_start sub_80A8A78
|
|
sub_80A8A78: @ 80A8A78
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x2E
|
|
ldrsh r1, [r4, r0]
|
|
cmp r1, 0x1
|
|
beq _080A8ADC
|
|
cmp r1, 0x1
|
|
bgt _080A8A8E
|
|
cmp r1, 0
|
|
beq _080A8A94
|
|
b _080A8BBC
|
|
_080A8A8E:
|
|
cmp r1, 0x2
|
|
beq _080A8B6E
|
|
b _080A8BBC
|
|
_080A8A94:
|
|
ldrh r0, [r4, 0x32]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x32]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1
|
|
ble _080A8ABE
|
|
strh r1, [r4, 0x32]
|
|
adds r3, r4, 0
|
|
adds r3, 0x3E
|
|
ldrb r2, [r3]
|
|
lsrs r1, r2, 2
|
|
movs r0, 0x1
|
|
eors r1, r0
|
|
ands r1, r0
|
|
lsls r1, 2
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r3]
|
|
_080A8ABE:
|
|
ldrh r0, [r4, 0x30]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x30]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x10
|
|
ble _080A8BBC
|
|
adds r2, r4, 0
|
|
adds r2, 0x3E
|
|
ldrb r0, [r2]
|
|
movs r1, 0x5
|
|
negs r1, r1
|
|
ands r1, r0
|
|
strb r1, [r2]
|
|
b _080A8B66
|
|
_080A8ADC:
|
|
ldrh r0, [r4, 0x30]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x30]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x3
|
|
ble _080A8B22
|
|
ldrh r2, [r4, 0x32]
|
|
movs r3, 0x32
|
|
ldrsh r1, [r4, r3]
|
|
movs r3, 0x38
|
|
ldrsh r0, [r4, r3]
|
|
cmp r1, r0
|
|
bge _080A8B22
|
|
movs r0, 0
|
|
strh r0, [r4, 0x30]
|
|
ldrh r0, [r4, 0x22]
|
|
subs r0, 0x1
|
|
strh r0, [r4, 0x22]
|
|
adds r0, r2, 0x1
|
|
strh r0, [r4, 0x32]
|
|
movs r1, 0x32
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0xA
|
|
bl __modsi3
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bne _080A8B22
|
|
ldrh r1, [r4, 0x3A]
|
|
lsls r1, 24
|
|
asrs r1, 24
|
|
movs r0, 0xC6
|
|
bl PlaySE12WithPanning
|
|
_080A8B22:
|
|
ldrh r0, [r4, 0x34]
|
|
ldrh r2, [r4, 0x36]
|
|
adds r1, r0, r2
|
|
strh r1, [r4, 0x36]
|
|
lsls r0, r1, 16
|
|
asrs r2, r0, 16
|
|
cmp r2, 0x1F
|
|
ble _080A8B36
|
|
movs r0, 0x40
|
|
b _080A8B44
|
|
_080A8B36:
|
|
movs r0, 0x20
|
|
negs r0, r0
|
|
cmp r2, r0
|
|
bgt _080A8B50
|
|
movs r2, 0x40
|
|
negs r2, r2
|
|
adds r0, r2, 0
|
|
_080A8B44:
|
|
subs r0, r1
|
|
strh r0, [r4, 0x36]
|
|
movs r3, 0x34
|
|
ldrsh r0, [r4, r3]
|
|
negs r0, r0
|
|
strh r0, [r4, 0x34]
|
|
_080A8B50:
|
|
ldrh r0, [r4, 0x36]
|
|
movs r2, 0
|
|
strh r0, [r4, 0x24]
|
|
movs r0, 0x38
|
|
ldrsh r1, [r4, r0]
|
|
movs r3, 0x32
|
|
ldrsh r0, [r4, r3]
|
|
cmp r1, r0
|
|
bne _080A8BBC
|
|
strh r2, [r4, 0x30]
|
|
strh r2, [r4, 0x32]
|
|
_080A8B66:
|
|
ldrh r0, [r4, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
b _080A8BBC
|
|
_080A8B6E:
|
|
ldrh r0, [r4, 0x32]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x32]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1
|
|
ble _080A8B9A
|
|
movs r0, 0
|
|
strh r0, [r4, 0x32]
|
|
adds r3, r4, 0
|
|
adds r3, 0x3E
|
|
ldrb r2, [r3]
|
|
lsrs r1, r2, 2
|
|
movs r0, 0x1
|
|
eors r1, r0
|
|
ands r1, r0
|
|
lsls r1, 2
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r3]
|
|
_080A8B9A:
|
|
ldrh r0, [r4, 0x30]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x30]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x10
|
|
ble _080A8BBC
|
|
adds r2, r4, 0
|
|
adds r2, 0x3E
|
|
ldrb r1, [r2]
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
adds r0, r4, 0
|
|
bl DestroyAnimSprite
|
|
_080A8BBC:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A8A78
|
|
|
|
thumb_func_start sub_80A8BC4
|
|
sub_80A8BC4: @ 80A8BC4
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
adds r6, r0, 0
|
|
movs r5, 0
|
|
mov r0, sp
|
|
strh r5, [r0]
|
|
mov r1, sp
|
|
adds r1, 0x2
|
|
strh r5, [r1]
|
|
ldr r0, _080A8BE8 @ =gUnknown_2037F02
|
|
movs r3, 0x4
|
|
ldrsh r2, [r0, r3]
|
|
adds r7, r1, 0
|
|
adds r1, r0, 0
|
|
cmp r2, 0
|
|
bne _080A8BF0
|
|
ldr r0, _080A8BEC @ =gUnknown_2037F1A
|
|
b _080A8BF2
|
|
.align 2, 0
|
|
_080A8BE8: .4byte gUnknown_2037F02
|
|
_080A8BEC: .4byte gUnknown_2037F1A
|
|
_080A8BF0:
|
|
ldr r0, _080A8C2C @ =gUnknown_2037F1B
|
|
_080A8BF2:
|
|
ldrb r5, [r0]
|
|
ldrb r1, [r1, 0x6]
|
|
movs r0, 0x1
|
|
adds r4, r0, 0
|
|
eors r4, r1
|
|
bl sub_8075290
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A8C6A
|
|
movs r1, 0x2
|
|
adds r0, r5, 0
|
|
eors r0, r1
|
|
bl sub_8072DF0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A8C6A
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
mov r2, sp
|
|
adds r3, r7, 0
|
|
bl sub_8076D9C
|
|
cmp r4, 0
|
|
bne _080A8C30
|
|
adds r0, r5, 0
|
|
movs r1, 0
|
|
b _080A8C34
|
|
.align 2, 0
|
|
_080A8C2C: .4byte gUnknown_2037F1B
|
|
_080A8C30:
|
|
adds r0, r5, 0
|
|
movs r1, 0x2
|
|
_080A8C34:
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
adds r0, r5, 0
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A8C60
|
|
ldr r2, _080A8C5C @ =gUnknown_2037F02
|
|
mov r0, sp
|
|
ldrh r1, [r0]
|
|
subs r1, r4
|
|
ldrh r0, [r2]
|
|
subs r1, r0
|
|
subs r0, r1
|
|
strh r0, [r2]
|
|
b _080A8C6A
|
|
.align 2, 0
|
|
_080A8C5C: .4byte gUnknown_2037F02
|
|
_080A8C60:
|
|
ldr r1, _080A8C7C @ =gUnknown_2037F02
|
|
mov r0, sp
|
|
ldrh r0, [r0]
|
|
subs r0, r4
|
|
strh r0, [r1]
|
|
_080A8C6A:
|
|
ldr r1, _080A8C80 @ =sub_8075D9C
|
|
str r1, [r6, 0x1C]
|
|
adds r0, r6, 0
|
|
bl _call_via_r1
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A8C7C: .4byte gUnknown_2037F02
|
|
_080A8C80: .4byte sub_8075D9C
|
|
thumb_func_end sub_80A8BC4
|
|
|
|
thumb_func_start sub_80A8C84
|
|
sub_80A8C84: @ 80A8C84
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_80755E0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A8C9E
|
|
adds r0, r4, 0
|
|
bl FreeSpriteOamMatrix
|
|
adds r0, r4, 0
|
|
bl DestroyAnimSprite
|
|
_080A8C9E:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A8C84
|
|
|
|
thumb_func_start sub_80A8CA4
|
|
sub_80A8CA4: @ 80A8CA4
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x8
|
|
adds r5, r0, 0
|
|
movs r6, 0
|
|
mov r0, sp
|
|
strh r6, [r0]
|
|
mov r1, sp
|
|
adds r1, 0x2
|
|
strh r6, [r1]
|
|
ldr r0, _080A8CD0 @ =gUnknown_2037F02
|
|
movs r2, 0xA
|
|
ldrsh r0, [r0, r2]
|
|
cmp r0, 0
|
|
bne _080A8CDC
|
|
ldr r0, _080A8CD4 @ =gUnknown_2037F1A
|
|
ldrb r7, [r0]
|
|
ldr r0, _080A8CD8 @ =gUnknown_2037F1B
|
|
b _080A8CE2
|
|
.align 2, 0
|
|
_080A8CD0: .4byte gUnknown_2037F02
|
|
_080A8CD4: .4byte gUnknown_2037F1A
|
|
_080A8CD8: .4byte gUnknown_2037F1B
|
|
_080A8CDC:
|
|
ldr r0, _080A8CFC @ =gUnknown_2037F1B
|
|
ldrb r7, [r0]
|
|
ldr r0, _080A8D00 @ =gUnknown_2037F1A
|
|
_080A8CE2:
|
|
ldrb r0, [r0]
|
|
mov r8, r0
|
|
ldr r0, _080A8D04 @ =gUnknown_2037F02
|
|
movs r3, 0xC
|
|
ldrsh r0, [r0, r3]
|
|
cmp r0, 0
|
|
bne _080A8D08
|
|
movs r0, 0
|
|
mov r10, r0
|
|
movs r1, 0x1
|
|
str r1, [sp, 0x4]
|
|
b _080A8D10
|
|
.align 2, 0
|
|
_080A8CFC: .4byte gUnknown_2037F1B
|
|
_080A8D00: .4byte gUnknown_2037F1A
|
|
_080A8D04: .4byte gUnknown_2037F02
|
|
_080A8D08:
|
|
movs r2, 0x2
|
|
mov r10, r2
|
|
movs r3, 0x3
|
|
str r3, [sp, 0x4]
|
|
_080A8D10:
|
|
adds r0, r7, 0
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A8D6C
|
|
adds r0, r7, 0
|
|
mov r1, r10
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
ldr r1, _080A8D50 @ =gUnknown_2037F02
|
|
lsrs r0, 24
|
|
ldrh r1, [r1]
|
|
adds r0, r1
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
mov r9, r0
|
|
movs r0, 0x2
|
|
mov r4, r8
|
|
eors r4, r0
|
|
adds r0, r4, 0
|
|
bl sub_8072DF0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A8D5C
|
|
ldr r2, _080A8D54 @ =gSprites
|
|
ldr r0, _080A8D58 @ =gUnknown_2023D44
|
|
adds r0, r4, r0
|
|
b _080A8DEA
|
|
.align 2, 0
|
|
_080A8D50: .4byte gUnknown_2037F02
|
|
_080A8D54: .4byte gSprites
|
|
_080A8D58: .4byte gUnknown_2023D44
|
|
_080A8D5C:
|
|
ldr r2, _080A8D64 @ =gSprites
|
|
ldr r0, _080A8D68 @ =gUnknown_2023D44
|
|
add r0, r8
|
|
b _080A8DEA
|
|
.align 2, 0
|
|
_080A8D64: .4byte gSprites
|
|
_080A8D68: .4byte gUnknown_2023D44
|
|
_080A8D6C:
|
|
adds r0, r7, 0
|
|
mov r1, r10
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _080A8DD4 @ =gUnknown_2037F02
|
|
ldrh r1, [r1]
|
|
subs r0, r1
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
mov r9, r0
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080A8DE4
|
|
movs r0, 0x2
|
|
adds r4, r7, 0
|
|
eors r4, r0
|
|
adds r0, r4, 0
|
|
bl sub_8072DF0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A8DE4
|
|
ldr r3, _080A8DD8 @ =gSprites
|
|
ldr r2, _080A8DDC @ =gUnknown_2023D44
|
|
adds r0, r7, r2
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r6, r0, r3
|
|
adds r2, r4, r2
|
|
ldrb r1, [r2]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r2, r0, r3
|
|
movs r0, 0x20
|
|
ldrsh r1, [r6, r0]
|
|
movs r3, 0x20
|
|
ldrsh r0, [r2, r3]
|
|
cmp r1, r0
|
|
bge _080A8DE0
|
|
adds r0, r2, 0
|
|
adds r0, 0x43
|
|
ldrb r0, [r0]
|
|
adds r0, 0x1
|
|
b _080A8DFA
|
|
.align 2, 0
|
|
_080A8DD4: .4byte gUnknown_2037F02
|
|
_080A8DD8: .4byte gSprites
|
|
_080A8DDC: .4byte gUnknown_2023D44
|
|
_080A8DE0:
|
|
adds r0, r6, 0
|
|
b _080A8DF4
|
|
_080A8DE4:
|
|
ldr r2, _080A8E40 @ =gSprites
|
|
ldr r0, _080A8E44 @ =gUnknown_2023D44
|
|
adds r0, r7, r0
|
|
_080A8DEA:
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
_080A8DF4:
|
|
adds r0, 0x43
|
|
ldrb r0, [r0]
|
|
subs r0, 0x1
|
|
_080A8DFA:
|
|
adds r1, r5, 0
|
|
adds r1, 0x43
|
|
strb r0, [r1]
|
|
adds r0, r7, 0
|
|
ldr r1, [sp, 0x4]
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
ldr r4, _080A8E48 @ =gUnknown_2037F02
|
|
lsrs r0, 24
|
|
ldrh r1, [r4, 0x2]
|
|
adds r0, r1
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080A8E4C
|
|
movs r1, 0x2
|
|
mov r0, r8
|
|
eors r0, r1
|
|
bl sub_8072DF0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A8E4C
|
|
ldrb r1, [r4, 0xC]
|
|
mov r0, r8
|
|
mov r2, sp
|
|
mov r3, sp
|
|
adds r3, 0x2
|
|
bl sub_8076D9C
|
|
b _080A8E6C
|
|
.align 2, 0
|
|
_080A8E40: .4byte gSprites
|
|
_080A8E44: .4byte gUnknown_2023D44
|
|
_080A8E48: .4byte gUnknown_2037F02
|
|
_080A8E4C:
|
|
mov r4, sp
|
|
mov r0, r8
|
|
mov r1, r10
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4]
|
|
mov r0, r8
|
|
ldr r1, [sp, 0x4]
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r2, sp
|
|
strh r0, [r2, 0x2]
|
|
_080A8E6C:
|
|
mov r0, r8
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A8E90
|
|
mov r3, sp
|
|
mov r2, sp
|
|
ldr r1, _080A8E8C @ =gUnknown_2037F02
|
|
ldrh r0, [r1, 0x6]
|
|
ldrh r2, [r2]
|
|
adds r0, r2
|
|
strh r0, [r3]
|
|
adds r2, r1, 0
|
|
b _080A8E9E
|
|
.align 2, 0
|
|
_080A8E8C: .4byte gUnknown_2037F02
|
|
_080A8E90:
|
|
mov r3, sp
|
|
mov r0, sp
|
|
ldr r2, _080A8EE0 @ =gUnknown_2037F02
|
|
ldrh r0, [r0]
|
|
ldrh r1, [r2, 0x6]
|
|
subs r0, r1
|
|
strh r0, [r3]
|
|
_080A8E9E:
|
|
ldrh r1, [r2, 0x8]
|
|
mov r3, sp
|
|
ldrh r3, [r3, 0x2]
|
|
adds r1, r3
|
|
mov r0, sp
|
|
strh r1, [r0, 0x2]
|
|
mov r3, r9
|
|
strh r3, [r5, 0x30]
|
|
strh r3, [r5, 0x20]
|
|
strh r6, [r5, 0x34]
|
|
strh r6, [r5, 0x22]
|
|
ldrh r0, [r0]
|
|
strh r0, [r5, 0x32]
|
|
strh r1, [r5, 0x36]
|
|
ldrh r0, [r2]
|
|
strh r0, [r5, 0x2E]
|
|
adds r0, r5, 0
|
|
bl obj_translate_based_on_private_1_2_3_4
|
|
ldr r1, _080A8EE4 @ =sub_80A8C84
|
|
str r1, [r5, 0x1C]
|
|
adds r0, r5, 0
|
|
bl _call_via_r1
|
|
add sp, 0x8
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A8EE0: .4byte gUnknown_2037F02
|
|
_080A8EE4: .4byte sub_80A8C84
|
|
thumb_func_end sub_80A8CA4
|
|
|
|
thumb_func_start sub_80A8EE8
|
|
sub_80A8EE8: @ 80A8EE8
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldr r0, _080A8F28 @ =0x000027db
|
|
bl IndexOfSpritePaletteTag
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0xFF
|
|
beq _080A8F0E
|
|
lsls r0, 20
|
|
ldr r1, _080A8F2C @ =0x01010000
|
|
adds r0, r1
|
|
lsrs r0, 16
|
|
ldr r1, _080A8F30 @ =gUnknown_2037F02
|
|
ldrb r2, [r1, 0xA]
|
|
ldrh r3, [r1, 0x8]
|
|
movs r1, 0xF
|
|
bl BlendPalette
|
|
_080A8F0E:
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl StartSpriteAffineAnim
|
|
ldr r1, _080A8F34 @ =sub_8075D9C
|
|
str r1, [r4, 0x1C]
|
|
adds r0, r4, 0
|
|
bl _call_via_r1
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A8F28: .4byte 0x000027db
|
|
_080A8F2C: .4byte 0x01010000
|
|
_080A8F30: .4byte gUnknown_2037F02
|
|
_080A8F34: .4byte sub_8075D9C
|
|
thumb_func_end sub_80A8EE8
|
|
|
|
thumb_func_start sub_80A8F38
|
|
sub_80A8F38: @ 80A8F38
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0
|
|
bl sub_8075160
|
|
ldr r0, _080A8F6C @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
movs r1, 0xA0
|
|
cmp r0, 0
|
|
beq _080A8F54
|
|
ldr r1, _080A8F70 @ =0x0000ff60
|
|
_080A8F54:
|
|
movs r0, 0xE0
|
|
lsls r0, 2
|
|
strh r0, [r4, 0x2E]
|
|
strh r1, [r4, 0x30]
|
|
ldr r0, _080A8F74 @ =gUnknown_2037F02
|
|
ldrh r0, [r0, 0x4]
|
|
strh r0, [r4, 0x3C]
|
|
ldr r0, _080A8F78 @ =sub_80A8F7C
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A8F6C: .4byte gUnknown_2037F1A
|
|
_080A8F70: .4byte 0x0000ff60
|
|
_080A8F74: .4byte gUnknown_2037F02
|
|
_080A8F78: .4byte sub_80A8F7C
|
|
thumb_func_end sub_80A8F38
|
|
|
|
thumb_func_start sub_80A8F7C
|
|
sub_80A8F7C: @ 80A8F7C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
ldrh r2, [r4, 0x2E]
|
|
lsls r0, r2, 16
|
|
asrs r0, 24
|
|
ldrh r1, [r4, 0x26]
|
|
subs r1, r0
|
|
movs r5, 0
|
|
strh r1, [r4, 0x26]
|
|
ldrh r0, [r4, 0x30]
|
|
lsls r0, 16
|
|
asrs r0, 24
|
|
strh r0, [r4, 0x24]
|
|
subs r2, 0x20
|
|
strh r2, [r4, 0x2E]
|
|
ldr r0, _080A8FE8 @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
movs r1, 0xA0
|
|
cmp r0, 0
|
|
beq _080A8FAC
|
|
ldr r1, _080A8FEC @ =0x0000ff60
|
|
_080A8FAC:
|
|
lsls r0, r1, 16
|
|
asrs r0, 16
|
|
ldrh r1, [r4, 0x30]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x30]
|
|
ldrh r1, [r4, 0x26]
|
|
movs r2, 0x26
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0
|
|
ble _080A8FE0
|
|
ldrh r2, [r4, 0x22]
|
|
adds r0, r1, r2
|
|
strh r0, [r4, 0x22]
|
|
ldrh r0, [r4, 0x24]
|
|
ldrh r1, [r4, 0x20]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x20]
|
|
strh r5, [r4, 0x26]
|
|
strh r5, [r4, 0x24]
|
|
strh r5, [r4, 0x2E]
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl StartSpriteAffineAnim
|
|
ldr r0, _080A8FF0 @ =sub_80A8FF4
|
|
str r0, [r4, 0x1C]
|
|
_080A8FE0:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A8FE8: .4byte gUnknown_2037F1A
|
|
_080A8FEC: .4byte 0x0000ff60
|
|
_080A8FF0: .4byte sub_80A8FF4
|
|
thumb_func_end sub_80A8F7C
|
|
|
|
thumb_func_start sub_80A8FF4
|
|
sub_80A8FF4: @ 80A8FF4
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrh r0, [r4, 0x2E]
|
|
adds r1, r0, 0x1
|
|
strh r1, [r4, 0x2E]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x13
|
|
ble _080A9012
|
|
adds r0, r4, 0
|
|
movs r1, 0x2
|
|
bl StartSpriteAffineAnim
|
|
ldr r0, _080A9018 @ =sub_80A901C
|
|
str r0, [r4, 0x1C]
|
|
_080A9012:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A9018: .4byte sub_80A901C
|
|
thumb_func_end sub_80A8FF4
|
|
|
|
thumb_func_start sub_80A901C
|
|
sub_80A901C: @ 80A901C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
adds r0, 0x3F
|
|
ldrb r1, [r0]
|
|
movs r0, 0x20
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080A9082
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl StartSpriteAffineAnim
|
|
movs r0, 0
|
|
strh r0, [r4, 0x2E]
|
|
movs r1, 0x3C
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bne _080A9068
|
|
ldrh r2, [r4, 0x4]
|
|
lsls r1, r2, 22
|
|
lsrs r1, 22
|
|
adds r1, 0x10
|
|
ldr r3, _080A905C @ =0x000003ff
|
|
adds r0, r3, 0
|
|
ands r1, r0
|
|
ldr r0, _080A9060 @ =0xfffffc00
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strh r0, [r4, 0x4]
|
|
ldr r0, _080A9064 @ =sub_80A9094
|
|
b _080A9080
|
|
.align 2, 0
|
|
_080A905C: .4byte 0x000003ff
|
|
_080A9060: .4byte 0xfffffc00
|
|
_080A9064: .4byte sub_80A9094
|
|
_080A9068:
|
|
ldrh r2, [r4, 0x4]
|
|
lsls r1, r2, 22
|
|
lsrs r1, 22
|
|
adds r1, 0x20
|
|
ldr r3, _080A9088 @ =0x000003ff
|
|
adds r0, r3, 0
|
|
ands r1, r0
|
|
ldr r0, _080A908C @ =0xfffffc00
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strh r0, [r4, 0x4]
|
|
ldr r0, _080A9090 @ =sub_80A911C
|
|
_080A9080:
|
|
str r0, [r4, 0x1C]
|
|
_080A9082:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A9088: .4byte 0x000003ff
|
|
_080A908C: .4byte 0xfffffc00
|
|
_080A9090: .4byte sub_80A911C
|
|
thumb_func_end sub_80A901C
|
|
|
|
thumb_func_start sub_80A9094
|
|
sub_80A9094: @ 80A9094
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrh r0, [r4, 0x26]
|
|
subs r0, 0x2
|
|
strh r0, [r4, 0x26]
|
|
ldrh r0, [r4, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x9
|
|
bne _080A90CA
|
|
movs r0, 0x10
|
|
strh r0, [r4, 0x2E]
|
|
movs r0, 0
|
|
strh r0, [r4, 0x30]
|
|
movs r1, 0xFD
|
|
lsls r1, 6
|
|
movs r0, 0x50
|
|
bl SetGpuReg
|
|
ldrh r1, [r4, 0x2E]
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
ldr r0, _080A90D0 @ =sub_80A90D4
|
|
str r0, [r4, 0x1C]
|
|
_080A90CA:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A90D0: .4byte sub_80A90D4
|
|
thumb_func_end sub_80A9094
|
|
|
|
thumb_func_start sub_80A90D4
|
|
sub_80A90D4: @ 80A90D4
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrh r0, [r4, 0x30]
|
|
adds r1, r0, 0x1
|
|
strh r1, [r4, 0x30]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r1, 0x3
|
|
bl __modsi3
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bne _080A9112
|
|
ldrh r1, [r4, 0x2E]
|
|
subs r1, 0x1
|
|
strh r1, [r4, 0x2E]
|
|
movs r0, 0x10
|
|
subs r0, r1
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bne _080A9112
|
|
ldr r0, _080A9118 @ =sub_80A911C
|
|
str r0, [r4, 0x1C]
|
|
_080A9112:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A9118: .4byte sub_80A911C
|
|
thumb_func_end sub_80A90D4
|
|
|
|
thumb_func_start sub_80A911C
|
|
sub_80A911C: @ 80A911C
|
|
push {lr}
|
|
adds r3, r0, 0
|
|
ldr r0, _080A9144 @ =gUnknown_2037F02
|
|
ldrh r1, [r0, 0xE]
|
|
ldr r0, _080A9148 @ =0x0000ffff
|
|
cmp r1, r0
|
|
bne _080A9154
|
|
adds r2, r3, 0
|
|
adds r2, 0x3E
|
|
ldrb r0, [r2]
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
movs r1, 0x3C
|
|
ldrsh r0, [r3, r1]
|
|
cmp r0, 0
|
|
bne _080A9150
|
|
ldr r0, _080A914C @ =sub_80A915C
|
|
b _080A9152
|
|
.align 2, 0
|
|
_080A9144: .4byte gUnknown_2037F02
|
|
_080A9148: .4byte 0x0000ffff
|
|
_080A914C: .4byte sub_80A915C
|
|
_080A9150:
|
|
ldr r0, _080A9158 @ =DestroyAnimSprite
|
|
_080A9152:
|
|
str r0, [r3, 0x1C]
|
|
_080A9154:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A9158: .4byte DestroyAnimSprite
|
|
thumb_func_end sub_80A911C
|
|
|
|
thumb_func_start sub_80A915C
|
|
sub_80A915C: @ 80A915C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x50
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x52
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
adds r0, r4, 0
|
|
bl DestroyAnimSprite
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A915C
|
|
|
|
thumb_func_start sub_80A917C
|
|
sub_80A917C: @ 80A917C
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r4, r0, 2
|
|
adds r4, r0
|
|
lsls r4, 3
|
|
ldr r0, _080A91AC @ =gTasks
|
|
adds r4, r0
|
|
movs r0, 0
|
|
bl GetAnimBankSpriteId
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
strh r1, [r4, 0x8]
|
|
ldr r2, _080A91B0 @ =gUnknown_83E4128
|
|
adds r0, r4, 0
|
|
bl sub_80762D0
|
|
ldr r0, _080A91B4 @ =sub_80A91B8
|
|
str r0, [r4]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A91AC: .4byte gTasks
|
|
_080A91B0: .4byte gUnknown_83E4128
|
|
_080A91B4: .4byte sub_80A91B8
|
|
thumb_func_end sub_80A917C
|
|
|
|
thumb_func_start sub_80A91B8
|
|
sub_80A91B8: @ 80A91B8
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
ldr r1, _080A9208 @ =gTasks
|
|
adds r4, r0, r1
|
|
adds r0, r4, 0
|
|
bl sub_8076308
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
cmp r3, 0
|
|
bne _080A9202
|
|
ldr r2, _080A920C @ =gSprites
|
|
movs r0, 0x8
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
strh r3, [r0, 0x26]
|
|
movs r0, 0x8
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
adds r0, 0x3E
|
|
ldrb r1, [r0]
|
|
movs r2, 0x4
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
adds r0, r5, 0
|
|
bl DestroyAnimVisualTask
|
|
_080A9202:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A9208: .4byte gTasks
|
|
_080A920C: .4byte gSprites
|
|
thumb_func_end sub_80A91B8
|
|
|
|
thumb_func_start sub_80A9210
|
|
sub_80A9210: @ 80A9210
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
ldr r0, _080A9244 @ =gTasks
|
|
adds r4, r1, r0
|
|
movs r0, 0
|
|
strh r0, [r4, 0x8]
|
|
strh r0, [r4, 0xA]
|
|
strh r0, [r4, 0xC]
|
|
strh r0, [r4, 0xE]
|
|
movs r0, 0x3
|
|
strh r0, [r4, 0x20]
|
|
ldr r0, _080A9248 @ =gUnknown_2037F1B
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080A9250
|
|
ldr r0, _080A924C @ =0x0000ffff
|
|
strh r0, [r4, 0x22]
|
|
movs r0, 0x8
|
|
b _080A9256
|
|
.align 2, 0
|
|
_080A9244: .4byte gTasks
|
|
_080A9248: .4byte gUnknown_2037F1B
|
|
_080A924C: .4byte 0x0000ffff
|
|
_080A9250:
|
|
movs r0, 0x1
|
|
strh r0, [r4, 0x22]
|
|
ldr r0, _080A9270 @ =0x0000fff8
|
|
_080A9256:
|
|
strh r0, [r4, 0x24]
|
|
movs r0, 0x1
|
|
bl GetAnimBankSpriteId
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x26]
|
|
ldr r0, _080A9274 @ =sub_80A9278
|
|
str r0, [r4]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A9270: .4byte 0x0000fff8
|
|
_080A9274: .4byte sub_80A9278
|
|
thumb_func_end sub_80A9210
|
|
|
|
thumb_func_start sub_80A9278
|
|
sub_80A9278: @ 80A9278
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
ldr r1, _080A929C @ =gTasks
|
|
adds r3, r0, r1
|
|
movs r0, 0x8
|
|
ldrsh r4, [r3, r0]
|
|
cmp r4, 0x1
|
|
beq _080A92CC
|
|
cmp r4, 0x1
|
|
bgt _080A92A0
|
|
cmp r4, 0
|
|
beq _080A92AA
|
|
b _080A9392
|
|
.align 2, 0
|
|
_080A929C: .4byte gTasks
|
|
_080A92A0:
|
|
cmp r4, 0x2
|
|
beq _080A9348
|
|
cmp r4, 0x3
|
|
beq _080A9362
|
|
b _080A9392
|
|
_080A92AA:
|
|
ldr r2, _080A92C8 @ =gSprites
|
|
movs r0, 0x26
|
|
ldrsh r1, [r3, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrh r1, [r3, 0x24]
|
|
ldrh r2, [r0, 0x24]
|
|
adds r1, r2
|
|
strh r1, [r0, 0x24]
|
|
strh r4, [r3, 0xA]
|
|
strh r4, [r3, 0xC]
|
|
strh r4, [r3, 0xE]
|
|
b _080A935A
|
|
.align 2, 0
|
|
_080A92C8: .4byte gSprites
|
|
_080A92CC:
|
|
ldrh r0, [r3, 0xA]
|
|
adds r0, 0x1
|
|
strh r0, [r3, 0xA]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1
|
|
ble _080A9392
|
|
movs r0, 0
|
|
strh r0, [r3, 0xA]
|
|
ldrh r0, [r3, 0xC]
|
|
adds r0, 0x1
|
|
strh r0, [r3, 0xC]
|
|
ands r0, r4
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
beq _080A9304
|
|
ldr r2, _080A9300 @ =gSprites
|
|
movs r4, 0x26
|
|
ldrsh r1, [r3, r4]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrh r1, [r0, 0x24]
|
|
adds r1, 0x6
|
|
b _080A9316
|
|
.align 2, 0
|
|
_080A9300: .4byte gSprites
|
|
_080A9304:
|
|
ldr r2, _080A9344 @ =gSprites
|
|
movs r0, 0x26
|
|
ldrsh r1, [r3, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrh r1, [r0, 0x24]
|
|
subs r1, 0x6
|
|
_080A9316:
|
|
strh r1, [r0, 0x24]
|
|
ldrh r0, [r3, 0xE]
|
|
adds r0, 0x1
|
|
strh r0, [r3, 0xE]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x4
|
|
ble _080A9392
|
|
ldrh r1, [r3, 0xC]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080A935A
|
|
movs r1, 0x26
|
|
ldrsh r0, [r3, r1]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
ldrh r0, [r1, 0x24]
|
|
subs r0, 0x6
|
|
strh r0, [r1, 0x24]
|
|
b _080A935A
|
|
.align 2, 0
|
|
_080A9344: .4byte gSprites
|
|
_080A9348:
|
|
ldrh r0, [r3, 0x20]
|
|
subs r0, 0x1
|
|
strh r0, [r3, 0x20]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
beq _080A935A
|
|
movs r0, 0
|
|
strh r0, [r3, 0x8]
|
|
b _080A9392
|
|
_080A935A:
|
|
ldrh r0, [r3, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r3, 0x8]
|
|
b _080A9392
|
|
_080A9362:
|
|
ldr r2, _080A9398 @ =gSprites
|
|
movs r4, 0x26
|
|
ldrsh r1, [r3, r4]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrh r1, [r3, 0x22]
|
|
ldrh r4, [r0, 0x24]
|
|
adds r1, r4
|
|
strh r1, [r0, 0x24]
|
|
movs r0, 0x26
|
|
ldrsh r1, [r3, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
movs r1, 0x24
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0
|
|
bne _080A9392
|
|
adds r0, r5, 0
|
|
bl DestroyAnimVisualTask
|
|
_080A9392:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A9398: .4byte gSprites
|
|
thumb_func_end sub_80A9278
|
|
|
|
thumb_func_start sub_80A939C
|
|
sub_80A939C: @ 80A939C
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r4, r0, 2
|
|
adds r4, r0
|
|
lsls r4, 3
|
|
ldr r0, _080A93D8 @ =gTasks
|
|
adds r4, r0
|
|
movs r0, 0
|
|
strh r0, [r4, 0x8]
|
|
strh r0, [r4, 0xA]
|
|
strh r0, [r4, 0xC]
|
|
strh r0, [r4, 0xE]
|
|
movs r0, 0x1
|
|
strh r0, [r4, 0x10]
|
|
movs r0, 0xE
|
|
strh r0, [r4, 0x22]
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x24]
|
|
movs r0, 0
|
|
bl GetAnimBankSpriteId
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x26]
|
|
ldr r0, _080A93DC @ =sub_80A93E0
|
|
str r0, [r4]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A93D8: .4byte gTasks
|
|
_080A93DC: .4byte sub_80A93E0
|
|
thumb_func_end sub_80A939C
|
|
|
|
thumb_func_start sub_80A93E0
|
|
sub_80A93E0: @ 80A93E0
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
ldr r1, _080A9434 @ =gTasks
|
|
adds r4, r0, r1
|
|
movs r0, 0x8
|
|
ldrsh r2, [r4, r0]
|
|
cmp r2, 0
|
|
bne _080A94A6
|
|
ldrh r0, [r4, 0xA]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0xA]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r3, 0x10
|
|
ldrsh r1, [r4, r3]
|
|
cmp r0, r1
|
|
ble _080A94A6
|
|
strh r2, [r4, 0xA]
|
|
ldrh r0, [r4, 0xC]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0xC]
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080A943C
|
|
ldr r3, _080A9438 @ =gSprites
|
|
movs r6, 0x26
|
|
ldrsh r1, [r4, r6]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
adds r0, 0x3E
|
|
ldrb r2, [r0]
|
|
movs r1, 0x5
|
|
negs r1, r1
|
|
ands r1, r2
|
|
b _080A9452
|
|
.align 2, 0
|
|
_080A9434: .4byte gTasks
|
|
_080A9438: .4byte gSprites
|
|
_080A943C:
|
|
ldr r3, _080A9484 @ =gSprites
|
|
movs r0, 0x26
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
adds r0, 0x3E
|
|
ldrb r1, [r0]
|
|
movs r2, 0x4
|
|
orrs r1, r2
|
|
_080A9452:
|
|
strb r1, [r0]
|
|
ldrh r0, [r4, 0xE]
|
|
adds r0, 0x1
|
|
movs r2, 0
|
|
strh r0, [r4, 0xE]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r6, 0x22
|
|
ldrsh r1, [r4, r6]
|
|
cmp r0, r1
|
|
blt _080A94A6
|
|
ldrh r0, [r4, 0x10]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x10]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r6, 0x24
|
|
ldrsh r1, [r4, r6]
|
|
cmp r0, r1
|
|
bge _080A9488
|
|
strh r2, [r4, 0xA]
|
|
strh r2, [r4, 0xC]
|
|
strh r2, [r4, 0xE]
|
|
b _080A94A6
|
|
.align 2, 0
|
|
_080A9484: .4byte gSprites
|
|
_080A9488:
|
|
movs r0, 0x26
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
adds r0, 0x3E
|
|
ldrb r2, [r0]
|
|
movs r1, 0x5
|
|
negs r1, r1
|
|
ands r1, r2
|
|
strb r1, [r0]
|
|
adds r0, r5, 0
|
|
bl DestroyAnimVisualTask
|
|
_080A94A6:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A93E0
|
|
|
|
thumb_func_start sub_80A94AC
|
|
sub_80A94AC: @ 80A94AC
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r4, r0, 2
|
|
adds r4, r0
|
|
lsls r4, 3
|
|
ldr r0, _080A94FC @ =gTasks
|
|
adds r4, r0
|
|
movs r0, 0
|
|
strh r0, [r4, 0x8]
|
|
movs r1, 0x4
|
|
strh r1, [r4, 0xA]
|
|
strh r0, [r4, 0xC]
|
|
strh r0, [r4, 0xE]
|
|
strh r0, [r4, 0x10]
|
|
strh r0, [r4, 0x12]
|
|
strh r0, [r4, 0x14]
|
|
strh r0, [r4, 0x16]
|
|
strh r0, [r4, 0x18]
|
|
strh r0, [r4, 0x22]
|
|
ldr r5, _080A9500 @ =gUnknown_2037F1A
|
|
ldrb r0, [r5]
|
|
movs r1, 0
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x24]
|
|
ldrb r0, [r5]
|
|
movs r1, 0x1
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x26]
|
|
ldr r0, _080A9504 @ =sub_80A9508
|
|
str r0, [r4]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A94FC: .4byte gTasks
|
|
_080A9500: .4byte gUnknown_2037F1A
|
|
_080A9504: .4byte sub_80A9508
|
|
thumb_func_end sub_80A94AC
|
|
|
|
thumb_func_start sub_80A9508
|
|
sub_80A9508: @ 80A9508
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
lsls r0, r6, 2
|
|
adds r0, r6
|
|
lsls r0, 3
|
|
ldr r1, _080A952C @ =gTasks
|
|
adds r4, r0, r1
|
|
movs r0, 0x18
|
|
ldrsh r2, [r4, r0]
|
|
cmp r2, 0x1
|
|
beq _080A9574
|
|
cmp r2, 0x1
|
|
bgt _080A9530
|
|
cmp r2, 0
|
|
beq _080A9536
|
|
b _080A9590
|
|
.align 2, 0
|
|
_080A952C: .4byte gTasks
|
|
_080A9530:
|
|
cmp r2, 0x2
|
|
beq _080A958C
|
|
b _080A9590
|
|
_080A9536:
|
|
ldrh r0, [r4, 0x10]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x10]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1
|
|
ble _080A9590
|
|
strh r2, [r4, 0x10]
|
|
ldrh r0, [r4, 0x12]
|
|
adds r0, 0x1
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
strh r0, [r4, 0x12]
|
|
ldrh r0, [r4, 0x14]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x14]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x14
|
|
ble _080A9590
|
|
movs r1, 0x16
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bne _080A956E
|
|
strh r2, [r4, 0x14]
|
|
movs r0, 0x1
|
|
strh r0, [r4, 0x18]
|
|
b _080A9590
|
|
_080A956E:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x18]
|
|
b _080A9590
|
|
_080A9574:
|
|
movs r1, 0
|
|
strh r1, [r4, 0x12]
|
|
ldrh r0, [r4, 0x10]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x10]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x14
|
|
ble _080A9590
|
|
strh r2, [r4, 0x16]
|
|
strh r1, [r4, 0x18]
|
|
b _080A9590
|
|
_080A958C:
|
|
movs r0, 0x1
|
|
strh r0, [r4, 0x12]
|
|
_080A9590:
|
|
movs r2, 0x8
|
|
ldrsh r5, [r4, r2]
|
|
cmp r5, 0
|
|
beq _080A959E
|
|
cmp r5, 0x1
|
|
beq _080A9634
|
|
b _080A9642
|
|
_080A959E:
|
|
ldrh r0, [r4, 0xA]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0xA]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x4
|
|
ble _080A9642
|
|
strh r5, [r4, 0xA]
|
|
ldr r0, _080A9628 @ =gUnknown_83E4154
|
|
movs r3, 0x24
|
|
ldrsh r1, [r4, r3]
|
|
movs r3, 0x26
|
|
ldrsh r2, [r4, r3]
|
|
movs r3, 0
|
|
bl CreateSprite
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0x40
|
|
beq _080A9642
|
|
ldr r0, _080A962C @ =gSprites
|
|
lsls r1, r2, 4
|
|
adds r1, r2
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
strh r6, [r1, 0x2E]
|
|
movs r0, 0xD
|
|
strh r0, [r1, 0x30]
|
|
ldr r2, _080A9630 @ =gUnknown_83E416C
|
|
movs r3, 0xC
|
|
ldrsh r0, [r4, r3]
|
|
lsls r0, 1
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
strh r0, [r1, 0x24]
|
|
movs r3, 0xC
|
|
ldrsh r0, [r4, r3]
|
|
lsls r0, 1
|
|
adds r2, 0x1
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
strh r0, [r1, 0x26]
|
|
ldrh r0, [r4, 0x22]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x22]
|
|
ldrh r0, [r4, 0xC]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0xC]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x3
|
|
ble _080A9642
|
|
strh r5, [r4, 0xC]
|
|
ldrh r0, [r4, 0xE]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0xE]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x5
|
|
ble _080A9642
|
|
ldrh r0, [r4, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x8]
|
|
b _080A9642
|
|
.align 2, 0
|
|
_080A9628: .4byte gUnknown_83E4154
|
|
_080A962C: .4byte gSprites
|
|
_080A9630: .4byte gUnknown_83E416C
|
|
_080A9634:
|
|
movs r1, 0x22
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bne _080A9642
|
|
adds r0, r6, 0
|
|
bl DestroyAnimVisualTask
|
|
_080A9642:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A9508
|
|
|
|
thumb_func_start sub_80A9648
|
|
sub_80A9648: @ 80A9648
|
|
push {r4,lr}
|
|
adds r3, r0, 0
|
|
ldr r4, _080A96B0 @ =gTasks
|
|
movs r0, 0x2E
|
|
ldrsh r1, [r3, r0]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r0, r4
|
|
movs r1, 0x3E
|
|
adds r1, r3
|
|
mov r12, r1
|
|
movs r2, 0x1
|
|
ldrb r1, [r0, 0x12]
|
|
ands r1, r2
|
|
lsls r1, 2
|
|
mov r0, r12
|
|
ldrb r2, [r0]
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
mov r1, r12
|
|
strb r0, [r1]
|
|
adds r0, r3, 0
|
|
adds r0, 0x3F
|
|
ldrb r1, [r0]
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080A96AA
|
|
movs r0, 0x30
|
|
ldrsh r1, [r3, r0]
|
|
lsls r1, 1
|
|
movs r0, 0x2E
|
|
ldrsh r2, [r3, r0]
|
|
lsls r0, r2, 2
|
|
adds r0, r2
|
|
lsls r0, 3
|
|
adds r1, r0
|
|
adds r0, r4, 0
|
|
adds r0, 0x8
|
|
adds r1, r0
|
|
ldrh r0, [r1]
|
|
subs r0, 0x1
|
|
strh r0, [r1]
|
|
adds r0, r3, 0
|
|
bl DestroySprite
|
|
_080A96AA:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A96B0: .4byte gTasks
|
|
thumb_func_end sub_80A9648
|
|
|
|
thumb_func_start sub_80A96B4
|
|
sub_80A96B4: @ 80A96B4
|
|
push {r4-r6,lr}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
ldr r0, _080A9750 @ =0x000027de
|
|
bl IndexOfSpritePaletteTag
|
|
mov r1, sp
|
|
strb r0, [r1]
|
|
movs r4, 0x1
|
|
ldr r0, _080A9754 @ =0x00002710
|
|
adds r5, r0, 0
|
|
_080A96CC:
|
|
subs r0, r5, r4
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
bl AllocSpritePalette
|
|
mov r2, sp
|
|
adds r1, r2, r4
|
|
strb r0, [r1]
|
|
adds r4, 0x1
|
|
cmp r4, 0x2
|
|
ble _080A96CC
|
|
movs r0, 0x80
|
|
lsls r0, 6
|
|
bl AllocZeroed
|
|
adds r1, r0, 0
|
|
ldr r0, _080A9758 @ =gMonSpritesGfxPtr
|
|
ldr r0, [r0]
|
|
movs r2, 0xBE
|
|
lsls r2, 1
|
|
adds r0, r2
|
|
str r1, [r0]
|
|
ldr r0, _080A975C @ =gFile_graphics_battle_anims_sprites_206_palette
|
|
bl LZDecompressWram
|
|
movs r4, 0
|
|
_080A9700:
|
|
ldr r5, _080A9758 @ =gMonSpritesGfxPtr
|
|
ldr r0, [r5]
|
|
movs r1, 0xBE
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
lsls r1, r4, 6
|
|
ldr r0, [r0]
|
|
adds r0, r1
|
|
mov r2, sp
|
|
adds r1, r2, r4
|
|
ldrb r1, [r1]
|
|
lsls r1, 20
|
|
movs r2, 0x80
|
|
lsls r2, 17
|
|
adds r1, r2
|
|
lsrs r1, 16
|
|
movs r2, 0x20
|
|
bl LoadPalette
|
|
adds r4, 0x1
|
|
cmp r4, 0x2
|
|
ble _080A9700
|
|
ldr r0, [r5]
|
|
movs r4, 0xBE
|
|
lsls r4, 1
|
|
adds r0, r4
|
|
ldr r0, [r0]
|
|
bl Free
|
|
ldr r0, [r5]
|
|
adds r0, r4
|
|
movs r1, 0
|
|
str r1, [r0]
|
|
adds r0, r6, 0
|
|
bl DestroyAnimVisualTask
|
|
add sp, 0x4
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A9750: .4byte 0x000027de
|
|
_080A9754: .4byte 0x00002710
|
|
_080A9758: .4byte gMonSpritesGfxPtr
|
|
_080A975C: .4byte gFile_graphics_battle_anims_sprites_206_palette
|
|
thumb_func_end sub_80A96B4
|
|
|
|
thumb_func_start sub_80A9760
|
|
sub_80A9760: @ 80A9760
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
ldr r5, _080A9784 @ =gUnknown_83E41C8
|
|
movs r4, 0x2
|
|
_080A976A:
|
|
ldrh r0, [r5]
|
|
bl FreeSpritePaletteByTag
|
|
adds r5, 0x2
|
|
subs r4, 0x1
|
|
cmp r4, 0
|
|
bge _080A976A
|
|
adds r0, r6, 0
|
|
bl DestroyAnimVisualTask
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A9784: .4byte gUnknown_83E41C8
|
|
thumb_func_end sub_80A9760
|
|
|
|
thumb_func_start sub_80A9788
|
|
sub_80A9788: @ 80A9788
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
lsls r1, 24
|
|
lsls r2, 24
|
|
lsrs r3, r2, 24
|
|
movs r0, 0x1
|
|
ands r3, r0
|
|
negs r0, r3
|
|
orrs r0, r3
|
|
asrs r0, 31
|
|
movs r3, 0x20
|
|
ands r0, r3
|
|
ldrh r4, [r5, 0x4]
|
|
lsls r3, r4, 22
|
|
lsrs r3, 22
|
|
lsrs r1, 22
|
|
adds r0, r1
|
|
adds r3, r0
|
|
ldr r1, _080A97DC @ =0x000003ff
|
|
adds r0, r1, 0
|
|
ands r3, r0
|
|
ldr r0, _080A97E0 @ =0xfffffc00
|
|
ands r0, r4
|
|
orrs r0, r3
|
|
strh r0, [r5, 0x4]
|
|
ldr r0, _080A97E4 @ =gUnknown_83E41C8
|
|
lsrs r2, 25
|
|
lsls r2, 1
|
|
adds r2, r0
|
|
ldrh r0, [r2]
|
|
bl IndexOfSpritePaletteTag
|
|
lsls r0, 4
|
|
ldrb r2, [r5, 0x5]
|
|
movs r1, 0xF
|
|
ands r1, r2
|
|
orrs r1, r0
|
|
strb r1, [r5, 0x5]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A97DC: .4byte 0x000003ff
|
|
_080A97E0: .4byte 0xfffffc00
|
|
_080A97E4: .4byte gUnknown_83E41C8
|
|
thumb_func_end sub_80A9788
|
|
|
|
thumb_func_start sub_80A97E8
|
|
sub_80A97E8: @ 80A97E8
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
movs r1, 0
|
|
bl sub_8075160
|
|
ldr r6, _080A9850 @ =gUnknown_2037F1A
|
|
ldrb r0, [r6]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A9808
|
|
ldr r1, _080A9854 @ =gUnknown_2037F02
|
|
ldrh r0, [r1, 0x4]
|
|
negs r0, r0
|
|
strh r0, [r1, 0x4]
|
|
_080A9808:
|
|
ldr r4, _080A9854 @ =gUnknown_2037F02
|
|
ldrh r0, [r4, 0x8]
|
|
strh r0, [r5, 0x2E]
|
|
ldrb r0, [r6]
|
|
movs r1, 0
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrh r1, [r4, 0x4]
|
|
adds r0, r1
|
|
strh r0, [r5, 0x32]
|
|
ldrb r0, [r6]
|
|
movs r1, 0x1
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrh r1, [r4, 0x6]
|
|
adds r0, r1
|
|
strh r0, [r5, 0x36]
|
|
ldr r0, _080A9858 @ =sub_8075590
|
|
str r0, [r5, 0x1C]
|
|
ldr r1, _080A985C @ =DestroyAnimSprite
|
|
adds r0, r5, 0
|
|
bl StoreSpriteCallbackInData6
|
|
ldrb r1, [r4, 0xA]
|
|
ldrb r2, [r4, 0xC]
|
|
adds r0, r5, 0
|
|
bl sub_80A9788
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A9850: .4byte gUnknown_2037F1A
|
|
_080A9854: .4byte gUnknown_2037F02
|
|
_080A9858: .4byte sub_8075590
|
|
_080A985C: .4byte DestroyAnimSprite
|
|
thumb_func_end sub_80A97E8
|
|
|
|
thumb_func_start sub_80A9860
|
|
sub_80A9860: @ 80A9860
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrh r0, [r4, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1
|
|
bne _080A987A
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl sub_8075160
|
|
_080A987A:
|
|
movs r1, 0x30
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0x8
|
|
bl Sin
|
|
strh r0, [r4, 0x24]
|
|
ldrh r2, [r4, 0x32]
|
|
lsls r0, r2, 16
|
|
asrs r0, 24
|
|
strh r0, [r4, 0x26]
|
|
ldrh r0, [r4, 0x30]
|
|
adds r0, 0x7
|
|
movs r1, 0xFF
|
|
ands r0, r1
|
|
strh r0, [r4, 0x30]
|
|
subs r2, 0x80
|
|
strh r2, [r4, 0x32]
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x3C
|
|
bne _080A98AA
|
|
adds r0, r4, 0
|
|
bl DestroyAnimSprite
|
|
_080A98AA:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A9860
|
|
|
|
thumb_func_start sub_80A98B0
|
|
sub_80A98B0: @ 80A98B0
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
movs r6, 0xF0
|
|
cmp r0, 0
|
|
beq _080A98C4
|
|
movs r6, 0x98
|
|
_080A98C4:
|
|
movs r5, 0
|
|
ldr r1, _080A9918 @ =gUnknown_2022984
|
|
strh r6, [r1]
|
|
ldr r4, _080A991C @ =gUnknown_2022986
|
|
movs r0, 0xA0
|
|
strh r0, [r4]
|
|
ldrh r1, [r1]
|
|
movs r0, 0x40
|
|
bl SetGpuReg
|
|
ldrh r1, [r4]
|
|
movs r0, 0x44
|
|
bl SetGpuReg
|
|
ldr r1, _080A9920 @ =0x00003f1f
|
|
movs r0, 0x48
|
|
bl SetGpuReg
|
|
ldr r1, _080A9924 @ =0x00003f3f
|
|
movs r0, 0x4A
|
|
bl SetGpuReg
|
|
movs r0, 0x50
|
|
movs r1, 0xC8
|
|
bl SetGpuReg
|
|
movs r0, 0x54
|
|
movs r1, 0x10
|
|
bl SetGpuReg
|
|
ldr r1, _080A9928 @ =gTasks
|
|
lsls r0, r7, 2
|
|
adds r0, r7
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
strh r5, [r0, 0x8]
|
|
strh r6, [r0, 0xA]
|
|
ldr r1, _080A992C @ =sub_80A9930
|
|
str r1, [r0]
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A9918: .4byte gUnknown_2022984
|
|
_080A991C: .4byte gUnknown_2022986
|
|
_080A9920: .4byte 0x00003f1f
|
|
_080A9924: .4byte 0x00003f3f
|
|
_080A9928: .4byte gTasks
|
|
_080A992C: .4byte sub_80A9930
|
|
thumb_func_end sub_80A98B0
|
|
|
|
thumb_func_start sub_80A9930
|
|
sub_80A9930: @ 80A9930
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, _080A9964 @ =gTasks
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r3, r1, r2
|
|
ldrh r0, [r3, 0x8]
|
|
adds r4, r0, 0
|
|
adds r4, 0xD
|
|
strh r4, [r3, 0x8]
|
|
ldrh r0, [r3, 0xA]
|
|
adds r2, r0, 0
|
|
subs r2, 0xD
|
|
strh r2, [r3, 0xA]
|
|
lsls r1, r4, 16
|
|
lsls r0, r2, 16
|
|
cmp r1, r0
|
|
blt _080A9970
|
|
ldr r0, _080A9968 @ =gUnknown_2022984
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
ldr r0, _080A996C @ =sub_80A9984
|
|
str r0, [r3]
|
|
b _080A9978
|
|
.align 2, 0
|
|
_080A9964: .4byte gTasks
|
|
_080A9968: .4byte gUnknown_2022984
|
|
_080A996C: .4byte sub_80A9984
|
|
_080A9970:
|
|
ldr r1, _080A9980 @ =gUnknown_2022984
|
|
lsls r0, r4, 8
|
|
orrs r2, r0
|
|
strh r2, [r1]
|
|
_080A9978:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A9980: .4byte gUnknown_2022984
|
|
thumb_func_end sub_80A9930
|
|
|
|
thumb_func_start sub_80A9984
|
|
sub_80A9984: @ 80A9984
|
|
push {r4,r5,lr}
|
|
sub sp, 0xC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r5, r0, 0
|
|
ldr r1, _080A99D0 @ =gTasks
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
adds r1, r0, r1
|
|
ldrh r0, [r1, 0x1C]
|
|
adds r0, 0x1
|
|
movs r4, 0
|
|
strh r0, [r1, 0x1C]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x5
|
|
bne _080A99D8
|
|
movs r0, 0x88
|
|
strh r0, [r1, 0x1E]
|
|
movs r0, 0x50
|
|
movs r1, 0x88
|
|
bl SetGpuReg
|
|
str r4, [sp]
|
|
str r4, [sp, 0x4]
|
|
str r4, [sp, 0x8]
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl sub_8075BE8
|
|
ldr r2, _080A99D4 @ =0x00007fff
|
|
movs r1, 0x10
|
|
bl BlendPalettes
|
|
b _080A9A0C
|
|
.align 2, 0
|
|
_080A99D0: .4byte gTasks
|
|
_080A99D4: .4byte 0x00007fff
|
|
_080A99D8:
|
|
cmp r0, 0x4
|
|
ble _080A9A0C
|
|
ldr r0, _080A9A14 @ =gUnknown_2022984
|
|
strh r4, [r0]
|
|
ldr r0, _080A9A18 @ =gUnknown_2022986
|
|
strh r4, [r0]
|
|
ldr r4, _080A9A1C @ =0x00003f3f
|
|
movs r0, 0x48
|
|
adds r1, r4, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x4A
|
|
adds r1, r4, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x50
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x54
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
adds r0, r5, 0
|
|
bl DestroyAnimVisualTask
|
|
_080A9A0C:
|
|
add sp, 0xC
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A9A14: .4byte gUnknown_2022984
|
|
_080A9A18: .4byte gUnknown_2022986
|
|
_080A9A1C: .4byte 0x00003f3f
|
|
thumb_func_end sub_80A9984
|
|
|
|
thumb_func_start sub_80A9A20
|
|
sub_80A9A20: @ 80A9A20
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r6, r0, 0
|
|
movs r0, 0x1
|
|
bl GetAnimBankSpriteId
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r1, _080A9A70 @ =gTasks
|
|
lsls r0, r6, 2
|
|
adds r0, r6
|
|
lsls r0, 3
|
|
adds r5, r0, r1
|
|
ldrh r0, [r5, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x8]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1
|
|
bne _080A9A7C
|
|
movs r0, 0x1
|
|
bl GetAnimBankSpriteId
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
ldr r2, _080A9A74 @ =gUnknown_83E4200
|
|
adds r0, r5, 0
|
|
bl sub_80762D0
|
|
ldr r1, _080A9A78 @ =gSprites
|
|
lsls r0, r4, 4
|
|
adds r0, r4
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
movs r1, 0x4
|
|
strh r1, [r0, 0x24]
|
|
b _080A9AA4
|
|
.align 2, 0
|
|
_080A9A70: .4byte gTasks
|
|
_080A9A74: .4byte gUnknown_83E4200
|
|
_080A9A78: .4byte gSprites
|
|
_080A9A7C:
|
|
ldr r1, _080A9AAC @ =gSprites
|
|
lsls r0, r4, 4
|
|
adds r0, r4
|
|
lsls r0, 2
|
|
adds r4, r0, r1
|
|
ldrh r0, [r4, 0x24]
|
|
negs r0, r0
|
|
strh r0, [r4, 0x24]
|
|
adds r0, r5, 0
|
|
bl sub_8076308
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0
|
|
bne _080A9AA4
|
|
strh r0, [r4, 0x24]
|
|
strh r0, [r4, 0x26]
|
|
adds r0, r6, 0
|
|
bl DestroyAnimVisualTask
|
|
_080A9AA4:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A9AAC: .4byte gSprites
|
|
thumb_func_end sub_80A9A20
|
|
|
|
thumb_func_start sub_80A9AB0
|
|
sub_80A9AB0: @ 80A9AB0
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r6, r0, 0
|
|
movs r0, 0
|
|
bl GetAnimBankSpriteId
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r1, _080A9B00 @ =gTasks
|
|
lsls r0, r6, 2
|
|
adds r0, r6
|
|
lsls r0, 3
|
|
adds r5, r0, r1
|
|
ldrh r0, [r5, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x8]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1
|
|
bne _080A9B0C
|
|
movs r0, 0
|
|
bl GetAnimBankSpriteId
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
ldr r2, _080A9B04 @ =gUnknown_83E4200
|
|
adds r0, r5, 0
|
|
bl sub_80762D0
|
|
ldr r1, _080A9B08 @ =gSprites
|
|
lsls r0, r4, 4
|
|
adds r0, r4
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
movs r1, 0x4
|
|
strh r1, [r0, 0x24]
|
|
b _080A9B34
|
|
.align 2, 0
|
|
_080A9B00: .4byte gTasks
|
|
_080A9B04: .4byte gUnknown_83E4200
|
|
_080A9B08: .4byte gSprites
|
|
_080A9B0C:
|
|
ldr r1, _080A9B3C @ =gSprites
|
|
lsls r0, r4, 4
|
|
adds r0, r4
|
|
lsls r0, 2
|
|
adds r4, r0, r1
|
|
ldrh r0, [r4, 0x24]
|
|
negs r0, r0
|
|
strh r0, [r4, 0x24]
|
|
adds r0, r5, 0
|
|
bl sub_8076308
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0
|
|
bne _080A9B34
|
|
strh r0, [r4, 0x24]
|
|
strh r0, [r4, 0x26]
|
|
adds r0, r6, 0
|
|
bl DestroyAnimVisualTask
|
|
_080A9B34:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A9B3C: .4byte gSprites
|
|
thumb_func_end sub_80A9AB0
|
|
|
|
thumb_func_start sub_80A9B40
|
|
sub_80A9B40: @ 80A9B40
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x1
|
|
bl sub_8075160
|
|
movs r0, 0x5F
|
|
strh r0, [r4, 0x2E]
|
|
ldrh r0, [r4, 0x20]
|
|
strh r0, [r4, 0x30]
|
|
ldr r5, _080A9B84 @ =gUnknown_2037F1B
|
|
ldrb r0, [r5]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x32]
|
|
ldrh r0, [r4, 0x22]
|
|
strh r0, [r4, 0x34]
|
|
ldrb r0, [r5]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x36]
|
|
adds r0, r4, 0
|
|
bl obj_translate_based_on_private_1_2_3_4
|
|
ldr r0, _080A9B88 @ =sub_80A9B8C
|
|
str r0, [r4, 0x1C]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A9B84: .4byte gUnknown_2037F1B
|
|
_080A9B88: .4byte sub_80A9B8C
|
|
thumb_func_end sub_80A9B40
|
|
|
|
thumb_func_start sub_80A9B8C
|
|
sub_80A9B8C: @ 80A9B8C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_80755E0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080A9BB6
|
|
movs r1, 0x38
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0xE
|
|
bl Sin
|
|
ldrh r1, [r4, 0x26]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x26]
|
|
ldrh r0, [r4, 0x38]
|
|
adds r0, 0x4
|
|
movs r1, 0xFF
|
|
ands r0, r1
|
|
strh r0, [r4, 0x38]
|
|
b _080A9BBC
|
|
_080A9BB6:
|
|
adds r0, r4, 0
|
|
bl DestroyAnimSprite
|
|
_080A9BBC:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A9B8C
|
|
|
|
thumb_func_start sub_80A9BC4
|
|
sub_80A9BC4: @ 80A9BC4
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrh r2, [r4, 0x2E]
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bne _080A9BE8
|
|
ldr r1, _080A9BE4 @ =gUnknown_2037F02
|
|
ldrh r0, [r1]
|
|
strh r0, [r4, 0x30]
|
|
ldrh r0, [r1, 0x2]
|
|
strh r0, [r4, 0x32]
|
|
adds r0, r2, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
b _080A9C44
|
|
.align 2, 0
|
|
_080A9BE4: .4byte gUnknown_2037F02
|
|
_080A9BE8:
|
|
ldrh r0, [r4, 0x30]
|
|
ldrh r2, [r4, 0x36]
|
|
adds r0, r2
|
|
strh r0, [r4, 0x36]
|
|
lsls r0, 16
|
|
asrs r0, 24
|
|
strh r0, [r4, 0x24]
|
|
movs r1, 0x34
|
|
ldrsh r0, [r4, r1]
|
|
movs r2, 0x32
|
|
ldrsh r1, [r4, r2]
|
|
bl Sin
|
|
strh r0, [r4, 0x26]
|
|
ldrh r0, [r4, 0x34]
|
|
adds r0, 0x3
|
|
movs r1, 0xFF
|
|
ands r0, r1
|
|
strh r0, [r4, 0x34]
|
|
cmp r0, 0x64
|
|
ble _080A9C36
|
|
movs r0, 0x34
|
|
ldrsh r1, [r4, r0]
|
|
lsrs r0, r1, 31
|
|
adds r0, r1, r0
|
|
asrs r0, 1
|
|
lsls r0, 1
|
|
subs r1, r0
|
|
adds r3, r4, 0
|
|
adds r3, 0x3E
|
|
movs r0, 0x1
|
|
ands r1, r0
|
|
lsls r1, 2
|
|
ldrb r2, [r3]
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r3]
|
|
_080A9C36:
|
|
movs r1, 0x34
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x78
|
|
ble _080A9C44
|
|
adds r0, r4, 0
|
|
bl DestroyAnimSprite
|
|
_080A9C44:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A9BC4
|
|
|
|
thumb_func_start sub_80A9C4C
|
|
sub_80A9C4C: @ 80A9C4C
|
|
push {lr}
|
|
ldr r2, _080A9C70 @ =gUnknown_2037F02
|
|
ldrh r1, [r2]
|
|
strh r1, [r0, 0x20]
|
|
movs r1, 0xA0
|
|
strh r1, [r0, 0x22]
|
|
ldrh r1, [r2, 0x4]
|
|
strh r1, [r0, 0x2E]
|
|
ldrh r1, [r2, 0x2]
|
|
strh r1, [r0, 0x30]
|
|
ldr r1, _080A9C74 @ =sub_8074C44
|
|
str r1, [r0, 0x1C]
|
|
ldr r1, _080A9C78 @ =sub_80A9C7C
|
|
bl StoreSpriteCallbackInData6
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A9C70: .4byte gUnknown_2037F02
|
|
_080A9C74: .4byte sub_8074C44
|
|
_080A9C78: .4byte sub_80A9C7C
|
|
thumb_func_end sub_80A9C4C
|
|
|
|
thumb_func_start sub_80A9C7C
|
|
sub_80A9C7C: @ 80A9C7C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
ldrh r0, [r4, 0x30]
|
|
ldrh r1, [r4, 0x32]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x32]
|
|
lsls r0, 16
|
|
lsrs r0, 24
|
|
negs r0, r0
|
|
strh r0, [r4, 0x26]
|
|
movs r1, 0x34
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0x4
|
|
bl Sin
|
|
strh r0, [r4, 0x24]
|
|
ldrh r0, [r4, 0x34]
|
|
adds r0, 0x3
|
|
movs r1, 0xFF
|
|
ands r0, r1
|
|
strh r0, [r4, 0x34]
|
|
ldrh r0, [r4, 0x26]
|
|
ldrh r1, [r4, 0x22]
|
|
adds r0, r1
|
|
lsls r0, 16
|
|
asrs r5, r0, 16
|
|
cmp r5, 0x48
|
|
bgt _080A9CE2
|
|
movs r0, 0x34
|
|
ldrsh r1, [r4, r0]
|
|
lsrs r0, r1, 31
|
|
adds r0, r1, r0
|
|
asrs r0, 1
|
|
lsls r0, 1
|
|
subs r1, r0
|
|
adds r3, r4, 0
|
|
adds r3, 0x3E
|
|
movs r0, 0x1
|
|
ands r1, r0
|
|
lsls r1, 2
|
|
ldrb r2, [r3]
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r3]
|
|
cmp r5, 0x40
|
|
bgt _080A9CE2
|
|
adds r0, r4, 0
|
|
bl DestroyAnimSprite
|
|
_080A9CE2:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A9C7C
|
|
|
|
thumb_func_start sub_80A9CE8
|
|
sub_80A9CE8: @ 80A9CE8
|
|
push {r4,r5,lr}
|
|
sub sp, 0x10
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r1, _080A9DA0 @ =0x00003f42
|
|
movs r0, 0x50
|
|
bl SetGpuReg
|
|
movs r1, 0x80
|
|
lsls r1, 5
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
movs r0, 0x1
|
|
movs r1, 0x4
|
|
movs r2, 0x3
|
|
bl SetAnimBgAttribute
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl SetAnimBgAttribute
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080A9D2A
|
|
movs r0, 0x1
|
|
movs r1, 0x3
|
|
movs r2, 0x1
|
|
bl SetAnimBgAttribute
|
|
_080A9D2A:
|
|
ldr r0, _080A9DA4 @ =gUnknown_2022978
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
ldr r4, _080A9DA8 @ =gUnknown_202297A
|
|
strh r1, [r4]
|
|
movs r0, 0x14
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
ldrh r1, [r4]
|
|
movs r0, 0x16
|
|
bl SetGpuReg
|
|
mov r0, sp
|
|
bl sub_80752A0
|
|
mov r0, sp
|
|
ldrb r0, [r0, 0x9]
|
|
ldr r1, _080A9DAC @ =gFile_graphics_battle_anims_backgrounds_attract_tilemap
|
|
bl sub_807543C
|
|
mov r0, sp
|
|
ldrb r0, [r0, 0x9]
|
|
ldr r1, _080A9DB0 @ =gFile_graphics_battle_anims_backgrounds_attract_sheet
|
|
mov r2, sp
|
|
ldrh r2, [r2, 0xA]
|
|
bl sub_80753B4
|
|
ldr r0, _080A9DB4 @ =gFile_graphics_battle_anims_backgrounds_attract_palette
|
|
mov r1, sp
|
|
ldrb r1, [r1, 0x8]
|
|
lsls r1, 4
|
|
movs r2, 0x20
|
|
bl LoadCompressedPalette
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A9D88
|
|
mov r0, sp
|
|
ldrb r0, [r0, 0x8]
|
|
ldr r1, [sp, 0x4]
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl sub_80730C0
|
|
_080A9D88:
|
|
ldr r0, _080A9DB8 @ =gTasks
|
|
lsls r1, r5, 2
|
|
adds r1, r5
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldr r0, _080A9DBC @ =sub_80A9DC0
|
|
str r0, [r1]
|
|
add sp, 0x10
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A9DA0: .4byte 0x00003f42
|
|
_080A9DA4: .4byte gUnknown_2022978
|
|
_080A9DA8: .4byte gUnknown_202297A
|
|
_080A9DAC: .4byte gFile_graphics_battle_anims_backgrounds_attract_tilemap
|
|
_080A9DB0: .4byte gFile_graphics_battle_anims_backgrounds_attract_sheet
|
|
_080A9DB4: .4byte gFile_graphics_battle_anims_backgrounds_attract_palette
|
|
_080A9DB8: .4byte gTasks
|
|
_080A9DBC: .4byte sub_80A9DC0
|
|
thumb_func_end sub_80A9CE8
|
|
|
|
thumb_func_start sub_80A9DC0
|
|
sub_80A9DC0: @ 80A9DC0
|
|
push {r4,r5,lr}
|
|
sub sp, 0x10
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r1, _080A9DE8 @ =gTasks
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
movs r2, 0x20
|
|
ldrsh r0, [r0, r2]
|
|
adds r2, r1, 0
|
|
cmp r0, 0x4
|
|
bls _080A9DDE
|
|
b _080A9F08
|
|
_080A9DDE:
|
|
lsls r0, 2
|
|
ldr r1, _080A9DEC @ =_080A9DF0
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080A9DE8: .4byte gTasks
|
|
_080A9DEC: .4byte _080A9DF0
|
|
.align 2, 0
|
|
_080A9DF0:
|
|
.4byte _080A9E04
|
|
.4byte _080A9E48
|
|
.4byte _080A9E6A
|
|
.4byte _080A9EAE
|
|
.4byte _080A9ED4
|
|
_080A9E04:
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r4, r0, r2
|
|
ldrh r0, [r4, 0x1C]
|
|
adds r0, 0x1
|
|
movs r5, 0
|
|
strh r0, [r4, 0x1C]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x4
|
|
bne _080A9F08
|
|
strh r5, [r4, 0x1C]
|
|
ldrh r1, [r4, 0x1E]
|
|
adds r1, 0x1
|
|
strh r1, [r4, 0x1E]
|
|
movs r0, 0x10
|
|
subs r0, r1
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
movs r1, 0x1E
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x10
|
|
bne _080A9F08
|
|
ldrh r0, [r4, 0x20]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x20]
|
|
strh r5, [r4, 0x1E]
|
|
b _080A9F08
|
|
_080A9E48:
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r1, r0, r2
|
|
ldrh r0, [r1, 0x1E]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x1E]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x8D
|
|
bne _080A9F08
|
|
movs r0, 0x10
|
|
strh r0, [r1, 0x1E]
|
|
ldrh r0, [r1, 0x20]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x20]
|
|
b _080A9F08
|
|
_080A9E6A:
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r4, r0, r2
|
|
ldrh r0, [r4, 0x1C]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x1C]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x4
|
|
bne _080A9F08
|
|
movs r0, 0
|
|
strh r0, [r4, 0x1C]
|
|
ldrh r1, [r4, 0x1E]
|
|
subs r1, 0x1
|
|
strh r1, [r4, 0x1E]
|
|
movs r0, 0x10
|
|
subs r0, r1
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
movs r2, 0x1E
|
|
ldrsh r1, [r4, r2]
|
|
cmp r1, 0
|
|
bne _080A9F08
|
|
ldrh r0, [r4, 0x20]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x20]
|
|
strh r1, [r4, 0x1E]
|
|
b _080A9F08
|
|
_080A9EAE:
|
|
mov r0, sp
|
|
bl sub_80752A0
|
|
mov r0, sp
|
|
ldrb r0, [r0, 0x9]
|
|
bl sub_8075358
|
|
ldr r1, _080A9ED0 @ =gTasks
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldrh r1, [r0, 0x20]
|
|
adds r1, 0x1
|
|
strh r1, [r0, 0x20]
|
|
b _080A9F08
|
|
.align 2, 0
|
|
_080A9ED0: .4byte gTasks
|
|
_080A9ED4:
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080A9EE8
|
|
movs r0, 0x1
|
|
movs r1, 0x3
|
|
movs r2, 0
|
|
bl SetAnimBgAttribute
|
|
_080A9EE8:
|
|
movs r0, 0x50
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x52
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x1
|
|
movs r1, 0x4
|
|
movs r2, 0x1
|
|
bl SetAnimBgAttribute
|
|
adds r0, r4, 0
|
|
bl DestroyAnimVisualTask
|
|
_080A9F08:
|
|
add sp, 0x10
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A9DC0
|
|
|
|
thumb_func_start sub_80A9F10
|
|
sub_80A9F10: @ 80A9F10
|
|
push {r4,r5,lr}
|
|
sub sp, 0x10
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r1, _080A9F88 @ =0x00003f42
|
|
movs r0, 0x50
|
|
bl SetGpuReg
|
|
movs r1, 0x80
|
|
lsls r1, 5
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
movs r0, 0x1
|
|
movs r1, 0x4
|
|
movs r2, 0x1
|
|
bl SetAnimBgAttribute
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl SetAnimBgAttribute
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080A9F52
|
|
movs r0, 0x1
|
|
movs r1, 0x3
|
|
movs r2, 0x1
|
|
bl SetAnimBgAttribute
|
|
_080A9F52:
|
|
ldr r0, _080A9F8C @ =gUnknown_2022978
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
ldr r4, _080A9F90 @ =gUnknown_202297A
|
|
strh r1, [r4]
|
|
movs r0, 0x14
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
ldrh r1, [r4]
|
|
movs r0, 0x16
|
|
bl SetGpuReg
|
|
mov r0, sp
|
|
bl sub_80752A0
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A9F98
|
|
ldr r0, _080A9F94 @ =gFile_graphics_battle_anims_backgrounds_scary_face_contest_tilemap
|
|
ldr r1, [sp, 0x4]
|
|
bl LZDecompressVram
|
|
b _080A9FC6
|
|
.align 2, 0
|
|
_080A9F88: .4byte 0x00003f42
|
|
_080A9F8C: .4byte gUnknown_2022978
|
|
_080A9F90: .4byte gUnknown_202297A
|
|
_080A9F94: .4byte gFile_graphics_battle_anims_backgrounds_scary_face_contest_tilemap
|
|
_080A9F98:
|
|
ldr r0, _080A9FB4 @ =gUnknown_2037F1B
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _080A9FBC
|
|
mov r0, sp
|
|
ldrb r0, [r0, 0x9]
|
|
ldr r1, _080A9FB8 @ =gFile_graphics_battle_anims_backgrounds_scary_face_player_tilemap
|
|
bl sub_807543C
|
|
b _080A9FC6
|
|
.align 2, 0
|
|
_080A9FB4: .4byte gUnknown_2037F1B
|
|
_080A9FB8: .4byte gFile_graphics_battle_anims_backgrounds_scary_face_player_tilemap
|
|
_080A9FBC:
|
|
mov r0, sp
|
|
ldrb r0, [r0, 0x9]
|
|
ldr r1, _080AA010 @ =gFile_graphics_battle_anims_backgrounds_scary_face_opponent_tilemap
|
|
bl sub_807543C
|
|
_080A9FC6:
|
|
mov r0, sp
|
|
ldrb r0, [r0, 0x9]
|
|
ldr r1, _080AA014 @ =gFile_graphics_battle_anims_backgrounds_scary_face_sheet
|
|
mov r2, sp
|
|
ldrh r2, [r2, 0xA]
|
|
bl sub_80753B4
|
|
ldr r0, _080AA018 @ =gFile_graphics_battle_anims_backgrounds_scary_face_palette
|
|
mov r1, sp
|
|
ldrb r1, [r1, 0x8]
|
|
lsls r1, 4
|
|
movs r2, 0x20
|
|
bl LoadCompressedPalette
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A9FFA
|
|
mov r0, sp
|
|
ldrb r0, [r0, 0x8]
|
|
ldr r1, [sp, 0x4]
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl sub_80730C0
|
|
_080A9FFA:
|
|
ldr r0, _080AA01C @ =gTasks
|
|
lsls r1, r5, 2
|
|
adds r1, r5
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldr r0, _080AA020 @ =sub_80AA024
|
|
str r0, [r1]
|
|
add sp, 0x10
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AA010: .4byte gFile_graphics_battle_anims_backgrounds_scary_face_opponent_tilemap
|
|
_080AA014: .4byte gFile_graphics_battle_anims_backgrounds_scary_face_sheet
|
|
_080AA018: .4byte gFile_graphics_battle_anims_backgrounds_scary_face_palette
|
|
_080AA01C: .4byte gTasks
|
|
_080AA020: .4byte sub_80AA024
|
|
thumb_func_end sub_80A9F10
|
|
|
|
thumb_func_start sub_80AA024
|
|
sub_80AA024: @ 80AA024
|
|
push {r4,r5,lr}
|
|
sub sp, 0x10
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r1, _080AA04C @ =gTasks
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
movs r2, 0x20
|
|
ldrsh r0, [r0, r2]
|
|
adds r2, r1, 0
|
|
cmp r0, 0x4
|
|
bls _080AA042
|
|
b _080AA168
|
|
_080AA042:
|
|
lsls r0, 2
|
|
ldr r1, _080AA050 @ =_080AA054
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080AA04C: .4byte gTasks
|
|
_080AA050: .4byte _080AA054
|
|
.align 2, 0
|
|
_080AA054:
|
|
.4byte _080AA068
|
|
.4byte _080AA0AC
|
|
.4byte _080AA0CE
|
|
.4byte _080AA112
|
|
.4byte _080AA134
|
|
_080AA068:
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r4, r0, r2
|
|
ldrh r0, [r4, 0x1C]
|
|
adds r0, 0x1
|
|
movs r5, 0
|
|
strh r0, [r4, 0x1C]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x2
|
|
bne _080AA168
|
|
strh r5, [r4, 0x1C]
|
|
ldrh r1, [r4, 0x1E]
|
|
adds r1, 0x1
|
|
strh r1, [r4, 0x1E]
|
|
movs r0, 0x10
|
|
subs r0, r1
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
movs r1, 0x1E
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0xE
|
|
bne _080AA168
|
|
ldrh r0, [r4, 0x20]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x20]
|
|
strh r5, [r4, 0x1E]
|
|
b _080AA168
|
|
_080AA0AC:
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r1, r0, r2
|
|
ldrh r0, [r1, 0x1E]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x1E]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x15
|
|
bne _080AA168
|
|
movs r0, 0xE
|
|
strh r0, [r1, 0x1E]
|
|
ldrh r0, [r1, 0x20]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x20]
|
|
b _080AA168
|
|
_080AA0CE:
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r4, r0, r2
|
|
ldrh r0, [r4, 0x1C]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x1C]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x2
|
|
bne _080AA168
|
|
movs r0, 0
|
|
strh r0, [r4, 0x1C]
|
|
ldrh r1, [r4, 0x1E]
|
|
subs r1, 0x1
|
|
strh r1, [r4, 0x1E]
|
|
movs r0, 0x10
|
|
subs r0, r1
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
movs r2, 0x1E
|
|
ldrsh r1, [r4, r2]
|
|
cmp r1, 0
|
|
bne _080AA168
|
|
ldrh r0, [r4, 0x20]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x20]
|
|
strh r1, [r4, 0x1E]
|
|
b _080AA168
|
|
_080AA112:
|
|
mov r0, sp
|
|
bl sub_80752A0
|
|
movs r0, 0x1
|
|
bl sub_8075358
|
|
movs r0, 0x2
|
|
bl sub_8075358
|
|
ldr r0, _080AA170 @ =gTasks
|
|
lsls r1, r4, 2
|
|
adds r1, r4
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldrh r0, [r1, 0x20]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x20]
|
|
_080AA134:
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080AA148
|
|
movs r0, 0x1
|
|
movs r1, 0x3
|
|
movs r2, 0
|
|
bl SetAnimBgAttribute
|
|
_080AA148:
|
|
movs r0, 0x50
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x52
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x1
|
|
movs r1, 0x4
|
|
movs r2, 0x1
|
|
bl SetAnimBgAttribute
|
|
adds r0, r4, 0
|
|
bl DestroyAnimVisualTask
|
|
_080AA168:
|
|
add sp, 0x10
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AA170: .4byte gTasks
|
|
thumb_func_end sub_80AA024
|
|
|
|
thumb_func_start sub_80AA174
|
|
sub_80AA174: @ 80AA174
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
ldr r5, _080AA1C8 @ =gUnknown_2037F1A
|
|
ldrb r0, [r5]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x20]
|
|
ldrb r0, [r5]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x22]
|
|
adds r2, r4, 0
|
|
adds r2, 0x2C
|
|
ldrb r0, [r2]
|
|
movs r1, 0x80
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r1, _080AA1CC @ =gUnknown_2037F02
|
|
ldrh r0, [r1]
|
|
strh r0, [r4, 0x2E]
|
|
ldrh r0, [r1, 0x2]
|
|
strh r0, [r4, 0x30]
|
|
ldrb r0, [r5]
|
|
bl sub_807685C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x3C]
|
|
ldr r1, _080AA1D0 @ =sub_80AA1D4
|
|
str r1, [r4, 0x1C]
|
|
adds r0, r4, 0
|
|
bl _call_via_r1
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AA1C8: .4byte gUnknown_2037F1A
|
|
_080AA1CC: .4byte gUnknown_2037F02
|
|
_080AA1D0: .4byte sub_80AA1D4
|
|
thumb_func_end sub_80AA174
|
|
|
|
thumb_func_start sub_80AA1D4
|
|
sub_80AA1D4: @ 80AA1D4
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrh r0, [r4, 0x30]
|
|
subs r0, 0x40
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x7F
|
|
bhi _080AA1EA
|
|
ldrh r0, [r4, 0x3C]
|
|
adds r0, 0x1
|
|
b _080AA1EE
|
|
_080AA1EA:
|
|
ldrh r0, [r4, 0x3C]
|
|
subs r0, 0x1
|
|
_080AA1EE:
|
|
adds r1, r4, 0
|
|
adds r1, 0x43
|
|
strb r0, [r1]
|
|
movs r1, 0x30
|
|
ldrsh r0, [r4, r1]
|
|
ldrh r1, [r4, 0x32]
|
|
lsls r1, 16
|
|
asrs r1, 24
|
|
bl Sin
|
|
strh r0, [r4, 0x24]
|
|
movs r2, 0x30
|
|
ldrsh r0, [r4, r2]
|
|
ldrh r1, [r4, 0x34]
|
|
lsls r1, 16
|
|
asrs r1, 24
|
|
bl Cos
|
|
strh r0, [r4, 0x26]
|
|
ldrh r0, [r4, 0x30]
|
|
adds r0, 0x9
|
|
movs r1, 0xFF
|
|
ands r0, r1
|
|
strh r0, [r4, 0x30]
|
|
movs r3, 0x38
|
|
ldrsh r2, [r4, r3]
|
|
cmp r2, 0
|
|
beq _080AA260
|
|
cmp r2, 0x1
|
|
bne _080AA290
|
|
ldr r1, _080AA258 @ =0xfffffc00
|
|
adds r0, r1, 0
|
|
ldrh r2, [r4, 0x32]
|
|
adds r0, r2
|
|
strh r0, [r4, 0x32]
|
|
ldr r3, _080AA25C @ =0xffffff00
|
|
adds r0, r3, 0
|
|
ldrh r1, [r4, 0x34]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x34]
|
|
ldrh r0, [r4, 0x36]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x36]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r2, 0x2E
|
|
ldrsh r1, [r4, r2]
|
|
cmp r0, r1
|
|
bne _080AA290
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x38]
|
|
b _080AA2A0
|
|
.align 2, 0
|
|
_080AA258: .4byte 0xfffffc00
|
|
_080AA25C: .4byte 0xffffff00
|
|
_080AA260:
|
|
movs r3, 0x80
|
|
lsls r3, 3
|
|
adds r0, r3, 0
|
|
ldrh r1, [r4, 0x32]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x32]
|
|
movs r3, 0x80
|
|
lsls r3, 1
|
|
adds r0, r3, 0
|
|
ldrh r1, [r4, 0x34]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x34]
|
|
ldrh r0, [r4, 0x36]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x36]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r3, 0x2E
|
|
ldrsh r1, [r4, r3]
|
|
cmp r0, r1
|
|
bne _080AA290
|
|
strh r2, [r4, 0x36]
|
|
movs r0, 0x1
|
|
strh r0, [r4, 0x38]
|
|
_080AA290:
|
|
ldr r0, _080AA2A8 @ =gUnknown_2037F02
|
|
ldrh r1, [r0, 0xE]
|
|
ldr r0, _080AA2AC @ =0x0000ffff
|
|
cmp r1, r0
|
|
bne _080AA2A0
|
|
adds r0, r4, 0
|
|
bl DestroyAnimSprite
|
|
_080AA2A0:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AA2A8: .4byte gUnknown_2037F02
|
|
_080AA2AC: .4byte 0x0000ffff
|
|
thumb_func_end sub_80AA1D4
|
|
|
|
thumb_func_start sub_80AA2B0
|
|
sub_80AA2B0: @ 80AA2B0
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
ldr r4, _080AA2F8 @ =gUnknown_2037F1A
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x20]
|
|
ldrb r0, [r4]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x22]
|
|
ldr r4, _080AA2FC @ =gUnknown_2037F02
|
|
movs r1, 0
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0xA
|
|
bl Sin
|
|
strh r0, [r5, 0x2E]
|
|
movs r1, 0
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0x7
|
|
bl Cos
|
|
strh r0, [r5, 0x30]
|
|
ldr r0, _080AA300 @ =sub_80AA304
|
|
str r0, [r5, 0x1C]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AA2F8: .4byte gUnknown_2037F1A
|
|
_080AA2FC: .4byte gUnknown_2037F02
|
|
_080AA300: .4byte sub_80AA304
|
|
thumb_func_end sub_80AA2B0
|
|
|
|
thumb_func_start sub_80AA304
|
|
sub_80AA304: @ 80AA304
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
ldrh r0, [r2, 0x2E]
|
|
ldrh r1, [r2, 0x24]
|
|
adds r0, r1
|
|
strh r0, [r2, 0x24]
|
|
ldrh r0, [r2, 0x30]
|
|
ldrh r3, [r2, 0x26]
|
|
adds r0, r3
|
|
strh r0, [r2, 0x26]
|
|
movs r1, 0x20
|
|
ldrsh r0, [r2, r1]
|
|
movs r3, 0x24
|
|
ldrsh r1, [r2, r3]
|
|
adds r0, r1
|
|
adds r0, 0x10
|
|
movs r1, 0x88
|
|
lsls r1, 1
|
|
cmp r0, r1
|
|
bhi _080AA342
|
|
movs r0, 0x22
|
|
ldrsh r1, [r2, r0]
|
|
movs r3, 0x26
|
|
ldrsh r0, [r2, r3]
|
|
adds r1, r0
|
|
cmp r1, 0xA0
|
|
bgt _080AA342
|
|
movs r0, 0x10
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
bge _080AA348
|
|
_080AA342:
|
|
adds r0, r2, 0
|
|
bl DestroyAnimSprite
|
|
_080AA348:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80AA304
|
|
|
|
thumb_func_start sub_80AA34C
|
|
sub_80AA34C: @ 80AA34C
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
ldrh r0, [r2, 0x2E]
|
|
ldrh r1, [r2, 0x24]
|
|
adds r0, r1
|
|
strh r0, [r2, 0x24]
|
|
ldrh r0, [r2, 0x30]
|
|
ldrh r3, [r2, 0x26]
|
|
adds r0, r3
|
|
strh r0, [r2, 0x26]
|
|
ldrh r0, [r2, 0x34]
|
|
adds r1, r0, 0x1
|
|
strh r1, [r2, 0x34]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r3, 0x32
|
|
ldrsh r1, [r2, r3]
|
|
cmp r0, r1
|
|
blt _080AA378
|
|
adds r0, r2, 0
|
|
bl DestroyAnimSprite
|
|
_080AA378:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80AA34C
|
|
|
|
thumb_func_start sub_80AA37C
|
|
sub_80AA37C: @ 80AA37C
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
ldr r4, _080AA3C8 @ =gUnknown_2037F1A
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x20]
|
|
ldrb r0, [r4]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x22]
|
|
ldr r4, _080AA3CC @ =gUnknown_2037F02
|
|
movs r1, 0
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0xA
|
|
bl Sin
|
|
strh r0, [r5, 0x2E]
|
|
movs r1, 0
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0x7
|
|
bl Cos
|
|
strh r0, [r5, 0x30]
|
|
ldrh r0, [r4, 0x2]
|
|
strh r0, [r5, 0x32]
|
|
ldr r0, _080AA3D0 @ =sub_80AA34C
|
|
str r0, [r5, 0x1C]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AA3C8: .4byte gUnknown_2037F1A
|
|
_080AA3CC: .4byte gUnknown_2037F02
|
|
_080AA3D0: .4byte sub_80AA34C
|
|
thumb_func_end sub_80AA37C
|
|
|
|
thumb_func_start sub_80AA3D4
|
|
sub_80AA3D4: @ 80AA3D4
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
adds r0, 0x3F
|
|
ldrb r1, [r0]
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080AA3EA
|
|
adds r0, r2, 0
|
|
bl DestroyAnimSprite
|
|
_080AA3EA:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80AA3D4
|
|
|
|
thumb_func_start sub_80AA3F0
|
|
sub_80AA3F0: @ 80AA3F0
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x1
|
|
bl sub_8075160
|
|
ldr r0, _080AA404 @ =sub_80AA3D4
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AA404: .4byte sub_80AA3D4
|
|
thumb_func_end sub_80AA3F0
|
|
|
|
thumb_func_start sub_80AA408
|
|
sub_80AA408: @ 80AA408
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bne _080AA426
|
|
ldr r0, _080AA498 @ =gUnknown_2037F02
|
|
ldrh r1, [r0]
|
|
ldrh r2, [r4, 0x20]
|
|
adds r1, r2
|
|
strh r1, [r4, 0x20]
|
|
ldrh r0, [r0, 0x2]
|
|
ldrh r1, [r4, 0x22]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x22]
|
|
_080AA426:
|
|
ldrh r0, [r4, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
movs r2, 0x2E
|
|
ldrsh r1, [r4, r2]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r5, r0, 1
|
|
movs r0, 0xFF
|
|
ands r5, r0
|
|
adds r0, r5, 0
|
|
movs r1, 0x50
|
|
bl Sin
|
|
lsls r0, 16
|
|
asrs r0, 24
|
|
strh r0, [r4, 0x24]
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x4F
|
|
bgt _080AA46A
|
|
adds r0, r5, 0
|
|
movs r1, 0x50
|
|
bl Cos
|
|
movs r2, 0x2E
|
|
ldrsh r1, [r4, r2]
|
|
lsrs r2, r1, 31
|
|
adds r1, r2
|
|
asrs r1, 1
|
|
lsls r0, 16
|
|
asrs r0, 24
|
|
adds r1, r0
|
|
strh r1, [r4, 0x26]
|
|
_080AA46A:
|
|
movs r0, 0x2E
|
|
ldrsh r2, [r4, r0]
|
|
cmp r2, 0x5A
|
|
ble _080AA488
|
|
ldrh r0, [r4, 0x32]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x32
|
|
ldrsh r1, [r4, r0]
|
|
lsrs r0, r1, 31
|
|
adds r1, r0
|
|
asrs r1, 1
|
|
ldrh r0, [r4, 0x24]
|
|
subs r0, r1
|
|
strh r0, [r4, 0x24]
|
|
_080AA488:
|
|
cmp r2, 0x64
|
|
ble _080AA492
|
|
adds r0, r4, 0
|
|
bl DestroyAnimSprite
|
|
_080AA492:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AA498: .4byte gUnknown_2037F02
|
|
thumb_func_end sub_80AA408
|
|
|
|
thumb_func_start sub_80AA49C
|
|
sub_80AA49C: @ 80AA49C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrh r0, [r4, 0x38]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x38]
|
|
movs r1, 0x34
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0x5
|
|
bl Sin
|
|
strh r0, [r4, 0x24]
|
|
movs r1, 0x38
|
|
ldrsh r0, [r4, r1]
|
|
lsrs r1, r0, 31
|
|
adds r0, r1
|
|
asrs r0, 1
|
|
strh r0, [r4, 0x26]
|
|
ldrh r0, [r4, 0x34]
|
|
adds r0, 0x3
|
|
movs r1, 0xFF
|
|
ands r0, r1
|
|
strh r0, [r4, 0x34]
|
|
movs r1, 0x38
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x14
|
|
ble _080AA4F2
|
|
adds r1, r0, 0
|
|
lsrs r0, r1, 31
|
|
adds r0, r1, r0
|
|
asrs r0, 1
|
|
lsls r0, 1
|
|
subs r1, r0
|
|
adds r3, r4, 0
|
|
adds r3, 0x3E
|
|
movs r0, 0x1
|
|
ands r1, r0
|
|
lsls r1, 2
|
|
ldrb r2, [r3]
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r3]
|
|
_080AA4F2:
|
|
movs r1, 0x38
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x1E
|
|
ble _080AA500
|
|
adds r0, r4, 0
|
|
bl DestroyAnimSprite
|
|
_080AA500:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80AA49C
|
|
|
|
thumb_func_start sub_80AA508
|
|
sub_80AA508: @ 80AA508
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
ldrh r2, [r4, 0x2E]
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bne _080AA52C
|
|
ldr r1, _080AA528 @ =gUnknown_2037F02
|
|
ldrh r0, [r1]
|
|
strh r0, [r4, 0x30]
|
|
ldrh r0, [r1, 0x2]
|
|
strh r0, [r4, 0x32]
|
|
adds r0, r2, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
b _080AA580
|
|
.align 2, 0
|
|
_080AA528: .4byte gUnknown_2037F02
|
|
_080AA52C:
|
|
ldrh r0, [r4, 0x30]
|
|
ldrh r2, [r4, 0x36]
|
|
adds r0, r2
|
|
movs r5, 0
|
|
strh r0, [r4, 0x36]
|
|
lsls r0, 16
|
|
asrs r0, 24
|
|
strh r0, [r4, 0x24]
|
|
movs r1, 0x34
|
|
ldrsh r0, [r4, r1]
|
|
movs r2, 0x32
|
|
ldrsh r1, [r4, r2]
|
|
bl Sin
|
|
adds r2, r0, 0
|
|
strh r2, [r4, 0x26]
|
|
ldrh r0, [r4, 0x34]
|
|
adds r0, 0x3
|
|
movs r1, 0xFF
|
|
ands r0, r1
|
|
strh r0, [r4, 0x34]
|
|
cmp r0, 0x46
|
|
ble _080AA580
|
|
ldr r0, _080AA588 @ =sub_80AA49C
|
|
str r0, [r4, 0x1C]
|
|
ldrh r0, [r4, 0x24]
|
|
ldrh r1, [r4, 0x20]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x20]
|
|
ldrh r1, [r4, 0x22]
|
|
adds r0, r2, r1
|
|
strh r0, [r4, 0x22]
|
|
strh r5, [r4, 0x24]
|
|
strh r5, [r4, 0x26]
|
|
bl Random
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0xB4
|
|
bl __umodsi3
|
|
strh r0, [r4, 0x34]
|
|
_080AA580:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AA588: .4byte sub_80AA49C
|
|
thumb_func_end sub_80AA508
|
|
|
|
thumb_func_start sub_80AA58C
|
|
sub_80AA58C: @ 80AA58C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x34
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bne _080AA5C6
|
|
ldr r1, _080AA688 @ =gUnknown_2037F02
|
|
ldrh r0, [r1]
|
|
ldrh r2, [r4, 0x20]
|
|
adds r0, r2
|
|
strh r0, [r4, 0x20]
|
|
ldrh r0, [r1, 0x2]
|
|
ldrh r1, [r4, 0x22]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x22]
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl StartSpriteAnim
|
|
ldr r0, _080AA68C @ =gUnknown_2037F1B
|
|
ldrb r0, [r0]
|
|
bl sub_807685C
|
|
subs r0, 0x1
|
|
adds r1, r4, 0
|
|
adds r1, 0x43
|
|
strb r0, [r1]
|
|
movs r0, 0x1
|
|
strh r0, [r4, 0x32]
|
|
_080AA5C6:
|
|
ldrh r0, [r4, 0x32]
|
|
ldrh r2, [r4, 0x2E]
|
|
adds r0, r2
|
|
strh r0, [r4, 0x2E]
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r4, r1]
|
|
lsls r1, r0, 2
|
|
adds r0, r1, 0
|
|
cmp r1, 0
|
|
bge _080AA5DC
|
|
adds r0, 0xFF
|
|
_080AA5DC:
|
|
asrs r0, 8
|
|
lsls r0, 8
|
|
subs r0, r1, r0
|
|
strh r0, [r4, 0x30]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bge _080AA5EE
|
|
movs r0, 0
|
|
strh r0, [r4, 0x30]
|
|
_080AA5EE:
|
|
movs r0, 0x30
|
|
ldrsh r2, [r4, r0]
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bge _080AA5FC
|
|
adds r0, 0x3
|
|
_080AA5FC:
|
|
asrs r0, 2
|
|
movs r1, 0x1E
|
|
subs r1, r0
|
|
adds r0, r2, 0
|
|
bl Cos
|
|
strh r0, [r4, 0x24]
|
|
movs r0, 0x30
|
|
ldrsh r2, [r4, r0]
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bge _080AA618
|
|
adds r0, 0x7
|
|
_080AA618:
|
|
asrs r0, 3
|
|
movs r1, 0xA
|
|
subs r1, r0
|
|
adds r0, r2, 0
|
|
bl Sin
|
|
strh r0, [r4, 0x26]
|
|
movs r2, 0x30
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0x80
|
|
ble _080AA63C
|
|
ldrh r1, [r4, 0x32]
|
|
movs r2, 0x32
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0
|
|
ble _080AA63C
|
|
ldr r0, _080AA690 @ =0x0000ffff
|
|
strh r0, [r4, 0x32]
|
|
_080AA63C:
|
|
movs r1, 0x30
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bne _080AA650
|
|
movs r2, 0x32
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0
|
|
bge _080AA650
|
|
movs r0, 0x1
|
|
strh r0, [r4, 0x32]
|
|
_080AA650:
|
|
ldrh r0, [r4, 0x34]
|
|
adds r1, r0, 0x1
|
|
strh r1, [r4, 0x34]
|
|
subs r0, 0x9
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x46
|
|
bls _080AA694
|
|
movs r0, 0x2E
|
|
ldrsh r1, [r4, r0]
|
|
lsrs r0, r1, 31
|
|
adds r0, r1, r0
|
|
asrs r0, 1
|
|
lsls r0, 1
|
|
subs r1, r0
|
|
adds r3, r4, 0
|
|
adds r3, 0x3E
|
|
movs r0, 0x1
|
|
ands r1, r0
|
|
lsls r1, 2
|
|
ldrb r2, [r3]
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r3]
|
|
b _080AA6A2
|
|
.align 2, 0
|
|
_080AA688: .4byte gUnknown_2037F02
|
|
_080AA68C: .4byte gUnknown_2037F1B
|
|
_080AA690: .4byte 0x0000ffff
|
|
_080AA694:
|
|
adds r2, r4, 0
|
|
adds r2, 0x3E
|
|
ldrb r1, [r2]
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
_080AA6A2:
|
|
movs r1, 0x34
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x5A
|
|
ble _080AA6B0
|
|
adds r0, r4, 0
|
|
bl DestroyAnimSprite
|
|
_080AA6B0:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80AA58C
|
|
|
|
thumb_func_start sub_80AA6B8
|
|
sub_80AA6B8: @ 80AA6B8
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bne _080AA6EC
|
|
ldr r1, _080AA6E8 @ =gUnknown_2037F02
|
|
ldrh r0, [r1]
|
|
ldrh r2, [r4, 0x20]
|
|
adds r0, r2
|
|
strh r0, [r4, 0x20]
|
|
ldrh r0, [r1, 0x2]
|
|
ldrh r2, [r4, 0x22]
|
|
adds r0, r2
|
|
strh r0, [r4, 0x22]
|
|
ldrb r1, [r1, 0x4]
|
|
adds r0, r4, 0
|
|
bl StartSpriteAnim
|
|
ldrh r0, [r4, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
b _080AA700
|
|
.align 2, 0
|
|
_080AA6E8: .4byte gUnknown_2037F02
|
|
_080AA6EC:
|
|
adds r0, r4, 0
|
|
adds r0, 0x3F
|
|
ldrb r1, [r0]
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080AA700
|
|
adds r0, r4, 0
|
|
bl DestroyAnimSprite
|
|
_080AA700:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80AA6B8
|
|
|
|
thumb_func_start sub_80AA708
|
|
sub_80AA708: @ 80AA708
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
ldr r1, _080AA720 @ =gUnknown_2037F02
|
|
movs r2, 0x4
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, 0
|
|
bne _080AA724
|
|
adds r0, r5, 0
|
|
bl DestroyAnimSprite
|
|
b _080AA788
|
|
.align 2, 0
|
|
_080AA720: .4byte gUnknown_2037F02
|
|
_080AA724:
|
|
movs r2, 0
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, 0
|
|
bne _080AA734
|
|
ldr r4, _080AA730 @ =gUnknown_2037F1A
|
|
b _080AA736
|
|
.align 2, 0
|
|
_080AA730: .4byte gUnknown_2037F1A
|
|
_080AA734:
|
|
ldr r4, _080AA764 @ =gUnknown_2037F1B
|
|
_080AA736:
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x20]
|
|
ldrb r0, [r4]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x22]
|
|
ldr r0, _080AA768 @ =gUnknown_2037F02
|
|
movs r2, 0x2
|
|
ldrsh r1, [r0, r2]
|
|
adds r2, r0, 0
|
|
cmp r1, 0
|
|
bne _080AA76C
|
|
ldrh r0, [r5, 0x20]
|
|
adds r0, 0x20
|
|
b _080AA770
|
|
.align 2, 0
|
|
_080AA764: .4byte gUnknown_2037F1B
|
|
_080AA768: .4byte gUnknown_2037F02
|
|
_080AA76C:
|
|
ldrh r0, [r5, 0x20]
|
|
subs r0, 0x20
|
|
_080AA770:
|
|
strh r0, [r5, 0x20]
|
|
ldrh r0, [r2, 0x4]
|
|
strh r0, [r5, 0x2E]
|
|
ldrh r1, [r2, 0x2]
|
|
strh r1, [r5, 0x30]
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r5, 0
|
|
bl StartSpriteAnim
|
|
ldr r0, _080AA790 @ =sub_80AA794
|
|
str r0, [r5, 0x1C]
|
|
_080AA788:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AA790: .4byte sub_80AA794
|
|
thumb_func_end sub_80AA708
|
|
|
|
thumb_func_start sub_80AA794
|
|
sub_80AA794: @ 80AA794
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
adds r0, 0x3F
|
|
ldrb r1, [r0]
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080AA7C4
|
|
ldrh r0, [r2, 0x2E]
|
|
subs r0, 0x1
|
|
strh r0, [r2, 0x2E]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
beq _080AA7BE
|
|
ldrh r1, [r2, 0x30]
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r2, 0
|
|
bl StartSpriteAnim
|
|
b _080AA7C4
|
|
_080AA7BE:
|
|
adds r0, r2, 0
|
|
bl DestroyAnimSprite
|
|
_080AA7C4:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80AA794
|
|
|
|
thumb_func_start sub_80AA7C8
|
|
sub_80AA7C8: @ 80AA7C8
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
ldr r0, _080AA7FC @ =gUnknown_2037F02
|
|
ldrb r0, [r0]
|
|
bl GetAnimBankSpriteId
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
lsls r4, r5, 2
|
|
adds r4, r5
|
|
lsls r4, 3
|
|
ldr r0, _080AA800 @ =gTasks
|
|
adds r4, r0
|
|
ldr r2, _080AA804 @ =gUnknown_83E4410
|
|
adds r0, r4, 0
|
|
bl sub_80762D0
|
|
ldr r0, _080AA808 @ =sub_80AA80C
|
|
str r0, [r4]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AA7FC: .4byte gUnknown_2037F02
|
|
_080AA800: .4byte gTasks
|
|
_080AA804: .4byte gUnknown_83E4410
|
|
_080AA808: .4byte sub_80AA80C
|
|
thumb_func_end sub_80AA7C8
|
|
|
|
thumb_func_start sub_80AA80C
|
|
sub_80AA80C: @ 80AA80C
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
ldr r1, _080AA834 @ =gTasks
|
|
adds r0, r1
|
|
bl sub_8076308
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080AA82C
|
|
adds r0, r4, 0
|
|
bl DestroyAnimVisualTask
|
|
_080AA82C:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AA834: .4byte gTasks
|
|
thumb_func_end sub_80AA80C
|
|
|
|
thumb_func_start sub_80AA838
|
|
sub_80AA838: @ 80AA838
|
|
push {r4-r7,lr}
|
|
adds r5, r0, 0
|
|
ldr r0, _080AA84C @ =gUnknown_2037F02
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0
|
|
bne _080AA854
|
|
ldr r0, _080AA850 @ =gUnknown_2037F1A
|
|
b _080AA856
|
|
.align 2, 0
|
|
_080AA84C: .4byte gUnknown_2037F02
|
|
_080AA850: .4byte gUnknown_2037F1A
|
|
_080AA854:
|
|
ldr r0, _080AA8EC @ =gUnknown_2037F1B
|
|
_080AA856:
|
|
ldrb r6, [r0]
|
|
adds r0, r6, 0
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _080AA870
|
|
ldr r1, _080AA8F0 @ =gUnknown_2037F02
|
|
movs r2, 0x2
|
|
ldrsh r0, [r1, r2]
|
|
negs r0, r0
|
|
strh r0, [r1, 0x2]
|
|
_080AA870:
|
|
adds r0, r6, 0
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
ldr r7, _080AA8F0 @ =gUnknown_2037F02
|
|
lsrs r0, 24
|
|
ldrh r3, [r7, 0x2]
|
|
adds r0, r3
|
|
movs r4, 0
|
|
strh r0, [r5, 0x20]
|
|
adds r0, r6, 0
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrh r1, [r7, 0x4]
|
|
adds r0, r1
|
|
strh r0, [r5, 0x22]
|
|
strh r4, [r5, 0x2E]
|
|
ldrh r1, [r5, 0x20]
|
|
lsls r1, 3
|
|
strh r1, [r5, 0x30]
|
|
lsls r0, 3
|
|
strh r0, [r5, 0x32]
|
|
movs r2, 0x2
|
|
ldrsh r0, [r7, r2]
|
|
lsls r0, 3
|
|
cmp r0, 0
|
|
bge _080AA8B0
|
|
adds r0, 0x7
|
|
_080AA8B0:
|
|
asrs r0, 3
|
|
strh r0, [r5, 0x34]
|
|
movs r3, 0x4
|
|
ldrsh r0, [r7, r3]
|
|
lsls r0, 3
|
|
cmp r0, 0
|
|
bge _080AA8C0
|
|
adds r0, 0x7
|
|
_080AA8C0:
|
|
asrs r0, 3
|
|
strh r0, [r5, 0x36]
|
|
ldrh r2, [r5, 0x4]
|
|
lsls r1, r2, 22
|
|
lsrs r1, 22
|
|
movs r3, 0x6
|
|
ldrsh r0, [r7, r3]
|
|
lsls r0, 4
|
|
adds r1, r0
|
|
ldr r3, _080AA8F4 @ =0x000003ff
|
|
adds r0, r3, 0
|
|
ands r1, r0
|
|
ldr r0, _080AA8F8 @ =0xfffffc00
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strh r0, [r5, 0x4]
|
|
ldr r0, _080AA8FC @ =sub_80AA900
|
|
str r0, [r5, 0x1C]
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AA8EC: .4byte gUnknown_2037F1B
|
|
_080AA8F0: .4byte gUnknown_2037F02
|
|
_080AA8F4: .4byte 0x000003ff
|
|
_080AA8F8: .4byte 0xfffffc00
|
|
_080AA8FC: .4byte sub_80AA900
|
|
thumb_func_end sub_80AA838
|
|
|
|
thumb_func_start sub_80AA900
|
|
sub_80AA900: @ 80AA900
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
ldrh r0, [r2, 0x34]
|
|
ldrh r1, [r2, 0x30]
|
|
adds r0, r1
|
|
strh r0, [r2, 0x30]
|
|
ldrh r1, [r2, 0x36]
|
|
ldrh r3, [r2, 0x32]
|
|
adds r1, r3
|
|
strh r1, [r2, 0x32]
|
|
lsls r0, 16
|
|
asrs r0, 19
|
|
strh r0, [r2, 0x20]
|
|
lsls r1, 16
|
|
asrs r1, 19
|
|
strh r1, [r2, 0x22]
|
|
ldrh r0, [r2, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r2, 0x2E]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x10
|
|
ble _080AA934
|
|
adds r0, r2, 0
|
|
bl DestroyAnimSprite
|
|
_080AA934:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80AA900
|
|
|
|
thumb_func_start sub_80AA938
|
|
sub_80AA938: @ 80AA938
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bne _080AA95A
|
|
ldr r0, _080AA994 @ =gUnknown_2037F02
|
|
ldrh r1, [r0]
|
|
movs r0, 0x78
|
|
subs r0, r1
|
|
strh r0, [r4, 0x30]
|
|
adds r2, r4, 0
|
|
adds r2, 0x3E
|
|
ldrb r0, [r2]
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
_080AA95A:
|
|
ldrh r0, [r4, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r2, 0x30
|
|
ldrsh r1, [r4, r2]
|
|
cmp r0, r1
|
|
bne _080AA978
|
|
ldrb r0, [r4, 0x5]
|
|
lsrs r0, 4
|
|
adds r0, 0x10
|
|
movs r1, 0
|
|
bl sub_8075B48
|
|
_080AA978:
|
|
movs r0, 0x2E
|
|
ldrsh r1, [r4, r0]
|
|
movs r2, 0x30
|
|
ldrsh r0, [r4, r2]
|
|
adds r0, 0x50
|
|
cmp r1, r0
|
|
bne _080AA98C
|
|
adds r0, r4, 0
|
|
bl DestroyAnimSprite
|
|
_080AA98C:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AA994: .4byte gUnknown_2037F02
|
|
thumb_func_end sub_80AA938
|
|
|
|
thumb_func_start sub_80AA998
|
|
sub_80AA998: @ 80AA998
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r6, r1]
|
|
cmp r0, 0
|
|
bne _080AA9C6
|
|
movs r5, 0x78
|
|
strh r5, [r6, 0x20]
|
|
ldr r4, _080AAA48 @ =gUnknown_2037F02
|
|
movs r2, 0
|
|
ldrsh r0, [r4, r2]
|
|
lsrs r1, r0, 31
|
|
adds r0, r1
|
|
asrs r0, 1
|
|
subs r0, 0xF
|
|
strh r0, [r6, 0x22]
|
|
ldrb r1, [r4, 0x2]
|
|
adds r0, r6, 0
|
|
bl StartSpriteAnim
|
|
strh r5, [r6, 0x38]
|
|
ldrh r0, [r4, 0x4]
|
|
strh r0, [r6, 0x34]
|
|
_080AA9C6:
|
|
ldrh r0, [r6, 0x2E]
|
|
adds r0, 0x1
|
|
movs r5, 0
|
|
strh r0, [r6, 0x2E]
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r6, r1]
|
|
lsrs r1, r0, 31
|
|
adds r0, r1
|
|
asrs r0, 1
|
|
strh r0, [r6, 0x30]
|
|
movs r2, 0x2E
|
|
ldrsh r0, [r6, r2]
|
|
lsls r4, r0, 1
|
|
adds r4, r0
|
|
ldrh r0, [r6, 0x34]
|
|
adds r4, r0
|
|
movs r2, 0xFF
|
|
ldrh r0, [r6, 0x3A]
|
|
adds r0, 0xA
|
|
movs r1, 0xFF
|
|
ands r0, r1
|
|
strh r0, [r6, 0x3A]
|
|
ands r4, r2
|
|
adds r0, r4, 0
|
|
movs r1, 0x64
|
|
bl Cos
|
|
strh r0, [r6, 0x24]
|
|
adds r0, r4, 0
|
|
movs r1, 0xA
|
|
bl Sin
|
|
adds r4, r0, 0
|
|
movs r1, 0x3A
|
|
ldrsh r0, [r6, r1]
|
|
movs r1, 0x4
|
|
bl Cos
|
|
ldrh r2, [r6, 0x30]
|
|
adds r4, r2
|
|
adds r0, r4
|
|
strh r0, [r6, 0x26]
|
|
movs r0, 0x2E
|
|
ldrsh r1, [r6, r0]
|
|
movs r2, 0x38
|
|
ldrsh r0, [r6, r2]
|
|
cmp r1, r0
|
|
ble _080AAA42
|
|
ldr r0, _080AAA4C @ =sub_80AAA50
|
|
str r0, [r6, 0x1C]
|
|
strh r5, [r6, 0x2E]
|
|
adds r0, r6, 0
|
|
bl oamt_add_pos2_onto_pos1
|
|
movs r0, 0x5
|
|
strh r0, [r6, 0x32]
|
|
strh r5, [r6, 0x36]
|
|
strh r5, [r6, 0x34]
|
|
adds r0, r6, 0
|
|
movs r1, 0x1
|
|
bl StartSpriteAffineAnim
|
|
_080AAA42:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AAA48: .4byte gUnknown_2037F02
|
|
_080AAA4C: .4byte sub_80AAA50
|
|
thumb_func_end sub_80AA998
|
|
|
|
thumb_func_start sub_80AAA50
|
|
sub_80AAA50: @ 80AAA50
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
ldrh r0, [r1, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x2E]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0xA
|
|
ble _080AAA6A
|
|
movs r0, 0
|
|
strh r0, [r1, 0x2E]
|
|
ldr r0, _080AAA70 @ =sub_80AAA74
|
|
str r0, [r1, 0x1C]
|
|
_080AAA6A:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AAA70: .4byte sub_80AAA74
|
|
thumb_func_end sub_80AAA50
|
|
|
|
thumb_func_start sub_80AAA74
|
|
sub_80AAA74: @ 80AAA74
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrh r1, [r4, 0x32]
|
|
ldrh r2, [r4, 0x34]
|
|
adds r0, r1, r2
|
|
strh r0, [r4, 0x34]
|
|
strh r0, [r4, 0x26]
|
|
adds r1, 0x1
|
|
strh r1, [r4, 0x32]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x30
|
|
ble _080AAA9E
|
|
lsls r0, r1, 16
|
|
cmp r0, 0
|
|
ble _080AAA9E
|
|
ldrh r0, [r4, 0x36]
|
|
subs r1, r0, 0x5
|
|
strh r1, [r4, 0x32]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x36]
|
|
_080AAA9E:
|
|
movs r1, 0x36
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x3
|
|
ble _080AAAD0
|
|
movs r2, 0x32
|
|
ldrsh r1, [r4, r2]
|
|
lsrs r0, r1, 31
|
|
adds r0, r1, r0
|
|
asrs r0, 1
|
|
lsls r0, 1
|
|
subs r1, r0
|
|
adds r3, r4, 0
|
|
adds r3, 0x3E
|
|
movs r0, 0x1
|
|
ands r1, r0
|
|
lsls r1, 2
|
|
ldrb r2, [r3]
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r3]
|
|
adds r0, r4, 0
|
|
bl DestroyAnimSprite
|
|
_080AAAD0:
|
|
movs r1, 0x36
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x4
|
|
bne _080AAADE
|
|
adds r0, r4, 0
|
|
bl DestroyAnimSprite
|
|
_080AAADE:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80AAA74
|
|
|
|
thumb_func_start sub_80AAAE4
|
|
sub_80AAAE4: @ 80AAAE4
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
ldr r0, _080AAB28 @ =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080AAB30
|
|
ldr r4, _080AAB2C @ =gUnknown_2037F1A
|
|
ldrb r1, [r4]
|
|
movs r0, 0x2
|
|
eors r0, r1
|
|
bl sub_8072DF0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080AAB30
|
|
ldrb r0, [r4]
|
|
adds r2, r5, 0
|
|
adds r2, 0x20
|
|
adds r3, r5, 0
|
|
adds r3, 0x22
|
|
movs r1, 0
|
|
bl sub_8076D9C
|
|
ldrh r0, [r5, 0x22]
|
|
adds r0, 0x28
|
|
strh r0, [r5, 0x22]
|
|
adds r0, r5, 0
|
|
movs r1, 0x1
|
|
bl StartSpriteAffineAnim
|
|
b _080AAB50
|
|
.align 2, 0
|
|
_080AAB28: .4byte gBattleTypeFlags
|
|
_080AAB2C: .4byte gUnknown_2037F1A
|
|
_080AAB30:
|
|
ldr r4, _080AAB70 @ =gUnknown_2037F1A
|
|
ldrb r0, [r4]
|
|
movs r1, 0
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x20]
|
|
ldrb r0, [r4]
|
|
movs r1, 0x1
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r0, 0x28
|
|
strh r0, [r5, 0x22]
|
|
_080AAB50:
|
|
movs r0, 0xD
|
|
strh r0, [r5, 0x2E]
|
|
ldrh r0, [r5, 0x20]
|
|
strh r0, [r5, 0x32]
|
|
ldrh r0, [r5, 0x22]
|
|
subs r0, 0x48
|
|
strh r0, [r5, 0x36]
|
|
ldr r0, _080AAB74 @ =sub_8075590
|
|
str r0, [r5, 0x1C]
|
|
ldr r1, _080AAB78 @ =DestroyAnimSprite
|
|
adds r0, r5, 0
|
|
bl StoreSpriteCallbackInData6
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AAB70: .4byte gUnknown_2037F1A
|
|
_080AAB74: .4byte sub_8075590
|
|
_080AAB78: .4byte DestroyAnimSprite
|
|
thumb_func_end sub_80AAAE4
|
|
|
|
thumb_func_start sub_80AAB7C
|
|
sub_80AAB7C: @ 80AAB7C
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r3, _080AAB98 @ =gUnknown_2037F02
|
|
ldr r1, _080AAB9C @ =gUnknown_2037EE4
|
|
ldr r1, [r1]
|
|
ldrb r2, [r1, 0x10]
|
|
movs r1, 0x1
|
|
ands r1, r2
|
|
strh r1, [r3, 0xE]
|
|
bl DestroyAnimVisualTask
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AAB98: .4byte gUnknown_2037F02
|
|
_080AAB9C: .4byte gUnknown_2037EE4
|
|
thumb_func_end sub_80AAB7C
|
|
|
|
thumb_func_start update_fury_cutter_counter_copy
|
|
update_fury_cutter_counter_copy: @ 80AABA0
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, _080AABB8 @ =gUnknown_2037F02
|
|
ldr r1, _080AABBC @ =gUnknown_2037EE4
|
|
ldr r1, [r1]
|
|
ldrb r1, [r1, 0x10]
|
|
strh r1, [r2, 0xE]
|
|
bl DestroyAnimVisualTask
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AABB8: .4byte gUnknown_2037F02
|
|
_080AABBC: .4byte gUnknown_2037EE4
|
|
thumb_func_end update_fury_cutter_counter_copy
|
|
|
|
thumb_func_start sub_80AABC0
|
|
sub_80AABC0: @ 80AABC0
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r6, r0, 0
|
|
ldr r1, _080AAC48 @ =gTasks
|
|
lsls r0, r6, 2
|
|
adds r0, r6
|
|
lsls r0, 3
|
|
adds r5, r0, r1
|
|
movs r1, 0x8
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0
|
|
bne _080AABE8
|
|
ldr r1, _080AAC4C @ =gUnknown_2037F02
|
|
ldrh r0, [r1]
|
|
strh r0, [r5, 0xA]
|
|
ldrh r0, [r1, 0x2]
|
|
strh r0, [r5, 0xC]
|
|
ldrh r0, [r1, 0x4]
|
|
strh r0, [r5, 0xE]
|
|
_080AABE8:
|
|
ldrh r0, [r5, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x8]
|
|
movs r2, 0x8
|
|
ldrsh r0, [r5, r2]
|
|
movs r2, 0xC
|
|
ldrsh r1, [r5, r2]
|
|
bl __modsi3
|
|
cmp r0, 0x1
|
|
bne _080AAC30
|
|
bl Random
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0xF0
|
|
bl __umodsi3
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
bl Random
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x50
|
|
bl __umodsi3
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
ldr r0, _080AAC50 @ =gUnknown_83E5898
|
|
adds r1, r4, 0
|
|
movs r3, 0x4
|
|
bl CreateSprite
|
|
_080AAC30:
|
|
movs r0, 0x8
|
|
ldrsh r1, [r5, r0]
|
|
movs r2, 0xE
|
|
ldrsh r0, [r5, r2]
|
|
cmp r1, r0
|
|
bne _080AAC42
|
|
adds r0, r6, 0
|
|
bl DestroyAnimVisualTask
|
|
_080AAC42:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AAC48: .4byte gTasks
|
|
_080AAC4C: .4byte gUnknown_2037F02
|
|
_080AAC50: .4byte gUnknown_83E5898
|
|
thumb_func_end sub_80AABC0
|
|
|
|
thumb_func_start sub_80AAC54
|
|
sub_80AAC54: @ 80AAC54
|
|
ldr r1, _080AAC5C @ =sub_80AAC60
|
|
str r1, [r0, 0x1C]
|
|
bx lr
|
|
.align 2, 0
|
|
_080AAC5C: .4byte sub_80AAC60
|
|
thumb_func_end sub_80AAC54
|
|
|
|
thumb_func_start sub_80AAC60
|
|
sub_80AAC60: @ 80AAC60
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
ldrh r0, [r2, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r2, 0x2E]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0xD
|
|
bgt _080AAC7E
|
|
ldrh r0, [r2, 0x24]
|
|
adds r0, 0x1
|
|
strh r0, [r2, 0x24]
|
|
ldrh r0, [r2, 0x26]
|
|
adds r0, 0x4
|
|
strh r0, [r2, 0x26]
|
|
_080AAC7E:
|
|
adds r0, r2, 0
|
|
adds r0, 0x3F
|
|
ldrb r1, [r0]
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080AAC92
|
|
adds r0, r2, 0
|
|
bl DestroySprite
|
|
_080AAC92:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80AAC60
|
|
|
|
thumb_func_start sub_80AAC98
|
|
sub_80AAC98: @ 80AAC98
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
ldr r5, _080AACC0 @ =gUnknown_2037F1A
|
|
ldrb r0, [r5]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080AACC8
|
|
ldrb r0, [r5]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r4, _080AACC4 @ =gUnknown_2037F02
|
|
ldrh r1, [r4]
|
|
subs r0, r1
|
|
b _080AACDA
|
|
.align 2, 0
|
|
_080AACC0: .4byte gUnknown_2037F1A
|
|
_080AACC4: .4byte gUnknown_2037F02
|
|
_080AACC8:
|
|
ldrb r0, [r5]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
ldr r4, _080AADA0 @ =gUnknown_2037F02
|
|
lsrs r0, 24
|
|
ldrh r1, [r4]
|
|
adds r0, r1
|
|
_080AACDA:
|
|
strh r0, [r6, 0x20]
|
|
ldrb r0, [r5]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrh r4, [r4, 0x2]
|
|
adds r0, r4
|
|
strh r0, [r6, 0x22]
|
|
adds r2, r6, 0
|
|
adds r2, 0x2C
|
|
ldrb r0, [r2]
|
|
movs r1, 0x40
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r0, _080AADA4 @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080AAD10
|
|
ldr r1, _080AADA0 @ =gUnknown_2037F02
|
|
ldrh r0, [r1, 0x4]
|
|
negs r0, r0
|
|
strh r0, [r1, 0x4]
|
|
_080AAD10:
|
|
ldr r5, _080AADA0 @ =gUnknown_2037F02
|
|
ldrh r0, [r5, 0xC]
|
|
strh r0, [r6, 0x2E]
|
|
ldrh r0, [r6, 0x20]
|
|
strh r0, [r6, 0x30]
|
|
ldr r4, _080AADA8 @ =gUnknown_2037F1B
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r6, 0x32]
|
|
ldrh r0, [r6, 0x22]
|
|
strh r0, [r6, 0x34]
|
|
ldrb r0, [r4]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r6, 0x36]
|
|
adds r0, r6, 0
|
|
bl obj_translate_based_on_private_1_2_3_4
|
|
ldr r0, _080AADAC @ =SpriteCallbackDummy
|
|
bl CreateInvisibleSpriteWithCallback
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
strh r4, [r6, 0x38]
|
|
ldrb r0, [r5, 0x8]
|
|
movs r2, 0x4
|
|
ldrsh r1, [r5, r2]
|
|
bl Sin
|
|
ldrh r1, [r6, 0x20]
|
|
subs r1, r0
|
|
strh r1, [r6, 0x20]
|
|
ldrb r0, [r5, 0x8]
|
|
movs r2, 0x6
|
|
ldrsh r1, [r5, r2]
|
|
bl Cos
|
|
ldrh r1, [r6, 0x22]
|
|
subs r1, r0
|
|
strh r1, [r6, 0x22]
|
|
ldr r0, _080AADB0 @ =gSprites
|
|
lsls r1, r4, 4
|
|
adds r1, r4
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrh r0, [r5, 0x4]
|
|
strh r0, [r1, 0x2E]
|
|
ldrh r0, [r5, 0x6]
|
|
strh r0, [r1, 0x30]
|
|
ldrh r0, [r5, 0xA]
|
|
strh r0, [r1, 0x32]
|
|
ldrb r0, [r5, 0x8]
|
|
lsls r0, 8
|
|
strh r0, [r1, 0x34]
|
|
ldrh r0, [r5, 0xC]
|
|
strh r0, [r1, 0x36]
|
|
ldr r1, _080AADB4 @ =sub_80AADB8
|
|
str r1, [r6, 0x1C]
|
|
adds r0, r6, 0
|
|
bl _call_via_r1
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AADA0: .4byte gUnknown_2037F02
|
|
_080AADA4: .4byte gUnknown_2037F1A
|
|
_080AADA8: .4byte gUnknown_2037F1B
|
|
_080AADAC: .4byte SpriteCallbackDummy
|
|
_080AADB0: .4byte gSprites
|
|
_080AADB4: .4byte sub_80AADB8
|
|
thumb_func_end sub_80AAC98
|
|
|
|
thumb_func_start sub_80AADB8
|
|
sub_80AADB8: @ 80AADB8
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
ldrh r1, [r5, 0x38]
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
ldr r2, _080AAE20 @ =gSprites
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r7, r0, r2
|
|
ldrh r4, [r7, 0x36]
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
ldrh r0, [r7, 0x34]
|
|
mov r8, r0
|
|
movs r0, 0x1
|
|
strh r0, [r5, 0x2E]
|
|
adds r0, r5, 0
|
|
bl sub_80755E0
|
|
mov r1, r8
|
|
lsrs r6, r1, 8
|
|
movs r0, 0x2E
|
|
ldrsh r1, [r7, r0]
|
|
adds r0, r6, 0
|
|
bl Sin
|
|
ldrh r1, [r5, 0x24]
|
|
adds r0, r1
|
|
strh r0, [r5, 0x24]
|
|
movs r0, 0x30
|
|
ldrsh r1, [r7, r0]
|
|
adds r0, r6, 0
|
|
bl Cos
|
|
ldrh r1, [r5, 0x26]
|
|
adds r0, r1
|
|
strh r0, [r5, 0x26]
|
|
ldrh r0, [r7, 0x32]
|
|
mov r1, r8
|
|
adds r1, r0
|
|
strh r1, [r7, 0x34]
|
|
subs r4, 0x1
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
cmp r4, 0
|
|
beq _080AAE24
|
|
strh r4, [r7, 0x36]
|
|
b _080AAE2E
|
|
.align 2, 0
|
|
_080AAE20: .4byte gSprites
|
|
_080AAE24:
|
|
ldr r0, _080AAE3C @ =sub_80AAE40
|
|
str r0, [r5, 0x1C]
|
|
adds r0, r7, 0
|
|
bl DestroySprite
|
|
_080AAE2E:
|
|
add sp, 0x4
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AAE3C: .4byte sub_80AAE40
|
|
thumb_func_end sub_80AADB8
|
|
|
|
thumb_func_start sub_80AAE40
|
|
sub_80AAE40: @ 80AAE40
|
|
push {lr}
|
|
adds r3, r0, 0
|
|
adds r3, 0x2C
|
|
ldrb r2, [r3]
|
|
movs r1, 0x41
|
|
negs r1, r1
|
|
ands r1, r2
|
|
strb r1, [r3]
|
|
ldr r1, _080AAE60 @ =sub_8074F6C
|
|
str r1, [r0, 0x1C]
|
|
ldr r1, _080AAE64 @ =sub_80AAE68
|
|
bl StoreSpriteCallbackInData6
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AAE60: .4byte sub_8074F6C
|
|
_080AAE64: .4byte sub_80AAE68
|
|
thumb_func_end sub_80AAE40
|
|
|
|
thumb_func_start sub_80AAE68
|
|
sub_80AAE68: @ 80AAE68
|
|
push {lr}
|
|
movs r1, 0xA
|
|
strh r1, [r0, 0x2E]
|
|
ldr r1, _080AAE7C @ =sub_8074C44
|
|
str r1, [r0, 0x1C]
|
|
ldr r1, _080AAE80 @ =move_anim_8074EE0
|
|
bl StoreSpriteCallbackInData6
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AAE7C: .4byte sub_8074C44
|
|
_080AAE80: .4byte move_anim_8074EE0
|
|
thumb_func_end sub_80AAE68
|
|
|
|
thumb_func_start sub_80AAE84
|
|
sub_80AAE84: @ 80AAE84
|
|
push {r4-r7,lr}
|
|
adds r5, r0, 0
|
|
movs r1, 0x1
|
|
bl sub_8075160
|
|
ldr r0, _080AAEAC @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080AAEB4
|
|
ldr r1, _080AAEB0 @ =gUnknown_2037F02
|
|
ldrh r0, [r1, 0x4]
|
|
negs r0, r0
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
adds r7, r1, 0
|
|
b _080AAEBA
|
|
.align 2, 0
|
|
_080AAEAC: .4byte gUnknown_2037F1A
|
|
_080AAEB0: .4byte gUnknown_2037F02
|
|
_080AAEB4:
|
|
ldr r0, _080AAF10 @ =gUnknown_2037F02
|
|
ldrh r6, [r0, 0x4]
|
|
adds r7, r0, 0
|
|
_080AAEBA:
|
|
ldrh r0, [r7, 0x8]
|
|
strh r0, [r5, 0x2E]
|
|
ldrh r0, [r5, 0x20]
|
|
strh r0, [r5, 0x30]
|
|
ldr r4, _080AAF14 @ =gUnknown_2037F1B
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r0, r6
|
|
strh r0, [r5, 0x32]
|
|
ldrh r0, [r5, 0x22]
|
|
strh r0, [r5, 0x34]
|
|
ldrb r0, [r4]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrh r7, [r7, 0x6]
|
|
adds r0, r7
|
|
strh r0, [r5, 0x36]
|
|
adds r0, r5, 0
|
|
bl obj_translate_based_on_private_1_2_3_4
|
|
ldr r0, _080AAF18 @ =sub_80AAF1C
|
|
str r0, [r5, 0x1C]
|
|
adds r2, r5, 0
|
|
adds r2, 0x2C
|
|
ldrb r0, [r2]
|
|
movs r1, 0x80
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r1, [r5, 0x1C]
|
|
adds r0, r5, 0
|
|
bl _call_via_r1
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AAF10: .4byte gUnknown_2037F02
|
|
_080AAF14: .4byte gUnknown_2037F1B
|
|
_080AAF18: .4byte sub_80AAF1C
|
|
thumb_func_end sub_80AAE84
|
|
|
|
thumb_func_start sub_80AAF1C
|
|
sub_80AAF1C: @ 80AAF1C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldr r0, _080AAF58 @ =gUnknown_2037F02
|
|
ldrh r1, [r0, 0xE]
|
|
ldr r0, _080AAF5C @ =0x0000ffff
|
|
cmp r1, r0
|
|
bne _080AAF3E
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl StartSpriteAnim
|
|
adds r2, r4, 0
|
|
adds r2, 0x2C
|
|
ldrb r1, [r2]
|
|
movs r0, 0x7F
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
_080AAF3E:
|
|
adds r0, r4, 0
|
|
bl sub_80755E0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080AAF50
|
|
adds r0, r4, 0
|
|
bl DestroyAnimSprite
|
|
_080AAF50:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AAF58: .4byte gUnknown_2037F02
|
|
_080AAF5C: .4byte 0x0000ffff
|
|
thumb_func_end sub_80AAF1C
|
|
|
|
thumb_func_start sub_80AAF60
|
|
sub_80AAF60: @ 80AAF60
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _080AAF94 @ =gTasks
|
|
lsls r4, r0, 2
|
|
adds r4, r0
|
|
lsls r4, 3
|
|
adds r4, r1
|
|
ldr r0, _080AAF98 @ =gUnknown_2037F02
|
|
ldrh r0, [r0]
|
|
strh r0, [r4, 0x8]
|
|
ldr r0, _080AAF9C @ =0x0000279c
|
|
bl IndexOfSpritePaletteTag
|
|
lsls r0, 24
|
|
lsrs r0, 20
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
strh r0, [r4, 0xC]
|
|
ldr r0, _080AAFA0 @ =sub_80AAFA4
|
|
str r0, [r4]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AAF94: .4byte gTasks
|
|
_080AAF98: .4byte gUnknown_2037F02
|
|
_080AAF9C: .4byte 0x0000279c
|
|
_080AAFA0: .4byte sub_80AAFA4
|
|
thumb_func_end sub_80AAF60
|
|
|
|
thumb_func_start sub_80AAFA4
|
|
sub_80AAFA4: @ 80AAFA4
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r1, _080AB01C @ =gTasks
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r2, r0, r1
|
|
ldrh r0, [r2, 0x1C]
|
|
adds r0, 0x1
|
|
strh r0, [r2, 0x1C]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
mov r12, r1
|
|
cmp r0, 0x3
|
|
bne _080AAFF6
|
|
movs r0, 0
|
|
strh r0, [r2, 0x1C]
|
|
ldrh r0, [r2, 0xC]
|
|
adds r0, 0x1
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
ldr r1, _080AB020 @ =gPlttBufferFaded
|
|
lsls r0, r5, 1
|
|
adds r0, r1
|
|
ldrh r6, [r0]
|
|
adds r7, r1, 0
|
|
adds r3, r0, 0x2
|
|
movs r1, 0x6
|
|
adds r2, r0, 0
|
|
_080AAFE0:
|
|
ldrh r0, [r3]
|
|
strh r0, [r2]
|
|
adds r3, 0x2
|
|
adds r2, 0x2
|
|
subs r1, 0x1
|
|
cmp r1, 0
|
|
bge _080AAFE0
|
|
adds r0, r5, 0x7
|
|
lsls r0, 1
|
|
adds r0, r7
|
|
strh r6, [r0]
|
|
_080AAFF6:
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
add r0, r12
|
|
ldrh r1, [r0, 0x1E]
|
|
adds r1, 0x1
|
|
strh r1, [r0, 0x1E]
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
movs r2, 0x8
|
|
ldrsh r0, [r0, r2]
|
|
cmp r1, r0
|
|
bne _080AB016
|
|
adds r0, r4, 0
|
|
bl DestroyAnimVisualTask
|
|
_080AB016:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AB01C: .4byte gTasks
|
|
_080AB020: .4byte gPlttBufferFaded
|
|
thumb_func_end sub_80AAFA4
|
|
|
|
thumb_func_start sub_80AB024
|
|
sub_80AB024: @ 80AB024
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
movs r1, 0x1
|
|
bl sub_8075160
|
|
movs r0, 0x1E
|
|
strh r0, [r5, 0x2E]
|
|
ldrh r0, [r5, 0x20]
|
|
strh r0, [r5, 0x30]
|
|
ldr r4, _080AB08C @ =gUnknown_2037F1B
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x32]
|
|
ldrh r0, [r5, 0x22]
|
|
strh r0, [r5, 0x34]
|
|
ldrb r0, [r4]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x36]
|
|
adds r0, r5, 0
|
|
bl obj_translate_based_on_private_1_2_3_4
|
|
movs r0, 0x2E
|
|
ldrsh r1, [r5, r0]
|
|
movs r0, 0xD2
|
|
lsls r0, 8
|
|
bl __divsi3
|
|
strh r0, [r5, 0x38]
|
|
ldr r0, _080AB090 @ =gUnknown_2037F02
|
|
ldrh r2, [r0, 0x6]
|
|
strh r2, [r5, 0x3C]
|
|
ldrh r1, [r0, 0xE]
|
|
movs r3, 0xE
|
|
ldrsh r0, [r0, r3]
|
|
cmp r0, 0x7F
|
|
ble _080AB094
|
|
adds r0, r1, 0
|
|
subs r0, 0x7F
|
|
lsls r0, 8
|
|
strh r0, [r5, 0x3A]
|
|
negs r0, r2
|
|
strh r0, [r5, 0x3C]
|
|
b _080AB098
|
|
.align 2, 0
|
|
_080AB08C: .4byte gUnknown_2037F1B
|
|
_080AB090: .4byte gUnknown_2037F02
|
|
_080AB094:
|
|
lsls r0, r1, 8
|
|
strh r0, [r5, 0x3A]
|
|
_080AB098:
|
|
ldr r1, _080AB0A8 @ =sub_80AB0AC
|
|
str r1, [r5, 0x1C]
|
|
adds r0, r5, 0
|
|
bl _call_via_r1
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AB0A8: .4byte sub_80AB0AC
|
|
thumb_func_end sub_80AB024
|
|
|
|
thumb_func_start sub_80AB0AC
|
|
sub_80AB0AC: @ 80AB0AC
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_80755E0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080AB0C0
|
|
adds r0, r4, 0
|
|
bl DestroyAnimSprite
|
|
_080AB0C0:
|
|
ldrh r0, [r4, 0x3A]
|
|
lsls r0, 16
|
|
asrs r0, 24
|
|
movs r2, 0x3C
|
|
ldrsh r1, [r4, r2]
|
|
bl Sin
|
|
ldrh r1, [r4, 0x26]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x26]
|
|
movs r2, 0x3A
|
|
ldrsh r0, [r4, r2]
|
|
movs r2, 0x38
|
|
ldrsh r1, [r4, r2]
|
|
adds r0, r1
|
|
asrs r0, 8
|
|
cmp r0, 0x7F
|
|
ble _080AB0F0
|
|
movs r0, 0
|
|
strh r0, [r4, 0x3A]
|
|
ldrh r0, [r4, 0x3C]
|
|
negs r0, r0
|
|
strh r0, [r4, 0x3C]
|
|
b _080AB0F8
|
|
_080AB0F0:
|
|
ldrh r0, [r4, 0x38]
|
|
ldrh r1, [r4, 0x3A]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x3A]
|
|
_080AB0F8:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80AB0AC
|
|
|
|
thumb_func_start sub_80AB100
|
|
sub_80AB100: @ 80AB100
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, _080AB120 @ =gTasks
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r2
|
|
ldr r3, _080AB124 @ =gUnknown_2037F02
|
|
ldrh r0, [r3]
|
|
movs r2, 0
|
|
strh r0, [r1, 0x8]
|
|
strh r2, [r3, 0xE]
|
|
ldr r0, _080AB128 @ =sub_80AB12C
|
|
str r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_080AB120: .4byte gTasks
|
|
_080AB124: .4byte gUnknown_2037F02
|
|
_080AB128: .4byte sub_80AB12C
|
|
thumb_func_end sub_80AB100
|
|
|
|
thumb_func_start sub_80AB12C
|
|
sub_80AB12C: @ 80AB12C
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
ldr r2, _080AB160 @ =gUnknown_2037F02
|
|
ldrh r0, [r2, 0xE]
|
|
adds r0, 0x3
|
|
movs r1, 0xFF
|
|
ands r0, r1
|
|
strh r0, [r2, 0xE]
|
|
ldr r1, _080AB164 @ =gTasks
|
|
lsls r0, r3, 2
|
|
adds r0, r3
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldrh r1, [r0, 0x8]
|
|
subs r1, 0x1
|
|
strh r1, [r0, 0x8]
|
|
lsls r1, 16
|
|
cmp r1, 0
|
|
bne _080AB15A
|
|
adds r0, r3, 0
|
|
bl DestroyAnimVisualTask
|
|
_080AB15A:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AB160: .4byte gUnknown_2037F02
|
|
_080AB164: .4byte gTasks
|
|
thumb_func_end sub_80AB12C
|
|
|
|
thumb_func_start sub_80AB168
|
|
sub_80AB168: @ 80AB168
|
|
push {r4-r7,lr}
|
|
adds r4, r0, 0
|
|
ldr r7, _080AB1B4 @ =gUnknown_2037F1A
|
|
ldrb r0, [r7]
|
|
movs r1, 0
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x20]
|
|
ldrb r0, [r7]
|
|
movs r1, 0x1
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x22]
|
|
ldr r6, _080AB1B8 @ =0x0000fff6
|
|
strh r6, [r4, 0x26]
|
|
ldrb r0, [r7]
|
|
bl sub_807685C
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080AB1C2
|
|
ldrb r0, [r7]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080AB1BC
|
|
movs r0, 0xA
|
|
strh r0, [r4, 0x24]
|
|
b _080AB1C4
|
|
.align 2, 0
|
|
_080AB1B4: .4byte gUnknown_2037F1A
|
|
_080AB1B8: .4byte 0x0000fff6
|
|
_080AB1BC:
|
|
strh r6, [r4, 0x24]
|
|
subs r0, r5, 0x2
|
|
b _080AB1C6
|
|
_080AB1C2:
|
|
strh r6, [r4, 0x24]
|
|
_080AB1C4:
|
|
adds r0, r5, 0x2
|
|
_080AB1C6:
|
|
adds r1, r4, 0
|
|
adds r1, 0x43
|
|
strb r0, [r1]
|
|
ldr r0, _080AB1D8 @ =sub_80AB1DC
|
|
str r0, [r4, 0x1C]
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AB1D8: .4byte sub_80AB1DC
|
|
thumb_func_end sub_80AB168
|
|
|
|
thumb_func_start sub_80AB1DC
|
|
sub_80AB1DC: @ 80AB1DC
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
adds r0, 0x3F
|
|
ldrb r1, [r0]
|
|
movs r0, 0x20
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080AB1F2
|
|
adds r0, r2, 0
|
|
bl DestroyAnimSprite
|
|
_080AB1F2:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80AB1DC
|
|
|
|
thumb_func_start sub_80AB1F8
|
|
sub_80AB1F8: @ 80AB1F8
|
|
push {r4-r7,lr}
|
|
adds r6, r0, 0
|
|
ldr r5, _080AB2B8 @ =gUnknown_2037F1A
|
|
ldrb r0, [r5]
|
|
bl GetBattlerSide
|
|
adds r4, r0, 0
|
|
ldr r0, _080AB2BC @ =gUnknown_2037F1B
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r4, 24
|
|
lsls r0, 24
|
|
cmp r4, r0
|
|
bne _080AB242
|
|
ldr r4, _080AB2C0 @ =gUnknown_2037F02
|
|
movs r1, 0
|
|
ldrsh r0, [r4, r1]
|
|
negs r0, r0
|
|
strh r0, [r4]
|
|
ldrb r0, [r5]
|
|
bl GetBattlerPosition
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080AB23A
|
|
ldrb r0, [r5]
|
|
bl GetBattlerPosition
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _080AB242
|
|
_080AB23A:
|
|
movs r1, 0
|
|
ldrsh r0, [r4, r1]
|
|
negs r0, r0
|
|
strh r0, [r4]
|
|
_080AB242:
|
|
ldr r5, _080AB2C0 @ =gUnknown_2037F02
|
|
movs r1, 0xA
|
|
ldrsh r0, [r5, r1]
|
|
movs r1, 0xFF
|
|
lsls r1, 8
|
|
ands r0, r1
|
|
movs r1, 0
|
|
cmp r0, 0
|
|
bne _080AB256
|
|
movs r1, 0x1
|
|
_080AB256:
|
|
ldrb r0, [r5, 0xA]
|
|
movs r7, 0x1
|
|
cmp r0, 0
|
|
bne _080AB260
|
|
movs r7, 0x3
|
|
_080AB260:
|
|
adds r0, r6, 0
|
|
bl sub_8075160
|
|
ldr r0, _080AB2B8 @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080AB27A
|
|
ldrh r0, [r5, 0x4]
|
|
negs r0, r0
|
|
strh r0, [r5, 0x4]
|
|
_080AB27A:
|
|
ldrh r0, [r5, 0x8]
|
|
strh r0, [r6, 0x2E]
|
|
ldr r4, _080AB2BC @ =gUnknown_2037F1B
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrh r1, [r5, 0x4]
|
|
adds r0, r1
|
|
strh r0, [r6, 0x32]
|
|
ldrb r0, [r4]
|
|
adds r1, r7, 0
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrh r5, [r5, 0x6]
|
|
adds r0, r5
|
|
strh r0, [r6, 0x36]
|
|
ldr r0, _080AB2C4 @ =sub_8075590
|
|
str r0, [r6, 0x1C]
|
|
ldr r1, _080AB2C8 @ =DestroyAnimSprite
|
|
adds r0, r6, 0
|
|
bl StoreSpriteCallbackInData6
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AB2B8: .4byte gUnknown_2037F1A
|
|
_080AB2BC: .4byte gUnknown_2037F1B
|
|
_080AB2C0: .4byte gUnknown_2037F02
|
|
_080AB2C4: .4byte sub_8075590
|
|
_080AB2C8: .4byte DestroyAnimSprite
|
|
thumb_func_end sub_80AB1F8
|
|
|
|
thumb_func_start sub_80AB2CC
|
|
sub_80AB2CC: @ 80AB2CC
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x1
|
|
bl sub_8075114
|
|
ldr r0, _080AB2FC @ =gUnknown_2037F02
|
|
ldrh r1, [r0, 0x8]
|
|
strh r1, [r4, 0x2E]
|
|
ldrh r0, [r0, 0x4]
|
|
ldrh r2, [r4, 0x20]
|
|
adds r0, r2
|
|
strh r0, [r4, 0x32]
|
|
ldrh r0, [r4, 0x22]
|
|
adds r1, r0
|
|
strh r1, [r4, 0x36]
|
|
ldr r0, _080AB300 @ =sub_8075590
|
|
str r0, [r4, 0x1C]
|
|
ldr r1, _080AB304 @ =DestroyAnimSprite
|
|
adds r0, r4, 0
|
|
bl StoreSpriteCallbackInData6
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AB2FC: .4byte gUnknown_2037F02
|
|
_080AB300: .4byte sub_8075590
|
|
_080AB304: .4byte DestroyAnimSprite
|
|
thumb_func_end sub_80AB2CC
|
|
|
|
thumb_func_start sub_80AB308
|
|
sub_80AB308: @ 80AB308
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldr r0, _080AB320 @ =gUnknown_2037F02
|
|
movs r1, 0x6
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0
|
|
beq _080AB324
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl sub_8075114
|
|
b _080AB32C
|
|
.align 2, 0
|
|
_080AB320: .4byte gUnknown_2037F02
|
|
_080AB324:
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl sub_8075160
|
|
_080AB32C:
|
|
ldr r0, _080AB33C @ =gUnknown_2037F02
|
|
ldrh r0, [r0, 0x4]
|
|
strh r0, [r4, 0x3C]
|
|
ldr r0, _080AB340 @ =sub_80AB344
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AB33C: .4byte gUnknown_2037F02
|
|
_080AB340: .4byte sub_80AB344
|
|
thumb_func_end sub_80AB308
|
|
|
|
thumb_func_start sub_80AB344
|
|
sub_80AB344: @ 80AB344
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrh r0, [r4, 0x2E]
|
|
adds r0, 0xB
|
|
movs r1, 0xFF
|
|
ands r0, r1
|
|
strh r0, [r4, 0x2E]
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0x4
|
|
bl Sin
|
|
strh r0, [r4, 0x24]
|
|
ldrh r0, [r4, 0x30]
|
|
adds r0, 0x30
|
|
strh r0, [r4, 0x30]
|
|
lsls r0, 16
|
|
asrs r0, 24
|
|
negs r0, r0
|
|
strh r0, [r4, 0x26]
|
|
ldrh r0, [r4, 0x3C]
|
|
subs r0, 0x1
|
|
strh r0, [r4, 0x3C]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
cmp r0, r1
|
|
bne _080AB384
|
|
adds r0, r4, 0
|
|
bl DestroyAnimSprite
|
|
_080AB384:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80AB344
|
|
|
|
thumb_func_start sub_80AB38C
|
|
sub_80AB38C: @ 80AB38C
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x10
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r10, r0
|
|
ldr r1, _080AB3FC @ =0x00003f42
|
|
movs r0, 0x50
|
|
bl SetGpuReg
|
|
movs r1, 0x80
|
|
lsls r1, 5
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
movs r0, 0x1
|
|
movs r1, 0x4
|
|
movs r2, 0x1
|
|
bl SetAnimBgAttribute
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
movs r2, 0x1
|
|
bl SetAnimBgAttribute
|
|
mov r0, sp
|
|
bl sub_80752A0
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080AB418
|
|
movs r0, 0x1
|
|
movs r1, 0x3
|
|
movs r2, 0x1
|
|
bl SetAnimBgAttribute
|
|
ldr r0, _080AB400 @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _080AB408
|
|
mov r0, sp
|
|
ldrb r0, [r0, 0x9]
|
|
ldr r1, _080AB404 @ =gFile_graphics_unknown_unknown_E81D14_tilemap
|
|
bl sub_807543C
|
|
b _080AB42E
|
|
.align 2, 0
|
|
_080AB3FC: .4byte 0x00003f42
|
|
_080AB400: .4byte gUnknown_2037F1A
|
|
_080AB404: .4byte gFile_graphics_unknown_unknown_E81D14_tilemap
|
|
_080AB408:
|
|
mov r0, sp
|
|
ldrb r0, [r0, 0x9]
|
|
ldr r1, _080AB414 @ =gFile_graphics_unknown_unknown_E81FE4_tilemap
|
|
bl sub_807543C
|
|
b _080AB42E
|
|
.align 2, 0
|
|
_080AB414: .4byte gFile_graphics_unknown_unknown_E81FE4_tilemap
|
|
_080AB418:
|
|
ldr r0, _080AB458 @ =gFile_graphics_unknown_unknown_E822B8_tilemap
|
|
ldr r1, [sp, 0x4]
|
|
bl LZDecompressVram
|
|
mov r0, sp
|
|
ldrb r0, [r0, 0x8]
|
|
ldr r1, [sp, 0x4]
|
|
movs r2, 0
|
|
movs r3, 0x1
|
|
bl sub_80730C0
|
|
_080AB42E:
|
|
mov r0, sp
|
|
ldrb r0, [r0, 0x9]
|
|
ldr r1, _080AB45C @ =gFile_graphics_battle_anims_backgrounds_water_sheet
|
|
mov r2, sp
|
|
ldrh r2, [r2, 0xA]
|
|
bl sub_80753B4
|
|
ldr r0, _080AB460 @ =gUnknown_2037F02
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0
|
|
bne _080AB468
|
|
ldr r0, _080AB464 @ =gFile_graphics_battle_anims_backgrounds_water_palette
|
|
mov r1, sp
|
|
ldrb r1, [r1, 0x8]
|
|
lsls r1, 4
|
|
movs r2, 0x20
|
|
bl LoadCompressedPalette
|
|
b _080AB476
|
|
.align 2, 0
|
|
_080AB458: .4byte gFile_graphics_unknown_unknown_E822B8_tilemap
|
|
_080AB45C: .4byte gFile_graphics_battle_anims_backgrounds_water_sheet
|
|
_080AB460: .4byte gUnknown_2037F02
|
|
_080AB464: .4byte gFile_graphics_battle_anims_backgrounds_water_palette
|
|
_080AB468:
|
|
ldr r0, _080AB4E0 @ =gFile_graphics_battle_anims_backgrounds_water_muddy_palette
|
|
mov r1, sp
|
|
ldrb r1, [r1, 0x8]
|
|
lsls r1, 4
|
|
movs r2, 0x20
|
|
bl LoadCompressedPalette
|
|
_080AB476:
|
|
ldr r0, _080AB4E4 @ =sub_80AB79C
|
|
ldr r4, _080AB4E8 @ =gTasks
|
|
mov r2, r10
|
|
lsls r5, r2, 2
|
|
adds r1, r5, r2
|
|
lsls r1, 3
|
|
adds r6, r1, r4
|
|
ldrb r1, [r6, 0x7]
|
|
adds r1, 0x1
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
bl CreateTask
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
movs r0, 0
|
|
mov r9, r0
|
|
mov r1, r8
|
|
strh r1, [r6, 0x26]
|
|
mov r2, r8
|
|
lsls r0, r2, 2
|
|
add r0, r8
|
|
lsls r0, 3
|
|
adds r7, r0, r4
|
|
mov r0, r9
|
|
strh r0, [r7, 0x8]
|
|
movs r0, 0x80
|
|
lsls r0, 5
|
|
strh r0, [r7, 0xA]
|
|
strh r0, [r7, 0xC]
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0
|
|
beq _080AB4F8
|
|
ldr r1, _080AB4EC @ =0x0000ffb0
|
|
adds r0, r1, 0
|
|
ldr r2, _080AB4F0 @ =gUnknown_2022978
|
|
strh r0, [r2]
|
|
adds r1, 0x20
|
|
adds r0, r1, 0
|
|
ldr r2, _080AB4F4 @ =gUnknown_202297A
|
|
strh r0, [r2]
|
|
movs r0, 0x2
|
|
strh r0, [r6, 0x8]
|
|
movs r0, 0x1
|
|
strh r0, [r6, 0xA]
|
|
mov r0, r9
|
|
strh r0, [r7, 0xE]
|
|
b _080AB552
|
|
.align 2, 0
|
|
_080AB4E0: .4byte gFile_graphics_battle_anims_backgrounds_water_muddy_palette
|
|
_080AB4E4: .4byte sub_80AB79C
|
|
_080AB4E8: .4byte gTasks
|
|
_080AB4EC: .4byte 0x0000ffb0
|
|
_080AB4F0: .4byte gUnknown_2022978
|
|
_080AB4F4: .4byte gUnknown_202297A
|
|
_080AB4F8:
|
|
ldr r0, _080AB528 @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0x1
|
|
bne _080AB53C
|
|
ldr r2, _080AB52C @ =0x0000ff20
|
|
adds r0, r2, 0
|
|
ldr r2, _080AB530 @ =gUnknown_2022978
|
|
strh r0, [r2]
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r0, r2, 0
|
|
ldr r2, _080AB534 @ =gUnknown_202297A
|
|
strh r0, [r2]
|
|
movs r0, 0x2
|
|
strh r0, [r6, 0x8]
|
|
ldr r0, _080AB538 @ =0x0000ffff
|
|
strh r0, [r6, 0xA]
|
|
strh r1, [r7, 0xE]
|
|
b _080AB552
|
|
.align 2, 0
|
|
_080AB528: .4byte gUnknown_2037F1A
|
|
_080AB52C: .4byte 0x0000ff20
|
|
_080AB530: .4byte gUnknown_2022978
|
|
_080AB534: .4byte gUnknown_202297A
|
|
_080AB538: .4byte 0x0000ffff
|
|
_080AB53C:
|
|
ldr r0, _080AB584 @ =gUnknown_2022978
|
|
strh r4, [r0]
|
|
ldr r1, _080AB588 @ =0x0000ffd0
|
|
adds r0, r1, 0
|
|
ldr r2, _080AB58C @ =gUnknown_202297A
|
|
strh r0, [r2]
|
|
ldr r0, _080AB590 @ =0x0000fffe
|
|
strh r0, [r6, 0x8]
|
|
movs r0, 0x1
|
|
strh r0, [r6, 0xA]
|
|
strh r4, [r7, 0xE]
|
|
_080AB552:
|
|
ldr r0, _080AB584 @ =gUnknown_2022978
|
|
ldrh r1, [r0]
|
|
movs r0, 0x14
|
|
bl SetGpuReg
|
|
ldr r2, _080AB58C @ =gUnknown_202297A
|
|
ldrh r1, [r2]
|
|
movs r0, 0x16
|
|
bl SetGpuReg
|
|
ldr r1, _080AB594 @ =gTasks
|
|
mov r2, r8
|
|
lsls r0, r2, 2
|
|
add r0, r8
|
|
lsls r0, 3
|
|
adds r1, r0, r1
|
|
movs r2, 0xE
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, 0
|
|
bne _080AB598
|
|
movs r0, 0x30
|
|
strh r0, [r1, 0x10]
|
|
movs r0, 0x70
|
|
b _080AB59C
|
|
.align 2, 0
|
|
_080AB584: .4byte gUnknown_2022978
|
|
_080AB588: .4byte 0x0000ffd0
|
|
_080AB58C: .4byte gUnknown_202297A
|
|
_080AB590: .4byte 0x0000fffe
|
|
_080AB594: .4byte gTasks
|
|
_080AB598:
|
|
movs r0, 0
|
|
strh r0, [r1, 0x10]
|
|
_080AB59C:
|
|
strh r0, [r1, 0x12]
|
|
ldr r1, _080AB5C0 @ =gTasks
|
|
mov r2, r10
|
|
adds r0, r5, r2
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
movs r1, 0x1
|
|
strh r1, [r0, 0x14]
|
|
ldr r1, _080AB5C4 @ =sub_80AB5C8
|
|
str r1, [r0]
|
|
add sp, 0x10
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AB5C0: .4byte gTasks
|
|
_080AB5C4: .4byte sub_80AB5C8
|
|
thumb_func_end sub_80AB38C
|
|
|
|
thumb_func_start sub_80AB5C8
|
|
sub_80AB5C8: @ 80AB5C8
|
|
push {r4-r7,lr}
|
|
sub sp, 0x10
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r1, _080AB6F4 @ =gUnknown_2022978
|
|
ldr r2, _080AB6F8 @ =gUnknown_202297A
|
|
ldr r0, _080AB6FC @ =gTasks
|
|
lsls r4, r5, 2
|
|
adds r4, r5
|
|
lsls r4, 3
|
|
adds r4, r0
|
|
ldrh r0, [r4, 0x8]
|
|
ldrh r3, [r1]
|
|
adds r0, r3
|
|
strh r0, [r1]
|
|
ldrh r0, [r4, 0xA]
|
|
ldrh r1, [r2]
|
|
adds r0, r1
|
|
strh r0, [r2]
|
|
mov r0, sp
|
|
bl sub_80752A0
|
|
ldrh r0, [r4, 0xA]
|
|
ldrh r3, [r4, 0xC]
|
|
adds r0, r3
|
|
strh r0, [r4, 0xC]
|
|
ldrh r0, [r4, 0x12]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x12]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x4
|
|
bne _080AB65C
|
|
ldr r1, _080AB700 @ =gPlttBufferFaded
|
|
mov r0, sp
|
|
ldrb r0, [r0, 0x8]
|
|
lsls r0, 4
|
|
adds r0, 0x7
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
ldrh r6, [r0]
|
|
movs r2, 0x6
|
|
adds r7, r1, 0
|
|
adds r3, r7, 0
|
|
mov r4, sp
|
|
_080AB622:
|
|
ldrb r0, [r4, 0x8]
|
|
lsls r0, 4
|
|
adds r1, r2, 0x1
|
|
adds r0, r1
|
|
lsls r1, r0, 1
|
|
adds r1, r3
|
|
subs r0, 0x1
|
|
lsls r0, 1
|
|
adds r0, r3
|
|
ldrh r0, [r0]
|
|
strh r0, [r1]
|
|
subs r0, r2, 0x1
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0
|
|
bne _080AB622
|
|
mov r0, sp
|
|
ldrb r0, [r0, 0x8]
|
|
lsls r0, 4
|
|
adds r0, 0x1
|
|
lsls r0, 1
|
|
adds r0, r7
|
|
strh r6, [r0]
|
|
ldr r1, _080AB6FC @ =gTasks
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
strh r2, [r0, 0x12]
|
|
_080AB65C:
|
|
ldr r1, _080AB6FC @ =gTasks
|
|
lsls r2, r5, 2
|
|
adds r0, r2, r5
|
|
lsls r0, 3
|
|
adds r3, r0, r1
|
|
ldrh r0, [r3, 0x14]
|
|
adds r0, 0x1
|
|
strh r0, [r3, 0x14]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
adds r4, r1, 0
|
|
adds r6, r2, 0
|
|
cmp r0, 0x1
|
|
ble _080AB6CA
|
|
movs r0, 0
|
|
strh r0, [r3, 0x14]
|
|
ldrh r0, [r3, 0xE]
|
|
adds r2, r0, 0x1
|
|
strh r2, [r3, 0xE]
|
|
lsls r0, r2, 16
|
|
asrs r0, 16
|
|
cmp r0, 0xD
|
|
bgt _080AB6A6
|
|
movs r1, 0x26
|
|
ldrsh r0, [r3, r1]
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r4
|
|
movs r0, 0x10
|
|
subs r0, r2
|
|
lsls r0, 8
|
|
orrs r2, r0
|
|
strh r2, [r1, 0xA]
|
|
ldrh r0, [r3, 0x10]
|
|
adds r0, 0x1
|
|
strh r0, [r3, 0x10]
|
|
_080AB6A6:
|
|
movs r1, 0xE
|
|
ldrsh r0, [r3, r1]
|
|
cmp r0, 0x36
|
|
ble _080AB6CA
|
|
ldrh r2, [r3, 0x10]
|
|
subs r2, 0x1
|
|
strh r2, [r3, 0x10]
|
|
movs r1, 0x26
|
|
ldrsh r0, [r3, r1]
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r4
|
|
movs r0, 0x10
|
|
subs r0, r2
|
|
lsls r0, 8
|
|
orrs r2, r0
|
|
strh r2, [r1, 0xA]
|
|
_080AB6CA:
|
|
adds r0, r6, r5
|
|
lsls r0, 3
|
|
adds r2, r0, r4
|
|
movs r3, 0x26
|
|
ldrsh r1, [r2, r3]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r0, r4
|
|
ldrh r0, [r0, 0xA]
|
|
movs r3, 0x1F
|
|
ands r3, r0
|
|
cmp r3, 0
|
|
bne _080AB6EC
|
|
strh r3, [r2, 0x8]
|
|
ldr r0, _080AB704 @ =sub_80AB708
|
|
str r0, [r2]
|
|
_080AB6EC:
|
|
add sp, 0x10
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AB6F4: .4byte gUnknown_2022978
|
|
_080AB6F8: .4byte gUnknown_202297A
|
|
_080AB6FC: .4byte gTasks
|
|
_080AB700: .4byte gPlttBufferFaded
|
|
_080AB704: .4byte sub_80AB708
|
|
thumb_func_end sub_80AB5C8
|
|
|
|
thumb_func_start sub_80AB708
|
|
sub_80AB708: @ 80AB708
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r5, r0, 0
|
|
ldr r7, _080AB740 @ =gUnknown_2022978
|
|
ldr r0, _080AB744 @ =gUnknown_202297A
|
|
mov r8, r0
|
|
ldr r6, _080AB748 @ =gTasks
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
adds r4, r0, r6
|
|
movs r1, 0x8
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bne _080AB74C
|
|
movs r0, 0x1
|
|
bl sub_8075358
|
|
movs r0, 0x2
|
|
bl sub_8075358
|
|
ldrh r0, [r4, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x8]
|
|
b _080AB78E
|
|
.align 2, 0
|
|
_080AB740: .4byte gUnknown_2022978
|
|
_080AB744: .4byte gUnknown_202297A
|
|
_080AB748: .4byte gTasks
|
|
_080AB74C:
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080AB760
|
|
movs r0, 0x1
|
|
movs r1, 0x3
|
|
movs r2, 0
|
|
bl SetAnimBgAttribute
|
|
_080AB760:
|
|
movs r0, 0
|
|
strh r0, [r7]
|
|
mov r1, r8
|
|
strh r0, [r1]
|
|
movs r0, 0x50
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x52
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x26
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r0, r6
|
|
ldr r1, _080AB798 @ =0x0000ffff
|
|
strh r1, [r0, 0x26]
|
|
adds r0, r5, 0
|
|
bl DestroyAnimVisualTask
|
|
_080AB78E:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AB798: .4byte 0x0000ffff
|
|
thumb_func_end sub_80AB708
|
|
|
|
thumb_func_start sub_80AB79C
|
|
sub_80AB79C: @ 80AB79C
|
|
push {r4-r7,lr}
|
|
sub sp, 0xC
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
lsls r0, r7, 2
|
|
adds r0, r7
|
|
lsls r0, 3
|
|
ldr r1, _080AB7C4 @ =gTasks
|
|
adds r4, r0, r1
|
|
movs r1, 0x8
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x1
|
|
bne _080AB7B8
|
|
b _080AB8F0
|
|
_080AB7B8:
|
|
cmp r0, 0x1
|
|
bgt _080AB7C8
|
|
cmp r0, 0
|
|
beq _080AB7D0
|
|
b _080ABA66
|
|
.align 2, 0
|
|
_080AB7C4: .4byte gTasks
|
|
_080AB7C8:
|
|
cmp r0, 0x2
|
|
bne _080AB7CE
|
|
b _080AB9BC
|
|
_080AB7CE:
|
|
b _080ABA66
|
|
_080AB7D0:
|
|
movs r3, 0
|
|
movs r2, 0x10
|
|
ldrsh r0, [r4, r2]
|
|
ldr r1, _080AB8A0 @ =gUnknown_2038700
|
|
mov r12, r1
|
|
cmp r3, r0
|
|
bge _080AB80E
|
|
mov r7, r12
|
|
movs r5, 0xF0
|
|
lsls r5, 3
|
|
add r5, r12
|
|
ldr r6, _080AB8A4 @ =0x0000ffff
|
|
_080AB7E8:
|
|
lsls r2, r3, 16
|
|
asrs r2, 16
|
|
lsls r1, r2, 1
|
|
adds r3, r1, r7
|
|
adds r1, r5
|
|
ldrh r0, [r4, 0xC]
|
|
strh r0, [r1]
|
|
ldrh r1, [r4, 0xC]
|
|
adds r0, r6, 0
|
|
ands r0, r1
|
|
strh r0, [r3]
|
|
adds r2, 0x1
|
|
lsls r2, 16
|
|
lsrs r3, r2, 16
|
|
asrs r2, 16
|
|
movs r1, 0x10
|
|
ldrsh r0, [r4, r1]
|
|
cmp r2, r0
|
|
blt _080AB7E8
|
|
_080AB80E:
|
|
ldrh r3, [r4, 0x10]
|
|
lsls r2, r3, 16
|
|
asrs r1, r2, 16
|
|
movs r3, 0x12
|
|
ldrsh r0, [r4, r3]
|
|
cmp r1, r0
|
|
bge _080AB848
|
|
ldr r5, _080AB8A0 @ =gUnknown_2038700
|
|
movs r0, 0xF0
|
|
lsls r0, 3
|
|
adds r6, r5, r0
|
|
ldr r7, _080AB8A4 @ =0x0000ffff
|
|
_080AB826:
|
|
asrs r2, 16
|
|
lsls r1, r2, 1
|
|
adds r3, r1, r5
|
|
adds r1, r6
|
|
ldrh r0, [r4, 0xA]
|
|
strh r0, [r1]
|
|
ldrh r1, [r4, 0xA]
|
|
adds r0, r7, 0
|
|
ands r0, r1
|
|
strh r0, [r3]
|
|
adds r2, 0x1
|
|
lsls r2, 16
|
|
asrs r1, r2, 16
|
|
movs r3, 0x12
|
|
ldrsh r0, [r4, r3]
|
|
cmp r1, r0
|
|
blt _080AB826
|
|
_080AB848:
|
|
ldrh r3, [r4, 0x12]
|
|
lsls r2, r3, 16
|
|
asrs r0, r2, 16
|
|
cmp r0, 0x9F
|
|
bgt _080AB87E
|
|
ldr r5, _080AB8A0 @ =gUnknown_2038700
|
|
movs r0, 0xF0
|
|
lsls r0, 3
|
|
adds r6, r5, r0
|
|
ldr r7, _080AB8A4 @ =0x0000ffff
|
|
_080AB85C:
|
|
asrs r2, 16
|
|
lsls r1, r2, 1
|
|
adds r3, r1, r5
|
|
adds r1, r6
|
|
ldrh r0, [r4, 0xC]
|
|
strh r0, [r1]
|
|
ldrh r1, [r4, 0xC]
|
|
adds r0, r7, 0
|
|
ands r0, r1
|
|
strh r0, [r3]
|
|
adds r2, 0x1
|
|
lsls r2, 16
|
|
lsrs r3, r2, 16
|
|
lsls r2, r3, 16
|
|
asrs r0, r2, 16
|
|
cmp r0, 0x9F
|
|
ble _080AB85C
|
|
_080AB87E:
|
|
movs r1, 0x10
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bne _080AB8A8
|
|
lsls r0, r3, 16
|
|
asrs r0, 15
|
|
mov r3, r12
|
|
adds r2, r0, r3
|
|
movs r1, 0xF0
|
|
lsls r1, 3
|
|
add r1, r12
|
|
adds r0, r1
|
|
ldrh r1, [r4, 0xA]
|
|
strh r1, [r0]
|
|
ldrh r0, [r4, 0xA]
|
|
b _080AB8BE
|
|
.align 2, 0
|
|
_080AB8A0: .4byte gUnknown_2038700
|
|
_080AB8A4: .4byte 0x0000ffff
|
|
_080AB8A8:
|
|
lsls r0, r3, 16
|
|
asrs r0, 15
|
|
mov r1, r12
|
|
adds r2, r0, r1
|
|
movs r1, 0xF0
|
|
lsls r1, 3
|
|
add r1, r12
|
|
adds r0, r1
|
|
ldrh r1, [r4, 0xC]
|
|
strh r1, [r0]
|
|
ldrh r0, [r4, 0xC]
|
|
_080AB8BE:
|
|
strh r0, [r2]
|
|
ldr r0, _080AB8E8 @ =0x04000052
|
|
str r0, [sp]
|
|
ldr r0, _080AB8EC @ =0xa2600001
|
|
str r0, [sp, 0x4]
|
|
mov r1, sp
|
|
movs r2, 0
|
|
movs r0, 0x1
|
|
strb r0, [r1, 0x8]
|
|
mov r0, sp
|
|
strb r2, [r0, 0x9]
|
|
ldr r0, [sp]
|
|
ldr r1, [sp, 0x4]
|
|
ldr r2, [sp, 0x8]
|
|
bl sub_8087EE4
|
|
ldrh r0, [r4, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x8]
|
|
b _080ABA66
|
|
.align 2, 0
|
|
_080AB8E8: .4byte 0x04000052
|
|
_080AB8EC: .4byte 0xa2600001
|
|
_080AB8F0:
|
|
movs r2, 0xE
|
|
ldrsh r1, [r4, r2]
|
|
cmp r1, 0
|
|
bne _080AB908
|
|
ldrh r0, [r4, 0x10]
|
|
subs r0, 0x1
|
|
strh r0, [r4, 0x10]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bgt _080AB91C
|
|
strh r1, [r4, 0x10]
|
|
b _080AB916
|
|
_080AB908:
|
|
ldrh r0, [r4, 0x12]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x12]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x6F
|
|
ble _080AB91C
|
|
_080AB916:
|
|
ldrh r0, [r4, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x8]
|
|
_080AB91C:
|
|
movs r3, 0
|
|
movs r1, 0x10
|
|
ldrsh r0, [r4, r1]
|
|
cmp r3, r0
|
|
bge _080AB950
|
|
ldr r6, _080AB9B4 @ =gUnknown_2038700
|
|
ldr r5, _080AB9B8 @ =gUnknown_2039600
|
|
_080AB92A:
|
|
lsls r1, r3, 16
|
|
asrs r1, 16
|
|
lsls r3, r1, 1
|
|
ldrb r2, [r5, 0x14]
|
|
lsls r0, r2, 4
|
|
subs r0, r2
|
|
lsls r0, 7
|
|
adds r3, r0
|
|
adds r3, r6
|
|
ldrh r0, [r4, 0xC]
|
|
strh r0, [r3]
|
|
adds r1, 0x1
|
|
lsls r1, 16
|
|
lsrs r3, r1, 16
|
|
asrs r1, 16
|
|
movs r2, 0x10
|
|
ldrsh r0, [r4, r2]
|
|
cmp r1, r0
|
|
blt _080AB92A
|
|
_080AB950:
|
|
ldrh r3, [r4, 0x10]
|
|
lsls r2, r3, 16
|
|
asrs r1, r2, 16
|
|
movs r3, 0x12
|
|
ldrsh r0, [r4, r3]
|
|
cmp r1, r0
|
|
bge _080AB984
|
|
ldr r6, _080AB9B4 @ =gUnknown_2038700
|
|
ldr r5, _080AB9B8 @ =gUnknown_2039600
|
|
_080AB962:
|
|
asrs r3, r2, 16
|
|
lsls r2, r3, 1
|
|
ldrb r1, [r5, 0x14]
|
|
lsls r0, r1, 4
|
|
subs r0, r1
|
|
lsls r0, 7
|
|
adds r2, r0
|
|
adds r2, r6
|
|
ldrh r0, [r4, 0xA]
|
|
strh r0, [r2]
|
|
adds r3, 0x1
|
|
lsls r2, r3, 16
|
|
asrs r1, r2, 16
|
|
movs r3, 0x12
|
|
ldrsh r0, [r4, r3]
|
|
cmp r1, r0
|
|
blt _080AB962
|
|
_080AB984:
|
|
ldrh r3, [r4, 0x12]
|
|
lsls r1, r3, 16
|
|
asrs r0, r1, 16
|
|
cmp r0, 0x9F
|
|
bgt _080ABA66
|
|
ldr r6, _080AB9B4 @ =gUnknown_2038700
|
|
ldr r5, _080AB9B8 @ =gUnknown_2039600
|
|
_080AB992:
|
|
asrs r3, r1, 16
|
|
lsls r2, r3, 1
|
|
ldrb r1, [r5, 0x14]
|
|
lsls r0, r1, 4
|
|
subs r0, r1
|
|
lsls r0, 7
|
|
adds r2, r0
|
|
adds r2, r6
|
|
ldrh r0, [r4, 0xC]
|
|
strh r0, [r2]
|
|
adds r3, 0x1
|
|
lsls r1, r3, 16
|
|
asrs r0, r1, 16
|
|
cmp r0, 0x9F
|
|
ble _080AB992
|
|
b _080ABA66
|
|
.align 2, 0
|
|
_080AB9B4: .4byte gUnknown_2038700
|
|
_080AB9B8: .4byte gUnknown_2039600
|
|
_080AB9BC:
|
|
movs r3, 0
|
|
movs r1, 0x10
|
|
ldrsh r0, [r4, r1]
|
|
cmp r3, r0
|
|
bge _080AB9F0
|
|
ldr r6, _080ABA70 @ =gUnknown_2038700
|
|
ldr r5, _080ABA74 @ =gUnknown_2039600
|
|
_080AB9CA:
|
|
lsls r1, r3, 16
|
|
asrs r1, 16
|
|
lsls r3, r1, 1
|
|
ldrb r2, [r5, 0x14]
|
|
lsls r0, r2, 4
|
|
subs r0, r2
|
|
lsls r0, 7
|
|
adds r3, r0
|
|
adds r3, r6
|
|
ldrh r0, [r4, 0xC]
|
|
strh r0, [r3]
|
|
adds r1, 0x1
|
|
lsls r1, 16
|
|
lsrs r3, r1, 16
|
|
asrs r1, 16
|
|
movs r2, 0x10
|
|
ldrsh r0, [r4, r2]
|
|
cmp r1, r0
|
|
blt _080AB9CA
|
|
_080AB9F0:
|
|
ldrh r3, [r4, 0x10]
|
|
lsls r2, r3, 16
|
|
asrs r1, r2, 16
|
|
movs r3, 0x12
|
|
ldrsh r0, [r4, r3]
|
|
cmp r1, r0
|
|
bge _080ABA24
|
|
ldr r6, _080ABA70 @ =gUnknown_2038700
|
|
ldr r5, _080ABA74 @ =gUnknown_2039600
|
|
_080ABA02:
|
|
asrs r3, r2, 16
|
|
lsls r2, r3, 1
|
|
ldrb r1, [r5, 0x14]
|
|
lsls r0, r1, 4
|
|
subs r0, r1
|
|
lsls r0, 7
|
|
adds r2, r0
|
|
adds r2, r6
|
|
ldrh r0, [r4, 0xA]
|
|
strh r0, [r2]
|
|
adds r3, 0x1
|
|
lsls r2, r3, 16
|
|
asrs r1, r2, 16
|
|
movs r3, 0x12
|
|
ldrsh r0, [r4, r3]
|
|
cmp r1, r0
|
|
blt _080ABA02
|
|
_080ABA24:
|
|
ldrh r3, [r4, 0x12]
|
|
lsls r1, r3, 16
|
|
asrs r0, r1, 16
|
|
cmp r0, 0x9F
|
|
bgt _080ABA50
|
|
ldr r6, _080ABA70 @ =gUnknown_2038700
|
|
ldr r5, _080ABA74 @ =gUnknown_2039600
|
|
_080ABA32:
|
|
asrs r3, r1, 16
|
|
lsls r2, r3, 1
|
|
ldrb r1, [r5, 0x14]
|
|
lsls r0, r1, 4
|
|
subs r0, r1
|
|
lsls r0, 7
|
|
adds r2, r0
|
|
adds r2, r6
|
|
ldrh r0, [r4, 0xC]
|
|
strh r0, [r2]
|
|
adds r3, 0x1
|
|
lsls r1, r3, 16
|
|
asrs r0, r1, 16
|
|
cmp r0, 0x9F
|
|
ble _080ABA32
|
|
_080ABA50:
|
|
movs r0, 0x26
|
|
ldrsh r1, [r4, r0]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
bne _080ABA66
|
|
bl remove_some_task
|
|
adds r0, r7, 0
|
|
bl DestroyTask
|
|
_080ABA66:
|
|
add sp, 0xC
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080ABA70: .4byte gUnknown_2038700
|
|
_080ABA74: .4byte gUnknown_2039600
|
|
thumb_func_end sub_80AB79C
|
|
|
|
thumb_func_start sub_80ABA78
|
|
sub_80ABA78: @ 80ABA78
|
|
push {r4-r6,lr}
|
|
adds r4, r0, 0
|
|
ldrh r2, [r4, 0x4]
|
|
lsls r1, r2, 22
|
|
lsrs r1, 22
|
|
adds r1, 0x8
|
|
ldr r3, _080ABACC @ =0x000003ff
|
|
adds r0, r3, 0
|
|
ands r1, r0
|
|
ldr r0, _080ABAD0 @ =0xfffffc00
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strh r0, [r4, 0x4]
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl sub_8075114
|
|
bl Random
|
|
movs r5, 0xFF
|
|
ands r5, r0
|
|
movs r0, 0x80
|
|
lsls r0, 1
|
|
adds r6, r0, 0
|
|
orrs r5, r6
|
|
bl Random
|
|
ldr r1, _080ABAD4 @ =0x000001ff
|
|
ands r1, r0
|
|
adds r0, r1, 0
|
|
cmp r0, 0xFF
|
|
ble _080ABABE
|
|
subs r0, r6, r0
|
|
lsls r0, 16
|
|
lsrs r1, r0, 16
|
|
_080ABABE:
|
|
strh r5, [r4, 0x30]
|
|
strh r1, [r4, 0x32]
|
|
ldr r0, _080ABAD8 @ =sub_80ABADC
|
|
str r0, [r4, 0x1C]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080ABACC: .4byte 0x000003ff
|
|
_080ABAD0: .4byte 0xfffffc00
|
|
_080ABAD4: .4byte 0x000001ff
|
|
_080ABAD8: .4byte sub_80ABADC
|
|
thumb_func_end sub_80ABA78
|
|
|
|
thumb_func_start sub_80ABADC
|
|
sub_80ABADC: @ 80ABADC
|
|
push {r4,lr}
|
|
adds r2, r0, 0
|
|
ldrh r0, [r2, 0x30]
|
|
ldrh r1, [r2, 0x34]
|
|
adds r3, r0, r1
|
|
strh r3, [r2, 0x34]
|
|
ldrh r1, [r2, 0x32]
|
|
ldrh r4, [r2, 0x36]
|
|
adds r1, r4
|
|
strh r1, [r2, 0x36]
|
|
movs r1, 0x1
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _080ABB00
|
|
lsls r0, r3, 16
|
|
asrs r0, 24
|
|
negs r0, r0
|
|
b _080ABB04
|
|
_080ABB00:
|
|
lsls r0, r3, 16
|
|
asrs r0, 24
|
|
_080ABB04:
|
|
strh r0, [r2, 0x24]
|
|
ldrh r0, [r2, 0x36]
|
|
lsls r0, 16
|
|
asrs r0, 24
|
|
strh r0, [r2, 0x26]
|
|
ldrh r0, [r2, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r2, 0x2E]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x15
|
|
bne _080ABB22
|
|
adds r0, r2, 0
|
|
bl DestroyAnimSprite
|
|
_080ABB22:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80ABADC
|
|
|
|
thumb_func_start sub_80ABB28
|
|
sub_80ABB28: @ 80ABB28
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r4, r0, 2
|
|
adds r4, r0
|
|
lsls r4, 3
|
|
ldr r0, _080ABB78 @ =gTasks
|
|
adds r4, r0
|
|
movs r0, 0
|
|
bl GetAnimBankSpriteId
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x26]
|
|
ldr r2, _080ABB7C @ =gSprites
|
|
movs r0, 0x26
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrh r0, [r0, 0x22]
|
|
strh r0, [r4, 0x12]
|
|
bl sub_80ABDC8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0xA]
|
|
ldrh r0, [r4, 0x26]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0
|
|
bl sub_80758E0
|
|
ldr r0, _080ABB80 @ =sub_80ABB84
|
|
str r0, [r4]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080ABB78: .4byte gTasks
|
|
_080ABB7C: .4byte gSprites
|
|
_080ABB80: .4byte sub_80ABB84
|
|
thumb_func_end sub_80ABB28
|
|
|
|
thumb_func_start sub_80ABB84
|
|
sub_80ABB84: @ 80ABB84
|
|
push {r4-r6,lr}
|
|
sub sp, 0xC
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
lsls r0, r2, 2
|
|
adds r0, r2
|
|
lsls r0, 3
|
|
ldr r1, _080ABBAC @ =gTasks
|
|
adds r4, r0, r1
|
|
movs r1, 0x8
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x7
|
|
bls _080ABBA0
|
|
b _080ABDBE
|
|
_080ABBA0:
|
|
lsls r0, 2
|
|
ldr r1, _080ABBB0 @ =_080ABBB4
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080ABBAC: .4byte gTasks
|
|
_080ABBB0: .4byte _080ABBB4
|
|
.align 2, 0
|
|
_080ABBB4:
|
|
.4byte _080ABBD4
|
|
.4byte _080ABBFA
|
|
.4byte _080ABC8C
|
|
.4byte _080ABCC2
|
|
.4byte _080ABCD6
|
|
.4byte _080ABCE4
|
|
.4byte _080ABD64
|
|
.4byte _080ABDB0
|
|
_080ABBD4:
|
|
ldrh r1, [r4, 0x26]
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
movs r3, 0x80
|
|
lsls r3, 1
|
|
movs r0, 0xE0
|
|
str r0, [sp]
|
|
movs r0, 0x80
|
|
lsls r0, 2
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0x20
|
|
str r0, [sp, 0x8]
|
|
adds r0, r4, 0
|
|
adds r2, r3, 0
|
|
bl sub_80765D4
|
|
ldrh r0, [r4, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x8]
|
|
_080ABBFA:
|
|
ldrh r0, [r4, 0xE]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0xE]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1
|
|
ble _080ABC56
|
|
movs r0, 0
|
|
strh r0, [r4, 0xE]
|
|
ldrh r0, [r4, 0x10]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x10]
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080ABC44
|
|
ldr r2, _080ABC40 @ =gSprites
|
|
movs r0, 0x26
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
movs r1, 0x3
|
|
strh r1, [r0, 0x24]
|
|
movs r0, 0x26
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrh r1, [r0, 0x22]
|
|
adds r1, 0x1
|
|
strh r1, [r0, 0x22]
|
|
b _080ABC56
|
|
.align 2, 0
|
|
_080ABC40: .4byte gSprites
|
|
_080ABC44:
|
|
ldr r2, _080ABC84 @ =gSprites
|
|
movs r0, 0x26
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldr r1, _080ABC88 @ =0x0000fffd
|
|
strh r1, [r0, 0x24]
|
|
_080ABC56:
|
|
adds r0, r4, 0
|
|
bl sub_8076640
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0
|
|
beq _080ABC66
|
|
b _080ABDBE
|
|
_080ABC66:
|
|
ldrh r0, [r4, 0x26]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl sub_8076440
|
|
ldr r2, _080ABC84 @ =gSprites
|
|
movs r0, 0x26
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
strh r5, [r0, 0x24]
|
|
strh r5, [r4, 0xE]
|
|
b _080ABDA0
|
|
.align 2, 0
|
|
_080ABC84: .4byte gSprites
|
|
_080ABC88: .4byte 0x0000fffd
|
|
_080ABC8C:
|
|
ldrh r0, [r4, 0xE]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0xE]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x4
|
|
bgt _080ABC9C
|
|
b _080ABDBE
|
|
_080ABC9C:
|
|
ldrh r1, [r4, 0x26]
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
movs r3, 0x80
|
|
lsls r3, 2
|
|
movs r0, 0xC0
|
|
lsls r0, 1
|
|
str r0, [sp]
|
|
movs r0, 0xE0
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0x8
|
|
str r0, [sp, 0x8]
|
|
adds r0, r4, 0
|
|
movs r2, 0xE0
|
|
bl sub_80765D4
|
|
movs r0, 0
|
|
strh r0, [r4, 0xE]
|
|
b _080ABDA2
|
|
_080ABCC2:
|
|
adds r0, r4, 0
|
|
bl sub_8076640
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0
|
|
bne _080ABDBE
|
|
strh r0, [r4, 0xE]
|
|
strh r0, [r4, 0x10]
|
|
b _080ABDA2
|
|
_080ABCD6:
|
|
adds r0, r4, 0
|
|
adds r1, r2, 0
|
|
bl sub_80ABE4C
|
|
ldrh r0, [r4, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x8]
|
|
_080ABCE4:
|
|
ldrh r0, [r4, 0xE]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0xE]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1
|
|
ble _080ABDBE
|
|
movs r0, 0
|
|
strh r0, [r4, 0xE]
|
|
ldrh r0, [r4, 0x10]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x10]
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080ABD1C
|
|
ldr r2, _080ABD18 @ =gSprites
|
|
movs r0, 0x26
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrh r1, [r0, 0x26]
|
|
adds r1, 0x2
|
|
b _080ABD2E
|
|
.align 2, 0
|
|
_080ABD18: .4byte gSprites
|
|
_080ABD1C:
|
|
ldr r2, _080ABD60 @ =gSprites
|
|
movs r0, 0x26
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrh r1, [r0, 0x26]
|
|
subs r1, 0x2
|
|
_080ABD2E:
|
|
strh r1, [r0, 0x26]
|
|
movs r1, 0x10
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0xA
|
|
bne _080ABDBE
|
|
ldrh r1, [r4, 0x26]
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
movs r2, 0xC0
|
|
lsls r2, 1
|
|
movs r0, 0x80
|
|
lsls r0, 1
|
|
str r0, [sp]
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0x8
|
|
str r0, [sp, 0x8]
|
|
adds r0, r4, 0
|
|
movs r3, 0xE0
|
|
bl sub_80765D4
|
|
movs r0, 0
|
|
strh r0, [r4, 0xE]
|
|
strh r0, [r4, 0x10]
|
|
b _080ABDA2
|
|
.align 2, 0
|
|
_080ABD60: .4byte gSprites
|
|
_080ABD64:
|
|
ldr r6, _080ABDAC @ =gSprites
|
|
movs r0, 0x26
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
ldrh r1, [r0, 0x22]
|
|
subs r1, 0x1
|
|
strh r1, [r0, 0x22]
|
|
adds r0, r4, 0
|
|
bl sub_8076640
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0
|
|
bne _080ABDBE
|
|
ldrh r0, [r4, 0x26]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl sub_8075980
|
|
movs r0, 0x26
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
ldrh r1, [r4, 0x12]
|
|
strh r1, [r0, 0x22]
|
|
_080ABDA0:
|
|
strh r5, [r4, 0x10]
|
|
_080ABDA2:
|
|
ldrh r0, [r4, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x8]
|
|
b _080ABDBE
|
|
.align 2, 0
|
|
_080ABDAC: .4byte gSprites
|
|
_080ABDB0:
|
|
movs r1, 0xC
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bne _080ABDBE
|
|
adds r0, r2, 0
|
|
bl DestroyAnimVisualTask
|
|
_080ABDBE:
|
|
add sp, 0xC
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80ABB84
|
|
|
|
thumb_func_start sub_80ABDC8
|
|
sub_80ABDC8: @ 80ABDC8
|
|
push {r4,r5,lr}
|
|
ldr r4, _080ABDEC @ =gUnknown_2037F1A
|
|
ldrb r0, [r4]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080ABDFC
|
|
ldr r1, _080ABDF0 @ =gBattlerPartyIndexes
|
|
ldrb r0, [r4]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r1, r0
|
|
ldr r0, _080ABDF4 @ =gPlayerParty
|
|
b _080ABE0C
|
|
.align 2, 0
|
|
_080ABDEC: .4byte gUnknown_2037F1A
|
|
_080ABDF0: .4byte gBattlerPartyIndexes
|
|
_080ABDF4: .4byte gPlayerParty
|
|
_080ABDF8:
|
|
adds r0, r2, 0
|
|
b _080ABE3E
|
|
_080ABDFC:
|
|
ldr r1, _080ABE44 @ =gBattlerPartyIndexes
|
|
ldrb r0, [r4]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r1, r0
|
|
ldr r0, _080ABE48 @ =gEnemyParty
|
|
_080ABE0C:
|
|
adds r5, r1, r0
|
|
adds r0, r5, 0
|
|
movs r1, 0x3A
|
|
bl GetMonData
|
|
adds r4, r0, 0
|
|
lsls r4, 16
|
|
adds r0, r5, 0
|
|
movs r1, 0x39
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r3, r0, 16
|
|
lsrs r4, 18
|
|
movs r2, 0
|
|
_080ABE2A:
|
|
adds r1, r2, 0x1
|
|
adds r0, r4, 0
|
|
muls r0, r1
|
|
cmp r3, r0
|
|
blt _080ABDF8
|
|
lsls r0, r1, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0x2
|
|
bls _080ABE2A
|
|
movs r0, 0x3
|
|
_080ABE3E:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080ABE44: .4byte gBattlerPartyIndexes
|
|
_080ABE48: .4byte gEnemyParty
|
|
thumb_func_end sub_80ABDC8
|
|
|
|
thumb_func_start sub_80ABE4C
|
|
sub_80ABE4C: @ 80ABE4C
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x14
|
|
adds r7, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
str r1, [sp]
|
|
ldr r4, _080ABF54 @ =gUnknown_2037F1A
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
ldrb r0, [r4]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
movs r5, 0xAC
|
|
ldrb r0, [r4]
|
|
bl sub_807685C
|
|
subs r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
str r0, [sp, 0x8]
|
|
ldrh r1, [r7, 0xA]
|
|
movs r0, 0x4
|
|
subs r0, r1
|
|
lsls r0, 16
|
|
lsrs r1, r0, 16
|
|
cmp r0, 0
|
|
bgt _080ABE9C
|
|
movs r1, 0x1
|
|
_080ABE9C:
|
|
movs r0, 0
|
|
str r0, [sp, 0x4]
|
|
lsls r0, r1, 16
|
|
mov r10, r8
|
|
mov r9, r6
|
|
mov r1, r10
|
|
lsls r1, 4
|
|
str r1, [sp, 0xC]
|
|
mov r1, r9
|
|
lsls r1, 4
|
|
str r1, [sp, 0x10]
|
|
asrs r0, 16
|
|
mov r8, r0
|
|
_080ABEB6:
|
|
ldr r0, _080ABF58 @ =gUnknown_83E5AE0
|
|
mov r1, r10
|
|
mov r2, r9
|
|
ldr r3, [sp, 0x8]
|
|
bl CreateSprite
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
lsls r6, r5, 16
|
|
cmp r2, 0x40
|
|
beq _080ABF1E
|
|
ldr r1, _080ABF5C @ =gSprites
|
|
lsls r0, r2, 4
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r5, r0, r1
|
|
mov r0, sp
|
|
ldrh r0, [r0, 0x4]
|
|
strh r0, [r5, 0x30]
|
|
mov r1, sp
|
|
ldrh r1, [r1, 0xC]
|
|
strh r1, [r5, 0x32]
|
|
mov r0, sp
|
|
ldrh r0, [r0, 0x10]
|
|
strh r0, [r5, 0x34]
|
|
asrs r4, r6, 16
|
|
adds r0, r4, 0
|
|
movs r1, 0x40
|
|
bl Cos
|
|
strh r0, [r5, 0x36]
|
|
adds r0, r4, 0
|
|
movs r1, 0x40
|
|
bl Sin
|
|
strh r0, [r5, 0x38]
|
|
mov r1, sp
|
|
ldrh r1, [r1]
|
|
strh r1, [r5, 0x3A]
|
|
movs r0, 0x2
|
|
strh r0, [r5, 0x3C]
|
|
ldrh r1, [r7, 0xC]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080ABF18
|
|
adds r0, r5, 0
|
|
bl sub_80ABF60
|
|
_080ABF18:
|
|
ldrh r0, [r7, 0xC]
|
|
adds r0, 0x1
|
|
strh r0, [r7, 0xC]
|
|
_080ABF1E:
|
|
mov r1, r8
|
|
lsls r0, r1, 1
|
|
asrs r1, r6, 16
|
|
adds r1, r0
|
|
lsls r1, 16
|
|
movs r0, 0xFF
|
|
lsls r0, 16
|
|
ands r0, r1
|
|
lsrs r5, r0, 16
|
|
ldr r1, [sp, 0x4]
|
|
lsls r0, r1, 16
|
|
asrs r0, 16
|
|
add r0, r8
|
|
lsls r0, 16
|
|
lsrs r1, r0, 16
|
|
str r1, [sp, 0x4]
|
|
asrs r0, 16
|
|
cmp r0, 0x13
|
|
ble _080ABEB6
|
|
add sp, 0x14
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080ABF54: .4byte gUnknown_2037F1A
|
|
_080ABF58: .4byte gUnknown_83E5AE0
|
|
_080ABF5C: .4byte gSprites
|
|
thumb_func_end sub_80ABE4C
|
|
|
|
thumb_func_start sub_80ABF60
|
|
sub_80ABF60: @ 80ABF60
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
beq _080ABF72
|
|
cmp r0, 0x1
|
|
beq _080ABFA8
|
|
b _080AC002
|
|
_080ABF72:
|
|
movs r2, 0x30
|
|
ldrsh r0, [r4, r2]
|
|
movs r1, 0x6
|
|
bl __modsi3
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
ldrh r0, [r4, 0x36]
|
|
adds r1, r0
|
|
strh r1, [r4, 0x36]
|
|
movs r1, 0x30
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0x3
|
|
bl __modsi3
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
ldrh r2, [r4, 0x38]
|
|
adds r1, r2
|
|
strh r1, [r4, 0x38]
|
|
ldrh r0, [r4, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
_080ABFA8:
|
|
ldrh r0, [r4, 0x36]
|
|
ldrh r1, [r4, 0x32]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x32]
|
|
ldrh r1, [r4, 0x38]
|
|
ldrh r2, [r4, 0x34]
|
|
adds r1, r2
|
|
strh r1, [r4, 0x34]
|
|
lsls r0, 16
|
|
asrs r0, 20
|
|
strh r0, [r4, 0x20]
|
|
lsls r1, 16
|
|
asrs r2, r1, 20
|
|
strh r2, [r4, 0x22]
|
|
adds r0, 0x8
|
|
lsls r0, 16
|
|
movs r1, 0x80
|
|
lsls r1, 17
|
|
cmp r0, r1
|
|
bhi _080ABFDE
|
|
adds r1, r2, 0
|
|
movs r0, 0x8
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
blt _080ABFDE
|
|
cmp r1, 0x78
|
|
ble _080AC002
|
|
_080ABFDE:
|
|
ldr r3, _080AC008 @ =gTasks
|
|
movs r0, 0x3C
|
|
ldrsh r1, [r4, r0]
|
|
lsls r1, 1
|
|
movs r0, 0x3A
|
|
ldrsh r2, [r4, r0]
|
|
lsls r0, r2, 2
|
|
adds r0, r2
|
|
lsls r0, 3
|
|
adds r1, r0
|
|
adds r3, 0x8
|
|
adds r1, r3
|
|
ldrh r0, [r1]
|
|
subs r0, 0x1
|
|
strh r0, [r1]
|
|
adds r0, r4, 0
|
|
bl DestroySprite
|
|
_080AC002:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AC008: .4byte gTasks
|
|
thumb_func_end sub_80ABF60
|
|
|
|
thumb_func_start sub_80AC00C
|
|
sub_80AC00C: @ 80AC00C
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
ldr r0, _080AC03C @ =gTasks
|
|
adds r4, r1, r0
|
|
bl sub_80ABDC8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0xA]
|
|
ldr r0, _080AC040 @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080AC044
|
|
movs r0, 0x88
|
|
strh r0, [r4, 0x10]
|
|
movs r0, 0x28
|
|
b _080AC04A
|
|
.align 2, 0
|
|
_080AC03C: .4byte gTasks
|
|
_080AC040: .4byte gUnknown_2037F1A
|
|
_080AC044:
|
|
movs r0, 0x10
|
|
strh r0, [r4, 0x10]
|
|
movs r0, 0x50
|
|
_080AC04A:
|
|
strh r0, [r4, 0x14]
|
|
movs r0, 0x62
|
|
strh r0, [r4, 0x12]
|
|
ldrh r0, [r4, 0x10]
|
|
adds r0, 0x31
|
|
strh r0, [r4, 0x16]
|
|
movs r0, 0xA
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
adds r0, 0x5
|
|
strh r0, [r4, 0x20]
|
|
ldr r0, _080AC06C @ =sub_80AC070
|
|
str r0, [r4]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AC06C: .4byte sub_80AC070
|
|
thumb_func_end sub_80AC00C
|
|
|
|
thumb_func_start sub_80AC070
|
|
sub_80AC070: @ 80AC070
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
ldr r7, _080AC094 @ =gTasks
|
|
adds r4, r0, r7
|
|
movs r0, 0x8
|
|
ldrsh r2, [r4, r0]
|
|
cmp r2, 0
|
|
beq _080AC098
|
|
cmp r2, 0x1
|
|
beq _080AC148
|
|
b _080AC156
|
|
.align 2, 0
|
|
_080AC094: .4byte gTasks
|
|
_080AC098:
|
|
ldrh r0, [r4, 0xC]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0xC]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x2
|
|
ble _080AC0AE
|
|
strh r2, [r4, 0xC]
|
|
adds r0, r4, 0
|
|
bl sub_80AC160
|
|
_080AC0AE:
|
|
movs r1, 0x1C
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
beq _080AC128
|
|
movs r2, 0x22
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0
|
|
bne _080AC128
|
|
ldr r5, _080AC13C @ =gUnknown_2037F02
|
|
movs r1, 0x1
|
|
mov r8, r1
|
|
mov r2, r8
|
|
strh r2, [r5]
|
|
strh r0, [r5, 0x2]
|
|
movs r0, 0xC
|
|
strh r0, [r5, 0x4]
|
|
ldr r6, _080AC140 @ =sub_80B94B4
|
|
adds r0, r6, 0
|
|
movs r1, 0x50
|
|
bl CreateTask
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0xFF
|
|
beq _080AC0F8
|
|
lsls r0, r2, 2
|
|
adds r0, r2
|
|
lsls r0, 3
|
|
adds r0, r7
|
|
ldr r1, [r0]
|
|
adds r0, r2, 0
|
|
bl _call_via_r1
|
|
ldr r1, _080AC144 @ =gUnknown_2037EE2
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
_080AC0F8:
|
|
movs r0, 0x3
|
|
strh r0, [r5]
|
|
adds r0, r6, 0
|
|
movs r1, 0x50
|
|
bl CreateTask
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0xFF
|
|
beq _080AC124
|
|
lsls r0, r2, 2
|
|
adds r0, r2
|
|
lsls r0, 3
|
|
adds r0, r7
|
|
ldr r1, [r0]
|
|
adds r0, r2, 0
|
|
bl _call_via_r1
|
|
ldr r1, _080AC144 @ =gUnknown_2037EE2
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
_080AC124:
|
|
mov r0, r8
|
|
strh r0, [r4, 0x22]
|
|
_080AC128:
|
|
movs r2, 0x1E
|
|
ldrsh r1, [r4, r2]
|
|
movs r2, 0x20
|
|
ldrsh r0, [r4, r2]
|
|
cmp r1, r0
|
|
blt _080AC156
|
|
ldrh r0, [r4, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x8]
|
|
b _080AC156
|
|
.align 2, 0
|
|
_080AC13C: .4byte gUnknown_2037F02
|
|
_080AC140: .4byte sub_80B94B4
|
|
_080AC144: .4byte gUnknown_2037EE2
|
|
_080AC148:
|
|
movs r2, 0x1A
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0
|
|
bne _080AC156
|
|
adds r0, r1, 0
|
|
bl DestroyAnimVisualTask
|
|
_080AC156:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80AC070
|
|
|
|
thumb_func_start sub_80AC160
|
|
sub_80AC160: @ 80AC160
|
|
push {r4-r6,lr}
|
|
adds r4, r0, 0
|
|
lsls r1, 24
|
|
lsrs r6, r1, 24
|
|
ldr r1, _080AC1EC @ =gUnknown_825E074
|
|
movs r2, 0x18
|
|
ldrsh r0, [r4, r2]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
adds r0, 0x3
|
|
asrs r0, 4
|
|
ldrh r2, [r4, 0x14]
|
|
adds r0, r2
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
ldr r0, _080AC1F0 @ =gUnknown_83E5AE0
|
|
movs r2, 0x16
|
|
ldrsh r1, [r4, r2]
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl CreateSprite
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0x40
|
|
beq _080AC1BA
|
|
ldr r3, _080AC1F4 @ =gSprites
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r1, r3, 0
|
|
adds r1, 0x1C
|
|
adds r1, r0, r1
|
|
ldr r2, _080AC1F8 @ =sub_80AC204
|
|
str r2, [r1]
|
|
adds r0, r3
|
|
strh r5, [r0, 0x38]
|
|
strh r6, [r0, 0x3A]
|
|
movs r1, 0x9
|
|
strh r1, [r0, 0x3C]
|
|
ldrh r0, [r4, 0x1A]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x1A]
|
|
_080AC1BA:
|
|
ldrh r0, [r4, 0x1E]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x1E]
|
|
ldrh r0, [r4, 0x18]
|
|
adds r0, 0x27
|
|
movs r1, 0xFF
|
|
ands r0, r1
|
|
strh r0, [r4, 0x18]
|
|
movs r0, 0x16
|
|
ldrsh r1, [r4, r0]
|
|
ldr r0, _080AC1FC @ =0x41c64e6d
|
|
muls r0, r1
|
|
ldr r1, _080AC200 @ =0x00003039
|
|
adds r0, r1
|
|
movs r2, 0x12
|
|
ldrsh r1, [r4, r2]
|
|
bl __modsi3
|
|
ldrh r1, [r4, 0x10]
|
|
adds r1, r0
|
|
strh r1, [r4, 0x16]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AC1EC: .4byte gUnknown_825E074
|
|
_080AC1F0: .4byte gUnknown_83E5AE0
|
|
_080AC1F4: .4byte gSprites
|
|
_080AC1F8: .4byte sub_80AC204
|
|
_080AC1FC: .4byte 0x41c64e6d
|
|
_080AC200: .4byte 0x00003039
|
|
thumb_func_end sub_80AC160
|
|
|
|
thumb_func_start sub_80AC204
|
|
sub_80AC204: @ 80AC204
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0
|
|
bne _080AC29A
|
|
ldrh r0, [r5, 0x22]
|
|
adds r0, 0x8
|
|
strh r0, [r5, 0x22]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r2, 0x38
|
|
ldrsh r1, [r5, r2]
|
|
cmp r0, r1
|
|
blt _080AC29A
|
|
ldr r2, _080AC2A0 @ =gTasks
|
|
movs r3, 0x3A
|
|
ldrsh r1, [r5, r3]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r0, r2
|
|
movs r1, 0x1
|
|
strh r1, [r0, 0x1C]
|
|
ldr r0, _080AC2A4 @ =gUnknown_83E7C38
|
|
movs r2, 0x20
|
|
ldrsh r1, [r5, r2]
|
|
movs r3, 0x22
|
|
ldrsh r2, [r5, r3]
|
|
movs r3, 0x1
|
|
bl CreateSprite
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x30]
|
|
cmp r0, 0x40
|
|
beq _080AC294
|
|
movs r0, 0x30
|
|
ldrsh r1, [r5, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r4, _080AC2A8 @ =gSprites
|
|
adds r0, r4
|
|
movs r1, 0x3
|
|
bl StartSpriteAffineAnim
|
|
movs r2, 0x30
|
|
ldrsh r1, [r5, r2]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldrh r1, [r5, 0x3A]
|
|
strh r1, [r0, 0x3A]
|
|
movs r3, 0x30
|
|
ldrsh r1, [r5, r3]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldrh r1, [r5, 0x3C]
|
|
strh r1, [r0, 0x3C]
|
|
movs r0, 0x30
|
|
ldrsh r1, [r5, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r4, 0x1C
|
|
adds r0, r4
|
|
ldr r1, _080AC2AC @ =sub_80AC2B0
|
|
str r1, [r0]
|
|
_080AC294:
|
|
adds r0, r5, 0
|
|
bl DestroySprite
|
|
_080AC29A:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AC2A0: .4byte gTasks
|
|
_080AC2A4: .4byte gUnknown_83E7C38
|
|
_080AC2A8: .4byte gSprites
|
|
_080AC2AC: .4byte sub_80AC2B0
|
|
thumb_func_end sub_80AC204
|
|
|
|
thumb_func_start sub_80AC2B0
|
|
sub_80AC2B0: @ 80AC2B0
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrh r0, [r4, 0x30]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x30]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1
|
|
ble _080AC31C
|
|
movs r0, 0
|
|
strh r0, [r4, 0x30]
|
|
adds r3, r4, 0
|
|
adds r3, 0x3E
|
|
ldrb r2, [r3]
|
|
lsls r0, r2, 29
|
|
lsrs r0, 31
|
|
movs r1, 0x1
|
|
eors r1, r0
|
|
lsls r1, 2
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r3]
|
|
ldrh r0, [r4, 0x32]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x32]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0xC
|
|
bne _080AC31C
|
|
ldr r3, _080AC324 @ =gTasks
|
|
movs r0, 0x3C
|
|
ldrsh r1, [r4, r0]
|
|
lsls r1, 1
|
|
movs r0, 0x3A
|
|
ldrsh r2, [r4, r0]
|
|
lsls r0, r2, 2
|
|
adds r0, r2
|
|
lsls r0, 3
|
|
adds r1, r0
|
|
adds r3, 0x8
|
|
adds r1, r3
|
|
ldrh r0, [r1]
|
|
subs r0, 0x1
|
|
strh r0, [r1]
|
|
ldrb r0, [r4, 0x3]
|
|
lsls r0, 26
|
|
lsrs r0, 27
|
|
bl FreeOamMatrix
|
|
adds r0, r4, 0
|
|
bl DestroySprite
|
|
_080AC31C:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AC324: .4byte gTasks
|
|
thumb_func_end sub_80AC2B0
|
|
|
|
thumb_func_start sub_80AC328
|
|
sub_80AC328: @ 80AC328
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
ldr r0, _080AC3AC @ =gTasks
|
|
adds r5, r1, r0
|
|
ldr r4, _080AC3B0 @ =gUnknown_2037F1A
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r6, 0
|
|
strh r0, [r5, 0xE]
|
|
ldrb r0, [r4]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x10]
|
|
ldrb r0, [r4]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
adds r1, r2, 0
|
|
cmp r0, 0
|
|
bne _080AC36C
|
|
movs r1, 0x1
|
|
_080AC36C:
|
|
strh r1, [r5, 0x16]
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080AC380
|
|
movs r1, 0x16
|
|
ldrsh r0, [r5, r1]
|
|
negs r0, r0
|
|
strh r0, [r5, 0x16]
|
|
_080AC380:
|
|
movs r2, 0x16
|
|
ldrsh r0, [r5, r2]
|
|
lsls r0, 3
|
|
ldrh r1, [r5, 0xE]
|
|
adds r0, r1
|
|
strh r0, [r5, 0x12]
|
|
movs r2, 0x16
|
|
ldrsh r1, [r5, r2]
|
|
lsls r1, 3
|
|
ldrh r0, [r5, 0x10]
|
|
subs r0, r1
|
|
strh r0, [r5, 0x14]
|
|
ldr r0, _080AC3B4 @ =0x0000ffe0
|
|
strh r0, [r5, 0x1A]
|
|
strh r6, [r5, 0xA]
|
|
strh r6, [r5, 0x8]
|
|
ldr r0, _080AC3B8 @ =sub_80AC3BC
|
|
str r0, [r5]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AC3AC: .4byte gTasks
|
|
_080AC3B0: .4byte gUnknown_2037F1A
|
|
_080AC3B4: .4byte 0x0000ffe0
|
|
_080AC3B8: .4byte sub_80AC3BC
|
|
thumb_func_end sub_80AC328
|
|
|
|
thumb_func_start sub_80AC3BC
|
|
sub_80AC3BC: @ 80AC3BC
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
lsls r0, r2, 2
|
|
adds r0, r2
|
|
lsls r0, 3
|
|
ldr r1, _080AC3E0 @ =gTasks
|
|
adds r4, r0, r1
|
|
movs r1, 0x8
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x6
|
|
bls _080AC3D6
|
|
b _080AC4F6
|
|
_080AC3D6:
|
|
lsls r0, 2
|
|
ldr r1, _080AC3E4 @ =_080AC3E8
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080AC3E0: .4byte gTasks
|
|
_080AC3E4: .4byte _080AC3E8
|
|
.align 2, 0
|
|
_080AC3E8:
|
|
.4byte _080AC404
|
|
.4byte _080AC414
|
|
.4byte _080AC42E
|
|
.4byte _080AC470
|
|
.4byte _080AC492
|
|
.4byte _080AC4C0
|
|
.4byte _080AC4E6
|
|
_080AC404:
|
|
adds r0, r4, 0
|
|
bl sub_80AC504
|
|
movs r1, 0x1C
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
beq _080AC4FC
|
|
b _080AC4EE
|
|
_080AC414:
|
|
adds r0, r4, 0
|
|
bl sub_80AC504
|
|
ldrh r0, [r4, 0xA]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0xA]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x10
|
|
ble _080AC4FC
|
|
movs r0, 0
|
|
strh r0, [r4, 0xA]
|
|
b _080AC4EE
|
|
_080AC42E:
|
|
adds r0, r4, 0
|
|
bl sub_80AC504
|
|
movs r1, 0x16
|
|
ldrsh r0, [r4, r1]
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 1
|
|
ldrh r0, [r4, 0x12]
|
|
adds r1, r0
|
|
movs r2, 0
|
|
strh r1, [r4, 0x12]
|
|
adds r1, 0x10
|
|
lsls r1, 16
|
|
movs r0, 0x88
|
|
lsls r0, 17
|
|
cmp r1, r0
|
|
bls _080AC4FC
|
|
ldrh r0, [r4, 0x20]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x20]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x2
|
|
ble _080AC46C
|
|
movs r0, 0x1
|
|
strh r0, [r4, 0x22]
|
|
movs r0, 0x6
|
|
strh r0, [r4, 0x8]
|
|
strh r2, [r4, 0xA]
|
|
b _080AC4FC
|
|
_080AC46C:
|
|
strh r2, [r4, 0xA]
|
|
b _080AC4EE
|
|
_080AC470:
|
|
adds r0, r4, 0
|
|
bl sub_80AC504
|
|
movs r0, 0x16
|
|
ldrsh r1, [r4, r0]
|
|
lsls r1, 1
|
|
ldrh r0, [r4, 0x14]
|
|
subs r0, r1
|
|
strh r0, [r4, 0x14]
|
|
ldrh r0, [r4, 0xA]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0xA]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x7
|
|
ble _080AC4FC
|
|
b _080AC4EE
|
|
_080AC492:
|
|
adds r0, r4, 0
|
|
bl sub_80AC504
|
|
movs r1, 0x16
|
|
ldrsh r0, [r4, r1]
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 1
|
|
ldrh r0, [r4, 0x12]
|
|
subs r0, r1
|
|
strh r0, [r4, 0x12]
|
|
adds r0, 0x10
|
|
lsls r0, 16
|
|
movs r1, 0x88
|
|
lsls r1, 17
|
|
cmp r0, r1
|
|
bls _080AC4FC
|
|
ldrh r0, [r4, 0x20]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x20]
|
|
movs r0, 0
|
|
strh r0, [r4, 0xA]
|
|
b _080AC4EE
|
|
_080AC4C0:
|
|
adds r0, r4, 0
|
|
bl sub_80AC504
|
|
movs r0, 0x16
|
|
ldrsh r1, [r4, r0]
|
|
lsls r1, 1
|
|
ldrh r0, [r4, 0x14]
|
|
subs r0, r1
|
|
strh r0, [r4, 0x14]
|
|
ldrh r0, [r4, 0xA]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0xA]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x7
|
|
ble _080AC4FC
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x8]
|
|
b _080AC4FC
|
|
_080AC4E6:
|
|
movs r1, 0x18
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bne _080AC4FC
|
|
_080AC4EE:
|
|
ldrh r0, [r4, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x8]
|
|
b _080AC4FC
|
|
_080AC4F6:
|
|
adds r0, r2, 0
|
|
bl DestroyAnimVisualTask
|
|
_080AC4FC:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80AC3BC
|
|
|
|
thumb_func_start sub_80AC504
|
|
sub_80AC504: @ 80AC504
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
ldrh r0, [r6, 0xC]
|
|
adds r0, 0x1
|
|
strh r0, [r6, 0xC]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1
|
|
ble _080AC55E
|
|
movs r0, 0
|
|
strh r0, [r6, 0xC]
|
|
ldr r0, _080AC564 @ =gUnknown_83E5AE0
|
|
movs r2, 0xE
|
|
ldrsh r1, [r6, r2]
|
|
movs r3, 0x10
|
|
ldrsh r2, [r6, r3]
|
|
movs r3, 0xA
|
|
bl CreateSprite
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x40
|
|
beq _080AC55E
|
|
ldr r5, _080AC568 @ =gSprites
|
|
lsls r4, r0, 4
|
|
adds r4, r0
|
|
lsls r4, 2
|
|
adds r0, r4, r5
|
|
movs r1, 0x10
|
|
strh r1, [r0, 0x2E]
|
|
ldrh r1, [r6, 0x12]
|
|
strh r1, [r0, 0x32]
|
|
ldrh r1, [r6, 0x14]
|
|
strh r1, [r0, 0x36]
|
|
ldrh r1, [r6, 0x1A]
|
|
strh r1, [r0, 0x38]
|
|
bl sub_8075068
|
|
adds r5, 0x1C
|
|
adds r4, r5
|
|
ldr r0, _080AC56C @ =sub_80AC570
|
|
str r0, [r4]
|
|
ldrh r0, [r6, 0x18]
|
|
adds r0, 0x1
|
|
strh r0, [r6, 0x18]
|
|
_080AC55E:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AC564: .4byte gUnknown_83E5AE0
|
|
_080AC568: .4byte gSprites
|
|
_080AC56C: .4byte sub_80AC570
|
|
thumb_func_end sub_80AC504
|
|
|
|
thumb_func_start sub_80AC570
|
|
sub_80AC570: @ 80AC570
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
bl AnimateBallThrow
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080AC5CA
|
|
ldrh r0, [r6, 0x24]
|
|
ldrh r1, [r6, 0x20]
|
|
adds r0, r1
|
|
strh r0, [r6, 0x20]
|
|
ldrh r0, [r6, 0x26]
|
|
ldrh r1, [r6, 0x22]
|
|
adds r0, r1
|
|
strh r0, [r6, 0x22]
|
|
movs r0, 0x6
|
|
strh r0, [r6, 0x2E]
|
|
bl Random
|
|
movs r4, 0x1F
|
|
adds r1, r4, 0
|
|
ands r1, r0
|
|
ldr r5, _080AC5D0 @ =0x0000fff0
|
|
adds r1, r5
|
|
ldrh r0, [r6, 0x20]
|
|
adds r1, r0
|
|
strh r1, [r6, 0x32]
|
|
bl Random
|
|
ands r4, r0
|
|
adds r4, r5
|
|
ldrh r1, [r6, 0x22]
|
|
adds r4, r1
|
|
strh r4, [r6, 0x36]
|
|
bl Random
|
|
movs r1, 0x7
|
|
ands r1, r0
|
|
mvns r1, r1
|
|
strh r1, [r6, 0x38]
|
|
adds r0, r6, 0
|
|
bl sub_8075068
|
|
ldr r0, _080AC5D4 @ =sub_80AC5D8
|
|
str r0, [r6, 0x1C]
|
|
_080AC5CA:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AC5D0: .4byte 0x0000fff0
|
|
_080AC5D4: .4byte sub_80AC5D8
|
|
thumb_func_end sub_80AC570
|
|
|
|
thumb_func_start sub_80AC5D8
|
|
sub_80AC5D8: @ 80AC5D8
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
bl AnimateBallThrow
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080AC614
|
|
movs r4, 0
|
|
ldr r6, _080AC61C @ =gTasks
|
|
_080AC5EA:
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r2, r0, r6
|
|
ldr r1, [r2]
|
|
ldr r0, _080AC620 @ =sub_80AC3BC
|
|
cmp r1, r0
|
|
bne _080AC60A
|
|
movs r0, 0x1
|
|
strh r0, [r2, 0x1C]
|
|
ldrh r0, [r2, 0x18]
|
|
subs r0, 0x1
|
|
strh r0, [r2, 0x18]
|
|
adds r0, r5, 0
|
|
bl DestroySprite
|
|
_080AC60A:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
cmp r4, 0xF
|
|
bls _080AC5EA
|
|
_080AC614:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AC61C: .4byte gTasks
|
|
_080AC620: .4byte sub_80AC3BC
|
|
thumb_func_end sub_80AC5D8
|
|
|
|
thumb_func_start sub_80AC624
|
|
sub_80AC624: @ 80AC624
|
|
ldr r2, _080AC644 @ =gUnknown_2037F02
|
|
ldrh r1, [r2]
|
|
strh r1, [r0, 0x20]
|
|
ldrh r1, [r2, 0x2]
|
|
strh r1, [r0, 0x22]
|
|
ldrh r1, [r2, 0x4]
|
|
strh r1, [r0, 0x2E]
|
|
ldrh r1, [r2, 0x6]
|
|
strh r1, [r0, 0x30]
|
|
ldrh r1, [r2, 0x8]
|
|
strh r1, [r0, 0x32]
|
|
ldrh r1, [r2, 0xA]
|
|
strh r1, [r0, 0x34]
|
|
ldr r1, _080AC648 @ =sub_80AC64C
|
|
str r1, [r0, 0x1C]
|
|
bx lr
|
|
.align 2, 0
|
|
_080AC644: .4byte gUnknown_2037F02
|
|
_080AC648: .4byte sub_80AC64C
|
|
thumb_func_end sub_80AC624
|
|
|
|
thumb_func_start sub_80AC64C
|
|
sub_80AC64C: @ 80AC64C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrh r0, [r4, 0x36]
|
|
ldrh r1, [r4, 0x2E]
|
|
subs r0, r1
|
|
strh r0, [r4, 0x36]
|
|
movs r1, 0x36
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0xA
|
|
bl __divsi3
|
|
strh r0, [r4, 0x26]
|
|
ldrh r0, [r4, 0x30]
|
|
ldrh r2, [r4, 0x38]
|
|
adds r0, r2
|
|
movs r1, 0xFF
|
|
ands r0, r1
|
|
strh r0, [r4, 0x38]
|
|
movs r1, 0x38
|
|
ldrsh r0, [r4, r1]
|
|
movs r2, 0x32
|
|
ldrsh r1, [r4, r2]
|
|
bl Sin
|
|
strh r0, [r4, 0x24]
|
|
ldrh r0, [r4, 0x34]
|
|
subs r0, 0x1
|
|
strh r0, [r4, 0x34]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bne _080AC690
|
|
adds r0, r4, 0
|
|
bl DestroyAnimSprite
|
|
_080AC690:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80AC64C
|
|
|
|
thumb_func_start sub_80AC698
|
|
sub_80AC698: @ 80AC698
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrh r0, [r4, 0x30]
|
|
ldrh r1, [r4, 0x34]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x34]
|
|
ldrh r1, [r4, 0x32]
|
|
ldrh r2, [r4, 0x36]
|
|
adds r1, r2
|
|
strh r1, [r4, 0x36]
|
|
lsls r0, 16
|
|
asrs r0, 23
|
|
strh r0, [r4, 0x24]
|
|
lsls r1, 16
|
|
asrs r1, 23
|
|
strh r1, [r4, 0x26]
|
|
ldrh r0, [r4, 0x2E]
|
|
subs r0, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bne _080AC6D0
|
|
adds r0, r4, 0
|
|
bl FreeSpriteOamMatrix
|
|
adds r0, r4, 0
|
|
bl DestroySprite
|
|
_080AC6D0:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80AC698
|
|
|
|
thumb_func_start sub_80AC6D8
|
|
sub_80AC6D8: @ 80AC6D8
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x1
|
|
bl sub_8075160
|
|
ldr r5, _080AC714 @ =gUnknown_2037F1B
|
|
ldrb r0, [r5]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x30]
|
|
ldrb r0, [r5]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x32]
|
|
ldr r1, _080AC718 @ =gUnknown_2037F02
|
|
ldrh r0, [r1, 0x4]
|
|
strh r0, [r4, 0x34]
|
|
ldrh r0, [r1, 0x6]
|
|
strh r0, [r4, 0x36]
|
|
ldr r0, _080AC71C @ =sub_80AC720
|
|
str r0, [r4, 0x1C]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AC714: .4byte gUnknown_2037F1B
|
|
_080AC718: .4byte gUnknown_2037F02
|
|
_080AC71C: .4byte sub_80AC720
|
|
thumb_func_end sub_80AC6D8
|
|
|
|
thumb_func_start sub_80AC720
|
|
sub_80AC720: @ 80AC720
|
|
push {r4-r6,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x30
|
|
ldrsh r1, [r4, r0]
|
|
movs r2, 0x20
|
|
ldrsh r0, [r4, r2]
|
|
subs r6, r1, r0
|
|
movs r0, 0x32
|
|
ldrsh r1, [r4, r0]
|
|
movs r2, 0x22
|
|
ldrsh r0, [r4, r2]
|
|
subs r5, r1, r0
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r4, r1]
|
|
muls r0, r6
|
|
movs r2, 0x34
|
|
ldrsh r1, [r4, r2]
|
|
bl __divsi3
|
|
strh r0, [r4, 0x24]
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r4, r1]
|
|
muls r0, r5
|
|
movs r2, 0x34
|
|
ldrsh r1, [r4, r2]
|
|
bl __divsi3
|
|
strh r0, [r4, 0x26]
|
|
ldrh r0, [r4, 0x38]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x38]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r2, 0x36
|
|
ldrsh r1, [r4, r2]
|
|
cmp r0, r1
|
|
bne _080AC778
|
|
movs r0, 0
|
|
strh r0, [r4, 0x38]
|
|
adds r0, r4, 0
|
|
adds r1, r6, 0
|
|
adds r2, r5, 0
|
|
bl sub_80AC798
|
|
_080AC778:
|
|
movs r0, 0x34
|
|
ldrsh r1, [r4, r0]
|
|
movs r2, 0x2E
|
|
ldrsh r0, [r4, r2]
|
|
cmp r1, r0
|
|
bne _080AC78A
|
|
adds r0, r4, 0
|
|
bl DestroyAnimSprite
|
|
_080AC78A:
|
|
ldrh r0, [r4, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80AC720
|
|
|
|
thumb_func_start sub_80AC798
|
|
sub_80AC798: @ 80AC798
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x18
|
|
adds r4, r1, 0
|
|
adds r5, r2, 0
|
|
movs r2, 0x2E
|
|
ldrsh r1, [r0, r2]
|
|
lsrs r2, r1, 31
|
|
adds r1, r2
|
|
lsls r1, 15
|
|
lsrs r1, 16
|
|
str r1, [sp]
|
|
ldrh r1, [r0, 0x24]
|
|
ldrh r3, [r0, 0x20]
|
|
adds r1, r3
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
mov r8, r1
|
|
ldrh r1, [r0, 0x26]
|
|
ldrh r0, [r0, 0x22]
|
|
adds r1, r0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
mov r10, r1
|
|
bl Random
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0xA
|
|
bl __umodsi3
|
|
adds r0, r5, r0
|
|
subs r0, 0x5
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
mov r9, r0
|
|
bl Random
|
|
negs r4, r4
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0xA
|
|
bl __umodsi3
|
|
adds r4, r0
|
|
subs r4, 0x5
|
|
lsls r4, 16
|
|
lsrs r7, r4, 16
|
|
movs r6, 0
|
|
mov r0, r8
|
|
lsls r0, 16
|
|
mov r8, r0
|
|
mov r1, r10
|
|
lsls r1, 16
|
|
str r1, [sp, 0xC]
|
|
ldr r2, [sp]
|
|
lsls r2, 16
|
|
str r2, [sp, 0x10]
|
|
asrs r1, 16
|
|
lsls r0, r7, 16
|
|
asrs r5, r0, 16
|
|
str r0, [sp, 0x14]
|
|
negs r3, r5
|
|
str r3, [sp, 0x4]
|
|
asrs r0, r2, 16
|
|
adds r1, r0
|
|
lsls r1, 16
|
|
mov r10, r1
|
|
_080AC826:
|
|
ldr r0, _080AC868 @ =gUnknown_83E5B88
|
|
mov r2, r8
|
|
asrs r1, r2, 16
|
|
mov r3, r10
|
|
asrs r2, r3, 16
|
|
movs r3, 0x82
|
|
bl CreateSprite
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
ldr r1, _080AC86C @ =gSprites
|
|
lsls r0, r2, 4
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r4, r0, r1
|
|
movs r0, 0x14
|
|
strh r0, [r4, 0x2E]
|
|
mov r0, r9
|
|
strh r0, [r4, 0x30]
|
|
ldr r0, _080AC870 @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl sub_807685C
|
|
subs r0, 0x1
|
|
adds r1, r4, 0
|
|
adds r1, 0x43
|
|
strb r0, [r1]
|
|
cmp r5, 0
|
|
bge _080AC874
|
|
mov r1, sp
|
|
ldrh r1, [r1, 0x4]
|
|
strh r1, [r4, 0x32]
|
|
b _080AC876
|
|
.align 2, 0
|
|
_080AC868: .4byte gUnknown_83E5B88
|
|
_080AC86C: .4byte gSprites
|
|
_080AC870: .4byte gUnknown_2037F1A
|
|
_080AC874:
|
|
strh r7, [r4, 0x32]
|
|
_080AC876:
|
|
lsls r0, r6, 16
|
|
movs r2, 0x80
|
|
lsls r2, 9
|
|
adds r0, r2
|
|
lsrs r6, r0, 16
|
|
cmp r0, 0
|
|
ble _080AC826
|
|
movs r6, 0
|
|
ldr r3, [sp, 0xC]
|
|
asrs r1, r3, 16
|
|
ldr r0, [sp, 0x14]
|
|
asrs r5, r0, 16
|
|
negs r2, r5
|
|
str r2, [sp, 0x8]
|
|
ldr r3, [sp, 0x10]
|
|
asrs r0, r3, 16
|
|
subs r1, r0
|
|
lsls r1, 16
|
|
mov r10, r1
|
|
_080AC89C:
|
|
ldr r0, _080AC8E0 @ =gUnknown_83E5B88
|
|
mov r2, r8
|
|
asrs r1, r2, 16
|
|
mov r3, r10
|
|
asrs r2, r3, 16
|
|
movs r3, 0x82
|
|
bl CreateSprite
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
ldr r1, _080AC8E4 @ =gSprites
|
|
lsls r0, r2, 4
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r4, r0, r1
|
|
movs r0, 0x14
|
|
strh r0, [r4, 0x2E]
|
|
mov r0, r9
|
|
strh r0, [r4, 0x30]
|
|
ldr r0, _080AC8E8 @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl sub_807685C
|
|
subs r0, 0x1
|
|
adds r1, r4, 0
|
|
adds r1, 0x43
|
|
strb r0, [r1]
|
|
cmp r5, 0
|
|
ble _080AC8EC
|
|
mov r1, sp
|
|
ldrh r1, [r1, 0x8]
|
|
strh r1, [r4, 0x32]
|
|
b _080AC8EE
|
|
.align 2, 0
|
|
_080AC8E0: .4byte gUnknown_83E5B88
|
|
_080AC8E4: .4byte gSprites
|
|
_080AC8E8: .4byte gUnknown_2037F1A
|
|
_080AC8EC:
|
|
strh r7, [r4, 0x32]
|
|
_080AC8EE:
|
|
lsls r0, r6, 16
|
|
movs r2, 0x80
|
|
lsls r2, 9
|
|
adds r0, r2
|
|
lsrs r6, r0, 16
|
|
cmp r0, 0
|
|
ble _080AC89C
|
|
add sp, 0x18
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80AC798
|
|
|
|
thumb_func_start sub_80AC90C
|
|
sub_80AC90C: @ 80AC90C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldr r0, _080AC940 @ =gUnknown_2037F02
|
|
ldrh r0, [r0]
|
|
strh r0, [r4, 0x2E]
|
|
movs r0, 0x3C
|
|
strh r0, [r4, 0x30]
|
|
movs r0, 0x9
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1E
|
|
strh r0, [r4, 0x34]
|
|
movs r0, 0xFE
|
|
lsls r0, 8
|
|
strh r0, [r4, 0x36]
|
|
ldr r1, _080AC944 @ =DestroyAnimSprite
|
|
adds r0, r4, 0
|
|
bl StoreSpriteCallbackInData6
|
|
ldr r1, _080AC948 @ =sub_8074AE0
|
|
str r1, [r4, 0x1C]
|
|
adds r0, r4, 0
|
|
bl _call_via_r1
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AC940: .4byte gUnknown_2037F02
|
|
_080AC944: .4byte DestroyAnimSprite
|
|
_080AC948: .4byte sub_8074AE0
|
|
thumb_func_end sub_80AC90C
|
|
|
|
thumb_func_start sub_80AC94C
|
|
sub_80AC94C: @ 80AC94C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
ldr r5, _080AC984 @ =gUnknown_2037F02
|
|
movs r0, 0
|
|
ldrsh r1, [r5, r0]
|
|
adds r0, r4, 0
|
|
bl sub_8074FF8
|
|
ldrh r0, [r5, 0x2]
|
|
ldrh r1, [r4, 0x22]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x22]
|
|
ldrh r0, [r5, 0x8]
|
|
strh r0, [r4, 0x2E]
|
|
ldrh r0, [r5, 0x4]
|
|
strh r0, [r4, 0x30]
|
|
ldrh r0, [r5, 0x6]
|
|
strh r0, [r4, 0x32]
|
|
ldr r0, _080AC988 @ =sub_8074D00
|
|
str r0, [r4, 0x1C]
|
|
ldr r1, _080AC98C @ =DestroyAnimSprite
|
|
adds r0, r4, 0
|
|
bl StoreSpriteCallbackInData6
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AC984: .4byte gUnknown_2037F02
|
|
_080AC988: .4byte sub_8074D00
|
|
_080AC98C: .4byte DestroyAnimSprite
|
|
thumb_func_end sub_80AC94C
|
|
|
|
thumb_func_start sub_80AC990
|
|
sub_80AC990: @ 80AC990
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_8074FCC
|
|
ldr r0, _080AC9C4 @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080AC9CC
|
|
ldr r2, _080AC9C8 @ =gUnknown_2037F02
|
|
ldrh r0, [r4, 0x20]
|
|
ldrh r1, [r2]
|
|
subs r0, r1
|
|
strh r0, [r4, 0x20]
|
|
ldrh r0, [r2, 0x2]
|
|
ldrh r1, [r4, 0x22]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x22]
|
|
ldrh r0, [r2, 0x8]
|
|
negs r0, r0
|
|
strh r0, [r4, 0x32]
|
|
adds r1, r2, 0
|
|
b _080AC9E2
|
|
.align 2, 0
|
|
_080AC9C4: .4byte gUnknown_2037F1A
|
|
_080AC9C8: .4byte gUnknown_2037F02
|
|
_080AC9CC:
|
|
ldr r1, _080AC9F8 @ =gUnknown_2037F02
|
|
ldrh r0, [r1]
|
|
ldrh r2, [r4, 0x20]
|
|
adds r0, r2
|
|
strh r0, [r4, 0x20]
|
|
ldrh r0, [r1, 0x2]
|
|
ldrh r2, [r4, 0x22]
|
|
adds r0, r2
|
|
strh r0, [r4, 0x22]
|
|
ldrh r0, [r1, 0x8]
|
|
strh r0, [r4, 0x32]
|
|
_080AC9E2:
|
|
ldrh r0, [r1, 0x4]
|
|
strh r0, [r4, 0x30]
|
|
ldrh r0, [r1, 0x6]
|
|
strh r0, [r4, 0x36]
|
|
ldrh r0, [r1, 0xA]
|
|
strh r0, [r4, 0x34]
|
|
ldr r0, _080AC9FC @ =sub_80ACA6C
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AC9F8: .4byte gUnknown_2037F02
|
|
_080AC9FC: .4byte sub_80ACA6C
|
|
thumb_func_end sub_80AC990
|
|
|
|
thumb_func_start sub_80ACA00
|
|
sub_80ACA00: @ 80ACA00
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldr r0, _080ACA2C @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080ACA34
|
|
ldr r2, _080ACA30 @ =gUnknown_2037F02
|
|
ldrh r0, [r4, 0x20]
|
|
ldrh r1, [r2]
|
|
subs r0, r1
|
|
strh r0, [r4, 0x20]
|
|
ldrh r0, [r2, 0x2]
|
|
ldrh r1, [r4, 0x22]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x22]
|
|
ldrh r0, [r2, 0x8]
|
|
strh r0, [r4, 0x32]
|
|
adds r1, r2, 0
|
|
b _080ACA4C
|
|
.align 2, 0
|
|
_080ACA2C: .4byte gUnknown_2037F1A
|
|
_080ACA30: .4byte gUnknown_2037F02
|
|
_080ACA34:
|
|
ldr r1, _080ACA64 @ =gUnknown_2037F02
|
|
ldrh r0, [r1]
|
|
ldrh r2, [r4, 0x20]
|
|
adds r0, r2
|
|
strh r0, [r4, 0x20]
|
|
ldrh r0, [r1, 0x2]
|
|
ldrh r2, [r4, 0x22]
|
|
adds r0, r2
|
|
strh r0, [r4, 0x22]
|
|
ldrh r0, [r1, 0x8]
|
|
negs r0, r0
|
|
strh r0, [r4, 0x32]
|
|
_080ACA4C:
|
|
ldrh r0, [r1, 0x4]
|
|
strh r0, [r4, 0x30]
|
|
ldrh r0, [r1, 0x6]
|
|
strh r0, [r4, 0x36]
|
|
ldrh r0, [r1, 0xA]
|
|
strh r0, [r4, 0x34]
|
|
ldr r0, _080ACA68 @ =sub_80ACA6C
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080ACA64: .4byte gUnknown_2037F02
|
|
_080ACA68: .4byte sub_80ACA6C
|
|
thumb_func_end sub_80ACA00
|
|
|
|
thumb_func_start sub_80ACA6C
|
|
sub_80ACA6C: @ 80ACA6C
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
ldrh r0, [r2, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r2, 0x2E]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r3, 0x36
|
|
ldrsh r1, [r2, r3]
|
|
cmp r0, r1
|
|
bge _080ACA92
|
|
ldrh r0, [r2, 0x32]
|
|
ldrh r1, [r2, 0x24]
|
|
adds r0, r1
|
|
strh r0, [r2, 0x24]
|
|
ldrh r0, [r2, 0x34]
|
|
ldrh r3, [r2, 0x26]
|
|
adds r0, r3
|
|
strh r0, [r2, 0x26]
|
|
_080ACA92:
|
|
movs r0, 0x2E
|
|
ldrsh r1, [r2, r0]
|
|
movs r3, 0x30
|
|
ldrsh r0, [r2, r3]
|
|
cmp r1, r0
|
|
bne _080ACAA4
|
|
adds r0, r2, 0
|
|
bl move_anim_8074EE0
|
|
_080ACAA4:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80ACA6C
|
|
|
|
thumb_func_start sub_80ACAA8
|
|
sub_80ACAA8: @ 80ACAA8
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_8074FCC
|
|
ldr r0, _080ACACC @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080ACAD4
|
|
ldr r0, _080ACAD0 @ =gUnknown_2037F02
|
|
ldrh r1, [r4, 0x20]
|
|
ldrh r2, [r0]
|
|
subs r1, r2
|
|
strh r1, [r4, 0x20]
|
|
b _080ACAE6
|
|
.align 2, 0
|
|
_080ACACC: .4byte gUnknown_2037F1A
|
|
_080ACAD0: .4byte gUnknown_2037F02
|
|
_080ACAD4:
|
|
ldr r0, _080ACB14 @ =gUnknown_2037F02
|
|
ldrh r1, [r0]
|
|
ldrh r2, [r4, 0x20]
|
|
adds r1, r2
|
|
strh r1, [r4, 0x20]
|
|
adds r2, r4, 0
|
|
adds r2, 0x43
|
|
movs r1, 0x8
|
|
strb r1, [r2]
|
|
_080ACAE6:
|
|
adds r2, r0, 0
|
|
ldrh r0, [r2, 0x2]
|
|
ldrh r1, [r4, 0x22]
|
|
adds r0, r1
|
|
movs r1, 0
|
|
strh r0, [r4, 0x22]
|
|
ldrh r0, [r2, 0x4]
|
|
strh r0, [r4, 0x2E]
|
|
ldrh r0, [r2, 0x6]
|
|
strh r0, [r4, 0x30]
|
|
ldrh r0, [r2, 0x8]
|
|
strh r0, [r4, 0x32]
|
|
ldrh r0, [r2, 0xA]
|
|
strh r0, [r4, 0x34]
|
|
ldrh r0, [r2, 0xC]
|
|
strh r0, [r4, 0x36]
|
|
strh r1, [r4, 0x38]
|
|
ldr r0, _080ACB18 @ =sub_80ACB1C
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080ACB14: .4byte gUnknown_2037F02
|
|
_080ACB18: .4byte sub_80ACB1C
|
|
thumb_func_end sub_80ACAA8
|
|
|
|
thumb_func_start sub_80ACB1C
|
|
sub_80ACB1C: @ 80ACB1C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x34
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
beq _080ACBA4
|
|
movs r2, 0x38
|
|
ldrsh r1, [r4, r2]
|
|
ldr r0, _080ACB88 @ =0x00002710
|
|
cmp r1, r0
|
|
ble _080ACB3A
|
|
adds r1, r4, 0
|
|
adds r1, 0x43
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
_080ACB3A:
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r4, r1]
|
|
ldrh r1, [r4, 0x38]
|
|
lsls r1, 16
|
|
asrs r1, 24
|
|
ldrh r2, [r4, 0x30]
|
|
adds r1, r2
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
bl Sin
|
|
strh r0, [r4, 0x24]
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r4, r1]
|
|
ldrh r1, [r4, 0x38]
|
|
lsls r1, 16
|
|
asrs r1, 24
|
|
ldrh r2, [r4, 0x30]
|
|
adds r1, r2
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
bl Cos
|
|
strh r0, [r4, 0x26]
|
|
ldrh r0, [r4, 0x32]
|
|
ldrh r2, [r4, 0x2E]
|
|
adds r1, r0, r2
|
|
strh r1, [r4, 0x2E]
|
|
ldrh r0, [r4, 0x36]
|
|
ldrh r2, [r4, 0x38]
|
|
adds r0, r2
|
|
strh r0, [r4, 0x38]
|
|
lsls r0, r1, 16
|
|
asrs r0, 16
|
|
cmp r0, 0xFF
|
|
ble _080ACB90
|
|
ldr r2, _080ACB8C @ =0xffffff00
|
|
b _080ACB98
|
|
.align 2, 0
|
|
_080ACB88: .4byte 0x00002710
|
|
_080ACB8C: .4byte 0xffffff00
|
|
_080ACB90:
|
|
cmp r0, 0
|
|
bge _080ACB9C
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
_080ACB98:
|
|
adds r0, r1, r2
|
|
strh r0, [r4, 0x2E]
|
|
_080ACB9C:
|
|
ldrh r0, [r4, 0x34]
|
|
subs r0, 0x1
|
|
strh r0, [r4, 0x34]
|
|
b _080ACBAA
|
|
_080ACBA4:
|
|
adds r0, r4, 0
|
|
bl move_anim_8074EE0
|
|
_080ACBAA:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80ACB1C
|
|
|
|
thumb_func_start sub_80ACBB0
|
|
sub_80ACBB0: @ 80ACBB0
|
|
push {lr}
|
|
movs r1, 0
|
|
strh r1, [r0, 0x20]
|
|
strh r1, [r0, 0x22]
|
|
movs r1, 0x3C
|
|
strh r1, [r0, 0x2E]
|
|
movs r1, 0x8C
|
|
strh r1, [r0, 0x32]
|
|
movs r1, 0x50
|
|
strh r1, [r0, 0x36]
|
|
ldr r1, _080ACBD4 @ =sub_8075590
|
|
str r1, [r0, 0x1C]
|
|
ldr r1, _080ACBD8 @ =DestroyAnimSprite
|
|
bl StoreSpriteCallbackInData6
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080ACBD4: .4byte sub_8075590
|
|
_080ACBD8: .4byte DestroyAnimSprite
|
|
thumb_func_end sub_80ACBB0
|
|
|
|
thumb_func_start sub_80ACBDC
|
|
sub_80ACBDC: @ 80ACBDC
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
ldr r5, _080ACC34 @ =gUnknown_2037F1A
|
|
ldrb r0, [r5]
|
|
bl GetBattlerSide
|
|
adds r4, r0, 0
|
|
ldr r0, _080ACC38 @ =gUnknown_2037F1B
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r4, 24
|
|
lsls r0, 24
|
|
cmp r4, r0
|
|
bne _080ACC22
|
|
movs r0, 0x2
|
|
bl GetBattlerAtPosition
|
|
ldrb r1, [r5]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r1, r0
|
|
beq _080ACC1A
|
|
movs r0, 0x3
|
|
bl GetBattlerAtPosition
|
|
ldrb r1, [r5]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r1, r0
|
|
bne _080ACC22
|
|
_080ACC1A:
|
|
ldr r1, _080ACC3C @ =gUnknown_2037F02
|
|
ldrh r0, [r1, 0x4]
|
|
negs r0, r0
|
|
strh r0, [r1, 0x4]
|
|
_080ACC22:
|
|
ldr r1, _080ACC40 @ =sub_8075F0C
|
|
str r1, [r6, 0x1C]
|
|
adds r0, r6, 0
|
|
bl _call_via_r1
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080ACC34: .4byte gUnknown_2037F1A
|
|
_080ACC38: .4byte gUnknown_2037F1B
|
|
_080ACC3C: .4byte gUnknown_2037F02
|
|
_080ACC40: .4byte sub_8075F0C
|
|
thumb_func_end sub_80ACBDC
|
|
|
|
thumb_func_start sub_80ACC44
|
|
sub_80ACC44: @ 80ACC44
|
|
ldr r2, _080ACC58 @ =gUnknown_2037F02
|
|
ldrh r1, [r2]
|
|
negs r1, r1
|
|
strh r1, [r2]
|
|
ldrh r1, [r2, 0x4]
|
|
negs r1, r1
|
|
strh r1, [r2, 0x4]
|
|
ldr r1, _080ACC5C @ =sub_8075F0C
|
|
str r1, [r0, 0x1C]
|
|
bx lr
|
|
.align 2, 0
|
|
_080ACC58: .4byte gUnknown_2037F02
|
|
_080ACC5C: .4byte sub_8075F0C
|
|
thumb_func_end sub_80ACC44
|
|
|
|
thumb_func_start sub_80ACC60
|
|
sub_80ACC60: @ 80ACC60
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x1
|
|
bl sub_8075160
|
|
ldr r0, _080ACC80 @ =gUnknown_2037F02
|
|
ldrh r0, [r0, 0x4]
|
|
movs r1, 0
|
|
strh r0, [r4, 0x3C]
|
|
strh r1, [r4, 0x2E]
|
|
ldr r0, _080ACC84 @ =sub_80ACC88
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080ACC80: .4byte gUnknown_2037F02
|
|
_080ACC84: .4byte sub_80ACC88
|
|
thumb_func_end sub_80ACC60
|
|
|
|
thumb_func_start sub_80ACC88
|
|
sub_80ACC88: @ 80ACC88
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
bl sub_80ACD7C
|
|
ldrh r0, [r5, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x2E]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x12
|
|
bne _080ACCD2
|
|
movs r0, 0x19
|
|
strh r0, [r5, 0x2E]
|
|
ldrh r0, [r5, 0x20]
|
|
strh r0, [r5, 0x30]
|
|
ldr r4, _080ACCD8 @ =gUnknown_2037F1B
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x32]
|
|
ldrh r0, [r5, 0x22]
|
|
strh r0, [r5, 0x34]
|
|
ldrb r0, [r4]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x36]
|
|
adds r0, r5, 0
|
|
bl obj_translate_based_on_private_1_2_3_4
|
|
ldr r0, _080ACCDC @ =sub_80ACCE0
|
|
str r0, [r5, 0x1C]
|
|
_080ACCD2:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080ACCD8: .4byte gUnknown_2037F1B
|
|
_080ACCDC: .4byte sub_80ACCE0
|
|
thumb_func_end sub_80ACC88
|
|
|
|
thumb_func_start sub_80ACCE0
|
|
sub_80ACCE0: @ 80ACCE0
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
bl sub_80755E0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080ACD28
|
|
movs r4, 0
|
|
strh r4, [r6, 0x2E]
|
|
ldr r5, _080ACD20 @ =gUnknown_2037F1B
|
|
ldrb r0, [r5]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r6, 0x20]
|
|
ldrb r0, [r5]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r6, 0x22]
|
|
strh r4, [r6, 0x26]
|
|
strh r4, [r6, 0x24]
|
|
ldr r1, _080ACD24 @ =sub_80ACD58
|
|
str r1, [r6, 0x1C]
|
|
adds r0, r6, 0
|
|
bl _call_via_r1
|
|
b _080ACD52
|
|
.align 2, 0
|
|
_080ACD20: .4byte gUnknown_2037F1B
|
|
_080ACD24: .4byte sub_80ACD58
|
|
_080ACD28:
|
|
movs r1, 0x3C
|
|
ldrsh r0, [r6, r1]
|
|
movs r1, 0x1C
|
|
bl Sin
|
|
ldrh r1, [r6, 0x24]
|
|
adds r0, r1
|
|
strh r0, [r6, 0x24]
|
|
movs r1, 0x3C
|
|
ldrsh r0, [r6, r1]
|
|
movs r1, 0x1C
|
|
bl Cos
|
|
ldrh r1, [r6, 0x26]
|
|
adds r0, r1
|
|
strh r0, [r6, 0x26]
|
|
ldrh r0, [r6, 0x3C]
|
|
adds r0, 0x14
|
|
movs r1, 0xFF
|
|
ands r0, r1
|
|
strh r0, [r6, 0x3C]
|
|
_080ACD52:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80ACCE0
|
|
|
|
thumb_func_start sub_80ACD58
|
|
sub_80ACD58: @ 80ACD58
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_80ACD7C
|
|
ldrh r0, [r4, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1F
|
|
bne _080ACD74
|
|
adds r0, r4, 0
|
|
bl DestroyAnimSprite
|
|
_080ACD74:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80ACD58
|
|
|
|
thumb_func_start sub_80ACD7C
|
|
sub_80ACD7C: @ 80ACD7C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x3C
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0x1C
|
|
bl Sin
|
|
strh r0, [r4, 0x24]
|
|
movs r1, 0x3C
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0x1C
|
|
bl Cos
|
|
strh r0, [r4, 0x26]
|
|
ldrh r0, [r4, 0x3C]
|
|
adds r0, 0x14
|
|
movs r1, 0xFF
|
|
ands r0, r1
|
|
strh r0, [r4, 0x3C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80ACD7C
|
|
|
|
thumb_func_start sub_80ACDA8
|
|
sub_80ACDA8: @ 80ACDA8
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldr r1, _080ACDDC @ =gUnknown_2037F02
|
|
ldrh r0, [r1]
|
|
ldrh r2, [r4, 0x20]
|
|
adds r0, r2
|
|
strh r0, [r4, 0x20]
|
|
ldrh r0, [r1, 0x2]
|
|
ldrh r2, [r4, 0x22]
|
|
adds r0, r2
|
|
strh r0, [r4, 0x22]
|
|
ldrh r0, [r1, 0x4]
|
|
strh r0, [r4, 0x2E]
|
|
ldrh r0, [r1, 0x6]
|
|
strh r0, [r4, 0x30]
|
|
ldrh r0, [r1, 0x8]
|
|
strh r0, [r4, 0x32]
|
|
ldr r1, _080ACDE0 @ =DestroyAnimSprite
|
|
adds r0, r4, 0
|
|
bl StoreSpriteCallbackInData6
|
|
ldr r0, _080ACDE4 @ =sub_8074CD0
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080ACDDC: .4byte gUnknown_2037F02
|
|
_080ACDE0: .4byte DestroyAnimSprite
|
|
_080ACDE4: .4byte sub_8074CD0
|
|
thumb_func_end sub_80ACDA8
|
|
|
|
thumb_func_start sub_80ACDE8
|
|
sub_80ACDE8: @ 80ACDE8
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x1
|
|
bl sub_8075160
|
|
ldr r1, _080ACE1C @ =gUnknown_2037F02
|
|
ldrh r0, [r1, 0x4]
|
|
strh r0, [r4, 0x30]
|
|
ldrh r0, [r1, 0x6]
|
|
strh r0, [r4, 0x2E]
|
|
adds r2, r4, 0
|
|
adds r2, 0x3E
|
|
ldrb r0, [r2]
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r0, _080ACE20 @ =sub_8074C44
|
|
str r0, [r4, 0x1C]
|
|
ldr r1, _080ACE24 @ =sub_80ACE28
|
|
adds r0, r4, 0
|
|
bl StoreSpriteCallbackInData6
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080ACE1C: .4byte gUnknown_2037F02
|
|
_080ACE20: .4byte sub_8074C44
|
|
_080ACE24: .4byte sub_80ACE28
|
|
thumb_func_end sub_80ACDE8
|
|
|
|
thumb_func_start sub_80ACE28
|
|
sub_80ACE28: @ 80ACE28
|
|
push {lr}
|
|
adds r3, r0, 0
|
|
adds r3, 0x3E
|
|
ldrb r2, [r3]
|
|
movs r1, 0x5
|
|
negs r1, r1
|
|
ands r1, r2
|
|
strb r1, [r3]
|
|
ldrh r1, [r0, 0x30]
|
|
movs r2, 0
|
|
strh r1, [r0, 0x2E]
|
|
strh r2, [r0, 0x30]
|
|
ldr r1, _080ACE4C @ =sub_80ACE50
|
|
str r1, [r0, 0x1C]
|
|
bl _call_via_r1
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080ACE4C: .4byte sub_80ACE50
|
|
thumb_func_end sub_80ACE28
|
|
|
|
thumb_func_start sub_80ACE50
|
|
sub_80ACE50: @ 80ACE50
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x30
|
|
ldrsh r0, [r4, r1]
|
|
ldrh r1, [r4, 0x32]
|
|
lsls r1, 16
|
|
asrs r1, 24
|
|
bl Sin
|
|
strh r0, [r4, 0x24]
|
|
movs r1, 0x30
|
|
ldrsh r0, [r4, r1]
|
|
ldrh r1, [r4, 0x32]
|
|
lsls r1, 16
|
|
asrs r1, 24
|
|
bl Cos
|
|
strh r0, [r4, 0x26]
|
|
ldrh r0, [r4, 0x30]
|
|
adds r0, 0xA
|
|
movs r1, 0xFF
|
|
ands r0, r1
|
|
strh r0, [r4, 0x30]
|
|
ldrh r0, [r4, 0x32]
|
|
adds r0, 0xD0
|
|
strh r0, [r4, 0x32]
|
|
ldrh r0, [r4, 0x2E]
|
|
subs r0, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
cmp r0, r1
|
|
bne _080ACE9C
|
|
adds r0, r4, 0
|
|
bl DestroyAnimSprite
|
|
_080ACE9C:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80ACE50
|
|
|
|
thumb_func_start sub_80ACEA4
|
|
sub_80ACEA4: @ 80ACEA4
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r4, r0, 2
|
|
adds r4, r0
|
|
lsls r4, 3
|
|
ldr r0, _080ACF04 @ =gTasks
|
|
adds r4, r0
|
|
movs r0, 0
|
|
bl GetAnimBankSpriteId
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r5, 0
|
|
strh r0, [r4, 0x26]
|
|
strh r5, [r4, 0x8]
|
|
strh r5, [r4, 0xA]
|
|
strh r5, [r4, 0xC]
|
|
strh r5, [r4, 0xE]
|
|
ldr r2, _080ACF08 @ =gSprites
|
|
movs r0, 0x26
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrh r0, [r0, 0x22]
|
|
strh r0, [r4, 0x10]
|
|
ldr r0, _080ACF0C @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x12]
|
|
strh r5, [r4, 0x14]
|
|
ldrh r0, [r4, 0x26]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0
|
|
bl sub_80758E0
|
|
ldr r0, _080ACF10 @ =sub_80ACF14
|
|
str r0, [r4]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080ACF04: .4byte gTasks
|
|
_080ACF08: .4byte gSprites
|
|
_080ACF0C: .4byte gUnknown_2037F1A
|
|
_080ACF10: .4byte sub_80ACF14
|
|
thumb_func_end sub_80ACEA4
|
|
|
|
thumb_func_start sub_80ACF14
|
|
sub_80ACF14: @ 80ACF14
|
|
push {r4,r5,lr}
|
|
sub sp, 0xC
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
ldr r1, _080ACF3C @ =gTasks
|
|
adds r4, r0, r1
|
|
movs r1, 0x8
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x6
|
|
bls _080ACF30
|
|
b _080AD1EE
|
|
_080ACF30:
|
|
lsls r0, 2
|
|
ldr r1, _080ACF40 @ =_080ACF44
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080ACF3C: .4byte gTasks
|
|
_080ACF40: .4byte _080ACF44
|
|
.align 2, 0
|
|
_080ACF44:
|
|
.4byte _080ACF60
|
|
.4byte _080ACF86
|
|
.4byte _080AD038
|
|
.4byte _080AD098
|
|
.4byte _080AD0B6
|
|
.4byte _080AD18C
|
|
.4byte _080AD1E0
|
|
_080ACF60:
|
|
ldrh r1, [r4, 0x26]
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
movs r3, 0x80
|
|
lsls r3, 1
|
|
movs r0, 0xE0
|
|
str r0, [sp]
|
|
movs r0, 0x80
|
|
lsls r0, 2
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0x20
|
|
str r0, [sp, 0x8]
|
|
adds r0, r4, 0
|
|
adds r2, r3, 0
|
|
bl sub_80765D4
|
|
ldrh r0, [r4, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x8]
|
|
_080ACF86:
|
|
ldrh r0, [r4, 0xA]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0xA]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1
|
|
ble _080ACFCE
|
|
movs r0, 0
|
|
strh r0, [r4, 0xA]
|
|
ldrh r0, [r4, 0xC]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0xC]
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080ACFBC
|
|
ldr r2, _080ACFB8 @ =gSprites
|
|
movs r0, 0x26
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
movs r1, 0x3
|
|
b _080ACFCC
|
|
.align 2, 0
|
|
_080ACFB8: .4byte gSprites
|
|
_080ACFBC:
|
|
ldr r2, _080AD030 @ =gSprites
|
|
movs r0, 0x26
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldr r1, _080AD034 @ =0x0000fffd
|
|
_080ACFCC:
|
|
strh r1, [r0, 0x24]
|
|
_080ACFCE:
|
|
movs r1, 0x12
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
beq _080ACFFC
|
|
ldrh r0, [r4, 0xE]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0xE]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x4
|
|
ble _080ACFFC
|
|
movs r0, 0
|
|
strh r0, [r4, 0xE]
|
|
ldr r2, _080AD030 @ =gSprites
|
|
movs r0, 0x26
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrh r1, [r0, 0x22]
|
|
adds r1, 0x1
|
|
strh r1, [r0, 0x22]
|
|
_080ACFFC:
|
|
adds r0, r4, 0
|
|
bl sub_8076640
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0
|
|
beq _080AD00C
|
|
b _080AD1EE
|
|
_080AD00C:
|
|
ldrh r0, [r4, 0x26]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl sub_8076440
|
|
ldr r2, _080AD030 @ =gSprites
|
|
movs r0, 0x26
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
strh r5, [r0, 0x24]
|
|
strh r5, [r4, 0xA]
|
|
strh r5, [r4, 0xC]
|
|
strh r5, [r4, 0xE]
|
|
b _080AD1D4
|
|
.align 2, 0
|
|
_080AD030: .4byte gSprites
|
|
_080AD034: .4byte 0x0000fffd
|
|
_080AD038:
|
|
ldrh r0, [r4, 0xA]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0xA]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x4
|
|
bgt _080AD048
|
|
b _080AD1EE
|
|
_080AD048:
|
|
movs r1, 0x12
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
beq _080AD072
|
|
ldrh r1, [r4, 0x26]
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
movs r3, 0x80
|
|
lsls r3, 2
|
|
movs r0, 0xC0
|
|
lsls r0, 1
|
|
str r0, [sp]
|
|
movs r0, 0xF0
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0x6
|
|
str r0, [sp, 0x8]
|
|
adds r0, r4, 0
|
|
movs r2, 0xE0
|
|
bl sub_80765D4
|
|
b _080AD092
|
|
_080AD072:
|
|
ldrh r1, [r4, 0x26]
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
movs r3, 0x80
|
|
lsls r3, 2
|
|
movs r0, 0xC0
|
|
lsls r0, 1
|
|
str r0, [sp]
|
|
movs r0, 0xC0
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0x6
|
|
str r0, [sp, 0x8]
|
|
adds r0, r4, 0
|
|
movs r2, 0xE0
|
|
bl sub_80765D4
|
|
_080AD092:
|
|
movs r0, 0
|
|
strh r0, [r4, 0xA]
|
|
b _080AD1D4
|
|
_080AD098:
|
|
adds r0, r4, 0
|
|
bl sub_8076640
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080AD0A6
|
|
b _080AD1EE
|
|
_080AD0A6:
|
|
ldrh r0, [r4, 0x26]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r1, r5, 0
|
|
movs r2, 0x6
|
|
bl sub_80AD1F8
|
|
b _080AD1D4
|
|
_080AD0B6:
|
|
ldrh r0, [r4, 0xA]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0xA]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1
|
|
ble _080AD104
|
|
movs r0, 0
|
|
strh r0, [r4, 0xA]
|
|
ldrh r0, [r4, 0xC]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0xC]
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080AD0F0
|
|
ldr r2, _080AD0EC @ =gSprites
|
|
movs r0, 0x26
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrh r1, [r0, 0x26]
|
|
adds r1, 0x3
|
|
b _080AD102
|
|
.align 2, 0
|
|
_080AD0EC: .4byte gSprites
|
|
_080AD0F0:
|
|
ldr r2, _080AD13C @ =gSprites
|
|
movs r0, 0x26
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrh r1, [r0, 0x26]
|
|
subs r1, 0x3
|
|
_080AD102:
|
|
strh r1, [r0, 0x26]
|
|
_080AD104:
|
|
ldrh r0, [r4, 0xE]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0xE]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x18
|
|
ble _080AD1EE
|
|
movs r1, 0x12
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
beq _080AD140
|
|
ldrh r1, [r4, 0x26]
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
movs r2, 0xC0
|
|
lsls r2, 1
|
|
movs r0, 0x80
|
|
lsls r0, 1
|
|
str r0, [sp]
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0x8
|
|
str r0, [sp, 0x8]
|
|
adds r0, r4, 0
|
|
movs r3, 0xF0
|
|
bl sub_80765D4
|
|
b _080AD15E
|
|
.align 2, 0
|
|
_080AD13C: .4byte gSprites
|
|
_080AD140:
|
|
ldrh r1, [r4, 0x26]
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
movs r2, 0xC0
|
|
lsls r2, 1
|
|
movs r0, 0x80
|
|
lsls r0, 1
|
|
str r0, [sp]
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0x8
|
|
str r0, [sp, 0x8]
|
|
adds r0, r4, 0
|
|
movs r3, 0xC0
|
|
bl sub_80765D4
|
|
_080AD15E:
|
|
ldrh r1, [r4, 0xC]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080AD17C
|
|
ldr r2, _080AD188 @ =gSprites
|
|
movs r0, 0x26
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrh r1, [r0, 0x26]
|
|
subs r1, 0x3
|
|
strh r1, [r0, 0x26]
|
|
_080AD17C:
|
|
movs r0, 0
|
|
strh r0, [r4, 0xA]
|
|
strh r0, [r4, 0xC]
|
|
strh r0, [r4, 0xE]
|
|
b _080AD1D4
|
|
.align 2, 0
|
|
_080AD188: .4byte gSprites
|
|
_080AD18C:
|
|
movs r1, 0x12
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
beq _080AD1A8
|
|
ldr r2, _080AD1DC @ =gSprites
|
|
movs r0, 0x26
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrh r1, [r0, 0x22]
|
|
subs r1, 0x1
|
|
strh r1, [r0, 0x22]
|
|
_080AD1A8:
|
|
adds r0, r4, 0
|
|
bl sub_8076640
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0
|
|
bne _080AD1EE
|
|
ldr r2, _080AD1DC @ =gSprites
|
|
movs r0, 0x26
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrh r1, [r4, 0x10]
|
|
strh r1, [r0, 0x22]
|
|
ldrh r0, [r4, 0x26]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl sub_8075980
|
|
strh r5, [r4, 0xC]
|
|
_080AD1D4:
|
|
ldrh r0, [r4, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x8]
|
|
b _080AD1EE
|
|
.align 2, 0
|
|
_080AD1DC: .4byte gSprites
|
|
_080AD1E0:
|
|
movs r1, 0x14
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bne _080AD1EE
|
|
adds r0, r5, 0
|
|
bl DestroyAnimVisualTask
|
|
_080AD1EE:
|
|
add sp, 0xC
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80ACF14
|
|
|
|
thumb_func_start sub_80AD1F8
|
|
sub_80AD1F8: @ 80AD1F8
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0xC
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
lsls r1, 24
|
|
lsrs r7, r1, 24
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
mov r8, r2
|
|
adds r0, r4, 0
|
|
bl sub_80AD374
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
mov r9, r0
|
|
ldr r1, _080AD248 @ =gSprites
|
|
lsls r0, r4, 4
|
|
adds r0, r4
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrh r4, [r0, 0x20]
|
|
ldr r0, _080AD24C @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080AD250
|
|
adds r0, r4, 0
|
|
subs r0, 0xC
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
movs r0, 0x1
|
|
b _080AD25A
|
|
.align 2, 0
|
|
_080AD248: .4byte gSprites
|
|
_080AD24C: .4byte gUnknown_2037F1A
|
|
_080AD250:
|
|
adds r0, r4, 0
|
|
adds r0, 0x10
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
movs r0, 0xFF
|
|
_080AD25A:
|
|
movs r6, 0
|
|
movs r5, 0
|
|
lsls r4, 16
|
|
str r4, [sp, 0x8]
|
|
mov r1, r9
|
|
lsls r1, 16
|
|
str r1, [sp, 0x4]
|
|
ldr r2, _080AD314 @ =gUnknown_83E5E44
|
|
mov r9, r2
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
str r0, [sp]
|
|
mov r3, r8
|
|
lsls r3, 1
|
|
mov r10, r3
|
|
_080AD278:
|
|
ldr r0, _080AD318 @ =gUnknown_83E5E2C
|
|
ldr r2, [sp, 0x8]
|
|
asrs r1, r2, 16
|
|
ldr r3, [sp, 0x4]
|
|
asrs r2, r3, 16
|
|
movs r3, 0x2
|
|
bl CreateSprite
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0x40
|
|
beq _080AD2FA
|
|
ldr r1, _080AD31C @ =gSprites
|
|
lsls r0, r2, 4
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r4, r0, r1
|
|
ldrh r2, [r4, 0x4]
|
|
lsls r1, r2, 22
|
|
lsrs r1, 22
|
|
lsls r0, r5, 2
|
|
adds r0, 0x40
|
|
adds r1, r0
|
|
ldr r3, _080AD320 @ =0x000003ff
|
|
adds r0, r3, 0
|
|
ands r1, r0
|
|
ldr r3, _080AD324 @ =0xfffffc00
|
|
adds r0, r3, 0
|
|
ands r2, r0
|
|
orrs r2, r1
|
|
strh r2, [r4, 0x4]
|
|
adds r0, r5, 0x1
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
cmp r5, 0x4
|
|
bls _080AD2C2
|
|
movs r5, 0
|
|
_080AD2C2:
|
|
lsls r2, r6, 2
|
|
mov r1, r9
|
|
adds r0, r2, r1
|
|
ldrh r0, [r0]
|
|
ldr r3, [sp]
|
|
adds r1, r0, 0
|
|
muls r1, r3
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
ldr r0, _080AD328 @ =gUnknown_83E5E46
|
|
adds r2, r0
|
|
movs r3, 0
|
|
ldrsh r2, [r2, r3]
|
|
adds r0, r4, 0
|
|
bl sub_80AD3C8
|
|
strh r7, [r4, 0x3A]
|
|
mov r0, r8
|
|
strh r0, [r4, 0x3C]
|
|
lsls r0, r7, 2
|
|
adds r0, r7
|
|
lsls r0, 3
|
|
add r0, r10
|
|
ldr r1, _080AD32C @ =gTasks+0x8
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
adds r1, 0x1
|
|
strh r1, [r0]
|
|
_080AD2FA:
|
|
adds r0, r6, 0x1
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
cmp r6, 0x6
|
|
bls _080AD278
|
|
add sp, 0xC
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AD314: .4byte gUnknown_83E5E44
|
|
_080AD318: .4byte gUnknown_83E5E2C
|
|
_080AD31C: .4byte gSprites
|
|
_080AD320: .4byte 0x000003ff
|
|
_080AD324: .4byte 0xfffffc00
|
|
_080AD328: .4byte gUnknown_83E5E46
|
|
_080AD32C: .4byte gTasks+0x8
|
|
thumb_func_end sub_80AD1F8
|
|
|
|
thumb_func_start sub_80AD330
|
|
sub_80AD330: @ 80AD330
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_80AD3E4
|
|
adds r0, r4, 0
|
|
adds r0, 0x3E
|
|
ldrb r1, [r0]
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080AD36A
|
|
ldr r3, _080AD370 @ =gTasks
|
|
movs r0, 0x3C
|
|
ldrsh r1, [r4, r0]
|
|
lsls r1, 1
|
|
movs r0, 0x3A
|
|
ldrsh r2, [r4, r0]
|
|
lsls r0, r2, 2
|
|
adds r0, r2
|
|
lsls r0, 3
|
|
adds r1, r0
|
|
adds r3, 0x8
|
|
adds r1, r3
|
|
ldrh r0, [r1]
|
|
subs r0, 0x1
|
|
strh r0, [r1]
|
|
adds r0, r4, 0
|
|
bl DestroySprite
|
|
_080AD36A:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AD370: .4byte gTasks
|
|
thumb_func_end sub_80AD330
|
|
|
|
thumb_func_start sub_80AD374
|
|
sub_80AD374: @ 80AD374
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, _080AD3AC @ =gSprites
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
ldrh r2, [r1, 0x26]
|
|
ldrh r0, [r1, 0x22]
|
|
adds r2, r0
|
|
adds r1, 0x29
|
|
movs r0, 0
|
|
ldrsb r0, [r1, r0]
|
|
adds r0, r2
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
ldr r0, _080AD3B0 @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080AD3B4
|
|
lsls r0, r4, 16
|
|
movs r1, 0x94
|
|
lsls r1, 15
|
|
b _080AD3BA
|
|
.align 2, 0
|
|
_080AD3AC: .4byte gSprites
|
|
_080AD3B0: .4byte gUnknown_2037F1A
|
|
_080AD3B4:
|
|
lsls r0, r4, 16
|
|
movs r1, 0xB0
|
|
lsls r1, 14
|
|
_080AD3BA:
|
|
adds r0, r1
|
|
lsrs r4, r0, 16
|
|
adds r0, r4, 0
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80AD374
|
|
|
|
thumb_func_start sub_80AD3C8
|
|
sub_80AD3C8: @ 80AD3C8
|
|
movs r3, 0
|
|
strh r3, [r0, 0x2E]
|
|
strh r3, [r0, 0x30]
|
|
ldrh r3, [r0, 0x20]
|
|
lsls r3, 3
|
|
strh r3, [r0, 0x32]
|
|
ldrh r3, [r0, 0x22]
|
|
lsls r3, 3
|
|
strh r3, [r0, 0x34]
|
|
lsls r1, 3
|
|
strh r1, [r0, 0x36]
|
|
lsls r2, 3
|
|
strh r2, [r0, 0x38]
|
|
bx lr
|
|
thumb_func_end sub_80AD3C8
|
|
|
|
thumb_func_start sub_80AD3E4
|
|
sub_80AD3E4: @ 80AD3E4
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
ldrh r0, [r2, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r2, 0x2E]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x2
|
|
ble _080AD40E
|
|
movs r0, 0
|
|
strh r0, [r2, 0x2E]
|
|
ldrh r0, [r2, 0x30]
|
|
adds r0, 0x1
|
|
strh r0, [r2, 0x30]
|
|
ldrh r0, [r2, 0x30]
|
|
adds r1, r0, 0
|
|
muls r1, r0
|
|
adds r0, r1, 0
|
|
ldrh r3, [r2, 0x34]
|
|
adds r0, r3
|
|
strh r0, [r2, 0x34]
|
|
_080AD40E:
|
|
ldrh r0, [r2, 0x36]
|
|
ldrh r1, [r2, 0x32]
|
|
adds r0, r1
|
|
strh r0, [r2, 0x32]
|
|
lsls r0, 16
|
|
asrs r0, 19
|
|
strh r0, [r2, 0x20]
|
|
ldrh r1, [r2, 0x38]
|
|
ldrh r3, [r2, 0x34]
|
|
adds r1, r3
|
|
strh r1, [r2, 0x34]
|
|
lsls r1, 16
|
|
asrs r3, r1, 19
|
|
strh r3, [r2, 0x22]
|
|
adds r0, 0x8
|
|
lsls r0, 16
|
|
movs r1, 0x80
|
|
lsls r1, 17
|
|
cmp r0, r1
|
|
bhi _080AD444
|
|
adds r1, r3, 0
|
|
movs r0, 0x8
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
blt _080AD444
|
|
cmp r1, 0x78
|
|
ble _080AD450
|
|
_080AD444:
|
|
adds r0, r2, 0
|
|
adds r0, 0x3E
|
|
ldrb r1, [r0]
|
|
movs r2, 0x4
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
_080AD450:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80AD3E4
|
|
|
|
thumb_func_start sub_80AD454
|
|
sub_80AD454: @ 80AD454
|
|
push {r4,r5,lr}
|
|
ldr r3, _080AD498 @ =gUnknown_2037F02
|
|
ldrh r1, [r3]
|
|
movs r2, 0
|
|
strh r1, [r0, 0x20]
|
|
ldrh r1, [r3, 0x2]
|
|
strh r1, [r0, 0x22]
|
|
strh r2, [r0, 0x2E]
|
|
strh r2, [r0, 0x30]
|
|
strh r2, [r0, 0x32]
|
|
ldrh r1, [r3, 0x4]
|
|
strh r1, [r0, 0x3A]
|
|
ldrh r1, [r3, 0x6]
|
|
strh r1, [r0, 0x3C]
|
|
ldrh r4, [r0, 0x4]
|
|
lsls r2, r4, 22
|
|
lsrs r2, 22
|
|
movs r5, 0x8
|
|
ldrsh r1, [r3, r5]
|
|
lsls r1, 4
|
|
adds r2, r1
|
|
ldr r3, _080AD49C @ =0x000003ff
|
|
adds r1, r3, 0
|
|
ands r2, r1
|
|
ldr r1, _080AD4A0 @ =0xfffffc00
|
|
ands r1, r4
|
|
orrs r1, r2
|
|
strh r1, [r0, 0x4]
|
|
ldr r1, _080AD4A4 @ =sub_80AD4A8
|
|
str r1, [r0, 0x1C]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AD498: .4byte gUnknown_2037F02
|
|
_080AD49C: .4byte 0x000003ff
|
|
_080AD4A0: .4byte 0xfffffc00
|
|
_080AD4A4: .4byte sub_80AD4A8
|
|
thumb_func_end sub_80AD454
|
|
|
|
thumb_func_start sub_80AD4A8
|
|
sub_80AD4A8: @ 80AD4A8
|
|
push {r4,lr}
|
|
adds r2, r0, 0
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r2, r1]
|
|
cmp r0, 0x1
|
|
beq _080AD4DA
|
|
cmp r0, 0x1
|
|
bgt _080AD4BE
|
|
cmp r0, 0
|
|
beq _080AD4C4
|
|
b _080AD538
|
|
_080AD4BE:
|
|
cmp r0, 0x2
|
|
beq _080AD4F8
|
|
b _080AD538
|
|
_080AD4C4:
|
|
ldrh r1, [r2, 0x3A]
|
|
movs r3, 0x3A
|
|
ldrsh r0, [r2, r3]
|
|
cmp r0, 0
|
|
beq _080AD4D4
|
|
subs r0, r1, 0x1
|
|
strh r0, [r2, 0x3A]
|
|
b _080AD538
|
|
_080AD4D4:
|
|
ldrh r0, [r2, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r2, 0x2E]
|
|
_080AD4DA:
|
|
ldrh r0, [r2, 0x22]
|
|
adds r0, 0x8
|
|
strh r0, [r2, 0x22]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
ldrh r3, [r2, 0x3C]
|
|
movs r4, 0x3C
|
|
ldrsh r1, [r2, r4]
|
|
cmp r0, r1
|
|
blt _080AD538
|
|
strh r3, [r2, 0x22]
|
|
ldrh r0, [r2, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r2, 0x2E]
|
|
b _080AD538
|
|
_080AD4F8:
|
|
ldrh r0, [r2, 0x30]
|
|
adds r0, 0x1
|
|
strh r0, [r2, 0x30]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1
|
|
ble _080AD524
|
|
movs r0, 0
|
|
strh r0, [r2, 0x30]
|
|
ldrh r0, [r2, 0x32]
|
|
adds r0, 0x1
|
|
strh r0, [r2, 0x32]
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080AD520
|
|
ldr r0, _080AD51C @ =0x0000fffd
|
|
b _080AD522
|
|
.align 2, 0
|
|
_080AD51C: .4byte 0x0000fffd
|
|
_080AD520:
|
|
movs r0, 0x3
|
|
_080AD522:
|
|
strh r0, [r2, 0x26]
|
|
_080AD524:
|
|
ldrh r0, [r2, 0x34]
|
|
adds r0, 0x1
|
|
strh r0, [r2, 0x34]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x10
|
|
ble _080AD538
|
|
adds r0, r2, 0
|
|
bl DestroyAnimSprite
|
|
_080AD538:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80AD4A8
|
|
|
|
thumb_func_start sub_80AD540
|
|
sub_80AD540: @ 80AD540
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0x1
|
|
beq _080AD5B4
|
|
cmp r0, 0x1
|
|
bgt _080AD556
|
|
cmp r0, 0
|
|
beq _080AD55C
|
|
b _080AD682
|
|
_080AD556:
|
|
cmp r0, 0x2
|
|
beq _080AD612
|
|
b _080AD682
|
|
_080AD55C:
|
|
adds r0, r5, 0
|
|
movs r1, 0
|
|
bl sub_8075160
|
|
ldr r4, _080AD584 @ =gUnknown_2037F02
|
|
ldrb r1, [r4, 0x4]
|
|
adds r0, r5, 0
|
|
bl StartSpriteAnim
|
|
ldrh r0, [r4, 0x4]
|
|
strh r0, [r5, 0x3C]
|
|
ldr r0, _080AD588 @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080AD58C
|
|
movs r0, 0x4
|
|
b _080AD58E
|
|
.align 2, 0
|
|
_080AD584: .4byte gUnknown_2037F02
|
|
_080AD588: .4byte gUnknown_2037F1A
|
|
_080AD58C:
|
|
ldr r0, _080AD5AC @ =0x0000fffc
|
|
_080AD58E:
|
|
strh r0, [r5, 0x36]
|
|
ldr r0, _080AD5B0 @ =gUnknown_2037F1B
|
|
ldrb r0, [r0]
|
|
bl sub_8076884
|
|
movs r1, 0x3
|
|
ands r1, r0
|
|
lsls r1, 2
|
|
ldrb r2, [r5, 0x5]
|
|
movs r0, 0xD
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r5, 0x5]
|
|
b _080AD60A
|
|
.align 2, 0
|
|
_080AD5AC: .4byte 0x0000fffc
|
|
_080AD5B0: .4byte gUnknown_2037F1B
|
|
_080AD5B4:
|
|
ldrh r0, [r5, 0x30]
|
|
adds r0, 0xC0
|
|
strh r0, [r5, 0x30]
|
|
ldr r0, _080AD5D4 @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080AD5D8
|
|
ldrh r0, [r5, 0x30]
|
|
lsls r0, 16
|
|
asrs r0, 24
|
|
negs r0, r0
|
|
b _080AD5DE
|
|
.align 2, 0
|
|
_080AD5D4: .4byte gUnknown_2037F1A
|
|
_080AD5D8:
|
|
ldrh r0, [r5, 0x30]
|
|
lsls r0, 16
|
|
asrs r0, 24
|
|
_080AD5DE:
|
|
strh r0, [r5, 0x26]
|
|
movs r2, 0x32
|
|
ldrsh r0, [r5, r2]
|
|
movs r2, 0x36
|
|
ldrsh r1, [r5, r2]
|
|
bl Sin
|
|
strh r0, [r5, 0x24]
|
|
ldrh r0, [r5, 0x32]
|
|
adds r0, 0x4
|
|
movs r1, 0xFF
|
|
ands r0, r1
|
|
strh r0, [r5, 0x32]
|
|
ldrh r0, [r5, 0x34]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x34]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1
|
|
bne _080AD682
|
|
movs r0, 0
|
|
strh r0, [r5, 0x34]
|
|
_080AD60A:
|
|
ldrh r0, [r5, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x2E]
|
|
b _080AD682
|
|
_080AD612:
|
|
movs r1, 0x32
|
|
ldrsh r0, [r5, r1]
|
|
movs r2, 0x36
|
|
ldrsh r1, [r5, r2]
|
|
bl Sin
|
|
adds r2, r0, 0
|
|
movs r3, 0
|
|
strh r2, [r5, 0x24]
|
|
ldrh r0, [r5, 0x32]
|
|
adds r0, 0x4
|
|
movs r1, 0xFF
|
|
ands r0, r1
|
|
strh r0, [r5, 0x32]
|
|
ldrh r0, [r5, 0x34]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x34]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1F
|
|
bne _080AD682
|
|
ldrh r0, [r5, 0x20]
|
|
adds r1, r2, r0
|
|
strh r1, [r5, 0x20]
|
|
ldrh r0, [r5, 0x26]
|
|
ldrh r2, [r5, 0x22]
|
|
adds r0, r2
|
|
strh r0, [r5, 0x22]
|
|
strh r3, [r5, 0x26]
|
|
strh r3, [r5, 0x24]
|
|
movs r0, 0x80
|
|
lsls r0, 1
|
|
strh r0, [r5, 0x2E]
|
|
strh r1, [r5, 0x30]
|
|
ldr r4, _080AD688 @ =gUnknown_2037F1B
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x32]
|
|
ldrh r0, [r5, 0x22]
|
|
strh r0, [r5, 0x34]
|
|
ldrb r0, [r4]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x36]
|
|
adds r0, r5, 0
|
|
bl sub_8075678
|
|
ldr r0, _080AD68C @ =sub_80AD690
|
|
str r0, [r5, 0x1C]
|
|
_080AD682:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AD688: .4byte gUnknown_2037F1B
|
|
_080AD68C: .4byte sub_80AD690
|
|
thumb_func_end sub_80AD540
|
|
|
|
thumb_func_start sub_80AD690
|
|
sub_80AD690: @ 80AD690
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_80755E0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080AD6E8
|
|
movs r1, 0x38
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0x10
|
|
bl Sin
|
|
ldrh r1, [r4, 0x24]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x24]
|
|
ldrh r2, [r4, 0x38]
|
|
adds r0, r2, 0x4
|
|
movs r1, 0xFF
|
|
ands r0, r1
|
|
strh r0, [r4, 0x38]
|
|
ldrh r0, [r4, 0x38]
|
|
lsls r2, 16
|
|
asrs r2, 16
|
|
cmp r2, 0
|
|
beq _080AD6C6
|
|
cmp r2, 0xC4
|
|
ble _080AD6EE
|
|
_080AD6C6:
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
ble _080AD6EE
|
|
movs r1, 0x3C
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bne _080AD6EE
|
|
ldr r0, _080AD6E4 @ =gUnknown_2037F24
|
|
movs r1, 0
|
|
ldrsb r1, [r0, r1]
|
|
movs r0, 0x89
|
|
bl PlaySE12WithPanning
|
|
b _080AD6EE
|
|
.align 2, 0
|
|
_080AD6E4: .4byte gUnknown_2037F24
|
|
_080AD6E8:
|
|
adds r0, r4, 0
|
|
bl DestroyAnimSprite
|
|
_080AD6EE:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80AD690
|
|
|
|
thumb_func_start sub_80AD6F4
|
|
sub_80AD6F4: @ 80AD6F4
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrh r1, [r4, 0x2E]
|
|
movs r2, 0x2E
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0
|
|
bne _080AD70C
|
|
ldr r0, _080AD778 @ =gUnknown_2037F02
|
|
ldrh r0, [r0]
|
|
strh r0, [r4, 0x30]
|
|
adds r0, r1, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
_080AD70C:
|
|
movs r0, 0xC0
|
|
lsls r0, 1
|
|
adds r1, r0, 0
|
|
ldrh r2, [r4, 0x34]
|
|
adds r1, r2
|
|
strh r1, [r4, 0x34]
|
|
ldrh r0, [r4, 0x36]
|
|
adds r0, 0xA0
|
|
strh r0, [r4, 0x36]
|
|
movs r2, 0x30
|
|
ldrsh r0, [r4, r2]
|
|
lsls r1, 16
|
|
asrs r1, 24
|
|
bl Sin
|
|
strh r0, [r4, 0x24]
|
|
movs r1, 0x30
|
|
ldrsh r0, [r4, r1]
|
|
ldrh r1, [r4, 0x36]
|
|
lsls r1, 16
|
|
asrs r1, 24
|
|
bl Cos
|
|
strh r0, [r4, 0x26]
|
|
ldrh r0, [r4, 0x30]
|
|
adds r0, 0x7
|
|
movs r1, 0xFF
|
|
ands r0, r1
|
|
strh r0, [r4, 0x30]
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080AD7A8
|
|
ldrh r0, [r4, 0x30]
|
|
subs r0, 0x40
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x83
|
|
bls _080AD780
|
|
ldr r0, _080AD77C @ =gUnknown_2037F1B
|
|
ldrb r0, [r0]
|
|
bl sub_8076884
|
|
movs r1, 0x3
|
|
ands r1, r0
|
|
lsls r1, 2
|
|
ldrb r2, [r4, 0x5]
|
|
movs r0, 0xD
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r4, 0x5]
|
|
b _080AD7C4
|
|
.align 2, 0
|
|
_080AD778: .4byte gUnknown_2037F02
|
|
_080AD77C: .4byte gUnknown_2037F1B
|
|
_080AD780:
|
|
ldr r0, _080AD7A4 @ =gUnknown_2037F1B
|
|
ldrb r0, [r0]
|
|
bl sub_8076884
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r0, 0x1
|
|
movs r1, 0x3
|
|
ands r0, r1
|
|
lsls r0, 2
|
|
ldrb r2, [r4, 0x5]
|
|
movs r1, 0xD
|
|
negs r1, r1
|
|
ands r1, r2
|
|
orrs r1, r0
|
|
strb r1, [r4, 0x5]
|
|
b _080AD7C4
|
|
.align 2, 0
|
|
_080AD7A4: .4byte gUnknown_2037F1B
|
|
_080AD7A8:
|
|
ldrh r0, [r4, 0x30]
|
|
subs r0, 0x40
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x83
|
|
bls _080AD7BC
|
|
adds r1, r4, 0
|
|
adds r1, 0x43
|
|
movs r0, 0x1D
|
|
b _080AD7C2
|
|
_080AD7BC:
|
|
adds r1, r4, 0
|
|
adds r1, 0x43
|
|
movs r0, 0x1F
|
|
_080AD7C2:
|
|
strb r0, [r1]
|
|
_080AD7C4:
|
|
ldrh r0, [r4, 0x32]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x32]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x14
|
|
ble _080AD7EC
|
|
adds r3, r4, 0
|
|
adds r3, 0x3E
|
|
ldrb r2, [r3]
|
|
lsls r0, r2, 29
|
|
lsrs r0, 31
|
|
movs r1, 0x1
|
|
eors r1, r0
|
|
lsls r1, 2
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r3]
|
|
_080AD7EC:
|
|
movs r2, 0x32
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0x1E
|
|
bne _080AD7FA
|
|
adds r0, r4, 0
|
|
bl DestroyAnimSprite
|
|
_080AD7FA:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80AD6F4
|
|
|
|
thumb_func_start sub_80AD800
|
|
sub_80AD800: @ 80AD800
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
ldr r0, _080AD860 @ =gTasks
|
|
adds r4, r1, r0
|
|
ldr r0, _080AD864 @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
adds r1, r2, 0
|
|
cmp r0, 0
|
|
bne _080AD826
|
|
movs r1, 0x1
|
|
_080AD826:
|
|
strh r1, [r4, 0x20]
|
|
ldr r0, _080AD868 @ =gUnknown_2037F1B
|
|
ldrb r1, [r0]
|
|
movs r0, 0x2
|
|
eors r0, r1
|
|
bl sub_8072DF0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x22]
|
|
movs r0, 0x1
|
|
bl GetAnimBankSpriteId
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x24]
|
|
movs r0, 0x3
|
|
bl GetAnimBankSpriteId
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x26]
|
|
ldr r0, _080AD86C @ =sub_80AD870
|
|
str r0, [r4]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AD860: .4byte gTasks
|
|
_080AD864: .4byte gUnknown_2037F1A
|
|
_080AD868: .4byte gUnknown_2037F1B
|
|
_080AD86C: .4byte sub_80AD870
|
|
thumb_func_end sub_80AD800
|
|
|
|
thumb_func_start sub_80AD870
|
|
sub_80AD870: @ 80AD870
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
ldr r1, _080AD894 @ =gTasks
|
|
adds r2, r0, r1
|
|
movs r0, 0x8
|
|
ldrsh r3, [r2, r0]
|
|
cmp r3, 0x1
|
|
beq _080AD938
|
|
cmp r3, 0x1
|
|
bgt _080AD898
|
|
cmp r3, 0
|
|
beq _080AD8A6
|
|
b _080ADA98
|
|
.align 2, 0
|
|
_080AD894: .4byte gTasks
|
|
_080AD898:
|
|
cmp r3, 0x2
|
|
bne _080AD89E
|
|
b _080AD9C0
|
|
_080AD89E:
|
|
cmp r3, 0x3
|
|
bne _080AD8A4
|
|
b _080ADA54
|
|
_080AD8A4:
|
|
b _080ADA98
|
|
_080AD8A6:
|
|
movs r1, 0x20
|
|
ldrsh r0, [r2, r1]
|
|
lsls r0, 1
|
|
ldrh r5, [r2, 0x1C]
|
|
adds r0, r5
|
|
strh r0, [r2, 0x1C]
|
|
ldrh r0, [r2, 0xA]
|
|
adds r0, 0x1
|
|
strh r0, [r2, 0xA]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1
|
|
ble _080AD8D8
|
|
strh r3, [r2, 0xA]
|
|
ldrh r0, [r2, 0xC]
|
|
adds r0, 0x1
|
|
strh r0, [r2, 0xC]
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080AD8D4
|
|
movs r0, 0x2
|
|
b _080AD8D6
|
|
_080AD8D4:
|
|
ldr r0, _080AD930 @ =0x0000fffe
|
|
_080AD8D6:
|
|
strh r0, [r2, 0x1E]
|
|
_080AD8D8:
|
|
movs r1, 0
|
|
strh r1, [r2, 0xE]
|
|
movs r7, 0x22
|
|
ldrsh r0, [r2, r7]
|
|
cmp r1, r0
|
|
bge _080AD91A
|
|
ldr r4, _080AD934 @ =gSprites
|
|
adds r3, r2, 0
|
|
adds r3, 0x8
|
|
_080AD8EA:
|
|
movs r1, 0xE
|
|
ldrsh r0, [r2, r1]
|
|
adds r0, 0xE
|
|
lsls r0, 1
|
|
adds r0, r3, r0
|
|
movs r5, 0
|
|
ldrsh r0, [r0, r5]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r4
|
|
ldrh r0, [r2, 0x1E]
|
|
ldrh r7, [r2, 0x1C]
|
|
adds r0, r7
|
|
strh r0, [r1, 0x24]
|
|
ldrh r0, [r2, 0xE]
|
|
adds r0, 0x1
|
|
strh r0, [r2, 0xE]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r5, 0x22
|
|
ldrsh r1, [r2, r5]
|
|
cmp r0, r1
|
|
blt _080AD8EA
|
|
_080AD91A:
|
|
ldrh r0, [r2, 0x1A]
|
|
adds r0, 0x1
|
|
strh r0, [r2, 0x1A]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x10
|
|
beq _080AD92A
|
|
b _080ADA98
|
|
_080AD92A:
|
|
movs r0, 0
|
|
strh r0, [r2, 0x1A]
|
|
b _080ADA44
|
|
.align 2, 0
|
|
_080AD930: .4byte 0x0000fffe
|
|
_080AD934: .4byte gSprites
|
|
_080AD938:
|
|
ldrh r0, [r2, 0xA]
|
|
adds r0, 0x1
|
|
strh r0, [r2, 0xA]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x4
|
|
ble _080AD960
|
|
movs r0, 0
|
|
strh r0, [r2, 0xA]
|
|
ldrh r0, [r2, 0xC]
|
|
adds r0, 0x1
|
|
strh r0, [r2, 0xC]
|
|
ands r0, r3
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
beq _080AD95C
|
|
movs r0, 0x2
|
|
b _080AD95E
|
|
_080AD95C:
|
|
ldr r0, _080AD9B8 @ =0x0000fffe
|
|
_080AD95E:
|
|
strh r0, [r2, 0x1E]
|
|
_080AD960:
|
|
movs r1, 0
|
|
strh r1, [r2, 0xE]
|
|
movs r7, 0x22
|
|
ldrsh r0, [r2, r7]
|
|
cmp r1, r0
|
|
bge _080AD9A2
|
|
ldr r4, _080AD9BC @ =gSprites
|
|
adds r3, r2, 0
|
|
adds r3, 0x8
|
|
_080AD972:
|
|
movs r1, 0xE
|
|
ldrsh r0, [r2, r1]
|
|
adds r0, 0xE
|
|
lsls r0, 1
|
|
adds r0, r3, r0
|
|
movs r5, 0
|
|
ldrsh r0, [r0, r5]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r4
|
|
ldrh r0, [r2, 0x1E]
|
|
ldrh r7, [r2, 0x1C]
|
|
adds r0, r7
|
|
strh r0, [r1, 0x24]
|
|
ldrh r0, [r2, 0xE]
|
|
adds r0, 0x1
|
|
strh r0, [r2, 0xE]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r5, 0x22
|
|
ldrsh r1, [r2, r5]
|
|
cmp r0, r1
|
|
blt _080AD972
|
|
_080AD9A2:
|
|
ldrh r0, [r2, 0x1A]
|
|
adds r0, 0x1
|
|
strh r0, [r2, 0x1A]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x60
|
|
bne _080ADA98
|
|
movs r0, 0
|
|
strh r0, [r2, 0x1A]
|
|
b _080ADA44
|
|
.align 2, 0
|
|
_080AD9B8: .4byte 0x0000fffe
|
|
_080AD9BC: .4byte gSprites
|
|
_080AD9C0:
|
|
movs r7, 0x20
|
|
ldrsh r1, [r2, r7]
|
|
lsls r1, 1
|
|
ldrh r0, [r2, 0x1C]
|
|
subs r0, r1
|
|
strh r0, [r2, 0x1C]
|
|
ldrh r0, [r2, 0xA]
|
|
adds r0, 0x1
|
|
strh r0, [r2, 0xA]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1
|
|
ble _080AD9F4
|
|
movs r0, 0
|
|
strh r0, [r2, 0xA]
|
|
ldrh r0, [r2, 0xC]
|
|
adds r0, 0x1
|
|
strh r0, [r2, 0xC]
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080AD9F0
|
|
strh r3, [r2, 0x1E]
|
|
b _080AD9F4
|
|
_080AD9F0:
|
|
ldr r0, _080ADA4C @ =0x0000fffe
|
|
strh r0, [r2, 0x1E]
|
|
_080AD9F4:
|
|
movs r1, 0
|
|
strh r1, [r2, 0xE]
|
|
movs r3, 0x22
|
|
ldrsh r0, [r2, r3]
|
|
cmp r1, r0
|
|
bge _080ADA36
|
|
ldr r4, _080ADA50 @ =gSprites
|
|
adds r3, r2, 0
|
|
adds r3, 0x8
|
|
_080ADA06:
|
|
movs r5, 0xE
|
|
ldrsh r0, [r2, r5]
|
|
adds r0, 0xE
|
|
lsls r0, 1
|
|
adds r0, r3, r0
|
|
movs r7, 0
|
|
ldrsh r0, [r0, r7]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r4
|
|
ldrh r0, [r2, 0x1E]
|
|
ldrh r5, [r2, 0x1C]
|
|
adds r0, r5
|
|
strh r0, [r1, 0x24]
|
|
ldrh r0, [r2, 0xE]
|
|
adds r0, 0x1
|
|
strh r0, [r2, 0xE]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r7, 0x22
|
|
ldrsh r1, [r2, r7]
|
|
cmp r0, r1
|
|
blt _080ADA06
|
|
_080ADA36:
|
|
ldrh r0, [r2, 0x1A]
|
|
adds r0, 0x1
|
|
strh r0, [r2, 0x1A]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x10
|
|
bne _080ADA98
|
|
_080ADA44:
|
|
ldrh r0, [r2, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r2, 0x8]
|
|
b _080ADA98
|
|
.align 2, 0
|
|
_080ADA4C: .4byte 0x0000fffe
|
|
_080ADA50: .4byte gSprites
|
|
_080ADA54:
|
|
movs r1, 0
|
|
strh r1, [r2, 0xE]
|
|
movs r3, 0x22
|
|
ldrsh r0, [r2, r3]
|
|
cmp r1, r0
|
|
bge _080ADA92
|
|
ldr r6, _080ADAA0 @ =gSprites
|
|
adds r3, r2, 0
|
|
adds r3, 0x8
|
|
movs r5, 0
|
|
_080ADA68:
|
|
movs r7, 0xE
|
|
ldrsh r0, [r2, r7]
|
|
adds r0, 0xE
|
|
lsls r0, 1
|
|
adds r0, r3, r0
|
|
movs r7, 0
|
|
ldrsh r1, [r0, r7]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
strh r5, [r0, 0x24]
|
|
ldrh r0, [r2, 0xE]
|
|
adds r0, 0x1
|
|
strh r0, [r2, 0xE]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r7, 0x22
|
|
ldrsh r1, [r2, r7]
|
|
cmp r0, r1
|
|
blt _080ADA68
|
|
_080ADA92:
|
|
adds r0, r4, 0
|
|
bl DestroyAnimVisualTask
|
|
_080ADA98:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080ADAA0: .4byte gSprites
|
|
thumb_func_end sub_80AD870
|
|
|
|
thumb_func_start sub_80ADAA4
|
|
sub_80ADAA4: @ 80ADAA4
|
|
push {r4,lr}
|
|
sub sp, 0x10
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
mov r0, sp
|
|
bl sub_80752A0
|
|
mov r0, sp
|
|
ldrb r0, [r0, 0x8]
|
|
lsls r0, 4
|
|
ldr r1, _080ADAD4 @ =gUnknown_2037F02
|
|
ldrb r2, [r1]
|
|
ldrh r3, [r1, 0x2]
|
|
movs r1, 0x10
|
|
bl BlendPalette
|
|
adds r0, r4, 0
|
|
bl DestroyAnimVisualTask
|
|
add sp, 0x10
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080ADAD4: .4byte gUnknown_2037F02
|
|
thumb_func_end sub_80ADAA4
|
|
|
|
thumb_func_start sub_80ADAD8
|
|
sub_80ADAD8: @ 80ADAD8
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
ldr r1, _080ADB30 @ =gTasks
|
|
lsls r0, r7, 2
|
|
adds r0, r7
|
|
lsls r0, 3
|
|
adds r2, r0, r1
|
|
movs r3, 0x8
|
|
ldrsh r0, [r2, r3]
|
|
mov r9, r1
|
|
ldr r4, _080ADB34 @ =gUnknown_2037F02
|
|
mov r8, r4
|
|
cmp r0, 0
|
|
bne _080ADB0E
|
|
ldrh r0, [r4]
|
|
strh r0, [r2, 0xA]
|
|
ldrh r0, [r4, 0x2]
|
|
strh r0, [r2, 0xC]
|
|
ldrh r0, [r4, 0x4]
|
|
strh r0, [r2, 0xE]
|
|
ldrh r0, [r4, 0x6]
|
|
strh r0, [r2, 0x10]
|
|
_080ADB0E:
|
|
ldrh r0, [r2, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r2, 0x8]
|
|
ldr r1, _080ADB38 @ =gUnknown_2023D44
|
|
ldr r0, _080ADB3C @ =gUnknown_2037F1B
|
|
ldrb r0, [r0]
|
|
adds r0, r1
|
|
ldrb r6, [r0]
|
|
movs r5, 0x10
|
|
ldrsh r0, [r2, r5]
|
|
cmp r0, 0
|
|
bne _080ADB44
|
|
ldr r4, _080ADB40 @ =gUnknown_83E5EFC
|
|
movs r1, 0x8
|
|
ldrsh r0, [r2, r1]
|
|
b _080ADB4A
|
|
.align 2, 0
|
|
_080ADB30: .4byte gTasks
|
|
_080ADB34: .4byte gUnknown_2037F02
|
|
_080ADB38: .4byte gUnknown_2023D44
|
|
_080ADB3C: .4byte gUnknown_2037F1B
|
|
_080ADB40: .4byte gUnknown_83E5EFC
|
|
_080ADB44:
|
|
ldr r4, _080ADB90 @ =gUnknown_83E5F0C
|
|
movs r3, 0x8
|
|
ldrsh r0, [r2, r3]
|
|
_080ADB4A:
|
|
movs r1, 0xA
|
|
bl __modsi3
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
adds r0, r4
|
|
ldrb r5, [r0]
|
|
lsls r0, r7, 2
|
|
adds r1, r0, r7
|
|
lsls r1, 3
|
|
add r1, r9
|
|
movs r4, 0xE
|
|
ldrsh r1, [r1, r4]
|
|
mov r12, r0
|
|
cmp r1, 0x1
|
|
bne _080ADB98
|
|
ldr r2, _080ADB94 @ =gSprites
|
|
lsls r3, r6, 4
|
|
adds r0, r3, r6
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
mov r10, r0
|
|
mov r0, r8
|
|
movs r4, 0x2
|
|
ldrsh r1, [r0, r4]
|
|
lsls r0, r5, 24
|
|
asrs r0, 24
|
|
muls r0, r1
|
|
cmp r0, 0
|
|
bge _080ADB88
|
|
negs r0, r0
|
|
_080ADB88:
|
|
mov r5, r10
|
|
strh r0, [r5, 0x26]
|
|
b _080ADBB2
|
|
.align 2, 0
|
|
_080ADB90: .4byte gUnknown_83E5F0C
|
|
_080ADB94: .4byte gSprites
|
|
_080ADB98:
|
|
ldr r3, _080ADBE8 @ =gSprites
|
|
lsls r4, r6, 4
|
|
adds r2, r4, r6
|
|
lsls r2, 2
|
|
adds r2, r3
|
|
lsls r0, r5, 24
|
|
asrs r0, 24
|
|
mov r5, r8
|
|
ldrh r1, [r5, 0x2]
|
|
muls r0, r1
|
|
strh r0, [r2, 0x24]
|
|
adds r2, r3, 0
|
|
adds r3, r4, 0
|
|
_080ADBB2:
|
|
mov r1, r12
|
|
adds r0, r1, r7
|
|
lsls r0, 3
|
|
add r0, r9
|
|
movs r4, 0x8
|
|
ldrsh r1, [r0, r4]
|
|
movs r5, 0xA
|
|
ldrsh r0, [r0, r5]
|
|
cmp r1, r0
|
|
bne _080ADBD8
|
|
adds r0, r3, r6
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
movs r1, 0
|
|
strh r1, [r0, 0x24]
|
|
strh r1, [r0, 0x26]
|
|
adds r0, r7, 0
|
|
bl DestroyAnimVisualTask
|
|
_080ADBD8:
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080ADBE8: .4byte gSprites
|
|
thumb_func_end sub_80ADAD8
|
|
|
|
thumb_func_start sub_80ADBEC
|
|
sub_80ADBEC: @ 80ADBEC
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldr r0, _080ADC0C @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080ADC14
|
|
ldr r0, _080ADC10 @ =gUnknown_2037F02
|
|
ldrh r1, [r4, 0x20]
|
|
ldrh r2, [r0]
|
|
subs r1, r2
|
|
strh r1, [r4, 0x20]
|
|
b _080ADC20
|
|
.align 2, 0
|
|
_080ADC0C: .4byte gUnknown_2037F1A
|
|
_080ADC10: .4byte gUnknown_2037F02
|
|
_080ADC14:
|
|
ldr r1, _080ADC34 @ =gUnknown_2037F02
|
|
ldrh r0, [r1]
|
|
ldrh r2, [r4, 0x20]
|
|
adds r0, r2
|
|
strh r0, [r4, 0x20]
|
|
adds r0, r1, 0
|
|
_080ADC20:
|
|
ldrh r0, [r0, 0x2]
|
|
ldrh r1, [r4, 0x22]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x22]
|
|
ldr r0, _080ADC38 @ =sub_80ADC3C
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080ADC34: .4byte gUnknown_2037F02
|
|
_080ADC38: .4byte sub_80ADC3C
|
|
thumb_func_end sub_80ADBEC
|
|
|
|
thumb_func_start sub_80ADC3C
|
|
sub_80ADC3C: @ 80ADC3C
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
adds r0, 0x3F
|
|
ldrb r1, [r0]
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080ADC52
|
|
adds r0, r2, 0
|
|
bl DestroyAnimSprite
|
|
_080ADC52:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80ADC3C
|
|
|
|
thumb_func_start sub_80ADC58
|
|
sub_80ADC58: @ 80ADC58
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldr r0, _080ADC78 @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080ADC80
|
|
ldr r0, _080ADC7C @ =gUnknown_2037F02
|
|
ldrh r1, [r4, 0x20]
|
|
ldrh r0, [r0]
|
|
subs r1, r0
|
|
strh r1, [r4, 0x20]
|
|
b _080ADC8A
|
|
.align 2, 0
|
|
_080ADC78: .4byte gUnknown_2037F1A
|
|
_080ADC7C: .4byte gUnknown_2037F02
|
|
_080ADC80:
|
|
ldr r0, _080ADC94 @ =gUnknown_2037F02
|
|
ldrh r0, [r0]
|
|
ldrh r1, [r4, 0x20]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x20]
|
|
_080ADC8A:
|
|
ldr r0, _080ADC98 @ =sub_80ADC9C
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080ADC94: .4byte gUnknown_2037F02
|
|
_080ADC98: .4byte sub_80ADC9C
|
|
thumb_func_end sub_80ADC58
|
|
|
|
thumb_func_start sub_80ADC9C
|
|
sub_80ADC9C: @ 80ADC9C
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
adds r0, 0x3F
|
|
ldrb r1, [r0]
|
|
movs r0, 0x20
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080ADCB2
|
|
adds r0, r2, 0
|
|
bl move_anim_8074EE0
|
|
_080ADCB2:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80ADC9C
|
|
|
|
thumb_func_start sub_80ADCB8
|
|
sub_80ADCB8: @ 80ADCB8
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
ldr r4, _080ADCFC @ =gUnknown_2037F1B
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x20]
|
|
ldrb r0, [r4]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x22]
|
|
ldr r0, _080ADD00 @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080ADD08
|
|
ldr r2, _080ADD04 @ =gUnknown_2037F02
|
|
ldrh r0, [r5, 0x20]
|
|
ldrh r1, [r2]
|
|
subs r0, r1
|
|
strh r0, [r5, 0x20]
|
|
ldrh r0, [r5, 0x22]
|
|
ldrh r1, [r2, 0x2]
|
|
subs r0, r1
|
|
strh r0, [r5, 0x22]
|
|
b _080ADD1C
|
|
.align 2, 0
|
|
_080ADCFC: .4byte gUnknown_2037F1B
|
|
_080ADD00: .4byte gUnknown_2037F1A
|
|
_080ADD04: .4byte gUnknown_2037F02
|
|
_080ADD08:
|
|
ldr r0, _080ADD40 @ =gUnknown_2037F02
|
|
ldrh r1, [r0]
|
|
ldrh r2, [r5, 0x20]
|
|
adds r1, r2
|
|
strh r1, [r5, 0x20]
|
|
ldrh r1, [r0, 0x2]
|
|
ldrh r2, [r5, 0x22]
|
|
adds r1, r2
|
|
strh r1, [r5, 0x22]
|
|
adds r2, r0, 0
|
|
_080ADD1C:
|
|
movs r0, 0
|
|
strh r0, [r5, 0x2E]
|
|
ldrh r0, [r2, 0x4]
|
|
strh r0, [r5, 0x30]
|
|
ldrh r0, [r2, 0x6]
|
|
strh r0, [r5, 0x32]
|
|
ldrh r0, [r2, 0x8]
|
|
strh r0, [r5, 0x34]
|
|
ldr r1, _080ADD44 @ =move_anim_8074EE0
|
|
adds r0, r5, 0
|
|
bl StoreSpriteCallbackInData6
|
|
ldr r0, _080ADD48 @ =sub_8074A80
|
|
str r0, [r5, 0x1C]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080ADD40: .4byte gUnknown_2037F02
|
|
_080ADD44: .4byte move_anim_8074EE0
|
|
_080ADD48: .4byte sub_8074A80
|
|
thumb_func_end sub_80ADCB8
|
|
|
|
thumb_func_start sub_80ADD4C
|
|
sub_80ADD4C: @ 80ADD4C
|
|
push {r4-r7,lr}
|
|
adds r5, r0, 0
|
|
ldr r0, _080ADD64 @ =gUnknown_2037F02
|
|
movs r1, 0x8
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0x1
|
|
beq _080ADDC4
|
|
cmp r0, 0x1
|
|
bgt _080ADD68
|
|
cmp r0, 0
|
|
beq _080ADD72
|
|
b _080ADDC4
|
|
.align 2, 0
|
|
_080ADD64: .4byte gUnknown_2037F02
|
|
_080ADD68:
|
|
cmp r0, 0x2
|
|
beq _080ADD7C
|
|
cmp r0, 0x3
|
|
beq _080ADDA0
|
|
b _080ADDC4
|
|
_080ADD72:
|
|
ldr r0, _080ADD78 @ =gUnknown_2037F1A
|
|
b _080ADDC6
|
|
.align 2, 0
|
|
_080ADD78: .4byte gUnknown_2037F1A
|
|
_080ADD7C:
|
|
ldr r4, _080ADD94 @ =gUnknown_2037F1A
|
|
ldrb r0, [r4]
|
|
movs r6, 0x2
|
|
eors r0, r6
|
|
bl sub_8072DF0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080ADD98
|
|
ldrb r4, [r4]
|
|
b _080ADDC8
|
|
.align 2, 0
|
|
_080ADD94: .4byte gUnknown_2037F1A
|
|
_080ADD98:
|
|
ldrb r0, [r4]
|
|
adds r4, r6, 0
|
|
eors r4, r0
|
|
b _080ADDC8
|
|
_080ADDA0:
|
|
ldr r0, _080ADDBC @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
movs r4, 0x2
|
|
eors r0, r4
|
|
bl sub_8072DF0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080ADDC4
|
|
ldr r0, _080ADDC0 @ =gUnknown_2037F1B
|
|
ldrb r0, [r0]
|
|
eors r4, r0
|
|
b _080ADDC8
|
|
.align 2, 0
|
|
_080ADDBC: .4byte gUnknown_2037F1A
|
|
_080ADDC0: .4byte gUnknown_2037F1B
|
|
_080ADDC4:
|
|
ldr r0, _080ADDE8 @ =gUnknown_2037F1B
|
|
_080ADDC6:
|
|
ldrb r4, [r0]
|
|
_080ADDC8:
|
|
ldr r0, _080ADDEC @ =gUnknown_2037F02
|
|
movs r2, 0xA
|
|
ldrsh r0, [r0, r2]
|
|
cmp r0, 0
|
|
bne _080ADDF0
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x20]
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
b _080ADE02
|
|
.align 2, 0
|
|
_080ADDE8: .4byte gUnknown_2037F1B
|
|
_080ADDEC: .4byte gUnknown_2037F02
|
|
_080ADDF0:
|
|
adds r0, r4, 0
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x20]
|
|
adds r0, r4, 0
|
|
movs r1, 0x3
|
|
_080ADE02:
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x22]
|
|
ldr r7, _080ADEA0 @ =gUnknown_825E074
|
|
ldr r6, _080ADEA4 @ =gUnknown_2037F02
|
|
movs r1, 0
|
|
ldrsh r0, [r6, r1]
|
|
lsls r0, 1
|
|
adds r0, r7
|
|
movs r2, 0
|
|
ldrsh r1, [r0, r2]
|
|
movs r2, 0x2
|
|
ldrsh r0, [r6, r2]
|
|
muls r0, r1
|
|
asrs r0, 8
|
|
strh r0, [r5, 0x24]
|
|
movs r1, 0
|
|
ldrsh r0, [r6, r1]
|
|
adds r0, 0x40
|
|
lsls r0, 1
|
|
adds r0, r7
|
|
movs r2, 0
|
|
ldrsh r1, [r0, r2]
|
|
movs r2, 0x2
|
|
ldrsh r0, [r6, r2]
|
|
muls r0, r1
|
|
asrs r0, 8
|
|
strh r0, [r5, 0x26]
|
|
ldrh r1, [r6, 0xC]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080ADE66
|
|
adds r0, r4, 0
|
|
bl sub_8076884
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r0, 0x1
|
|
movs r1, 0x3
|
|
ands r0, r1
|
|
lsls r0, 2
|
|
ldrb r2, [r5, 0x5]
|
|
movs r1, 0xD
|
|
negs r1, r1
|
|
ands r1, r2
|
|
orrs r1, r0
|
|
strb r1, [r5, 0x5]
|
|
_080ADE66:
|
|
ldrb r2, [r5, 0x3]
|
|
lsls r2, 26
|
|
lsrs r2, 27
|
|
movs r0, 0x4
|
|
ldrsh r1, [r6, r0]
|
|
lsls r0, r1, 1
|
|
adds r0, r7
|
|
ldrh r0, [r0]
|
|
ldr r3, _080ADEA8 @ =gOamMatrices
|
|
lsls r2, 3
|
|
adds r2, r3
|
|
adds r1, 0x40
|
|
lsls r1, 1
|
|
adds r1, r7
|
|
ldrh r1, [r1]
|
|
strh r1, [r2, 0x6]
|
|
strh r1, [r2]
|
|
strh r0, [r2, 0x2]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
negs r0, r0
|
|
strh r0, [r2, 0x4]
|
|
ldrh r0, [r6, 0x6]
|
|
strh r0, [r5, 0x2E]
|
|
ldr r0, _080ADEAC @ =sub_80B1D3C
|
|
str r0, [r5, 0x1C]
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080ADEA0: .4byte gUnknown_825E074
|
|
_080ADEA4: .4byte gUnknown_2037F02
|
|
_080ADEA8: .4byte gOamMatrices
|
|
_080ADEAC: .4byte sub_80B1D3C
|
|
thumb_func_end sub_80ADD4C
|
|
|
|
thumb_func_start sub_80ADEB0
|
|
sub_80ADEB0: @ 80ADEB0
|
|
push {r4-r6,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x1
|
|
bl sub_8075160
|
|
ldr r5, _080ADF24 @ =gUnknown_2037F02
|
|
ldrh r0, [r5, 0x6]
|
|
strh r0, [r4, 0x2E]
|
|
ldrh r0, [r4, 0x20]
|
|
strh r0, [r4, 0x30]
|
|
ldr r6, _080ADF28 @ =gUnknown_2037F1B
|
|
ldrb r0, [r6]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x32]
|
|
ldrh r0, [r4, 0x22]
|
|
strh r0, [r4, 0x34]
|
|
ldrb r0, [r6]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x36]
|
|
adds r0, r4, 0
|
|
bl obj_translate_based_on_private_1_2_3_4
|
|
ldrh r0, [r5, 0x4]
|
|
strh r0, [r4, 0x38]
|
|
ldrh r0, [r5, 0xA]
|
|
strh r0, [r4, 0x3A]
|
|
ldrh r0, [r5, 0x8]
|
|
strh r0, [r4, 0x3C]
|
|
ldrh r2, [r4, 0x4]
|
|
lsls r1, r2, 22
|
|
lsrs r1, 22
|
|
movs r3, 0xC
|
|
ldrsh r0, [r5, r3]
|
|
lsls r0, 2
|
|
adds r1, r0
|
|
ldr r3, _080ADF2C @ =0x000003ff
|
|
adds r0, r3, 0
|
|
ands r1, r0
|
|
ldr r0, _080ADF30 @ =0xfffffc00
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strh r0, [r4, 0x4]
|
|
ldr r1, _080ADF34 @ =sub_80ADF38
|
|
str r1, [r4, 0x1C]
|
|
adds r0, r4, 0
|
|
bl _call_via_r1
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080ADF24: .4byte gUnknown_2037F02
|
|
_080ADF28: .4byte gUnknown_2037F1B
|
|
_080ADF2C: .4byte 0x000003ff
|
|
_080ADF30: .4byte 0xfffffc00
|
|
_080ADF34: .4byte sub_80ADF38
|
|
thumb_func_end sub_80ADEB0
|
|
|
|
thumb_func_start sub_80ADF38
|
|
sub_80ADF38: @ 80ADF38
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_80755E0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080ADFA2
|
|
movs r1, 0x3C
|
|
ldrsh r0, [r4, r1]
|
|
movs r2, 0x38
|
|
ldrsh r1, [r4, r2]
|
|
bl Sin
|
|
ldrh r1, [r4, 0x24]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x24]
|
|
movs r2, 0x3C
|
|
ldrsh r0, [r4, r2]
|
|
movs r2, 0x38
|
|
ldrsh r1, [r4, r2]
|
|
bl Cos
|
|
ldrh r1, [r4, 0x26]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x26]
|
|
ldrh r0, [r4, 0x3A]
|
|
ldrh r2, [r4, 0x3C]
|
|
adds r0, r2
|
|
movs r1, 0xFF
|
|
ands r0, r1
|
|
strh r0, [r4, 0x3C]
|
|
movs r1, 0x3C
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0x3
|
|
bl __modsi3
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bne _080ADFA8
|
|
adds r3, r4, 0
|
|
adds r3, 0x3E
|
|
ldrb r2, [r3]
|
|
lsls r0, r2, 29
|
|
lsrs r0, 31
|
|
movs r1, 0x1
|
|
eors r1, r0
|
|
lsls r1, 2
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r3]
|
|
b _080ADFA8
|
|
_080ADFA2:
|
|
adds r0, r4, 0
|
|
bl DestroyAnimSprite
|
|
_080ADFA8:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80ADF38
|
|
|
|
thumb_func_start sub_80ADFB0
|
|
sub_80ADFB0: @ 80ADFB0
|
|
push {lr}
|
|
adds r3, r0, 0
|
|
ldrh r0, [r3, 0x38]
|
|
subs r0, 0x1
|
|
strh r0, [r3, 0x38]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
cmp r0, r1
|
|
bne _080ADFE8
|
|
movs r0, 0x3E
|
|
adds r0, r3
|
|
mov r12, r0
|
|
ldrb r2, [r0]
|
|
lsls r0, r2, 29
|
|
lsrs r0, 31
|
|
movs r1, 0x1
|
|
eors r1, r0
|
|
lsls r1, 2
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
mov r1, r12
|
|
strb r0, [r1]
|
|
ldrh r0, [r3, 0x36]
|
|
strh r0, [r3, 0x38]
|
|
_080ADFE8:
|
|
ldrh r0, [r3, 0x34]
|
|
subs r1, r0, 0x1
|
|
strh r1, [r3, 0x34]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bgt _080ADFFA
|
|
adds r0, r3, 0
|
|
bl DestroyAnimSprite
|
|
_080ADFFA:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80ADFB0
|
|
|
|
thumb_func_start sub_80AE000
|
|
sub_80AE000: @ 80AE000
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080AE01C
|
|
ldr r0, _080AE060 @ =gUnknown_2037F1B
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080AE024
|
|
_080AE01C:
|
|
ldr r1, _080AE064 @ =gUnknown_2037F02
|
|
ldrh r0, [r1, 0x2]
|
|
negs r0, r0
|
|
strh r0, [r1, 0x2]
|
|
_080AE024:
|
|
ldr r5, _080AE060 @ =gUnknown_2037F1B
|
|
ldrb r0, [r5]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
ldr r4, _080AE064 @ =gUnknown_2037F02
|
|
lsrs r0, 24
|
|
ldrh r1, [r4, 0x2]
|
|
adds r0, r1
|
|
strh r0, [r6, 0x20]
|
|
ldrb r0, [r5]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrh r1, [r4, 0x4]
|
|
adds r0, r1
|
|
strh r0, [r6, 0x22]
|
|
ldrh r0, [r4]
|
|
strh r0, [r6, 0x34]
|
|
ldrh r0, [r4, 0x6]
|
|
strh r0, [r6, 0x36]
|
|
strh r0, [r6, 0x38]
|
|
ldr r0, _080AE068 @ =sub_80ADFB0
|
|
str r0, [r6, 0x1C]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AE060: .4byte gUnknown_2037F1B
|
|
_080AE064: .4byte gUnknown_2037F02
|
|
_080AE068: .4byte sub_80ADFB0
|
|
thumb_func_end sub_80AE000
|
|
|
|
thumb_func_start sub_80AE06C
|
|
sub_80AE06C: @ 80AE06C
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
ldr r1, _080AE088 @ =gUnknown_2037F02
|
|
ldrh r0, [r1, 0x6]
|
|
strh r0, [r5, 0x2E]
|
|
movs r2, 0xE
|
|
ldrsh r0, [r1, r2]
|
|
movs r1, 0x80
|
|
lsls r1, 8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080AE090
|
|
ldr r0, _080AE08C @ =gUnknown_2037F1B
|
|
b _080AE092
|
|
.align 2, 0
|
|
_080AE088: .4byte gUnknown_2037F02
|
|
_080AE08C: .4byte gUnknown_2037F1B
|
|
_080AE090:
|
|
ldr r0, _080AE118 @ =gUnknown_2037F1A
|
|
_080AE092:
|
|
ldrb r6, [r0]
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080AE0AA
|
|
adds r0, r6, 0
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080AE0B2
|
|
_080AE0AA:
|
|
ldr r1, _080AE11C @ =gUnknown_2037F02
|
|
ldrh r0, [r1]
|
|
negs r0, r0
|
|
strh r0, [r1]
|
|
_080AE0B2:
|
|
adds r0, r6, 0
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
ldr r4, _080AE11C @ =gUnknown_2037F02
|
|
lsrs r0, 24
|
|
ldrh r3, [r4]
|
|
adds r0, r3
|
|
strh r0, [r5, 0x20]
|
|
adds r0, r6, 0
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrh r1, [r4, 0x2]
|
|
adds r0, r1
|
|
strh r0, [r5, 0x22]
|
|
ldrh r1, [r4, 0xE]
|
|
ldr r0, _080AE120 @ =0x00007fff
|
|
ands r0, r1
|
|
strh r0, [r5, 0x36]
|
|
ldrh r0, [r4, 0x4]
|
|
strh r0, [r5, 0x38]
|
|
ldrh r0, [r4, 0xA]
|
|
strh r0, [r5, 0x3A]
|
|
ldrh r0, [r4, 0x8]
|
|
strh r0, [r5, 0x3C]
|
|
ldrh r2, [r5, 0x4]
|
|
lsls r1, r2, 22
|
|
lsrs r1, 22
|
|
movs r3, 0xC
|
|
ldrsh r0, [r4, r3]
|
|
lsls r0, 2
|
|
adds r1, r0
|
|
ldr r3, _080AE124 @ =0x000003ff
|
|
adds r0, r3, 0
|
|
ands r1, r0
|
|
ldr r0, _080AE128 @ =0xfffffc00
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strh r0, [r5, 0x4]
|
|
ldr r1, _080AE12C @ =sub_80AE130
|
|
str r1, [r5, 0x1C]
|
|
adds r0, r5, 0
|
|
bl _call_via_r1
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AE118: .4byte gUnknown_2037F1A
|
|
_080AE11C: .4byte gUnknown_2037F02
|
|
_080AE120: .4byte 0x00007fff
|
|
_080AE124: .4byte 0x000003ff
|
|
_080AE128: .4byte 0xfffffc00
|
|
_080AE12C: .4byte sub_80AE130
|
|
thumb_func_end sub_80AE06C
|
|
|
|
thumb_func_start sub_80AE130
|
|
sub_80AE130: @ 80AE130
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x3C
|
|
ldrsh r0, [r4, r1]
|
|
movs r2, 0x38
|
|
ldrsh r1, [r4, r2]
|
|
bl Sin
|
|
strh r0, [r4, 0x24]
|
|
movs r1, 0x3C
|
|
ldrsh r0, [r4, r1]
|
|
movs r2, 0x38
|
|
ldrsh r1, [r4, r2]
|
|
bl Cos
|
|
strh r0, [r4, 0x26]
|
|
ldrh r0, [r4, 0x3A]
|
|
ldrh r1, [r4, 0x3C]
|
|
adds r0, r1
|
|
movs r1, 0xFF
|
|
ands r0, r1
|
|
strh r0, [r4, 0x3C]
|
|
movs r2, 0x3C
|
|
ldrsh r0, [r4, r2]
|
|
movs r2, 0x36
|
|
ldrsh r1, [r4, r2]
|
|
bl __modsi3
|
|
cmp r0, 0
|
|
bne _080AE186
|
|
adds r3, r4, 0
|
|
adds r3, 0x3E
|
|
ldrb r2, [r3]
|
|
lsls r0, r2, 29
|
|
lsrs r0, 31
|
|
movs r1, 0x1
|
|
eors r1, r0
|
|
lsls r1, 2
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r3]
|
|
_080AE186:
|
|
ldrh r0, [r4, 0x2E]
|
|
subs r1, r0, 0x1
|
|
strh r1, [r4, 0x2E]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bgt _080AE198
|
|
adds r0, r4, 0
|
|
bl DestroyAnimSprite
|
|
_080AE198:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80AE130
|
|
|
|
thumb_func_start sub_80AE1A0
|
|
sub_80AE1A0: @ 80AE1A0
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0
|
|
bl sub_8075114
|
|
ldrh r2, [r4, 0x4]
|
|
lsls r1, r2, 22
|
|
lsrs r1, 22
|
|
ldr r3, _080AE1DC @ =gUnknown_2037F02
|
|
movs r5, 0x6
|
|
ldrsh r0, [r3, r5]
|
|
lsls r0, 2
|
|
adds r1, r0
|
|
ldr r5, _080AE1E0 @ =0x000003ff
|
|
adds r0, r5, 0
|
|
ands r1, r0
|
|
ldr r0, _080AE1E4 @ =0xfffffc00
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strh r0, [r4, 0x4]
|
|
movs r1, 0x6
|
|
ldrsh r0, [r3, r1]
|
|
cmp r0, 0x1
|
|
bne _080AE1E8
|
|
ldrb r0, [r4, 0x3]
|
|
movs r1, 0x3F
|
|
negs r1, r1
|
|
ands r1, r0
|
|
movs r0, 0x10
|
|
b _080AE1F6
|
|
.align 2, 0
|
|
_080AE1DC: .4byte gUnknown_2037F02
|
|
_080AE1E0: .4byte 0x000003ff
|
|
_080AE1E4: .4byte 0xfffffc00
|
|
_080AE1E8:
|
|
cmp r0, 0x2
|
|
bne _080AE1FA
|
|
ldrb r0, [r4, 0x3]
|
|
movs r1, 0x3F
|
|
negs r1, r1
|
|
ands r1, r0
|
|
movs r0, 0x20
|
|
_080AE1F6:
|
|
orrs r1, r0
|
|
strb r1, [r4, 0x3]
|
|
_080AE1FA:
|
|
ldr r0, _080AE214 @ =gUnknown_2037F02
|
|
ldrh r0, [r0, 0x4]
|
|
strh r0, [r4, 0x2E]
|
|
ldr r0, _080AE218 @ =sub_8074C44
|
|
str r0, [r4, 0x1C]
|
|
ldr r1, _080AE21C @ =DestroyAnimSprite
|
|
adds r0, r4, 0
|
|
bl StoreSpriteCallbackInData6
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AE214: .4byte gUnknown_2037F02
|
|
_080AE218: .4byte sub_8074C44
|
|
_080AE21C: .4byte DestroyAnimSprite
|
|
thumb_func_end sub_80AE1A0
|
|
|
|
thumb_func_start sub_80AE220
|
|
sub_80AE220: @ 80AE220
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
ldr r6, _080AE268 @ =gUnknown_2037F1B
|
|
ldrb r0, [r6]
|
|
movs r1, 0
|
|
bl sub_8074480
|
|
ldr r1, _080AE26C @ =gTasks
|
|
lsls r4, r5, 2
|
|
adds r4, r5
|
|
lsls r4, 3
|
|
adds r4, r1
|
|
lsls r0, 24
|
|
ldr r5, _080AE270 @ =gUnknown_2037F02
|
|
lsrs r0, 24
|
|
ldrh r1, [r5]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x8]
|
|
ldrb r0, [r6]
|
|
movs r1, 0x1
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrh r1, [r5, 0x2]
|
|
adds r0, r1
|
|
strh r0, [r4, 0xA]
|
|
ldrh r0, [r5, 0x4]
|
|
strh r0, [r4, 0xC]
|
|
ldr r0, _080AE274 @ =sub_80AE278
|
|
str r0, [r4]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AE268: .4byte gUnknown_2037F1B
|
|
_080AE26C: .4byte gTasks
|
|
_080AE270: .4byte gUnknown_2037F02
|
|
_080AE274: .4byte sub_80AE278
|
|
thumb_func_end sub_80AE220
|
|
|
|
thumb_func_start sub_80AE278
|
|
sub_80AE278: @ 80AE278
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
movs r5, 0
|
|
movs r7, 0
|
|
ldr r1, _080AE2B8 @ =gTasks
|
|
lsls r0, 2
|
|
add r0, r9
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldrb r2, [r0, 0xC]
|
|
str r2, [sp]
|
|
ldrh r4, [r0, 0x8]
|
|
ldrh r6, [r0, 0xA]
|
|
movs r3, 0xC
|
|
ldrsh r0, [r0, r3]
|
|
mov r10, r1
|
|
cmp r0, 0
|
|
bne _080AE2BC
|
|
movs r0, 0
|
|
mov r8, r0
|
|
movs r2, 0x1
|
|
movs r1, 0x10
|
|
mov r12, r1
|
|
b _080AE2C6
|
|
.align 2, 0
|
|
_080AE2B8: .4byte gTasks
|
|
_080AE2BC:
|
|
movs r2, 0x10
|
|
mov r12, r2
|
|
movs r3, 0x8
|
|
mov r8, r3
|
|
movs r2, 0x4
|
|
_080AE2C6:
|
|
mov r0, r9
|
|
lsls r1, r0, 2
|
|
adds r0, r1, r0
|
|
lsls r0, 3
|
|
add r0, r10
|
|
movs r3, 0x1C
|
|
ldrsh r0, [r0, r3]
|
|
mov r10, r1
|
|
cmp r0, 0xA
|
|
bhi _080AE3BC
|
|
lsls r0, 2
|
|
ldr r1, _080AE2E4 @ =_080AE2E8
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080AE2E4: .4byte _080AE2E8
|
|
.align 2, 0
|
|
_080AE2E8:
|
|
.4byte _080AE314
|
|
.4byte _080AE3BC
|
|
.4byte _080AE328
|
|
.4byte _080AE3BC
|
|
.4byte _080AE348
|
|
.4byte _080AE3BC
|
|
.4byte _080AE35E
|
|
.4byte _080AE3BC
|
|
.4byte _080AE380
|
|
.4byte _080AE3BC
|
|
.4byte _080AE3B4
|
|
_080AE314:
|
|
ldr r0, _080AE324 @ =gUnknown_83E60A0
|
|
lsls r1, r4, 16
|
|
asrs r1, 16
|
|
lsls r2, r6, 16
|
|
asrs r2, 16
|
|
mov r4, r12
|
|
lsls r3, r4, 16
|
|
b _080AE396
|
|
.align 2, 0
|
|
_080AE324: .4byte gUnknown_83E60A0
|
|
_080AE328:
|
|
mov r0, r12
|
|
lsls r3, r0, 17
|
|
mov r1, r8
|
|
adds r0, r1, r2
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
mov r8, r0
|
|
ldr r0, _080AE344 @ =gUnknown_83E60A0
|
|
lsls r1, r4, 16
|
|
asrs r1, 16
|
|
lsls r2, r6, 16
|
|
asrs r2, 16
|
|
b _080AE396
|
|
.align 2, 0
|
|
_080AE344: .4byte gUnknown_83E60A0
|
|
_080AE348:
|
|
mov r3, r12
|
|
lsls r0, r3, 16
|
|
asrs r0, 16
|
|
lsls r3, r0, 1
|
|
adds r3, r0
|
|
lsls r0, r2, 1
|
|
add r0, r8
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
mov r8, r0
|
|
b _080AE38A
|
|
_080AE35E:
|
|
mov r0, r12
|
|
lsls r3, r0, 18
|
|
lsls r0, r2, 1
|
|
adds r0, r2
|
|
add r0, r8
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
mov r8, r0
|
|
ldr r0, _080AE37C @ =gUnknown_83E60A0
|
|
lsls r1, r4, 16
|
|
asrs r1, 16
|
|
lsls r2, r6, 16
|
|
asrs r2, 16
|
|
b _080AE396
|
|
.align 2, 0
|
|
_080AE37C: .4byte gUnknown_83E60A0
|
|
_080AE380:
|
|
mov r1, r12
|
|
lsls r0, r1, 16
|
|
asrs r0, 16
|
|
lsls r3, r0, 2
|
|
adds r3, r0
|
|
_080AE38A:
|
|
ldr r0, _080AE3B0 @ =gUnknown_83E60A0
|
|
lsls r1, r4, 16
|
|
asrs r1, 16
|
|
lsls r2, r6, 16
|
|
asrs r2, 16
|
|
lsls r3, 16
|
|
_080AE396:
|
|
asrs r3, 16
|
|
adds r2, r3
|
|
lsls r2, 16
|
|
asrs r2, 16
|
|
movs r3, 0x2
|
|
bl CreateSprite
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
adds r0, r7, 0x1
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
b _080AE3BC
|
|
.align 2, 0
|
|
_080AE3B0: .4byte gUnknown_83E60A0
|
|
_080AE3B4:
|
|
mov r0, r9
|
|
bl DestroyAnimVisualTask
|
|
b _080AE400
|
|
_080AE3BC:
|
|
cmp r7, 0
|
|
beq _080AE3F0
|
|
ldr r4, _080AE410 @ =gSprites
|
|
lsls r3, r5, 4
|
|
adds r3, r5
|
|
lsls r3, 2
|
|
adds r0, r3, r4
|
|
ldrh r5, [r0, 0x4]
|
|
lsls r2, r5, 22
|
|
lsrs r2, 22
|
|
add r2, r8
|
|
ldr r6, _080AE414 @ =0x000003ff
|
|
adds r1, r6, 0
|
|
ands r2, r1
|
|
ldr r1, _080AE418 @ =0xfffffc00
|
|
ands r1, r5
|
|
orrs r1, r2
|
|
strh r1, [r0, 0x4]
|
|
mov r1, sp
|
|
ldrh r1, [r1]
|
|
strh r1, [r0, 0x2E]
|
|
adds r4, 0x1C
|
|
adds r3, r4
|
|
ldr r1, [r3]
|
|
bl _call_via_r1
|
|
_080AE3F0:
|
|
ldr r0, _080AE41C @ =gTasks
|
|
mov r1, r10
|
|
add r1, r9
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldrh r0, [r1, 0x1C]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x1C]
|
|
_080AE400:
|
|
add sp, 0x4
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AE410: .4byte gSprites
|
|
_080AE414: .4byte 0x000003ff
|
|
_080AE418: .4byte 0xfffffc00
|
|
_080AE41C: .4byte gTasks
|
|
thumb_func_end sub_80AE278
|
|
|
|
thumb_func_start sub_80AE420
|
|
sub_80AE420: @ 80AE420
|
|
push {lr}
|
|
adds r3, r0, 0
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r3, r1]
|
|
cmp r0, 0
|
|
bne _080AE442
|
|
ldrb r1, [r3, 0x1]
|
|
movs r2, 0x3F
|
|
adds r0, r2, 0
|
|
ands r0, r1
|
|
movs r1, 0x80
|
|
orrs r0, r1
|
|
strb r0, [r3, 0x1]
|
|
ldrb r0, [r3, 0x3]
|
|
ands r2, r0
|
|
strb r2, [r3, 0x3]
|
|
b _080AE456
|
|
_080AE442:
|
|
ldrb r2, [r3, 0x1]
|
|
movs r1, 0x3F
|
|
adds r0, r1, 0
|
|
ands r0, r2
|
|
strb r0, [r3, 0x1]
|
|
ldrb r0, [r3, 0x3]
|
|
ands r1, r0
|
|
movs r0, 0x40
|
|
orrs r1, r0
|
|
strb r1, [r3, 0x3]
|
|
_080AE456:
|
|
ldrh r0, [r3, 0x30]
|
|
adds r0, 0x1
|
|
strh r0, [r3, 0x30]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0xF
|
|
bne _080AE46A
|
|
adds r0, r3, 0
|
|
bl DestroySprite
|
|
_080AE46A:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80AE420
|
|
|
|
thumb_func_start sub_80AE470
|
|
sub_80AE470: @ 80AE470
|
|
push {r4-r7,lr}
|
|
adds r4, r0, 0
|
|
ldr r0, _080AE4D8 @ =gUnknown_2037F02
|
|
ldrh r1, [r0]
|
|
ldrh r2, [r4, 0x20]
|
|
adds r1, r2
|
|
strh r1, [r4, 0x20]
|
|
ldrh r0, [r0, 0x2]
|
|
ldrh r3, [r4, 0x22]
|
|
adds r0, r3
|
|
strh r0, [r4, 0x22]
|
|
ldr r0, _080AE4DC @ =gUnknown_83E60B8
|
|
adds r1, 0x20
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
movs r7, 0x22
|
|
ldrsh r2, [r4, r7]
|
|
adds r3, r4, 0
|
|
adds r3, 0x43
|
|
ldrb r3, [r3]
|
|
bl CreateSprite
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r3, _080AE4E0 @ =gSprites
|
|
lsls r2, r0, 4
|
|
adds r2, r0
|
|
lsls r2, 2
|
|
adds r6, r2, r3
|
|
ldrh r5, [r6, 0x4]
|
|
lsls r1, r5, 22
|
|
lsrs r1, 22
|
|
adds r1, 0x8
|
|
ldr r7, _080AE4E4 @ =0x000003ff
|
|
adds r0, r7, 0
|
|
ands r1, r0
|
|
ldr r0, _080AE4E8 @ =0xfffffc00
|
|
ands r0, r5
|
|
orrs r0, r1
|
|
strh r0, [r6, 0x4]
|
|
ldr r1, _080AE4EC @ =gUnknown_2037EE2
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
adds r3, 0x1C
|
|
adds r2, r3
|
|
ldr r0, _080AE4F0 @ =sub_80AE4F4
|
|
str r0, [r2]
|
|
str r0, [r4, 0x1C]
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AE4D8: .4byte gUnknown_2037F02
|
|
_080AE4DC: .4byte gUnknown_83E60B8
|
|
_080AE4E0: .4byte gSprites
|
|
_080AE4E4: .4byte 0x000003ff
|
|
_080AE4E8: .4byte 0xfffffc00
|
|
_080AE4EC: .4byte gUnknown_2037EE2
|
|
_080AE4F0: .4byte sub_80AE4F4
|
|
thumb_func_end sub_80AE470
|
|
|
|
thumb_func_start sub_80AE4F4
|
|
sub_80AE4F4: @ 80AE4F4
|
|
push {lr}
|
|
adds r3, r0, 0
|
|
ldrh r0, [r3, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r3, 0x2E]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x3
|
|
bne _080AE528
|
|
movs r0, 0
|
|
strh r0, [r3, 0x2E]
|
|
movs r0, 0x3E
|
|
adds r0, r3
|
|
mov r12, r0
|
|
ldrb r2, [r0]
|
|
lsls r0, r2, 29
|
|
lsrs r0, 31
|
|
movs r1, 0x1
|
|
eors r1, r0
|
|
lsls r1, 2
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
mov r1, r12
|
|
strb r0, [r1]
|
|
_080AE528:
|
|
ldrh r0, [r3, 0x30]
|
|
adds r0, 0x1
|
|
strh r0, [r3, 0x30]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x33
|
|
bne _080AE53C
|
|
adds r0, r3, 0
|
|
bl DestroyAnimSprite
|
|
_080AE53C:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80AE4F4
|
|
|
|
thumb_func_start sub_80AE540
|
|
sub_80AE540: @ 80AE540
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
ldr r0, _080AE560 @ =gTasks
|
|
adds r5, r1, r0
|
|
ldr r0, _080AE564 @ =gUnknown_2037F02
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0
|
|
bne _080AE56C
|
|
ldr r4, _080AE568 @ =gUnknown_2037F1A
|
|
b _080AE56E
|
|
.align 2, 0
|
|
_080AE560: .4byte gTasks
|
|
_080AE564: .4byte gUnknown_2037F02
|
|
_080AE568: .4byte gUnknown_2037F1A
|
|
_080AE56C:
|
|
ldr r4, _080AE5B0 @ =gUnknown_2037F1B
|
|
_080AE56E:
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x24]
|
|
ldrb r0, [r4]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x26]
|
|
ldr r2, _080AE5B4 @ =gUnknown_2037F02
|
|
ldrh r0, [r2, 0x2]
|
|
movs r1, 0
|
|
strh r0, [r5, 0x14]
|
|
strh r1, [r5, 0x16]
|
|
strh r1, [r5, 0x18]
|
|
strh r1, [r5, 0x1A]
|
|
strh r1, [r5, 0x1C]
|
|
ldrh r0, [r2, 0x6]
|
|
strh r0, [r5, 0x1E]
|
|
strh r1, [r5, 0x20]
|
|
ldrh r0, [r2, 0x4]
|
|
strh r0, [r5, 0x22]
|
|
ldr r0, _080AE5B8 @ =sub_80AE5BC
|
|
str r0, [r5]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AE5B0: .4byte gUnknown_2037F1B
|
|
_080AE5B4: .4byte gUnknown_2037F02
|
|
_080AE5B8: .4byte sub_80AE5BC
|
|
thumb_func_end sub_80AE540
|
|
|
|
thumb_func_start sub_80AE5BC
|
|
sub_80AE5BC: @ 80AE5BC
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
adds r2, r6, 0
|
|
lsls r0, r6, 2
|
|
adds r0, r6
|
|
lsls r0, 3
|
|
ldr r1, _080AE6A4 @ =gTasks
|
|
adds r5, r0, r1
|
|
movs r1, 0x14
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0
|
|
beq _080AE6BC
|
|
ldrh r0, [r5, 0x20]
|
|
adds r0, 0x1
|
|
movs r7, 0
|
|
strh r0, [r5, 0x20]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r2, 0x22
|
|
ldrsh r1, [r5, r2]
|
|
cmp r0, r1
|
|
ble _080AE6CA
|
|
strh r7, [r5, 0x20]
|
|
ldr r0, _080AE6A8 @ =gUnknown_83E6120
|
|
movs r3, 0x24
|
|
ldrsh r1, [r5, r3]
|
|
movs r3, 0x26
|
|
ldrsh r2, [r5, r3]
|
|
movs r3, 0x2
|
|
bl CreateSprite
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x40
|
|
beq _080AE6CA
|
|
lsls r4, r0, 4
|
|
adds r4, r0
|
|
lsls r4, 2
|
|
ldr r0, _080AE6AC @ =gSprites
|
|
adds r4, r0
|
|
ldr r1, _080AE6B0 @ =gUnknown_83E60D0
|
|
movs r2, 0x1A
|
|
ldrsh r0, [r5, r2]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
movs r3, 0
|
|
ldrsb r3, [r0, r3]
|
|
ldrh r0, [r4, 0x20]
|
|
adds r3, r0
|
|
strh r3, [r4, 0x20]
|
|
movs r2, 0x1A
|
|
ldrsh r0, [r5, r2]
|
|
lsls r0, 1
|
|
adds r1, 0x1
|
|
adds r0, r1
|
|
movs r2, 0
|
|
ldrsb r2, [r0, r2]
|
|
ldrh r0, [r4, 0x22]
|
|
adds r2, r0
|
|
strh r2, [r4, 0x22]
|
|
movs r1, 0x18
|
|
ldrsh r0, [r5, r1]
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
movs r0, 0x28
|
|
subs r0, r1
|
|
strh r0, [r4, 0x2E]
|
|
strh r3, [r4, 0x30]
|
|
ldrh r0, [r5, 0x24]
|
|
strh r0, [r4, 0x32]
|
|
strh r2, [r4, 0x34]
|
|
ldrh r0, [r5, 0x26]
|
|
strh r0, [r4, 0x36]
|
|
strh r6, [r4, 0x38]
|
|
adds r0, r4, 0
|
|
bl obj_translate_based_on_private_1_2_3_4
|
|
ldr r1, _080AE6B4 @ =sub_80AE704
|
|
adds r0, r4, 0
|
|
bl StoreSpriteCallbackInData6
|
|
ldr r0, _080AE6B8 @ =sub_8074F6C
|
|
str r0, [r4, 0x1C]
|
|
ldrh r0, [r5, 0x1A]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x1A]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0xF
|
|
ble _080AE674
|
|
strh r7, [r5, 0x1A]
|
|
_080AE674:
|
|
ldrh r0, [r5, 0x1C]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x1C]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r2, 0x1E
|
|
ldrsh r1, [r5, r2]
|
|
cmp r0, r1
|
|
blt _080AE696
|
|
strh r7, [r5, 0x1C]
|
|
ldrh r1, [r5, 0x18]
|
|
movs r3, 0x18
|
|
ldrsh r0, [r5, r3]
|
|
cmp r0, 0x5
|
|
bgt _080AE696
|
|
adds r0, r1, 0x1
|
|
strh r0, [r5, 0x18]
|
|
_080AE696:
|
|
ldrh r0, [r5, 0x16]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x16]
|
|
ldrh r0, [r5, 0x14]
|
|
subs r0, 0x1
|
|
strh r0, [r5, 0x14]
|
|
b _080AE6CA
|
|
.align 2, 0
|
|
_080AE6A4: .4byte gTasks
|
|
_080AE6A8: .4byte gUnknown_83E6120
|
|
_080AE6AC: .4byte gSprites
|
|
_080AE6B0: .4byte gUnknown_83E60D0
|
|
_080AE6B4: .4byte sub_80AE704
|
|
_080AE6B8: .4byte sub_8074F6C
|
|
_080AE6BC:
|
|
movs r1, 0x16
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0
|
|
bne _080AE6CA
|
|
adds r0, r2, 0
|
|
bl DestroyAnimVisualTask
|
|
_080AE6CA:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80AE5BC
|
|
|
|
thumb_func_start sub_80AE6D0
|
|
sub_80AE6D0: @ 80AE6D0
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_80755E0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080AE6F8
|
|
ldr r2, _080AE700 @ =gTasks
|
|
movs r0, 0x38
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r0, r2
|
|
ldrh r1, [r0, 0x16]
|
|
subs r1, 0x1
|
|
strh r1, [r0, 0x16]
|
|
adds r0, r4, 0
|
|
bl DestroySprite
|
|
_080AE6F8:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AE700: .4byte gTasks
|
|
thumb_func_end sub_80AE6D0
|
|
|
|
thumb_func_start sub_80AE704
|
|
sub_80AE704: @ 80AE704
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x1
|
|
bl StartSpriteAnim
|
|
ldr r0, _080AE718 @ =sub_80AE6D0
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AE718: .4byte sub_80AE6D0
|
|
thumb_func_end sub_80AE704
|
|
|
|
thumb_func_start sub_80AE71C
|
|
sub_80AE71C: @ 80AE71C
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
ldr r0, _080AE730 @ =gUnknown_2037F02
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0
|
|
bne _080AE738
|
|
ldr r4, _080AE734 @ =gUnknown_2037F1A
|
|
b _080AE73A
|
|
.align 2, 0
|
|
_080AE730: .4byte gUnknown_2037F02
|
|
_080AE734: .4byte gUnknown_2037F1A
|
|
_080AE738:
|
|
ldr r4, _080AE768 @ =gUnknown_2037F1B
|
|
_080AE73A:
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x20]
|
|
ldrb r0, [r4]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x22]
|
|
ldr r1, _080AE76C @ =move_anim_8074EE0
|
|
adds r0, r5, 0
|
|
bl StoreSpriteCallbackInData6
|
|
ldr r0, _080AE770 @ =sub_8074F50
|
|
str r0, [r5, 0x1C]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AE768: .4byte gUnknown_2037F1B
|
|
_080AE76C: .4byte move_anim_8074EE0
|
|
_080AE770: .4byte sub_8074F50
|
|
thumb_func_end sub_80AE71C
|
|
|
|
thumb_func_start sub_80AE774
|
|
sub_80AE774: @ 80AE774
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
ldr r0, _080AE788 @ =gUnknown_2037F02
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0
|
|
bne _080AE790
|
|
ldr r4, _080AE78C @ =gUnknown_2037F1A
|
|
b _080AE792
|
|
.align 2, 0
|
|
_080AE788: .4byte gUnknown_2037F02
|
|
_080AE78C: .4byte gUnknown_2037F1A
|
|
_080AE790:
|
|
ldr r4, _080AE7CC @ =gUnknown_2037F1B
|
|
_080AE792:
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x20]
|
|
ldrb r0, [r4]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x22]
|
|
ldr r1, _080AE7D0 @ =gUnknown_2037F02
|
|
ldrh r0, [r1, 0x2]
|
|
strh r0, [r5, 0x24]
|
|
ldrh r0, [r1, 0x4]
|
|
strh r0, [r5, 0x26]
|
|
ldr r1, _080AE7D4 @ =DestroyAnimSprite
|
|
adds r0, r5, 0
|
|
bl StoreSpriteCallbackInData6
|
|
ldr r0, _080AE7D8 @ =sub_8074F6C
|
|
str r0, [r5, 0x1C]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AE7CC: .4byte gUnknown_2037F1B
|
|
_080AE7D0: .4byte gUnknown_2037F02
|
|
_080AE7D4: .4byte DestroyAnimSprite
|
|
_080AE7D8: .4byte sub_8074F6C
|
|
thumb_func_end sub_80AE774
|
|
|
|
thumb_func_start sub_80AE7DC
|
|
sub_80AE7DC: @ 80AE7DC
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
movs r1, 0x1
|
|
bl StartSpriteAffineAnim
|
|
ldr r4, _080AE834 @ =gUnknown_2037F1A
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x20]
|
|
ldrb r0, [r4]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x22]
|
|
movs r0, 0
|
|
bl GetAnimBankSpriteId
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x3A]
|
|
movs r0, 0x10
|
|
strh r0, [r5, 0x3C]
|
|
ldrb r0, [r4]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _080AE82A
|
|
movs r1, 0x3C
|
|
ldrsh r0, [r5, r1]
|
|
negs r0, r0
|
|
strh r0, [r5, 0x3C]
|
|
_080AE82A:
|
|
ldr r0, _080AE838 @ =sub_80AE83C
|
|
str r0, [r5, 0x1C]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AE834: .4byte gUnknown_2037F1A
|
|
_080AE838: .4byte sub_80AE83C
|
|
thumb_func_end sub_80AE7DC
|
|
|
|
thumb_func_start sub_80AE83C
|
|
sub_80AE83C: @ 80AE83C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
beq _080AE84E
|
|
cmp r0, 0x1
|
|
beq _080AE864
|
|
b _080AE894
|
|
_080AE84E:
|
|
ldrh r0, [r4, 0x30]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x30]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x28
|
|
ble _080AE894
|
|
ldrh r0, [r4, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
b _080AE894
|
|
_080AE864:
|
|
ldrh r2, [r4, 0x3C]
|
|
ldrh r1, [r4, 0x20]
|
|
adds r0, r2, r1
|
|
strh r0, [r4, 0x20]
|
|
ldr r3, _080AE89C @ =gSprites
|
|
movs r0, 0x3A
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
ldrh r1, [r0, 0x24]
|
|
adds r2, r1
|
|
strh r2, [r0, 0x24]
|
|
ldrh r0, [r4, 0x20]
|
|
adds r0, 0x50
|
|
lsls r0, 16
|
|
movs r1, 0xC8
|
|
lsls r1, 17
|
|
cmp r0, r1
|
|
bls _080AE894
|
|
adds r0, r4, 0
|
|
bl move_anim_8074EE0
|
|
_080AE894:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AE89C: .4byte gSprites
|
|
thumb_func_end sub_80AE83C
|
|
|
|
thumb_func_start sub_80AE8A0
|
|
sub_80AE8A0: @ 80AE8A0
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
lsls r0, r3, 2
|
|
adds r0, r3
|
|
lsls r0, 3
|
|
ldr r1, _080AE8C4 @ =gTasks
|
|
adds r5, r0, r1
|
|
movs r1, 0x8
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0x1
|
|
beq _080AE934
|
|
cmp r0, 0x1
|
|
bgt _080AE8C8
|
|
cmp r0, 0
|
|
beq _080AE8D4
|
|
b _080AEA04
|
|
.align 2, 0
|
|
_080AE8C4: .4byte gTasks
|
|
_080AE8C8:
|
|
cmp r0, 0x2
|
|
beq _080AE990
|
|
cmp r0, 0x3
|
|
bne _080AE8D2
|
|
b _080AE9E4
|
|
_080AE8D2:
|
|
b _080AEA04
|
|
_080AE8D4:
|
|
movs r0, 0
|
|
bl GetAnimBankSpriteId
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r6, 0
|
|
strh r0, [r5, 0x26]
|
|
ldr r4, _080AE908 @ =gUnknown_2037F1A
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x24]
|
|
ldrb r0, [r4]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080AE910
|
|
ldr r0, _080AE90C @ =0x0000ffe0
|
|
strh r0, [r5, 0x24]
|
|
movs r0, 0x2
|
|
b _080AE916
|
|
.align 2, 0
|
|
_080AE908: .4byte gUnknown_2037F1A
|
|
_080AE90C: .4byte 0x0000ffe0
|
|
_080AE910:
|
|
movs r0, 0x20
|
|
strh r0, [r5, 0x24]
|
|
ldr r0, _080AE92C @ =0x0000fffe
|
|
_080AE916:
|
|
strh r0, [r5, 0x22]
|
|
ldr r2, _080AE930 @ =gSprites
|
|
movs r0, 0x26
|
|
ldrsh r1, [r5, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrh r1, [r5, 0x24]
|
|
strh r1, [r0, 0x24]
|
|
b _080AE9D6
|
|
.align 2, 0
|
|
_080AE92C: .4byte 0x0000fffe
|
|
_080AE930: .4byte gSprites
|
|
_080AE934:
|
|
ldrh r0, [r5, 0xA]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0xA]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1
|
|
ble _080AEA04
|
|
movs r0, 0
|
|
strh r0, [r5, 0xA]
|
|
ldr r4, _080AE98C @ =gSprites
|
|
movs r1, 0x26
|
|
ldrsh r0, [r5, r1]
|
|
lsls r2, r0, 4
|
|
adds r2, r0
|
|
lsls r2, 2
|
|
adds r2, r4
|
|
adds r2, 0x3E
|
|
ldrb r3, [r2]
|
|
lsls r0, r3, 29
|
|
lsrs r0, 31
|
|
movs r1, 0x1
|
|
eors r1, r0
|
|
lsls r1, 2
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r3
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldrh r1, [r5, 0x24]
|
|
movs r2, 0x24
|
|
ldrsh r0, [r5, r2]
|
|
cmp r0, 0
|
|
beq _080AE9D6
|
|
ldrh r2, [r5, 0x22]
|
|
adds r2, r1, r2
|
|
strh r2, [r5, 0x24]
|
|
movs r0, 0x26
|
|
ldrsh r1, [r5, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
strh r2, [r0, 0x24]
|
|
b _080AEA04
|
|
.align 2, 0
|
|
_080AE98C: .4byte gSprites
|
|
_080AE990:
|
|
ldrh r0, [r5, 0xA]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0xA]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1
|
|
ble _080AEA04
|
|
movs r0, 0
|
|
strh r0, [r5, 0xA]
|
|
ldr r1, _080AE9E0 @ =gSprites
|
|
movs r2, 0x26
|
|
ldrsh r0, [r5, r2]
|
|
lsls r2, r0, 4
|
|
adds r2, r0
|
|
lsls r2, 2
|
|
adds r2, r1
|
|
adds r2, 0x3E
|
|
ldrb r3, [r2]
|
|
lsls r0, r3, 29
|
|
lsrs r0, 31
|
|
movs r1, 0x1
|
|
eors r1, r0
|
|
lsls r1, 2
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r3
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldrh r0, [r5, 0xC]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0xC]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x8
|
|
bne _080AEA04
|
|
_080AE9D6:
|
|
ldrh r0, [r5, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x8]
|
|
b _080AEA04
|
|
.align 2, 0
|
|
_080AE9E0: .4byte gSprites
|
|
_080AE9E4:
|
|
ldr r2, _080AEA0C @ =gSprites
|
|
movs r0, 0x26
|
|
ldrsh r1, [r5, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
adds r0, 0x3E
|
|
ldrb r2, [r0]
|
|
movs r1, 0x5
|
|
negs r1, r1
|
|
ands r1, r2
|
|
strb r1, [r0]
|
|
adds r0, r3, 0
|
|
bl DestroyAnimVisualTask
|
|
_080AEA04:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AEA0C: .4byte gSprites
|
|
thumb_func_end sub_80AE8A0
|
|
|
|
thumb_func_start sub_80AEA10
|
|
sub_80AEA10: @ 80AEA10
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
ldr r1, _080AEA34 @ =gTasks
|
|
adds r5, r0, r1
|
|
movs r1, 0x8
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0x1
|
|
bne _080AEA2A
|
|
b _080AEB50
|
|
_080AEA2A:
|
|
cmp r0, 0x1
|
|
bgt _080AEA38
|
|
cmp r0, 0
|
|
beq _080AEA40
|
|
b _080AEB92
|
|
.align 2, 0
|
|
_080AEA34: .4byte gTasks
|
|
_080AEA38:
|
|
cmp r0, 0x2
|
|
bne _080AEA3E
|
|
b _080AEB84
|
|
_080AEA3E:
|
|
b _080AEB92
|
|
_080AEA40:
|
|
ldr r4, _080AEA80 @ =gUnknown_2037F1A
|
|
ldrb r0, [r4]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
adds r1, r2, 0
|
|
cmp r0, 0
|
|
bne _080AEA56
|
|
movs r1, 0x1
|
|
_080AEA56:
|
|
movs r6, 0
|
|
strh r1, [r5, 0xA]
|
|
ldr r0, _080AEA84 @ =gUnknown_2037F02
|
|
movs r1, 0
|
|
ldrsh r2, [r0, r1]
|
|
adds r3, r0, 0
|
|
cmp r2, 0
|
|
beq _080AEA8C
|
|
cmp r2, 0x4
|
|
beq _080AEAB4
|
|
ldrh r1, [r3]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080AEAEC
|
|
movs r0, 0x80
|
|
lsls r0, 1
|
|
strh r0, [r5, 0xE]
|
|
ldr r0, _080AEA88 @ =0x0000fff0
|
|
b _080AEAF4
|
|
.align 2, 0
|
|
_080AEA80: .4byte gUnknown_2037F1A
|
|
_080AEA84: .4byte gUnknown_2037F02
|
|
_080AEA88: .4byte 0x0000fff0
|
|
_080AEA8C:
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0xE]
|
|
ldrb r0, [r4]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x12]
|
|
movs r2, 0xA
|
|
ldrsh r0, [r5, r2]
|
|
lsls r0, 7
|
|
adds r0, 0x78
|
|
strh r0, [r5, 0x10]
|
|
b _080AEB2A
|
|
_080AEAB4:
|
|
movs r0, 0xA
|
|
ldrsh r1, [r5, r0]
|
|
lsls r1, 7
|
|
movs r0, 0x78
|
|
subs r0, r1
|
|
strh r0, [r5, 0xE]
|
|
ldr r4, _080AEAE8 @ =gUnknown_2037F1B
|
|
ldrb r0, [r4]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x12]
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r2, 0xA
|
|
ldrsh r1, [r5, r2]
|
|
lsls r1, 5
|
|
subs r0, r1
|
|
strh r0, [r5, 0x10]
|
|
b _080AEB2A
|
|
.align 2, 0
|
|
_080AEAE8: .4byte gUnknown_2037F1B
|
|
_080AEAEC:
|
|
ldr r0, _080AEB10 @ =0x0000fff0
|
|
strh r0, [r5, 0xE]
|
|
movs r0, 0x80
|
|
lsls r0, 1
|
|
_080AEAF4:
|
|
strh r0, [r5, 0x10]
|
|
movs r1, 0xA
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0x1
|
|
bne _080AEB14
|
|
movs r2, 0
|
|
ldrsh r0, [r3, r2]
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 1
|
|
movs r0, 0x50
|
|
subs r0, r1
|
|
strh r0, [r5, 0x12]
|
|
b _080AEB2A
|
|
.align 2, 0
|
|
_080AEB10: .4byte 0x0000fff0
|
|
_080AEB14:
|
|
movs r0, 0
|
|
ldrsh r1, [r3, r0]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 1
|
|
adds r0, 0x28
|
|
strh r0, [r5, 0x12]
|
|
ldrh r1, [r5, 0xE]
|
|
ldrh r0, [r5, 0x10]
|
|
strh r0, [r5, 0xE]
|
|
strh r1, [r5, 0x10]
|
|
_080AEB2A:
|
|
movs r2, 0xE
|
|
ldrsh r1, [r5, r2]
|
|
movs r2, 0x10
|
|
ldrsh r0, [r5, r2]
|
|
cmp r1, r0
|
|
bge _080AEB40
|
|
movs r1, 0
|
|
movs r0, 0x1
|
|
strh r0, [r5, 0xA]
|
|
strh r1, [r5, 0x14]
|
|
b _080AEB7C
|
|
_080AEB40:
|
|
ldr r0, _080AEB4C @ =0x0000ffff
|
|
strh r0, [r5, 0xA]
|
|
movs r0, 0x3
|
|
strh r0, [r5, 0x14]
|
|
b _080AEB7C
|
|
.align 2, 0
|
|
_080AEB4C: .4byte 0x0000ffff
|
|
_080AEB50:
|
|
ldrh r0, [r5, 0xC]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0xC]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
ble _080AEB92
|
|
movs r0, 0
|
|
strh r0, [r5, 0xC]
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_80AEB98
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080AEB7C
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_80AEB98
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080AEB92
|
|
_080AEB7C:
|
|
ldrh r0, [r5, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x8]
|
|
b _080AEB92
|
|
_080AEB84:
|
|
movs r1, 0x16
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0
|
|
bne _080AEB92
|
|
adds r0, r4, 0
|
|
bl DestroyAnimVisualTask
|
|
_080AEB92:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80AEA10
|
|
|
|
thumb_func_start sub_80AEB98
|
|
sub_80AEB98: @ 80AEB98
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
lsls r1, 24
|
|
lsrs r5, r1, 24
|
|
ldr r0, _080AEC24 @ =gUnknown_83E6278
|
|
movs r2, 0xE
|
|
ldrsh r1, [r4, r2]
|
|
movs r3, 0x12
|
|
ldrsh r2, [r4, r3]
|
|
movs r3, 0x23
|
|
bl CreateSprite
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0x40
|
|
beq _080AEBCE
|
|
ldr r1, _080AEC28 @ =gSprites
|
|
lsls r0, r2, 4
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
strh r5, [r0, 0x3A]
|
|
movs r1, 0x7
|
|
strh r1, [r0, 0x3C]
|
|
ldrh r0, [r4, 0x16]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x16]
|
|
_080AEBCE:
|
|
ldrh r1, [r4, 0xA]
|
|
ldrh r5, [r4, 0x14]
|
|
adds r0, r1, r5
|
|
strh r0, [r4, 0x14]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bge _080AEBE0
|
|
movs r0, 0x3
|
|
strh r0, [r4, 0x14]
|
|
_080AEBE0:
|
|
movs r2, 0x14
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0x3
|
|
ble _080AEBEC
|
|
movs r0, 0
|
|
strh r0, [r4, 0x14]
|
|
_080AEBEC:
|
|
movs r3, 0xA
|
|
ldrsh r0, [r4, r3]
|
|
lsls r0, 4
|
|
ldrh r5, [r4, 0xE]
|
|
adds r2, r0, r5
|
|
strh r2, [r4, 0xE]
|
|
lsls r0, r1, 16
|
|
asrs r3, r0, 16
|
|
cmp r3, 0x1
|
|
bne _080AEC0C
|
|
lsls r0, r2, 16
|
|
asrs r0, 16
|
|
movs r5, 0x10
|
|
ldrsh r1, [r4, r5]
|
|
cmp r0, r1
|
|
bge _080AEC20
|
|
_080AEC0C:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r3, r0
|
|
bne _080AEC2C
|
|
lsls r0, r2, 16
|
|
asrs r0, 16
|
|
movs r2, 0x10
|
|
ldrsh r1, [r4, r2]
|
|
cmp r0, r1
|
|
bgt _080AEC2C
|
|
_080AEC20:
|
|
movs r0, 0x1
|
|
b _080AEC2E
|
|
.align 2, 0
|
|
_080AEC24: .4byte gUnknown_83E6278
|
|
_080AEC28: .4byte gSprites
|
|
_080AEC2C:
|
|
movs r0, 0
|
|
_080AEC2E:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80AEB98
|
|
|
|
thumb_func_start sub_80AEC34
|
|
sub_80AEC34: @ 80AEC34
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrh r0, [r4, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0xC
|
|
ble _080AEC74
|
|
ldr r3, _080AEC7C @ =gTasks
|
|
movs r0, 0x3C
|
|
ldrsh r1, [r4, r0]
|
|
lsls r1, 1
|
|
movs r0, 0x3A
|
|
ldrsh r2, [r4, r0]
|
|
lsls r0, r2, 2
|
|
adds r0, r2
|
|
lsls r0, 3
|
|
adds r1, r0
|
|
adds r3, 0x8
|
|
adds r1, r3
|
|
ldrh r0, [r1]
|
|
subs r0, 0x1
|
|
strh r0, [r1]
|
|
ldrb r0, [r4, 0x3]
|
|
lsls r0, 26
|
|
lsrs r0, 27
|
|
bl FreeOamMatrix
|
|
adds r0, r4, 0
|
|
bl DestroySprite
|
|
_080AEC74:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AEC7C: .4byte gTasks
|
|
thumb_func_end sub_80AEC34
|
|
|
|
thumb_func_start sub_80AEC80
|
|
sub_80AEC80: @ 80AEC80
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0
|
|
beq _080AEC92
|
|
cmp r0, 0x1
|
|
beq _080AECC4
|
|
b _080AECD8
|
|
_080AEC92:
|
|
ldr r4, _080AECC0 @ =gUnknown_2037F1A
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x20]
|
|
ldrb r0, [r4]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x22]
|
|
adds r0, r5, 0
|
|
movs r1, 0x2
|
|
bl StartSpriteAffineAnim
|
|
ldrh r0, [r5, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x2E]
|
|
b _080AECD8
|
|
.align 2, 0
|
|
_080AECC0: .4byte gUnknown_2037F1A
|
|
_080AECC4:
|
|
adds r0, r5, 0
|
|
adds r0, 0x3F
|
|
ldrb r1, [r0]
|
|
movs r0, 0x20
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080AECD8
|
|
adds r0, r5, 0
|
|
bl move_anim_8074EE0
|
|
_080AECD8:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80AEC80
|
|
|
|
thumb_func_start sub_80AECE0
|
|
sub_80AECE0: @ 80AECE0
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
lsls r0, r2, 2
|
|
adds r0, r2
|
|
lsls r0, 3
|
|
ldr r1, _080AED04 @ =gTasks
|
|
adds r5, r0, r1
|
|
movs r1, 0x8
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0x4
|
|
bls _080AECFA
|
|
b _080AEE6C
|
|
_080AECFA:
|
|
lsls r0, 2
|
|
ldr r1, _080AED08 @ =_080AED0C
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080AED04: .4byte gTasks
|
|
_080AED08: .4byte _080AED0C
|
|
.align 2, 0
|
|
_080AED0C:
|
|
.4byte _080AED20
|
|
.4byte _080AEDB0
|
|
.4byte _080AEDEC
|
|
.4byte _080AEE48
|
|
.4byte _080AEE58
|
|
_080AED20:
|
|
ldr r4, _080AEDA4 @ =gUnknown_2037F1A
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x14]
|
|
ldrb r0, [r4]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x16]
|
|
movs r0, 0x4
|
|
strh r0, [r5, 0x18]
|
|
ldr r0, _080AEDA8 @ =gUnknown_2037F1B
|
|
ldrb r0, [r0]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x1C]
|
|
movs r2, 0x1C
|
|
ldrsh r0, [r5, r2]
|
|
movs r2, 0x14
|
|
ldrsh r1, [r5, r2]
|
|
subs r0, r1
|
|
movs r1, 0x5
|
|
bl __divsi3
|
|
strh r0, [r5, 0x1A]
|
|
movs r0, 0x7
|
|
strh r0, [r5, 0x10]
|
|
ldr r0, _080AEDAC @ =0x0000ffff
|
|
strh r0, [r5, 0x12]
|
|
movs r0, 0xC
|
|
strh r0, [r5, 0x1E]
|
|
subs r0, 0x4C
|
|
bl sub_8073A44
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
strh r0, [r5, 0x20]
|
|
movs r0, 0x3F
|
|
bl sub_8073A44
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
strh r0, [r5, 0x22]
|
|
ldrh r0, [r5, 0x20]
|
|
strh r0, [r5, 0x24]
|
|
movs r1, 0x22
|
|
ldrsh r0, [r5, r1]
|
|
movs r2, 0x20
|
|
ldrsh r1, [r5, r2]
|
|
subs r0, r1
|
|
movs r1, 0x3
|
|
bl __divsi3
|
|
strh r0, [r5, 0x26]
|
|
ldrh r0, [r5, 0x8]
|
|
adds r0, 0x1
|
|
b _080AEE6A
|
|
.align 2, 0
|
|
_080AEDA4: .4byte gUnknown_2037F1A
|
|
_080AEDA8: .4byte gUnknown_2037F1B
|
|
_080AEDAC: .4byte 0x0000ffff
|
|
_080AEDB0:
|
|
ldrh r0, [r5, 0xA]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0xA]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
ble _080AEDE0
|
|
movs r0, 0
|
|
strh r0, [r5, 0xA]
|
|
adds r0, r5, 0
|
|
adds r1, r2, 0
|
|
bl sub_80AEE74
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080AEDE0
|
|
movs r1, 0xC
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0x5
|
|
bne _080AEDDA
|
|
movs r0, 0x3
|
|
b _080AEDDE
|
|
_080AEDDA:
|
|
ldrh r0, [r5, 0x8]
|
|
adds r0, 0x1
|
|
_080AEDDE:
|
|
strh r0, [r5, 0x8]
|
|
_080AEDE0:
|
|
ldrh r1, [r5, 0x1E]
|
|
movs r2, 0x1E
|
|
ldrsh r0, [r5, r2]
|
|
cmp r0, 0
|
|
beq _080AEE6C
|
|
b _080AEE62
|
|
_080AEDEC:
|
|
ldrh r1, [r5, 0x1E]
|
|
movs r2, 0x1E
|
|
ldrsh r0, [r5, r2]
|
|
cmp r0, 0
|
|
beq _080AEDFA
|
|
subs r0, r1, 0x1
|
|
strh r0, [r5, 0x1E]
|
|
_080AEDFA:
|
|
ldrh r0, [r5, 0xA]
|
|
adds r0, 0x1
|
|
movs r3, 0
|
|
strh r0, [r5, 0xA]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x4
|
|
ble _080AEE6C
|
|
strh r3, [r5, 0xA]
|
|
ldrh r1, [r5, 0xC]
|
|
movs r2, 0x1
|
|
adds r0, r2, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080AEE26
|
|
movs r0, 0x4
|
|
strh r0, [r5, 0x16]
|
|
movs r0, 0x44
|
|
strh r0, [r5, 0x18]
|
|
strh r3, [r5, 0x10]
|
|
strh r2, [r5, 0x12]
|
|
b _080AEE36
|
|
_080AEE26:
|
|
movs r0, 0x44
|
|
strh r0, [r5, 0x16]
|
|
movs r0, 0x4
|
|
strh r0, [r5, 0x18]
|
|
movs r0, 0x7
|
|
strh r0, [r5, 0x10]
|
|
ldr r0, _080AEE44 @ =0x0000ffff
|
|
strh r0, [r5, 0x12]
|
|
_080AEE36:
|
|
movs r1, 0x1E
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0
|
|
beq _080AEE68
|
|
movs r0, 0x4
|
|
b _080AEE6A
|
|
.align 2, 0
|
|
_080AEE44: .4byte 0x0000ffff
|
|
_080AEE48:
|
|
movs r1, 0xE
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0
|
|
bne _080AEE6C
|
|
adds r0, r2, 0
|
|
bl DestroyAnimVisualTask
|
|
b _080AEE6C
|
|
_080AEE58:
|
|
ldrh r1, [r5, 0x1E]
|
|
movs r2, 0x1E
|
|
ldrsh r0, [r5, r2]
|
|
cmp r0, 0
|
|
beq _080AEE68
|
|
_080AEE62:
|
|
subs r0, r1, 0x1
|
|
strh r0, [r5, 0x1E]
|
|
b _080AEE6C
|
|
_080AEE68:
|
|
movs r0, 0x1
|
|
_080AEE6A:
|
|
strh r0, [r5, 0x8]
|
|
_080AEE6C:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80AECE0
|
|
|
|
thumb_func_start sub_80AEE74
|
|
sub_80AEE74: @ 80AEE74
|
|
push {r4-r6,lr}
|
|
adds r4, r0, 0
|
|
lsls r1, 24
|
|
lsrs r5, r1, 24
|
|
ldr r0, _080AEF3C @ =gUnknown_83E62A8
|
|
movs r2, 0x14
|
|
ldrsh r1, [r4, r2]
|
|
movs r3, 0x16
|
|
ldrsh r2, [r4, r3]
|
|
movs r3, 0x23
|
|
bl CreateSprite
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0x40
|
|
beq _080AEEE0
|
|
ldr r1, _080AEF40 @ =gSprites
|
|
lsls r0, r2, 4
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r3, r0, r1
|
|
ldrh r2, [r3, 0x4]
|
|
lsls r1, r2, 22
|
|
lsrs r1, 22
|
|
ldrh r6, [r4, 0x10]
|
|
adds r1, r6
|
|
ldr r6, _080AEF44 @ =0x000003ff
|
|
adds r0, r6, 0
|
|
ands r1, r0
|
|
ldr r0, _080AEF48 @ =0xfffffc00
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strh r0, [r3, 0x4]
|
|
ldrh r0, [r4, 0x12]
|
|
ldrh r1, [r4, 0x10]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x10]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bge _080AEEC8
|
|
movs r0, 0x7
|
|
strh r0, [r4, 0x10]
|
|
_080AEEC8:
|
|
movs r2, 0x10
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0x7
|
|
ble _080AEED4
|
|
movs r0, 0
|
|
strh r0, [r4, 0x10]
|
|
_080AEED4:
|
|
strh r5, [r3, 0x3A]
|
|
movs r0, 0x3
|
|
strh r0, [r3, 0x3C]
|
|
ldrh r0, [r4, 0xE]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0xE]
|
|
_080AEEE0:
|
|
movs r3, 0x10
|
|
ldrsh r0, [r4, r3]
|
|
cmp r0, 0
|
|
bne _080AEF02
|
|
movs r5, 0x12
|
|
ldrsh r0, [r4, r5]
|
|
cmp r0, 0
|
|
ble _080AEF02
|
|
ldrh r1, [r4, 0x26]
|
|
ldrh r6, [r4, 0x24]
|
|
adds r1, r6
|
|
strh r1, [r4, 0x24]
|
|
lsls r1, 24
|
|
asrs r1, 24
|
|
movs r0, 0x6F
|
|
bl PlaySE12WithPanning
|
|
_080AEF02:
|
|
movs r0, 0x12
|
|
ldrsh r3, [r4, r0]
|
|
ldrh r2, [r4, 0x16]
|
|
cmp r3, 0
|
|
bge _080AEF18
|
|
lsls r0, r2, 16
|
|
asrs r0, 16
|
|
movs r5, 0x18
|
|
ldrsh r1, [r4, r5]
|
|
cmp r0, r1
|
|
ble _080AEF28
|
|
_080AEF18:
|
|
cmp r3, 0
|
|
ble _080AEF4C
|
|
lsls r0, r2, 16
|
|
asrs r0, 16
|
|
movs r6, 0x18
|
|
ldrsh r1, [r4, r6]
|
|
cmp r0, r1
|
|
blt _080AEF4C
|
|
_080AEF28:
|
|
ldrh r0, [r4, 0xC]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0xC]
|
|
ldrh r0, [r4, 0x1A]
|
|
ldrh r1, [r4, 0x14]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x14]
|
|
movs r0, 0x1
|
|
b _080AEF58
|
|
.align 2, 0
|
|
_080AEF3C: .4byte gUnknown_83E62A8
|
|
_080AEF40: .4byte gSprites
|
|
_080AEF44: .4byte 0x000003ff
|
|
_080AEF48: .4byte 0xfffffc00
|
|
_080AEF4C:
|
|
movs r3, 0x12
|
|
ldrsh r0, [r4, r3]
|
|
lsls r0, 3
|
|
adds r0, r2, r0
|
|
strh r0, [r4, 0x16]
|
|
movs r0, 0
|
|
_080AEF58:
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80AEE74
|
|
|
|
thumb_func_start sub_80AEF60
|
|
sub_80AEF60: @ 80AEF60
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrh r0, [r4, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0xC
|
|
ble _080AEF96
|
|
ldr r3, _080AEF9C @ =gTasks
|
|
movs r0, 0x3C
|
|
ldrsh r1, [r4, r0]
|
|
lsls r1, 1
|
|
movs r0, 0x3A
|
|
ldrsh r2, [r4, r0]
|
|
lsls r0, r2, 2
|
|
adds r0, r2
|
|
lsls r0, 3
|
|
adds r1, r0
|
|
adds r3, 0x8
|
|
adds r1, r3
|
|
ldrh r0, [r1]
|
|
subs r0, 0x1
|
|
strh r0, [r1]
|
|
adds r0, r4, 0
|
|
bl DestroySprite
|
|
_080AEF96:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AEF9C: .4byte gTasks
|
|
thumb_func_end sub_80AEF60
|
|
|
|
thumb_func_start sub_80AEFA0
|
|
sub_80AEFA0: @ 80AEFA0
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
lsls r0, r2, 2
|
|
adds r0, r2
|
|
lsls r0, 3
|
|
ldr r1, _080AEFC4 @ =gTasks
|
|
adds r5, r0, r1
|
|
movs r1, 0x8
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0x1
|
|
beq _080AF01C
|
|
cmp r0, 0x1
|
|
bgt _080AEFC8
|
|
cmp r0, 0
|
|
beq _080AEFCE
|
|
b _080AF052
|
|
.align 2, 0
|
|
_080AEFC4: .4byte gTasks
|
|
_080AEFC8:
|
|
cmp r0, 0x2
|
|
beq _080AF044
|
|
b _080AF052
|
|
_080AEFCE:
|
|
ldr r0, _080AF018 @ =gUnknown_2037F1B
|
|
ldrb r0, [r0]
|
|
movs r1, 0x1
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r0, 0x20
|
|
strh r0, [r5, 0x26]
|
|
strh r0, [r5, 0x24]
|
|
cmp r0, 0x10
|
|
ble _080AEFF8
|
|
adds r2, r0, 0
|
|
_080AEFE8:
|
|
adds r1, r2, 0
|
|
subs r1, 0x20
|
|
adds r2, r1, 0
|
|
lsls r0, r1, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x10
|
|
bgt _080AEFE8
|
|
strh r1, [r5, 0x24]
|
|
_080AEFF8:
|
|
ldr r4, _080AF018 @ =gUnknown_2037F1B
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x22]
|
|
ldrb r0, [r4]
|
|
bl sub_807685C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
subs r0, 0x2
|
|
strh r0, [r5, 0x20]
|
|
b _080AF03C
|
|
.align 2, 0
|
|
_080AF018: .4byte gUnknown_2037F1B
|
|
_080AF01C:
|
|
ldrh r0, [r5, 0xA]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0xA]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1
|
|
ble _080AF052
|
|
movs r0, 0
|
|
strh r0, [r5, 0xA]
|
|
adds r0, r5, 0
|
|
adds r1, r2, 0
|
|
bl sub_80AF058
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080AF052
|
|
_080AF03C:
|
|
ldrh r0, [r5, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x8]
|
|
b _080AF052
|
|
_080AF044:
|
|
movs r1, 0x1C
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0
|
|
bne _080AF052
|
|
adds r0, r2, 0
|
|
bl DestroyAnimVisualTask
|
|
_080AF052:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80AEFA0
|
|
|
|
thumb_func_start sub_80AF058
|
|
sub_80AF058: @ 80AF058
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
lsls r1, 24
|
|
lsrs r5, r1, 24
|
|
ldr r0, _080AF0B4 @ =gUnknown_83E5F38
|
|
movs r2, 0x22
|
|
ldrsh r1, [r4, r2]
|
|
movs r3, 0x24
|
|
ldrsh r2, [r4, r3]
|
|
ldrh r3, [r4, 0x20]
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
bl CreateSprite
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0x40
|
|
beq _080AF09C
|
|
ldr r3, _080AF0B8 @ =gSprites
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r1, r3, 0
|
|
adds r1, 0x1C
|
|
adds r1, r0, r1
|
|
ldr r2, _080AF0BC @ =sub_80AF0C8
|
|
str r2, [r1]
|
|
adds r0, r3
|
|
strh r5, [r0, 0x3A]
|
|
movs r1, 0xA
|
|
strh r1, [r0, 0x3C]
|
|
ldrh r0, [r4, 0x1C]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x1C]
|
|
_080AF09C:
|
|
ldrh r2, [r4, 0x24]
|
|
movs r0, 0x24
|
|
ldrsh r1, [r4, r0]
|
|
movs r3, 0x26
|
|
ldrsh r0, [r4, r3]
|
|
cmp r1, r0
|
|
bge _080AF0C0
|
|
adds r0, r2, 0
|
|
adds r0, 0x20
|
|
strh r0, [r4, 0x24]
|
|
movs r0, 0
|
|
b _080AF0C2
|
|
.align 2, 0
|
|
_080AF0B4: .4byte gUnknown_83E5F38
|
|
_080AF0B8: .4byte gSprites
|
|
_080AF0BC: .4byte sub_80AF0C8
|
|
_080AF0C0:
|
|
movs r0, 0x1
|
|
_080AF0C2:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80AF058
|
|
|
|
thumb_func_start sub_80AF0C8
|
|
sub_80AF0C8: @ 80AF0C8
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
adds r0, 0x3F
|
|
ldrb r1, [r0]
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080AF0FC
|
|
ldr r3, _080AF104 @ =gTasks
|
|
movs r0, 0x3C
|
|
ldrsh r1, [r4, r0]
|
|
lsls r1, 1
|
|
movs r0, 0x3A
|
|
ldrsh r2, [r4, r0]
|
|
lsls r0, r2, 2
|
|
adds r0, r2
|
|
lsls r0, 3
|
|
adds r1, r0
|
|
adds r3, 0x8
|
|
adds r1, r3
|
|
ldrh r0, [r1]
|
|
subs r0, 0x1
|
|
strh r0, [r1]
|
|
adds r0, r4, 0
|
|
bl DestroySprite
|
|
_080AF0FC:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AF104: .4byte gTasks
|
|
thumb_func_end sub_80AF0C8
|
|
|
|
thumb_func_start sub_80AF108
|
|
sub_80AF108: @ 80AF108
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
ldrh r2, [r5, 0x4]
|
|
lsls r1, r2, 22
|
|
lsrs r1, 22
|
|
adds r1, 0x7
|
|
ldr r3, _080AF210 @ =0x000003ff
|
|
adds r0, r3, 0
|
|
ands r1, r0
|
|
ldr r0, _080AF214 @ =0xfffffc00
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strh r0, [r5, 0x4]
|
|
ldr r4, _080AF218 @ =gUnknown_2037F1B
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
ldrb r0, [r4]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
ldr r4, _080AF21C @ =gUnknown_2037F1A
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
ldrb r0, [r4]
|
|
movs r1, 0x3
|
|
str r3, [sp]
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
ldr r1, _080AF220 @ =gUnknown_2037F02
|
|
ldrh r0, [r1, 0x8]
|
|
strh r0, [r5, 0x2E]
|
|
ldrh r0, [r1]
|
|
ldr r3, [sp]
|
|
adds r0, r3
|
|
strh r0, [r5, 0x30]
|
|
ldrh r0, [r1, 0x4]
|
|
mov r4, r9
|
|
adds r0, r4, r0
|
|
strh r0, [r5, 0x32]
|
|
ldrh r0, [r1, 0x2]
|
|
adds r0, r6
|
|
strh r0, [r5, 0x34]
|
|
ldrh r0, [r1, 0x6]
|
|
mov r7, r8
|
|
adds r0, r7, r0
|
|
strh r0, [r5, 0x36]
|
|
adds r0, r5, 0
|
|
bl sub_8074C80
|
|
adds r4, 0x20
|
|
movs r0, 0x98
|
|
lsls r0, 1
|
|
mov r12, r0
|
|
ldr r3, [sp]
|
|
cmp r4, r12
|
|
bhi _080AF1E2
|
|
adds r0, r7, 0
|
|
adds r0, 0x20
|
|
ldrh r1, [r5, 0x30]
|
|
ldrh r2, [r5, 0x32]
|
|
cmp r0, 0xE0
|
|
bhi _080AF1E2
|
|
adds r4, r1, 0
|
|
mov r10, r12
|
|
_080AF1AE:
|
|
mov r7, r9
|
|
lsls r1, r7, 16
|
|
asrs r1, 16
|
|
adds r1, r4
|
|
lsls r1, 16
|
|
mov r7, r8
|
|
lsls r0, r7, 16
|
|
asrs r0, 16
|
|
adds r0, r2
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
mov r8, r0
|
|
lsrs r0, r1, 16
|
|
mov r9, r0
|
|
movs r7, 0x80
|
|
lsls r7, 14
|
|
adds r1, r7
|
|
lsrs r1, 16
|
|
cmp r1, r10
|
|
bhi _080AF1E2
|
|
mov r1, r8
|
|
lsls r0, r1, 16
|
|
adds r0, r7
|
|
lsrs r0, 16
|
|
cmp r0, 0xE0
|
|
bls _080AF1AE
|
|
_080AF1E2:
|
|
ldrh r0, [r5, 0x30]
|
|
negs r7, r0
|
|
strh r7, [r5, 0x30]
|
|
ldrh r0, [r5, 0x32]
|
|
negs r4, r0
|
|
strh r4, [r5, 0x32]
|
|
lsls r0, r3, 16
|
|
movs r1, 0x80
|
|
lsls r1, 14
|
|
adds r0, r1
|
|
lsrs r0, 16
|
|
movs r2, 0x98
|
|
lsls r2, 1
|
|
mov r12, r2
|
|
ldr r1, _080AF220 @ =gUnknown_2037F02
|
|
mov r10, r1
|
|
cmp r0, r12
|
|
bhi _080AF24E
|
|
lsls r1, r6, 16
|
|
movs r2, 0x80
|
|
lsls r2, 14
|
|
adds r0, r1, r2
|
|
b _080AF246
|
|
.align 2, 0
|
|
_080AF210: .4byte 0x000003ff
|
|
_080AF214: .4byte 0xfffffc00
|
|
_080AF218: .4byte gUnknown_2037F1B
|
|
_080AF21C: .4byte gUnknown_2037F1A
|
|
_080AF220: .4byte gUnknown_2037F02
|
|
_080AF224:
|
|
lsls r1, r3, 16
|
|
asrs r1, 16
|
|
adds r1, r7
|
|
lsls r1, 16
|
|
asrs r0, r2, 16
|
|
adds r0, r4
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
lsrs r3, r1, 16
|
|
movs r0, 0x80
|
|
lsls r0, 14
|
|
adds r1, r0
|
|
lsrs r1, 16
|
|
cmp r1, r12
|
|
bhi _080AF24E
|
|
lsls r1, r6, 16
|
|
adds r0, r1, r0
|
|
_080AF246:
|
|
lsrs r0, 16
|
|
adds r2, r1, 0
|
|
cmp r0, 0xE0
|
|
bls _080AF224
|
|
_080AF24E:
|
|
strh r3, [r5, 0x20]
|
|
strh r6, [r5, 0x22]
|
|
mov r1, r10
|
|
ldrh r0, [r1, 0x8]
|
|
strh r0, [r5, 0x2E]
|
|
strh r3, [r5, 0x30]
|
|
mov r2, r9
|
|
strh r2, [r5, 0x32]
|
|
strh r6, [r5, 0x34]
|
|
mov r3, r8
|
|
strh r3, [r5, 0x36]
|
|
adds r0, r5, 0
|
|
bl sub_8074C80
|
|
mov r7, r10
|
|
ldrh r0, [r7, 0xA]
|
|
strh r0, [r5, 0x34]
|
|
ldrh r0, [r7, 0xC]
|
|
strh r0, [r5, 0x36]
|
|
ldr r0, _080AF288 @ =sub_80AF28C
|
|
str r0, [r5, 0x1C]
|
|
add sp, 0x4
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AF288: .4byte sub_80AF28C
|
|
thumb_func_end sub_80AF108
|
|
|
|
thumb_func_start sub_80AF28C
|
|
sub_80AF28C: @ 80AF28C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
beq _080AF2E4
|
|
ldrh r1, [r4, 0x30]
|
|
ldrh r2, [r4, 0x38]
|
|
adds r1, r2
|
|
strh r1, [r4, 0x38]
|
|
ldrh r0, [r4, 0x32]
|
|
ldrh r2, [r4, 0x3A]
|
|
adds r0, r2
|
|
strh r0, [r4, 0x3A]
|
|
strh r1, [r4, 0x24]
|
|
strh r0, [r4, 0x26]
|
|
movs r1, 0x3C
|
|
ldrsh r0, [r4, r1]
|
|
movs r2, 0x34
|
|
ldrsh r1, [r4, r2]
|
|
bl Sin
|
|
ldrh r1, [r4, 0x24]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x24]
|
|
movs r2, 0x3C
|
|
ldrsh r0, [r4, r2]
|
|
movs r2, 0x34
|
|
ldrsh r1, [r4, r2]
|
|
bl Sin
|
|
ldrh r1, [r4, 0x26]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x26]
|
|
ldrh r0, [r4, 0x36]
|
|
ldrh r2, [r4, 0x3C]
|
|
adds r0, r2
|
|
movs r1, 0xFF
|
|
ands r0, r1
|
|
strh r0, [r4, 0x3C]
|
|
ldrh r0, [r4, 0x2E]
|
|
subs r0, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
b _080AF2EA
|
|
_080AF2E4:
|
|
adds r0, r4, 0
|
|
bl DestroyAnimSprite
|
|
_080AF2EA:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80AF28C
|
|
|
|
thumb_func_start sub_80AF2F0
|
|
sub_80AF2F0: @ 80AF2F0
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldr r0, _080AF324 @ =gUnknown_2037F02
|
|
ldrh r0, [r0]
|
|
strh r0, [r4, 0x2E]
|
|
movs r0, 0x3C
|
|
strh r0, [r4, 0x30]
|
|
movs r0, 0x9
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1E
|
|
strh r0, [r4, 0x34]
|
|
movs r0, 0xFE
|
|
lsls r0, 8
|
|
strh r0, [r4, 0x36]
|
|
ldr r1, _080AF328 @ =DestroyAnimSprite
|
|
adds r0, r4, 0
|
|
bl StoreSpriteCallbackInData6
|
|
ldr r1, _080AF32C @ =sub_8074AE0
|
|
str r1, [r4, 0x1C]
|
|
adds r0, r4, 0
|
|
bl _call_via_r1
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AF324: .4byte gUnknown_2037F02
|
|
_080AF328: .4byte DestroyAnimSprite
|
|
_080AF32C: .4byte sub_8074AE0
|
|
thumb_func_end sub_80AF2F0
|
|
|
|
thumb_func_start sub_80AF330
|
|
sub_80AF330: @ 80AF330
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x1
|
|
bl sub_8075160
|
|
ldr r0, _080AF364 @ =gUnknown_2037F1B
|
|
ldrb r0, [r0]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x32]
|
|
ldr r0, _080AF368 @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080AF370
|
|
ldr r0, _080AF36C @ =gUnknown_2037F02
|
|
ldrh r1, [r4, 0x32]
|
|
ldrh r0, [r0, 0x4]
|
|
subs r1, r0
|
|
strh r1, [r4, 0x32]
|
|
b _080AF37A
|
|
.align 2, 0
|
|
_080AF364: .4byte gUnknown_2037F1B
|
|
_080AF368: .4byte gUnknown_2037F1A
|
|
_080AF36C: .4byte gUnknown_2037F02
|
|
_080AF370:
|
|
ldr r0, _080AF3A8 @ =gUnknown_2037F02
|
|
ldrh r0, [r0, 0x4]
|
|
ldrh r1, [r4, 0x32]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x32]
|
|
_080AF37A:
|
|
ldr r0, _080AF3AC @ =gUnknown_2037F1B
|
|
ldrb r0, [r0]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
ldr r1, _080AF3A8 @ =gUnknown_2037F02
|
|
lsrs r0, 24
|
|
ldrh r2, [r1, 0x6]
|
|
adds r0, r2
|
|
strh r0, [r4, 0x36]
|
|
ldrh r0, [r1, 0x8]
|
|
strh r0, [r4, 0x2E]
|
|
ldr r1, _080AF3B0 @ =DestroyAnimSprite
|
|
adds r0, r4, 0
|
|
bl StoreSpriteCallbackInData6
|
|
ldr r0, _080AF3B4 @ =sub_8075590
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AF3A8: .4byte gUnknown_2037F02
|
|
_080AF3AC: .4byte gUnknown_2037F1B
|
|
_080AF3B0: .4byte DestroyAnimSprite
|
|
_080AF3B4: .4byte sub_8075590
|
|
thumb_func_end sub_80AF330
|
|
|
|
thumb_func_start sub_80AF3B8
|
|
sub_80AF3B8: @ 80AF3B8
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
ldr r5, _080AF3D0 @ =gUnknown_2037F02
|
|
movs r1, 0x4
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0
|
|
bne _080AF3D4
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl sub_8075114
|
|
b _080AF40A
|
|
.align 2, 0
|
|
_080AF3D0: .4byte gUnknown_2037F02
|
|
_080AF3D4:
|
|
ldr r0, _080AF41C @ =gUnknown_2037F1B
|
|
ldrb r0, [r0]
|
|
adds r2, r4, 0
|
|
adds r2, 0x20
|
|
adds r3, r4, 0
|
|
adds r3, 0x22
|
|
movs r1, 0x1
|
|
bl sub_8076D9C
|
|
ldr r0, _080AF420 @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080AF3FA
|
|
ldrh r0, [r5]
|
|
negs r0, r0
|
|
strh r0, [r5]
|
|
_080AF3FA:
|
|
ldrh r0, [r5]
|
|
ldrh r1, [r4, 0x20]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x20]
|
|
ldrh r0, [r5, 0x2]
|
|
ldrh r1, [r4, 0x22]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x22]
|
|
_080AF40A:
|
|
ldr r1, _080AF424 @ =sub_80AF42C
|
|
adds r0, r4, 0
|
|
bl StoreSpriteCallbackInData6
|
|
ldr r0, _080AF428 @ =sub_8074F50
|
|
str r0, [r4, 0x1C]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AF41C: .4byte gUnknown_2037F1B
|
|
_080AF420: .4byte gUnknown_2037F1A
|
|
_080AF424: .4byte sub_80AF42C
|
|
_080AF428: .4byte sub_8074F50
|
|
thumb_func_end sub_80AF3B8
|
|
|
|
thumb_func_start sub_80AF42C
|
|
sub_80AF42C: @ 80AF42C
|
|
push {lr}
|
|
adds r3, r0, 0
|
|
movs r0, 0x3E
|
|
adds r0, r3
|
|
mov r12, r0
|
|
ldrb r2, [r0]
|
|
lsls r0, r2, 29
|
|
lsrs r0, 31
|
|
movs r1, 0x1
|
|
eors r1, r0
|
|
lsls r1, 2
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
mov r1, r12
|
|
strb r0, [r1]
|
|
ldrh r0, [r3, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r3, 0x2E]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x14
|
|
bne _080AF462
|
|
adds r0, r3, 0
|
|
bl move_anim_8074EE0
|
|
_080AF462:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80AF42C
|
|
|
|
thumb_func_start sub_80AF468
|
|
sub_80AF468: @ 80AF468
|
|
push {r4-r7,lr}
|
|
sub sp, 0x10
|
|
adds r5, r0, 0
|
|
movs r1, 0x1
|
|
bl sub_8075160
|
|
ldr r6, _080AF4B0 @ =gUnknown_2037F02
|
|
ldrh r0, [r6, 0x8]
|
|
strh r0, [r5, 0x2E]
|
|
ldrh r0, [r5, 0x20]
|
|
strh r0, [r5, 0x30]
|
|
ldrh r0, [r5, 0x22]
|
|
strh r0, [r5, 0x34]
|
|
movs r1, 0xA
|
|
ldrsh r0, [r6, r1]
|
|
cmp r0, 0
|
|
bne _080AF4B8
|
|
ldr r4, _080AF4B4 @ =gUnknown_2037F1B
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x32]
|
|
ldrb r0, [r4]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrh r6, [r6, 0x6]
|
|
adds r0, r6
|
|
strh r0, [r5, 0x36]
|
|
b _080AF4CA
|
|
.align 2, 0
|
|
_080AF4B0: .4byte gUnknown_2037F02
|
|
_080AF4B4: .4byte gUnknown_2037F1B
|
|
_080AF4B8:
|
|
ldr r0, _080AF4E4 @ =gUnknown_2037F1B
|
|
ldrb r0, [r0]
|
|
adds r2, r5, 0
|
|
adds r2, 0x32
|
|
adds r3, r5, 0
|
|
adds r3, 0x36
|
|
movs r1, 0x1
|
|
bl sub_8076D9C
|
|
_080AF4CA:
|
|
ldr r0, _080AF4E8 @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080AF4F0
|
|
ldr r0, _080AF4EC @ =gUnknown_2037F02
|
|
ldrh r1, [r5, 0x32]
|
|
ldrh r0, [r0, 0x4]
|
|
subs r1, r0
|
|
strh r1, [r5, 0x32]
|
|
b _080AF4FA
|
|
.align 2, 0
|
|
_080AF4E4: .4byte gUnknown_2037F1B
|
|
_080AF4E8: .4byte gUnknown_2037F1A
|
|
_080AF4EC: .4byte gUnknown_2037F02
|
|
_080AF4F0:
|
|
ldr r0, _080AF598 @ =gUnknown_2037F02
|
|
ldrh r0, [r0, 0x4]
|
|
ldrh r2, [r5, 0x32]
|
|
adds r0, r2
|
|
strh r0, [r5, 0x32]
|
|
_080AF4FA:
|
|
adds r7, r5, 0
|
|
adds r7, 0x2E
|
|
adds r2, r7, 0
|
|
mov r1, sp
|
|
movs r4, 0x7
|
|
_080AF504:
|
|
ldrh r0, [r2]
|
|
strh r0, [r1]
|
|
adds r2, 0x2
|
|
adds r1, 0x2
|
|
subs r4, 0x1
|
|
cmp r4, 0
|
|
bge _080AF504
|
|
adds r0, r5, 0
|
|
bl sub_8075804
|
|
ldrh r0, [r5, 0x30]
|
|
movs r1, 0x1
|
|
eors r0, r1
|
|
strh r0, [r5, 0x30]
|
|
ldrh r0, [r5, 0x32]
|
|
eors r0, r1
|
|
strh r0, [r5, 0x32]
|
|
_080AF526:
|
|
movs r0, 0x1
|
|
strh r0, [r5, 0x2E]
|
|
adds r0, r5, 0
|
|
bl sub_807578C
|
|
movs r0, 0x20
|
|
ldrsh r1, [r5, r0]
|
|
movs r2, 0x24
|
|
ldrsh r0, [r5, r2]
|
|
adds r1, r0
|
|
adds r1, 0x10
|
|
movs r0, 0x88
|
|
lsls r0, 1
|
|
cmp r1, r0
|
|
bhi _080AF55A
|
|
movs r0, 0x22
|
|
ldrsh r1, [r5, r0]
|
|
movs r2, 0x26
|
|
ldrsh r0, [r5, r2]
|
|
adds r1, r0
|
|
cmp r1, 0xA0
|
|
bgt _080AF55A
|
|
movs r0, 0x10
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
bge _080AF526
|
|
_080AF55A:
|
|
ldrh r0, [r5, 0x24]
|
|
ldrh r1, [r5, 0x20]
|
|
adds r0, r1
|
|
movs r1, 0
|
|
strh r0, [r5, 0x20]
|
|
ldrh r0, [r5, 0x26]
|
|
ldrh r2, [r5, 0x22]
|
|
adds r0, r2
|
|
strh r0, [r5, 0x22]
|
|
strh r1, [r5, 0x26]
|
|
strh r1, [r5, 0x24]
|
|
ldr r6, _080AF59C @ =sub_8075830
|
|
ldr r1, _080AF5A0 @ =sub_80AF5A4
|
|
mov r3, sp
|
|
adds r2, r7, 0
|
|
movs r4, 0x7
|
|
_080AF57A:
|
|
ldrh r0, [r3]
|
|
strh r0, [r2]
|
|
adds r3, 0x2
|
|
adds r2, 0x2
|
|
subs r4, 0x1
|
|
cmp r4, 0
|
|
bge _080AF57A
|
|
str r6, [r5, 0x1C]
|
|
adds r0, r5, 0
|
|
bl StoreSpriteCallbackInData6
|
|
add sp, 0x10
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AF598: .4byte gUnknown_2037F02
|
|
_080AF59C: .4byte sub_8075830
|
|
_080AF5A0: .4byte sub_80AF5A4
|
|
thumb_func_end sub_80AF468
|
|
|
|
thumb_func_start sub_80AF5A4
|
|
sub_80AF5A4: @ 80AF5A4
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
ldrh r0, [r4, 0x24]
|
|
ldrh r1, [r4, 0x20]
|
|
adds r0, r1
|
|
movs r5, 0
|
|
strh r0, [r4, 0x20]
|
|
ldrh r0, [r4, 0x26]
|
|
ldrh r2, [r4, 0x22]
|
|
adds r0, r2
|
|
strh r0, [r4, 0x22]
|
|
strh r5, [r4, 0x26]
|
|
strh r5, [r4, 0x24]
|
|
movs r0, 0x80
|
|
strh r0, [r4, 0x2E]
|
|
ldr r0, _080AF600 @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
ldr r1, _080AF604 @ =0x0000ffec
|
|
cmp r0, 0
|
|
beq _080AF5D4
|
|
movs r1, 0x14
|
|
_080AF5D4:
|
|
movs r2, 0x2E
|
|
ldrsh r0, [r4, r2]
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
bl Sin
|
|
strh r0, [r4, 0x34]
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0xF
|
|
bl Cos
|
|
strh r0, [r4, 0x36]
|
|
strh r5, [r4, 0x38]
|
|
ldr r1, _080AF608 @ =sub_80AF60C
|
|
str r1, [r4, 0x1C]
|
|
adds r0, r4, 0
|
|
bl _call_via_r1
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AF600: .4byte gUnknown_2037F1A
|
|
_080AF604: .4byte 0x0000ffec
|
|
_080AF608: .4byte sub_80AF60C
|
|
thumb_func_end sub_80AF5A4
|
|
|
|
thumb_func_start sub_80AF60C
|
|
sub_80AF60C: @ 80AF60C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldr r0, _080AF660 @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
ldr r1, _080AF664 @ =0x0000ffec
|
|
cmp r0, 0
|
|
beq _080AF622
|
|
movs r1, 0x14
|
|
_080AF622:
|
|
movs r2, 0x38
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0x1F
|
|
bgt _080AF668
|
|
movs r2, 0x2E
|
|
ldrsh r0, [r4, r2]
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
bl Sin
|
|
ldrh r1, [r4, 0x34]
|
|
subs r0, r1
|
|
strh r0, [r4, 0x24]
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0xF
|
|
bl Cos
|
|
ldrh r1, [r4, 0x36]
|
|
subs r0, r1
|
|
strh r0, [r4, 0x26]
|
|
ldrh r0, [r4, 0x2E]
|
|
adds r0, 0x10
|
|
movs r1, 0xFF
|
|
ands r0, r1
|
|
strh r0, [r4, 0x2E]
|
|
ldrh r0, [r4, 0x38]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x38]
|
|
b _080AF686
|
|
.align 2, 0
|
|
_080AF660: .4byte gUnknown_2037F1A
|
|
_080AF664: .4byte 0x0000ffec
|
|
_080AF668:
|
|
ldrh r0, [r4, 0x24]
|
|
ldrh r2, [r4, 0x20]
|
|
adds r0, r2
|
|
movs r1, 0
|
|
strh r0, [r4, 0x20]
|
|
ldrh r0, [r4, 0x26]
|
|
ldrh r2, [r4, 0x22]
|
|
adds r0, r2
|
|
strh r0, [r4, 0x22]
|
|
strh r1, [r4, 0x26]
|
|
strh r1, [r4, 0x24]
|
|
strh r1, [r4, 0x36]
|
|
strh r1, [r4, 0x34]
|
|
ldr r0, _080AF68C @ =sub_80AF690
|
|
str r0, [r4, 0x1C]
|
|
_080AF686:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AF68C: .4byte sub_80AF690
|
|
thumb_func_end sub_80AF60C
|
|
|
|
thumb_func_start sub_80AF690
|
|
sub_80AF690: @ 80AF690
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
adds r0, r4, 0
|
|
bl sub_807578C
|
|
movs r1, 0x20
|
|
ldrsh r0, [r4, r1]
|
|
movs r2, 0x24
|
|
ldrsh r1, [r4, r2]
|
|
adds r0, r1
|
|
adds r0, 0x10
|
|
movs r1, 0x88
|
|
lsls r1, 1
|
|
cmp r0, r1
|
|
bhi _080AF6CC
|
|
movs r1, 0x22
|
|
ldrsh r0, [r4, r1]
|
|
movs r2, 0x26
|
|
ldrsh r1, [r4, r2]
|
|
adds r1, r0, r1
|
|
movs r0, 0x80
|
|
lsls r0, 1
|
|
cmp r1, r0
|
|
bgt _080AF6CC
|
|
movs r0, 0x10
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
bge _080AF6D2
|
|
_080AF6CC:
|
|
adds r0, r4, 0
|
|
bl DestroyAnimSprite
|
|
_080AF6D2:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80AF690
|
|
|
|
thumb_func_start sub_80AF6D8
|
|
sub_80AF6D8: @ 80AF6D8
|
|
push {r4-r7,lr}
|
|
sub sp, 0x10
|
|
adds r5, r0, 0
|
|
movs r1, 0x1
|
|
bl sub_8075160
|
|
ldr r1, _080AF71C @ =gUnknown_2037F02
|
|
ldrh r0, [r1, 0x8]
|
|
strh r0, [r5, 0x2E]
|
|
ldrh r0, [r5, 0x20]
|
|
strh r0, [r5, 0x30]
|
|
ldrh r0, [r5, 0x22]
|
|
strh r0, [r5, 0x34]
|
|
movs r2, 0xE
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, 0
|
|
bne _080AF724
|
|
ldr r4, _080AF720 @ =gUnknown_2037F1B
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x32]
|
|
ldrb r0, [r4]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x36]
|
|
b _080AF736
|
|
.align 2, 0
|
|
_080AF71C: .4byte gUnknown_2037F02
|
|
_080AF720: .4byte gUnknown_2037F1B
|
|
_080AF724:
|
|
ldr r0, _080AF754 @ =gUnknown_2037F1B
|
|
ldrb r0, [r0]
|
|
adds r2, r5, 0
|
|
adds r2, 0x32
|
|
adds r3, r5, 0
|
|
adds r3, 0x36
|
|
movs r1, 0x1
|
|
bl sub_8076D9C
|
|
_080AF736:
|
|
ldr r0, _080AF758 @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080AF760
|
|
ldr r0, _080AF75C @ =gUnknown_2037F02
|
|
ldrh r1, [r5, 0x32]
|
|
ldrh r2, [r0, 0x4]
|
|
subs r1, r2
|
|
strh r1, [r5, 0x32]
|
|
adds r1, r0, 0
|
|
b _080AF76A
|
|
.align 2, 0
|
|
_080AF754: .4byte gUnknown_2037F1B
|
|
_080AF758: .4byte gUnknown_2037F1A
|
|
_080AF75C: .4byte gUnknown_2037F02
|
|
_080AF760:
|
|
ldr r1, _080AF814 @ =gUnknown_2037F02
|
|
ldrh r0, [r1, 0x4]
|
|
ldrh r2, [r5, 0x32]
|
|
adds r0, r2
|
|
strh r0, [r5, 0x32]
|
|
_080AF76A:
|
|
ldrh r0, [r1, 0x6]
|
|
ldrh r1, [r5, 0x36]
|
|
adds r0, r1
|
|
strh r0, [r5, 0x36]
|
|
adds r0, r5, 0
|
|
bl sub_8075804
|
|
adds r7, r5, 0
|
|
adds r7, 0x2E
|
|
adds r2, r7, 0
|
|
mov r1, sp
|
|
movs r4, 0x7
|
|
_080AF782:
|
|
ldrh r0, [r2]
|
|
strh r0, [r1]
|
|
adds r2, 0x2
|
|
adds r1, 0x2
|
|
subs r4, 0x1
|
|
cmp r4, 0
|
|
bge _080AF782
|
|
ldrh r0, [r5, 0x30]
|
|
movs r1, 0x1
|
|
eors r0, r1
|
|
strh r0, [r5, 0x30]
|
|
ldrh r0, [r5, 0x32]
|
|
eors r0, r1
|
|
strh r0, [r5, 0x32]
|
|
_080AF79E:
|
|
movs r0, 0x1
|
|
strh r0, [r5, 0x2E]
|
|
adds r0, r5, 0
|
|
bl sub_807578C
|
|
movs r2, 0x20
|
|
ldrsh r1, [r5, r2]
|
|
movs r2, 0x24
|
|
ldrsh r0, [r5, r2]
|
|
adds r1, r0
|
|
adds r1, 0x10
|
|
movs r0, 0x88
|
|
lsls r0, 1
|
|
cmp r1, r0
|
|
bhi _080AF7D2
|
|
movs r0, 0x22
|
|
ldrsh r1, [r5, r0]
|
|
movs r2, 0x26
|
|
ldrsh r0, [r5, r2]
|
|
adds r1, r0
|
|
cmp r1, 0xA0
|
|
bgt _080AF7D2
|
|
movs r0, 0x10
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
bge _080AF79E
|
|
_080AF7D2:
|
|
ldrh r0, [r5, 0x24]
|
|
ldrh r1, [r5, 0x20]
|
|
adds r0, r1
|
|
movs r1, 0
|
|
strh r0, [r5, 0x20]
|
|
ldrh r0, [r5, 0x26]
|
|
ldrh r2, [r5, 0x22]
|
|
adds r0, r2
|
|
strh r0, [r5, 0x22]
|
|
strh r1, [r5, 0x26]
|
|
strh r1, [r5, 0x24]
|
|
ldr r1, _080AF814 @ =gUnknown_2037F02
|
|
ldr r6, _080AF818 @ =sub_80AF81C
|
|
mov r3, sp
|
|
adds r2, r7, 0
|
|
movs r4, 0x7
|
|
_080AF7F2:
|
|
ldrh r0, [r3]
|
|
strh r0, [r2]
|
|
adds r3, 0x2
|
|
adds r2, 0x2
|
|
subs r4, 0x1
|
|
cmp r4, 0
|
|
bge _080AF7F2
|
|
ldrh r0, [r1, 0xA]
|
|
strh r0, [r5, 0x38]
|
|
ldrh r0, [r1, 0xC]
|
|
strh r0, [r5, 0x3A]
|
|
str r6, [r5, 0x1C]
|
|
add sp, 0x10
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AF814: .4byte gUnknown_2037F02
|
|
_080AF818: .4byte sub_80AF81C
|
|
thumb_func_end sub_80AF6D8
|
|
|
|
thumb_func_start sub_80AF81C
|
|
sub_80AF81C: @ 80AF81C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_807578C
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bne _080AF830
|
|
movs r0, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
_080AF830:
|
|
movs r2, 0x3C
|
|
ldrsh r0, [r4, r2]
|
|
movs r2, 0x38
|
|
ldrsh r1, [r4, r2]
|
|
bl Sin
|
|
ldrh r1, [r4, 0x26]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x26]
|
|
ldrh r0, [r4, 0x3A]
|
|
ldrh r2, [r4, 0x3C]
|
|
adds r0, r2
|
|
movs r1, 0xFF
|
|
ands r0, r1
|
|
strh r0, [r4, 0x3C]
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x1
|
|
bne _080AF886
|
|
movs r2, 0x20
|
|
ldrsh r0, [r4, r2]
|
|
movs r2, 0x24
|
|
ldrsh r1, [r4, r2]
|
|
adds r0, r1
|
|
adds r0, 0x10
|
|
movs r1, 0x88
|
|
lsls r1, 1
|
|
cmp r0, r1
|
|
bhi _080AF880
|
|
movs r0, 0x22
|
|
ldrsh r1, [r4, r0]
|
|
movs r2, 0x26
|
|
ldrsh r0, [r4, r2]
|
|
adds r1, r0
|
|
cmp r1, 0xA0
|
|
bgt _080AF880
|
|
movs r0, 0x10
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
bge _080AF886
|
|
_080AF880:
|
|
adds r0, r4, 0
|
|
bl DestroyAnimSprite
|
|
_080AF886:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80AF81C
|
|
|
|
thumb_func_start sub_80AF88C
|
|
sub_80AF88C: @ 80AF88C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bne _080AF8F8
|
|
ldr r5, _080AF8AC @ =gUnknown_2037F02
|
|
movs r1, 0x4
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0
|
|
bne _080AF8B0
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl sub_8075114
|
|
b _080AF8E6
|
|
.align 2, 0
|
|
_080AF8AC: .4byte gUnknown_2037F02
|
|
_080AF8B0:
|
|
ldr r0, _080AF8F0 @ =gUnknown_2037F1B
|
|
ldrb r0, [r0]
|
|
adds r2, r4, 0
|
|
adds r2, 0x20
|
|
adds r3, r4, 0
|
|
adds r3, 0x22
|
|
movs r1, 0
|
|
bl sub_8076D9C
|
|
ldr r0, _080AF8F4 @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080AF8D6
|
|
ldrh r0, [r5]
|
|
negs r0, r0
|
|
strh r0, [r5]
|
|
_080AF8D6:
|
|
ldrh r0, [r5]
|
|
ldrh r1, [r4, 0x20]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x20]
|
|
ldrh r0, [r5, 0x2]
|
|
ldrh r1, [r4, 0x22]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x22]
|
|
_080AF8E6:
|
|
ldrh r0, [r4, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
b _080AF90C
|
|
.align 2, 0
|
|
_080AF8F0: .4byte gUnknown_2037F1B
|
|
_080AF8F4: .4byte gUnknown_2037F1A
|
|
_080AF8F8:
|
|
adds r0, r4, 0
|
|
adds r0, 0x3F
|
|
ldrb r1, [r0]
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080AF90C
|
|
adds r0, r4, 0
|
|
bl DestroyAnimSprite
|
|
_080AF90C:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80AF88C
|
|
|
|
thumb_func_start sub_80AF914
|
|
sub_80AF914: @ 80AF914
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
ldr r6, _080AF934 @ =gUnknown_2037F02
|
|
movs r1, 0x8
|
|
ldrsh r0, [r6, r1]
|
|
cmp r0, 0
|
|
bne _080AF984
|
|
movs r1, 0xA
|
|
ldrsh r0, [r6, r1]
|
|
cmp r0, 0
|
|
bne _080AF938
|
|
adds r0, r5, 0
|
|
movs r1, 0
|
|
bl sub_8075160
|
|
b _080AF976
|
|
.align 2, 0
|
|
_080AF934: .4byte gUnknown_2037F02
|
|
_080AF938:
|
|
ldr r4, _080AF960 @ =gUnknown_2037F1A
|
|
ldrb r0, [r4]
|
|
adds r2, r5, 0
|
|
adds r2, 0x20
|
|
adds r3, r5, 0
|
|
adds r3, 0x22
|
|
movs r1, 0
|
|
bl sub_8076D9C
|
|
ldrb r0, [r4]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080AF964
|
|
ldrh r0, [r5, 0x20]
|
|
ldrh r1, [r6]
|
|
subs r0, r1
|
|
b _080AF96A
|
|
.align 2, 0
|
|
_080AF960: .4byte gUnknown_2037F1A
|
|
_080AF964:
|
|
ldrh r0, [r6]
|
|
ldrh r1, [r5, 0x20]
|
|
adds r0, r1
|
|
_080AF96A:
|
|
strh r0, [r5, 0x20]
|
|
ldr r0, _080AF97C @ =gUnknown_2037F02
|
|
ldrh r0, [r0, 0x2]
|
|
ldrh r1, [r5, 0x22]
|
|
adds r0, r1
|
|
strh r0, [r5, 0x22]
|
|
_080AF976:
|
|
ldr r0, _080AF980 @ =gUnknown_2037F1A
|
|
b _080AF9D4
|
|
.align 2, 0
|
|
_080AF97C: .4byte gUnknown_2037F02
|
|
_080AF980: .4byte gUnknown_2037F1A
|
|
_080AF984:
|
|
movs r1, 0xA
|
|
ldrsh r0, [r6, r1]
|
|
cmp r0, 0
|
|
bne _080AF996
|
|
adds r0, r5, 0
|
|
movs r1, 0
|
|
bl sub_8075114
|
|
b _080AF9D2
|
|
_080AF996:
|
|
ldr r4, _080AF9BC @ =gUnknown_2037F1B
|
|
ldrb r0, [r4]
|
|
adds r2, r5, 0
|
|
adds r2, 0x20
|
|
adds r3, r5, 0
|
|
adds r3, 0x22
|
|
movs r1, 0
|
|
bl sub_8076D9C
|
|
ldrb r0, [r4]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080AF9C0
|
|
ldrh r0, [r5, 0x20]
|
|
ldrh r1, [r6]
|
|
subs r0, r1
|
|
b _080AF9C6
|
|
.align 2, 0
|
|
_080AF9BC: .4byte gUnknown_2037F1B
|
|
_080AF9C0:
|
|
ldrh r0, [r6]
|
|
ldrh r1, [r5, 0x20]
|
|
adds r0, r1
|
|
_080AF9C6:
|
|
strh r0, [r5, 0x20]
|
|
ldr r0, _080AF9F0 @ =gUnknown_2037F02
|
|
ldrh r0, [r0, 0x2]
|
|
ldrh r1, [r5, 0x22]
|
|
adds r0, r1
|
|
strh r0, [r5, 0x22]
|
|
_080AF9D2:
|
|
ldr r0, _080AF9F4 @ =gUnknown_2037F1B
|
|
_080AF9D4:
|
|
ldrb r0, [r0]
|
|
strh r0, [r5, 0x3C]
|
|
ldr r0, _080AF9F0 @ =gUnknown_2037F02
|
|
movs r1, 0xA
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0
|
|
beq _080AF9EC
|
|
bl sub_8075290
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080AF9F8
|
|
_080AF9EC:
|
|
movs r0, 0x20
|
|
b _080AF9FA
|
|
.align 2, 0
|
|
_080AF9F0: .4byte gUnknown_2037F02
|
|
_080AF9F4: .4byte gUnknown_2037F1B
|
|
_080AF9F8:
|
|
movs r0, 0x40
|
|
_080AF9FA:
|
|
strh r0, [r5, 0x3A]
|
|
ldr r0, _080AFA40 @ =gUnknown_2037F1B
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080AFA10
|
|
ldrh r0, [r5, 0x22]
|
|
adds r0, 0x8
|
|
strh r0, [r5, 0x22]
|
|
_080AFA10:
|
|
ldr r1, _080AFA44 @ =gUnknown_2037F02
|
|
ldrh r0, [r1, 0x6]
|
|
strh r0, [r5, 0x2E]
|
|
ldrh r0, [r5, 0x20]
|
|
strh r0, [r5, 0x30]
|
|
strh r0, [r5, 0x32]
|
|
ldrh r0, [r5, 0x22]
|
|
strh r0, [r5, 0x34]
|
|
ldrh r1, [r1, 0x4]
|
|
adds r0, r1
|
|
strh r0, [r5, 0x36]
|
|
adds r0, r5, 0
|
|
bl obj_translate_based_on_private_1_2_3_4
|
|
movs r0, 0x40
|
|
strh r0, [r5, 0x38]
|
|
ldr r1, _080AFA48 @ =sub_80AFA4C
|
|
str r1, [r5, 0x1C]
|
|
adds r0, r5, 0
|
|
bl _call_via_r1
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AFA40: .4byte gUnknown_2037F1B
|
|
_080AFA44: .4byte gUnknown_2037F02
|
|
_080AFA48: .4byte sub_80AFA4C
|
|
thumb_func_end sub_80AF914
|
|
|
|
thumb_func_start sub_80AFA4C
|
|
sub_80AFA4C: @ 80AFA4C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_80755E0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080AFAD6
|
|
movs r1, 0x38
|
|
ldrsh r0, [r4, r1]
|
|
movs r2, 0x3A
|
|
ldrsh r1, [r4, r2]
|
|
bl Sin
|
|
ldrh r1, [r4, 0x24]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x24]
|
|
movs r2, 0x38
|
|
ldrsh r0, [r4, r2]
|
|
movs r1, 0x6
|
|
negs r1, r1
|
|
bl Cos
|
|
ldrh r1, [r4, 0x26]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x26]
|
|
ldrh r0, [r4, 0x38]
|
|
subs r0, 0x40
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x7F
|
|
bhi _080AFAA8
|
|
ldrh r0, [r4, 0x3C]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl sub_8076884
|
|
movs r1, 0x3
|
|
ands r1, r0
|
|
lsls r1, 2
|
|
ldrb r2, [r4, 0x5]
|
|
movs r0, 0xD
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r4, 0x5]
|
|
b _080AFACA
|
|
_080AFAA8:
|
|
ldrh r0, [r4, 0x3C]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl sub_8076884
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r0, 0x1
|
|
movs r1, 0x3
|
|
ands r0, r1
|
|
lsls r0, 2
|
|
ldrb r2, [r4, 0x5]
|
|
movs r1, 0xD
|
|
negs r1, r1
|
|
ands r1, r2
|
|
orrs r1, r0
|
|
strb r1, [r4, 0x5]
|
|
_080AFACA:
|
|
ldrh r0, [r4, 0x38]
|
|
adds r0, 0x3
|
|
movs r1, 0xFF
|
|
ands r0, r1
|
|
strh r0, [r4, 0x38]
|
|
b _080AFADC
|
|
_080AFAD6:
|
|
adds r0, r4, 0
|
|
bl DestroyAnimSprite
|
|
_080AFADC:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80AFA4C
|
|
|
|
thumb_func_start sub_80AFAE4
|
|
sub_80AFAE4: @ 80AFAE4
|
|
push {r4,r5,lr}
|
|
sub sp, 0x10
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r1, _080AFBA0 @ =0x00003f42
|
|
movs r0, 0x50
|
|
bl SetGpuReg
|
|
movs r1, 0x80
|
|
lsls r1, 5
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
movs r0, 0x1
|
|
movs r1, 0x4
|
|
movs r2, 0x1
|
|
bl SetAnimBgAttribute
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl SetAnimBgAttribute
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080AFB26
|
|
movs r0, 0x1
|
|
movs r1, 0x3
|
|
movs r2, 0x1
|
|
bl SetAnimBgAttribute
|
|
_080AFB26:
|
|
ldr r0, _080AFBA4 @ =gUnknown_2022978
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
ldr r4, _080AFBA8 @ =gUnknown_202297A
|
|
strh r1, [r4]
|
|
movs r0, 0x14
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
ldrh r1, [r4]
|
|
movs r0, 0x16
|
|
bl SetGpuReg
|
|
mov r0, sp
|
|
bl sub_80752A0
|
|
mov r0, sp
|
|
ldrb r0, [r0, 0x9]
|
|
ldr r1, _080AFBAC @ =gUnknown_83C3540
|
|
movs r2, 0x80
|
|
lsls r2, 4
|
|
mov r3, sp
|
|
ldrh r3, [r3, 0xA]
|
|
bl LoadBgTiles
|
|
mov r0, sp
|
|
ldrb r0, [r0, 0x9]
|
|
ldr r1, _080AFBB0 @ =gFile_graphics_battle_anims_backgrounds_fog_tilemap
|
|
bl sub_807543C
|
|
ldr r0, _080AFBB4 @ =gUnknown_83C2CE0
|
|
mov r1, sp
|
|
ldrb r1, [r1, 0x8]
|
|
lsls r1, 4
|
|
movs r2, 0x20
|
|
bl LoadPalette
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080AFB88
|
|
mov r0, sp
|
|
ldrb r0, [r0, 0x8]
|
|
ldr r1, [sp, 0x4]
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl sub_80730C0
|
|
_080AFB88:
|
|
ldr r0, _080AFBB8 @ =gTasks
|
|
lsls r1, r5, 2
|
|
adds r1, r5
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldr r0, _080AFBBC @ =sub_80AFBC0
|
|
str r0, [r1]
|
|
add sp, 0x10
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AFBA0: .4byte 0x00003f42
|
|
_080AFBA4: .4byte gUnknown_2022978
|
|
_080AFBA8: .4byte gUnknown_202297A
|
|
_080AFBAC: .4byte gUnknown_83C3540
|
|
_080AFBB0: .4byte gFile_graphics_battle_anims_backgrounds_fog_tilemap
|
|
_080AFBB4: .4byte gUnknown_83C2CE0
|
|
_080AFBB8: .4byte gTasks
|
|
_080AFBBC: .4byte sub_80AFBC0
|
|
thumb_func_end sub_80AFAE4
|
|
|
|
thumb_func_start sub_80AFBC0
|
|
sub_80AFBC0: @ 80AFBC0
|
|
push {r4,r5,lr}
|
|
sub sp, 0x10
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r1, _080AFBF4 @ =gUnknown_2022978
|
|
ldr r2, _080AFBF8 @ =0x0000ffff
|
|
adds r0, r2, 0
|
|
ldrh r2, [r1]
|
|
adds r0, r2
|
|
strh r0, [r1]
|
|
ldr r1, _080AFBFC @ =gTasks
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
movs r2, 0x20
|
|
ldrsh r0, [r0, r2]
|
|
adds r2, r1, 0
|
|
cmp r0, 0x4
|
|
bls _080AFBEA
|
|
b _080AFD36
|
|
_080AFBEA:
|
|
lsls r0, 2
|
|
ldr r1, _080AFC00 @ =_080AFC04
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080AFBF4: .4byte gUnknown_2022978
|
|
_080AFBF8: .4byte 0x0000ffff
|
|
_080AFBFC: .4byte gTasks
|
|
_080AFC00: .4byte _080AFC04
|
|
.align 2, 0
|
|
_080AFC04:
|
|
.4byte _080AFC18
|
|
.4byte _080AFC70
|
|
.4byte _080AFC92
|
|
.4byte _080AFCD6
|
|
.4byte _080AFCF8
|
|
_080AFC18:
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r4, r0, r2
|
|
ldrh r0, [r4, 0x1C]
|
|
adds r0, 0x1
|
|
movs r5, 0
|
|
strh r0, [r4, 0x1C]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x4
|
|
beq _080AFC32
|
|
b _080AFD36
|
|
_080AFC32:
|
|
strh r5, [r4, 0x1C]
|
|
ldrh r0, [r4, 0x1A]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x1A]
|
|
ldr r1, _080AFC6C @ =gUnknown_83E64D4
|
|
movs r2, 0x1A
|
|
ldrsh r0, [r4, r2]
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
strh r1, [r4, 0x1E]
|
|
movs r0, 0x10
|
|
subs r0, r1
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
movs r1, 0x1E
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x9
|
|
bne _080AFD36
|
|
ldrh r0, [r4, 0x20]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x20]
|
|
strh r5, [r4, 0x1E]
|
|
b _080AFD36
|
|
.align 2, 0
|
|
_080AFC6C: .4byte gUnknown_83E64D4
|
|
_080AFC70:
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r1, r0, r2
|
|
ldrh r0, [r1, 0x1E]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x1E]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x51
|
|
bne _080AFD36
|
|
movs r0, 0x9
|
|
strh r0, [r1, 0x1E]
|
|
ldrh r0, [r1, 0x20]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x20]
|
|
b _080AFD36
|
|
_080AFC92:
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r4, r0, r2
|
|
ldrh r0, [r4, 0x1C]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x1C]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x4
|
|
bne _080AFD36
|
|
movs r0, 0
|
|
strh r0, [r4, 0x1C]
|
|
ldrh r1, [r4, 0x1E]
|
|
subs r1, 0x1
|
|
strh r1, [r4, 0x1E]
|
|
movs r0, 0x10
|
|
subs r0, r1
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
movs r2, 0x1E
|
|
ldrsh r1, [r4, r2]
|
|
cmp r1, 0
|
|
bne _080AFD36
|
|
ldrh r0, [r4, 0x20]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x20]
|
|
strh r1, [r4, 0x1E]
|
|
b _080AFD36
|
|
_080AFCD6:
|
|
mov r0, sp
|
|
bl sub_80752A0
|
|
movs r0, 0x1
|
|
bl sub_8075358
|
|
movs r0, 0x2
|
|
bl sub_8075358
|
|
ldr r0, _080AFD40 @ =gTasks
|
|
lsls r1, r4, 2
|
|
adds r1, r4
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldrh r0, [r1, 0x20]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x20]
|
|
_080AFCF8:
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080AFD0C
|
|
movs r0, 0x1
|
|
movs r1, 0x3
|
|
movs r2, 0
|
|
bl SetAnimBgAttribute
|
|
_080AFD0C:
|
|
ldr r0, _080AFD44 @ =gUnknown_2022978
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
ldr r0, _080AFD48 @ =gUnknown_202297A
|
|
strh r1, [r0]
|
|
movs r0, 0x50
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x52
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x1
|
|
movs r1, 0x4
|
|
movs r2, 0x1
|
|
bl SetAnimBgAttribute
|
|
adds r0, r4, 0
|
|
bl DestroyAnimVisualTask
|
|
_080AFD36:
|
|
add sp, 0x10
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AFD40: .4byte gTasks
|
|
_080AFD44: .4byte gUnknown_2022978
|
|
_080AFD48: .4byte gUnknown_202297A
|
|
thumb_func_end sub_80AFBC0
|
|
|
|
thumb_func_start sub_80AFD4C
|
|
sub_80AFD4C: @ 80AFD4C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
ldr r5, _080AFD78 @ =gUnknown_2037F1A
|
|
ldrb r0, [r5]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x20]
|
|
ldrb r0, [r5]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x22]
|
|
ldr r0, _080AFD7C @ =sub_8075DF4
|
|
str r0, [r4, 0x1C]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AFD78: .4byte gUnknown_2037F1A
|
|
_080AFD7C: .4byte sub_8075DF4
|
|
thumb_func_end sub_80AFD4C
|
|
|
|
thumb_func_start sub_80AFD80
|
|
sub_80AFD80: @ 80AFD80
|
|
push {r4,r5,lr}
|
|
sub sp, 0x10
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r1, _080AFE40 @ =0x00003f42
|
|
movs r0, 0x50
|
|
bl SetGpuReg
|
|
movs r1, 0x80
|
|
lsls r1, 5
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
movs r0, 0x1
|
|
movs r1, 0x4
|
|
movs r2, 0x1
|
|
bl SetAnimBgAttribute
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl SetAnimBgAttribute
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080AFDC2
|
|
movs r0, 0x1
|
|
movs r1, 0x3
|
|
movs r2, 0x1
|
|
bl SetAnimBgAttribute
|
|
_080AFDC2:
|
|
ldr r0, _080AFE44 @ =gUnknown_2022978
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
ldr r4, _080AFE48 @ =gUnknown_202297A
|
|
strh r1, [r4]
|
|
movs r0, 0x14
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
ldrh r1, [r4]
|
|
movs r0, 0x16
|
|
bl SetGpuReg
|
|
mov r0, sp
|
|
bl sub_80752A0
|
|
mov r0, sp
|
|
ldrb r0, [r0, 0x9]
|
|
ldr r1, _080AFE4C @ =gUnknown_83C3540
|
|
movs r2, 0x80
|
|
lsls r2, 4
|
|
mov r3, sp
|
|
ldrh r3, [r3, 0xA]
|
|
bl LoadBgTiles
|
|
mov r0, sp
|
|
ldrb r0, [r0, 0x9]
|
|
ldr r1, _080AFE50 @ =gFile_graphics_battle_anims_backgrounds_fog_tilemap
|
|
bl sub_807543C
|
|
ldr r0, _080AFE54 @ =gUnknown_83C2CE0
|
|
mov r1, sp
|
|
ldrb r1, [r1, 0x8]
|
|
lsls r1, 4
|
|
movs r2, 0x20
|
|
bl LoadPalette
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080AFE24
|
|
mov r0, sp
|
|
ldrb r0, [r0, 0x8]
|
|
ldr r1, [sp, 0x4]
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl sub_80730C0
|
|
_080AFE24:
|
|
ldr r1, _080AFE58 @ =gTasks
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldr r1, _080AFE5C @ =0x0000ffff
|
|
strh r1, [r0, 0x26]
|
|
ldr r1, _080AFE60 @ =sub_80AFE64
|
|
str r1, [r0]
|
|
add sp, 0x10
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AFE40: .4byte 0x00003f42
|
|
_080AFE44: .4byte gUnknown_2022978
|
|
_080AFE48: .4byte gUnknown_202297A
|
|
_080AFE4C: .4byte gUnknown_83C3540
|
|
_080AFE50: .4byte gFile_graphics_battle_anims_backgrounds_fog_tilemap
|
|
_080AFE54: .4byte gUnknown_83C2CE0
|
|
_080AFE58: .4byte gTasks
|
|
_080AFE5C: .4byte 0x0000ffff
|
|
_080AFE60: .4byte sub_80AFE64
|
|
thumb_func_end sub_80AFD80
|
|
|
|
thumb_func_start sub_80AFE64
|
|
sub_80AFE64: @ 80AFE64
|
|
push {r4,r5,lr}
|
|
sub sp, 0x10
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r2, _080AFE94 @ =gUnknown_2022978
|
|
ldr r3, _080AFE98 @ =gTasks
|
|
lsls r1, r4, 2
|
|
adds r1, r4
|
|
lsls r1, 3
|
|
adds r1, r3
|
|
ldrh r0, [r1, 0x26]
|
|
ldrh r5, [r2]
|
|
adds r0, r5
|
|
strh r0, [r2]
|
|
movs r2, 0x20
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, 0x4
|
|
bls _080AFE8A
|
|
b _080AFFBE
|
|
_080AFE8A:
|
|
lsls r0, 2
|
|
ldr r1, _080AFE9C @ =_080AFEA0
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080AFE94: .4byte gUnknown_2022978
|
|
_080AFE98: .4byte gTasks
|
|
_080AFE9C: .4byte _080AFEA0
|
|
.align 2, 0
|
|
_080AFEA0:
|
|
.4byte _080AFEB4
|
|
.4byte _080AFEF8
|
|
.4byte _080AFF1A
|
|
.4byte _080AFF5E
|
|
.4byte _080AFF80
|
|
_080AFEB4:
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r4, r0, r3
|
|
ldrh r0, [r4, 0x1A]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x1A]
|
|
ldr r1, _080AFEF4 @ =gUnknown_83E6500
|
|
movs r5, 0x1A
|
|
ldrsh r0, [r4, r5]
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
strh r1, [r4, 0x1E]
|
|
movs r0, 0x11
|
|
subs r0, r1
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
movs r1, 0x1E
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x5
|
|
bne _080AFFBE
|
|
ldrh r0, [r4, 0x20]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x20]
|
|
movs r0, 0
|
|
strh r0, [r4, 0x1E]
|
|
b _080AFFBE
|
|
.align 2, 0
|
|
_080AFEF4: .4byte gUnknown_83E6500
|
|
_080AFEF8:
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r1, r0, r3
|
|
ldrh r0, [r1, 0x1E]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x1E]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x51
|
|
bne _080AFFBE
|
|
movs r0, 0x5
|
|
strh r0, [r1, 0x1E]
|
|
ldrh r0, [r1, 0x20]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x20]
|
|
b _080AFFBE
|
|
_080AFF1A:
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r4, r0, r3
|
|
ldrh r0, [r4, 0x1C]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x1C]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x4
|
|
bne _080AFFBE
|
|
movs r0, 0
|
|
strh r0, [r4, 0x1C]
|
|
ldrh r1, [r4, 0x1E]
|
|
subs r1, 0x1
|
|
strh r1, [r4, 0x1E]
|
|
movs r0, 0x10
|
|
subs r0, r1
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
movs r2, 0x1E
|
|
ldrsh r1, [r4, r2]
|
|
cmp r1, 0
|
|
bne _080AFFBE
|
|
ldrh r0, [r4, 0x20]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x20]
|
|
strh r1, [r4, 0x1E]
|
|
b _080AFFBE
|
|
_080AFF5E:
|
|
mov r0, sp
|
|
bl sub_80752A0
|
|
movs r0, 0x1
|
|
bl sub_8075358
|
|
movs r0, 0x2
|
|
bl sub_8075358
|
|
ldr r0, _080AFFC8 @ =gTasks
|
|
lsls r1, r4, 2
|
|
adds r1, r4
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldrh r0, [r1, 0x20]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x20]
|
|
_080AFF80:
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080AFF94
|
|
movs r0, 0x1
|
|
movs r1, 0x3
|
|
movs r2, 0
|
|
bl SetAnimBgAttribute
|
|
_080AFF94:
|
|
ldr r0, _080AFFCC @ =gUnknown_2022978
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
ldr r0, _080AFFD0 @ =gUnknown_202297A
|
|
strh r1, [r0]
|
|
movs r0, 0x50
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x52
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x1
|
|
movs r1, 0x4
|
|
movs r2, 0x1
|
|
bl SetAnimBgAttribute
|
|
adds r0, r4, 0
|
|
bl DestroyAnimVisualTask
|
|
_080AFFBE:
|
|
add sp, 0x10
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AFFC8: .4byte gTasks
|
|
_080AFFCC: .4byte gUnknown_2022978
|
|
_080AFFD0: .4byte gUnknown_202297A
|
|
thumb_func_end sub_80AFE64
|
|
|
|
thumb_func_start sub_80AFFD4
|
|
sub_80AFFD4: @ 80AFFD4
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
adds r5, r0, 0
|
|
ldr r6, _080B00BC @ =gUnknown_2037F02
|
|
ldrh r0, [r6]
|
|
strh r0, [r5, 0x2E]
|
|
ldr r0, _080B00C0 @ =gUnknown_2037F1A
|
|
mov r8, r0
|
|
ldrb r0, [r0]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
adds r4, r0, 0
|
|
ldr r7, _080B00C4 @ =gUnknown_2037F1B
|
|
ldrb r0, [r7]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r4, 24
|
|
lsls r0, 24
|
|
cmp r4, r0
|
|
bcs _080B0008
|
|
movs r0, 0x80
|
|
lsls r0, 8
|
|
strh r0, [r5, 0x3C]
|
|
_080B0008:
|
|
ldr r3, _080B00C8 @ =gUnknown_2023BD6
|
|
ldrb r0, [r7]
|
|
adds r0, r3
|
|
ldrb r1, [r0]
|
|
movs r2, 0x1
|
|
adds r0, r2, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080B0068
|
|
ldrh r0, [r6, 0x2]
|
|
negs r0, r0
|
|
strh r0, [r6, 0x2]
|
|
ldrh r0, [r6, 0x6]
|
|
negs r0, r0
|
|
strh r0, [r6, 0x6]
|
|
movs r1, 0x3C
|
|
ldrsh r0, [r5, r1]
|
|
movs r1, 0x80
|
|
lsls r1, 8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080B0064
|
|
mov r1, r8
|
|
ldrb r0, [r1]
|
|
adds r0, r3
|
|
ldrb r1, [r0]
|
|
adds r0, r2, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080B0064
|
|
movs r0, 0x1
|
|
bl GetAnimBankSpriteId
|
|
ldr r2, _080B00CC @ =gSprites
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
adds r1, 0x43
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
adds r1, r5, 0
|
|
adds r1, 0x43
|
|
strb r0, [r1]
|
|
_080B0064:
|
|
movs r0, 0x1
|
|
strh r0, [r5, 0x3A]
|
|
_080B0068:
|
|
ldr r4, _080B00C0 @ =gUnknown_2037F1A
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x20]
|
|
ldrb r0, [r4]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x22]
|
|
ldr r6, _080B00BC @ =gUnknown_2037F02
|
|
movs r1, 0xE
|
|
ldrsh r0, [r6, r1]
|
|
cmp r0, 0
|
|
beq _080B00D0
|
|
ldrh r0, [r6, 0x2]
|
|
ldrh r1, [r5, 0x20]
|
|
adds r0, r1
|
|
strh r0, [r5, 0x30]
|
|
ldr r4, _080B00C4 @ =gUnknown_2037F1B
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrh r1, [r6, 0x6]
|
|
adds r0, r1
|
|
strh r0, [r5, 0x32]
|
|
ldrh r0, [r6, 0x4]
|
|
ldrh r1, [r5, 0x22]
|
|
adds r0, r1
|
|
strh r0, [r5, 0x34]
|
|
ldrb r0, [r4]
|
|
movs r1, 0x3
|
|
b _080B00F8
|
|
.align 2, 0
|
|
_080B00BC: .4byte gUnknown_2037F02
|
|
_080B00C0: .4byte gUnknown_2037F1A
|
|
_080B00C4: .4byte gUnknown_2037F1B
|
|
_080B00C8: .4byte gUnknown_2023BD6
|
|
_080B00CC: .4byte gSprites
|
|
_080B00D0:
|
|
ldrh r0, [r6, 0x2]
|
|
ldrh r1, [r5, 0x20]
|
|
adds r0, r1
|
|
strh r0, [r5, 0x30]
|
|
ldr r4, _080B0140 @ =gUnknown_2037F1B
|
|
ldrb r0, [r4]
|
|
movs r1, 0
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrh r1, [r6, 0x6]
|
|
adds r0, r1
|
|
strh r0, [r5, 0x32]
|
|
ldrh r0, [r6, 0x4]
|
|
ldrh r1, [r5, 0x22]
|
|
adds r0, r1
|
|
strh r0, [r5, 0x34]
|
|
ldrb r0, [r4]
|
|
movs r1, 0x1
|
|
_080B00F8:
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrh r6, [r6, 0x8]
|
|
adds r0, r6
|
|
strh r0, [r5, 0x36]
|
|
ldrb r0, [r4]
|
|
bl sub_8076884
|
|
lsls r0, 24
|
|
lsrs r0, 16
|
|
ldrh r1, [r5, 0x3C]
|
|
orrs r0, r1
|
|
strh r0, [r5, 0x3C]
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080B012C
|
|
movs r0, 0x1
|
|
strh r0, [r5, 0x3A]
|
|
adds r1, r5, 0
|
|
adds r1, 0x43
|
|
movs r0, 0x80
|
|
strb r0, [r1]
|
|
_080B012C:
|
|
adds r0, r5, 0
|
|
bl obj_translate_based_on_private_1_2_3_4
|
|
ldr r0, _080B0144 @ =sub_80B0148
|
|
str r0, [r5, 0x1C]
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B0140: .4byte gUnknown_2037F1B
|
|
_080B0144: .4byte sub_80B0148
|
|
thumb_func_end sub_80AFFD4
|
|
|
|
thumb_func_start sub_80B0148
|
|
sub_80B0148: @ 80B0148
|
|
push {r4-r6,lr}
|
|
adds r4, r0, 0
|
|
ldrh r0, [r4, 0x3C]
|
|
movs r5, 0xFF
|
|
movs r1, 0xFF
|
|
ands r1, r0
|
|
cmp r1, 0x1
|
|
beq _080B0230
|
|
cmp r1, 0x1
|
|
bgt _080B0162
|
|
cmp r1, 0
|
|
beq _080B016A
|
|
b _080B0380
|
|
_080B0162:
|
|
cmp r1, 0x2
|
|
bne _080B0168
|
|
b _080B0344
|
|
_080B0168:
|
|
b _080B0380
|
|
_080B016A:
|
|
adds r0, r4, 0
|
|
bl sub_80755E0
|
|
ldr r1, _080B0194 @ =gUnknown_825E074
|
|
movs r2, 0x38
|
|
ldrsh r0, [r4, r2]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
asrs r0, 4
|
|
ldrh r2, [r4, 0x24]
|
|
adds r0, r2
|
|
strh r0, [r4, 0x24]
|
|
movs r1, 0x3A
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
beq _080B0198
|
|
ldrh r0, [r4, 0x38]
|
|
subs r0, 0x8
|
|
b _080B019C
|
|
.align 2, 0
|
|
_080B0194: .4byte gUnknown_825E074
|
|
_080B0198:
|
|
ldrh r0, [r4, 0x38]
|
|
adds r0, 0x8
|
|
_080B019C:
|
|
ands r0, r5
|
|
strh r0, [r4, 0x38]
|
|
movs r2, 0x2E
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0
|
|
ble _080B01AA
|
|
b _080B0380
|
|
_080B01AA:
|
|
movs r5, 0x50
|
|
strh r5, [r4, 0x2E]
|
|
ldr r6, _080B01F8 @ =gUnknown_2037F1B
|
|
ldrb r0, [r6]
|
|
movs r1, 0
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x20]
|
|
strh r0, [r4, 0x30]
|
|
strh r0, [r4, 0x32]
|
|
ldrh r0, [r4, 0x26]
|
|
ldrh r1, [r4, 0x22]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x22]
|
|
strh r0, [r4, 0x34]
|
|
adds r0, 0x1D
|
|
strh r0, [r4, 0x36]
|
|
ldrh r0, [r4, 0x3C]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x3C]
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080B0200
|
|
ldr r1, _080B01FC @ =gUnknown_2023BD6
|
|
ldrb r0, [r6]
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080B0200
|
|
movs r0, 0xCC
|
|
strh r0, [r4, 0x38]
|
|
b _080B0202
|
|
.align 2, 0
|
|
_080B01F8: .4byte gUnknown_2037F1B
|
|
_080B01FC: .4byte gUnknown_2023BD6
|
|
_080B0200:
|
|
strh r5, [r4, 0x38]
|
|
_080B0202:
|
|
movs r0, 0
|
|
strh r0, [r4, 0x26]
|
|
ldr r1, _080B022C @ =gUnknown_825E074
|
|
movs r2, 0x38
|
|
ldrsh r0, [r4, r2]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
asrs r0, 3
|
|
strh r0, [r4, 0x24]
|
|
ldrh r0, [r4, 0x38]
|
|
adds r0, 0x2
|
|
movs r1, 0xFF
|
|
ands r0, r1
|
|
strh r0, [r4, 0x38]
|
|
adds r0, r4, 0
|
|
bl obj_translate_based_on_private_1_2_3_4
|
|
b _080B0380
|
|
.align 2, 0
|
|
_080B022C: .4byte gUnknown_825E074
|
|
_080B0230:
|
|
adds r0, r4, 0
|
|
bl sub_80755E0
|
|
ldr r1, _080B028C @ =gUnknown_825E074
|
|
movs r2, 0x38
|
|
ldrsh r0, [r4, r2]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
movs r2, 0
|
|
ldrsh r0, [r0, r2]
|
|
asrs r0, 3
|
|
ldrh r2, [r4, 0x24]
|
|
adds r0, r2
|
|
strh r0, [r4, 0x24]
|
|
movs r2, 0x38
|
|
ldrsh r0, [r4, r2]
|
|
adds r0, 0x40
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
movs r2, 0
|
|
ldrsh r1, [r0, r2]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
negs r0, r0
|
|
asrs r0, 8
|
|
ldrh r1, [r4, 0x26]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x26]
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080B02AE
|
|
ldrh r1, [r4, 0x38]
|
|
adds r0, r1, 0
|
|
subs r0, 0x40
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
adds r3, r1, 0
|
|
cmp r0, 0x7F
|
|
bhi _080B0290
|
|
ldrh r1, [r4, 0x3C]
|
|
lsls r1, 16
|
|
asrs r1, 24
|
|
b _080B0298
|
|
.align 2, 0
|
|
_080B028C: .4byte gUnknown_825E074
|
|
_080B0290:
|
|
ldrh r1, [r4, 0x3C]
|
|
lsls r1, 16
|
|
asrs r1, 24
|
|
adds r1, 0x1
|
|
_080B0298:
|
|
movs r0, 0x3
|
|
ands r1, r0
|
|
lsls r1, 2
|
|
ldrb r2, [r4, 0x5]
|
|
movs r0, 0xD
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r4, 0x5]
|
|
adds r0, r3, 0x4
|
|
b _080B02CE
|
|
_080B02AE:
|
|
ldrh r0, [r4, 0x38]
|
|
subs r0, 0x40
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x7F
|
|
bhi _080B02C2
|
|
adds r1, r4, 0
|
|
adds r1, 0x43
|
|
movs r0, 0x80
|
|
b _080B02C8
|
|
_080B02C2:
|
|
adds r1, r4, 0
|
|
adds r1, 0x43
|
|
movs r0, 0x8C
|
|
_080B02C8:
|
|
strb r0, [r1]
|
|
ldrh r0, [r4, 0x38]
|
|
subs r0, 0x4
|
|
_080B02CE:
|
|
movs r1, 0xFF
|
|
ands r0, r1
|
|
strh r0, [r4, 0x38]
|
|
movs r2, 0x2E
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0
|
|
bgt _080B0380
|
|
movs r5, 0
|
|
movs r0, 0xC0
|
|
lsls r0, 2
|
|
strh r0, [r4, 0x2E]
|
|
ldrh r0, [r4, 0x24]
|
|
ldrh r1, [r4, 0x20]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x20]
|
|
strh r0, [r4, 0x30]
|
|
ldrh r0, [r4, 0x26]
|
|
ldrh r2, [r4, 0x22]
|
|
adds r0, r2
|
|
strh r0, [r4, 0x22]
|
|
strh r0, [r4, 0x34]
|
|
adds r0, 0x4
|
|
strh r0, [r4, 0x36]
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080B0328
|
|
ldr r1, _080B0320 @ =gUnknown_2023BD6
|
|
ldr r0, _080B0324 @ =gUnknown_2037F1B
|
|
ldrb r0, [r0]
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080B0328
|
|
movs r0, 0x80
|
|
lsls r0, 1
|
|
b _080B032A
|
|
.align 2, 0
|
|
_080B0320: .4byte gUnknown_2023BD6
|
|
_080B0324: .4byte gUnknown_2037F1B
|
|
_080B0328:
|
|
ldr r0, _080B0340 @ =0x0000fff0
|
|
_080B032A:
|
|
strh r0, [r4, 0x32]
|
|
ldrh r0, [r4, 0x3C]
|
|
adds r0, 0x1
|
|
movs r1, 0
|
|
strh r0, [r4, 0x3C]
|
|
strh r1, [r4, 0x26]
|
|
strh r1, [r4, 0x24]
|
|
adds r0, r4, 0
|
|
bl sub_8075678
|
|
b _080B0380
|
|
.align 2, 0
|
|
_080B0340: .4byte 0x0000fff0
|
|
_080B0344:
|
|
adds r0, r4, 0
|
|
bl sub_80755E0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080B0380
|
|
ldrb r0, [r4, 0x1]
|
|
lsls r0, 30
|
|
lsrs r0, 30
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080B0372
|
|
ldrb r0, [r4, 0x3]
|
|
lsls r0, 26
|
|
lsrs r0, 27
|
|
bl FreeOamMatrix
|
|
ldrb r1, [r4, 0x1]
|
|
movs r0, 0x4
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r4, 0x1]
|
|
_080B0372:
|
|
adds r0, r4, 0
|
|
bl DestroySprite
|
|
ldr r1, _080B0388 @ =gUnknown_2037EE2
|
|
ldrb r0, [r1]
|
|
subs r0, 0x1
|
|
strb r0, [r1]
|
|
_080B0380:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B0388: .4byte gUnknown_2037EE2
|
|
thumb_func_end sub_80B0148
|
|
|
|
thumb_func_start sub_80B038C
|
|
sub_80B038C: @ 80B038C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
ldr r0, _080B03A0 @ =gTasks
|
|
adds r1, r0
|
|
ldr r0, _080B03A4 @ =sub_80B03A8
|
|
str r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_080B03A0: .4byte gTasks
|
|
_080B03A4: .4byte sub_80B03A8
|
|
thumb_func_end sub_80B038C
|
|
|
|
thumb_func_start sub_80B03A8
|
|
sub_80B03A8: @ 80B03A8
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
lsls r0, r2, 2
|
|
adds r0, r2
|
|
lsls r0, 3
|
|
ldr r1, _080B03CC @ =gTasks
|
|
adds r4, r0, r1
|
|
movs r0, 0x8
|
|
ldrsh r5, [r4, r0]
|
|
cmp r5, 0x1
|
|
beq _080B03EC
|
|
cmp r5, 0x1
|
|
bgt _080B03D0
|
|
cmp r5, 0
|
|
beq _080B03D6
|
|
b _080B0450
|
|
.align 2, 0
|
|
_080B03CC: .4byte gTasks
|
|
_080B03D0:
|
|
cmp r5, 0x2
|
|
beq _080B0442
|
|
b _080B0450
|
|
_080B03D6:
|
|
ldrh r0, [r4, 0x10]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x10]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x2
|
|
ble _080B0450
|
|
strh r5, [r4, 0x10]
|
|
strh r5, [r4, 0x12]
|
|
strh r5, [r4, 0xC]
|
|
b _080B0428
|
|
_080B03EC:
|
|
ldrh r1, [r4, 0x12]
|
|
movs r3, 0x12
|
|
ldrsh r0, [r4, r3]
|
|
cmp r0, 0
|
|
bne _080B043C
|
|
ldrb r0, [r4, 0xE]
|
|
ldrb r1, [r4, 0xC]
|
|
movs r3, 0x1
|
|
bl sub_80B0458
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080B040C
|
|
ldrh r0, [r4, 0xA]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0xA]
|
|
_080B040C:
|
|
ldrh r0, [r4, 0xC]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0xC]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x3
|
|
bne _080B0438
|
|
ldrh r0, [r4, 0xE]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0xE]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0xA
|
|
bne _080B0430
|
|
_080B0428:
|
|
ldrh r0, [r4, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x8]
|
|
b _080B0450
|
|
_080B0430:
|
|
ldrh r0, [r4, 0x8]
|
|
subs r0, 0x1
|
|
strh r0, [r4, 0x8]
|
|
b _080B0450
|
|
_080B0438:
|
|
strh r5, [r4, 0x12]
|
|
b _080B0450
|
|
_080B043C:
|
|
subs r0, r1, 0x1
|
|
strh r0, [r4, 0x12]
|
|
b _080B0450
|
|
_080B0442:
|
|
movs r1, 0xA
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bne _080B0450
|
|
adds r0, r2, 0
|
|
bl DestroyAnimVisualTask
|
|
_080B0450:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80B03A8
|
|
|
|
thumb_func_start sub_80B0458
|
|
sub_80B0458: @ 80B0458
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
mov r9, r1
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
str r2, [sp]
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
mov r10, r3
|
|
movs r1, 0
|
|
str r1, [sp, 0x4]
|
|
ldr r1, _080B04D0 @ =gUnknown_83E652C
|
|
lsrs r0, 22
|
|
adds r4, r0, r1
|
|
ldrb r0, [r4, 0x3]
|
|
lsls r0, 24
|
|
asrs r0, 28
|
|
mov r8, r0
|
|
cmp r0, 0x2
|
|
beq _080B0544
|
|
ldrh r0, [r4, 0x2]
|
|
lsls r0, 20
|
|
lsrs r0, 24
|
|
bl GetBattlerAtPosition
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
adds r0, r5, 0
|
|
bl sub_8072DF0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080B0544
|
|
movs r0, 0x1
|
|
str r0, [sp, 0x4]
|
|
adds r0, r5, 0
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
adds r0, r5, 0
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
mov r1, r8
|
|
cmp r1, 0
|
|
beq _080B04D4
|
|
cmp r1, 0x1
|
|
beq _080B050A
|
|
b _080B0556
|
|
.align 2, 0
|
|
_080B04D0: .4byte gUnknown_83E652C
|
|
_080B04D4:
|
|
adds r0, r5, 0
|
|
movs r1, 0x1
|
|
bl sub_8076B2C
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r1, 0x6
|
|
bl __divsi3
|
|
lsls r1, r7, 16
|
|
asrs r1, 16
|
|
subs r1, r0
|
|
lsls r1, 16
|
|
lsrs r7, r1, 16
|
|
adds r0, r5, 0
|
|
movs r1, 0
|
|
bl sub_8076B2C
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r1, 0x6
|
|
bl __divsi3
|
|
lsls r1, r6, 16
|
|
asrs r1, 16
|
|
subs r1, r0
|
|
b _080B053E
|
|
_080B050A:
|
|
adds r0, r5, 0
|
|
movs r1, 0x1
|
|
bl sub_8076B2C
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r1, 0x6
|
|
bl __divsi3
|
|
lsls r1, r7, 16
|
|
asrs r1, 16
|
|
adds r1, r0
|
|
lsls r1, 16
|
|
lsrs r7, r1, 16
|
|
adds r0, r5, 0
|
|
movs r1, 0
|
|
bl sub_8076B2C
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r1, 0x6
|
|
bl __divsi3
|
|
lsls r1, r6, 16
|
|
asrs r1, 16
|
|
adds r1, r0
|
|
_080B053E:
|
|
lsls r1, 16
|
|
lsrs r6, r1, 16
|
|
b _080B0556
|
|
_080B0544:
|
|
ldrh r0, [r4]
|
|
lsls r0, 22
|
|
asrs r0, 6
|
|
lsrs r7, r0, 16
|
|
ldr r0, [r4]
|
|
lsls r0, 12
|
|
asrs r0, 22
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
_080B0556:
|
|
lsls r0, r6, 16
|
|
asrs r0, 16
|
|
adds r0, 0x8
|
|
lsrs r1, r0, 31
|
|
adds r0, r1
|
|
asrs r0, 1
|
|
lsls r1, r7, 16
|
|
asrs r1, 16
|
|
subs r1, r0
|
|
ldr r0, _080B05B0 @ =gUnknown_83E65A4
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
movs r2, 0x8
|
|
negs r2, r2
|
|
movs r3, 0x12
|
|
bl CreateSprite
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0x40
|
|
beq _080B05B8
|
|
lsls r4, r5, 4
|
|
adds r4, r5
|
|
lsls r4, 2
|
|
ldr r0, _080B05B4 @ =gSprites
|
|
adds r4, r0
|
|
adds r0, r4, 0
|
|
mov r1, r9
|
|
bl StartSpriteAffineAnim
|
|
mov r0, sp
|
|
ldrh r0, [r0, 0x4]
|
|
strh r0, [r4, 0x2E]
|
|
strh r7, [r4, 0x34]
|
|
strh r6, [r4, 0x36]
|
|
mov r1, r9
|
|
strh r1, [r4, 0x38]
|
|
mov r0, sp
|
|
ldrh r0, [r0]
|
|
strh r0, [r4, 0x3A]
|
|
mov r1, r10
|
|
strh r1, [r4, 0x3C]
|
|
movs r0, 0x1
|
|
b _080B05BA
|
|
.align 2, 0
|
|
_080B05B0: .4byte gUnknown_83E65A4
|
|
_080B05B4: .4byte gSprites
|
|
_080B05B8:
|
|
movs r0, 0
|
|
_080B05BA:
|
|
add sp, 0x8
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80B0458
|
|
|
|
thumb_func_start sub_80B05CC
|
|
sub_80B05CC: @ 80B05CC
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrh r0, [r4, 0x20]
|
|
adds r0, 0x4
|
|
strh r0, [r4, 0x20]
|
|
ldrh r1, [r4, 0x22]
|
|
adds r2, r1, 0
|
|
adds r2, 0x8
|
|
strh r2, [r4, 0x22]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r3, 0x34
|
|
ldrsh r1, [r4, r3]
|
|
cmp r0, r1
|
|
bge _080B05F6
|
|
lsls r0, r2, 16
|
|
asrs r0, 16
|
|
movs r2, 0x36
|
|
ldrsh r1, [r4, r2]
|
|
cmp r0, r1
|
|
blt _080B06A6
|
|
_080B05F6:
|
|
movs r3, 0x2E
|
|
ldrsh r0, [r4, r3]
|
|
cmp r0, 0x1
|
|
bne _080B0678
|
|
movs r1, 0x38
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bne _080B0678
|
|
ldr r0, _080B066C @ =gUnknown_83E63E0
|
|
movs r2, 0x34
|
|
ldrsh r1, [r4, r2]
|
|
movs r3, 0x36
|
|
ldrsh r2, [r4, r3]
|
|
adds r3, r4, 0
|
|
adds r3, 0x43
|
|
ldrb r3, [r3]
|
|
bl CreateSprite
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x2E]
|
|
cmp r0, 0x40
|
|
beq _080B065A
|
|
ldr r2, _080B0670 @ =gSprites
|
|
movs r0, 0x2E
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r1, r2, 0
|
|
adds r1, 0x1C
|
|
adds r0, r1
|
|
ldr r1, _080B0674 @ =sub_80B06B0
|
|
str r1, [r0]
|
|
movs r3, 0x2E
|
|
ldrsh r1, [r4, r3]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrh r1, [r4, 0x3A]
|
|
strh r1, [r0, 0x3A]
|
|
movs r0, 0x2E
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrh r1, [r4, 0x3C]
|
|
strh r1, [r0, 0x3C]
|
|
_080B065A:
|
|
ldrb r0, [r4, 0x3]
|
|
lsls r0, 26
|
|
lsrs r0, 27
|
|
bl FreeOamMatrix
|
|
adds r0, r4, 0
|
|
bl DestroySprite
|
|
b _080B06A6
|
|
.align 2, 0
|
|
_080B066C: .4byte gUnknown_83E63E0
|
|
_080B0670: .4byte gSprites
|
|
_080B0674: .4byte sub_80B06B0
|
|
_080B0678:
|
|
ldr r3, _080B06AC @ =gTasks
|
|
movs r2, 0x3C
|
|
ldrsh r1, [r4, r2]
|
|
lsls r1, 1
|
|
movs r0, 0x3A
|
|
ldrsh r2, [r4, r0]
|
|
lsls r0, r2, 2
|
|
adds r0, r2
|
|
lsls r0, 3
|
|
adds r1, r0
|
|
adds r3, 0x8
|
|
adds r1, r3
|
|
ldrh r0, [r1]
|
|
subs r0, 0x1
|
|
strh r0, [r1]
|
|
ldrb r0, [r4, 0x3]
|
|
lsls r0, 26
|
|
lsrs r0, 27
|
|
bl FreeOamMatrix
|
|
adds r0, r4, 0
|
|
bl DestroySprite
|
|
_080B06A6:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B06AC: .4byte gTasks
|
|
thumb_func_end sub_80B05CC
|
|
|
|
thumb_func_start sub_80B06B0
|
|
sub_80B06B0: @ 80B06B0
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrh r0, [r4, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x14
|
|
bne _080B06F0
|
|
ldr r3, _080B06F8 @ =gTasks
|
|
movs r0, 0x3C
|
|
ldrsh r1, [r4, r0]
|
|
lsls r1, 1
|
|
movs r0, 0x3A
|
|
ldrsh r2, [r4, r0]
|
|
lsls r0, r2, 2
|
|
adds r0, r2
|
|
lsls r0, 3
|
|
adds r1, r0
|
|
adds r3, 0x8
|
|
adds r1, r3
|
|
ldrh r0, [r1]
|
|
subs r0, 0x1
|
|
strh r0, [r1]
|
|
ldrb r0, [r4, 0x3]
|
|
lsls r0, 26
|
|
lsrs r0, 27
|
|
bl FreeOamMatrix
|
|
adds r0, r4, 0
|
|
bl DestroySprite
|
|
_080B06F0:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B06F8: .4byte gTasks
|
|
thumb_func_end sub_80B06B0
|
|
|
|
thumb_func_start unc_080B06FC
|
|
unc_080B06FC: @ 80B06FC
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
ldr r0, _080B077C @ =gUnknown_2037EE4
|
|
ldr r0, [r0]
|
|
ldrb r1, [r0, 0x11]
|
|
lsrs r0, r1, 4
|
|
lsls r1, 28
|
|
lsrs r1, 28
|
|
subs r0, r1
|
|
subs r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0x4
|
|
bls _080B071A
|
|
movs r1, 0x4
|
|
_080B071A:
|
|
adds r0, r5, 0
|
|
bl StartSpriteAffineAnim
|
|
adds r0, r5, 0
|
|
movs r1, 0x1
|
|
bl sub_8075160
|
|
ldr r6, _080B0780 @ =gUnknown_2037F02
|
|
ldrh r0, [r6, 0x8]
|
|
strh r0, [r5, 0x2E]
|
|
ldr r0, _080B0784 @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080B0742
|
|
ldrh r0, [r6, 0x4]
|
|
negs r0, r0
|
|
strh r0, [r6, 0x4]
|
|
_080B0742:
|
|
ldr r4, _080B0788 @ =gUnknown_2037F1B
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrh r1, [r6, 0x4]
|
|
adds r0, r1
|
|
strh r0, [r5, 0x32]
|
|
ldrb r0, [r4]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrh r1, [r6, 0x6]
|
|
adds r0, r1
|
|
strh r0, [r5, 0x36]
|
|
ldrh r0, [r6, 0xA]
|
|
strh r0, [r5, 0x38]
|
|
adds r0, r5, 0
|
|
bl sub_8075068
|
|
ldr r0, _080B078C @ =sub_80B0790
|
|
str r0, [r5, 0x1C]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B077C: .4byte gUnknown_2037EE4
|
|
_080B0780: .4byte gUnknown_2037F02
|
|
_080B0784: .4byte gUnknown_2037F1A
|
|
_080B0788: .4byte gUnknown_2037F1B
|
|
_080B078C: .4byte sub_80B0790
|
|
thumb_func_end unc_080B06FC
|
|
|
|
thumb_func_start sub_80B0790
|
|
sub_80B0790: @ 80B0790
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl AnimateBallThrow
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080B07B2
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl StartSpriteAnim
|
|
ldr r0, _080B07B8 @ =sub_8074F6C
|
|
str r0, [r4, 0x1C]
|
|
ldr r1, _080B07BC @ =DestroyAnimSprite
|
|
adds r0, r4, 0
|
|
bl StoreSpriteCallbackInData6
|
|
_080B07B2:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B07B8: .4byte sub_8074F6C
|
|
_080B07BC: .4byte DestroyAnimSprite
|
|
thumb_func_end sub_80B0790
|
|
|
|
thumb_func_start sub_80B07C0
|
|
sub_80B07C0: @ 80B07C0
|
|
push {r4-r6,lr}
|
|
adds r4, r0, 0
|
|
ldrh r2, [r4, 0x4]
|
|
lsls r1, r2, 22
|
|
lsrs r1, 22
|
|
adds r1, 0x8
|
|
ldr r3, _080B0814 @ =0x000003ff
|
|
adds r0, r3, 0
|
|
ands r1, r0
|
|
ldr r0, _080B0818 @ =0xfffffc00
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strh r0, [r4, 0x4]
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl sub_8075114
|
|
bl Random
|
|
movs r5, 0xFF
|
|
ands r5, r0
|
|
movs r0, 0x80
|
|
lsls r0, 1
|
|
adds r6, r0, 0
|
|
orrs r5, r6
|
|
bl Random
|
|
ldr r1, _080B081C @ =0x000001ff
|
|
ands r1, r0
|
|
adds r0, r1, 0
|
|
cmp r0, 0xFF
|
|
ble _080B0806
|
|
subs r0, r6, r0
|
|
lsls r0, 16
|
|
lsrs r1, r0, 16
|
|
_080B0806:
|
|
strh r5, [r4, 0x30]
|
|
strh r1, [r4, 0x32]
|
|
ldr r0, _080B0820 @ =sub_80B0824
|
|
str r0, [r4, 0x1C]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B0814: .4byte 0x000003ff
|
|
_080B0818: .4byte 0xfffffc00
|
|
_080B081C: .4byte 0x000001ff
|
|
_080B0820: .4byte sub_80B0824
|
|
thumb_func_end sub_80B07C0
|
|
|
|
thumb_func_start sub_80B0824
|
|
sub_80B0824: @ 80B0824
|
|
push {r4,lr}
|
|
adds r2, r0, 0
|
|
ldrh r0, [r2, 0x30]
|
|
ldrh r1, [r2, 0x34]
|
|
adds r3, r0, r1
|
|
strh r3, [r2, 0x34]
|
|
ldrh r1, [r2, 0x32]
|
|
ldrh r4, [r2, 0x36]
|
|
adds r1, r4
|
|
strh r1, [r2, 0x36]
|
|
movs r1, 0x1
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _080B0848
|
|
lsls r0, r3, 16
|
|
asrs r0, 24
|
|
negs r0, r0
|
|
b _080B084C
|
|
_080B0848:
|
|
lsls r0, r3, 16
|
|
asrs r0, 24
|
|
_080B084C:
|
|
strh r0, [r2, 0x24]
|
|
ldrh r0, [r2, 0x36]
|
|
lsls r0, 16
|
|
asrs r0, 24
|
|
strh r0, [r2, 0x26]
|
|
ldrh r0, [r2, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r2, 0x2E]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x15
|
|
bne _080B086A
|
|
adds r0, r2, 0
|
|
bl DestroyAnimSprite
|
|
_080B086A:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80B0824
|
|
|
|
thumb_func_start sub_80B0870
|
|
sub_80B0870: @ 80B0870
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _080B0898 @ =gUnknown_2037F02
|
|
ldrb r3, [r1]
|
|
lsls r3, 1
|
|
adds r3, r1
|
|
ldr r1, _080B089C @ =gUnknown_2037EE4
|
|
ldr r1, [r1]
|
|
ldrb r1, [r1, 0x11]
|
|
lsrs r2, r1, 4
|
|
lsls r1, 28
|
|
lsrs r1, 28
|
|
subs r2, r1
|
|
subs r2, 0x1
|
|
strh r2, [r3]
|
|
bl DestroyAnimVisualTask
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B0898: .4byte gUnknown_2037F02
|
|
_080B089C: .4byte gUnknown_2037EE4
|
|
thumb_func_end sub_80B0870
|
|
|
|
thumb_func_start unc_080B08A0
|
|
unc_080B08A0: @ 80B08A0
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
ldr r5, _080B08D0 @ =gUnknown_2037F02
|
|
movs r0, 0
|
|
ldrsh r1, [r5, r0]
|
|
adds r0, r4, 0
|
|
bl sub_8074FF8
|
|
ldrh r0, [r5, 0x2]
|
|
ldrh r1, [r4, 0x22]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x22]
|
|
movs r0, 0xF
|
|
strh r0, [r4, 0x2E]
|
|
ldr r0, _080B08D4 @ =sub_8074C44
|
|
str r0, [r4, 0x1C]
|
|
ldr r1, _080B08D8 @ =DestroyAnimSprite
|
|
adds r0, r4, 0
|
|
bl StoreSpriteCallbackInData6
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B08D0: .4byte gUnknown_2037F02
|
|
_080B08D4: .4byte sub_8074C44
|
|
_080B08D8: .4byte DestroyAnimSprite
|
|
thumb_func_end unc_080B08A0
|
|
|
|
thumb_func_start sub_80B08DC
|
|
sub_80B08DC: @ 80B08DC
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
ldr r4, _080B0920 @ =gUnknown_2037F02
|
|
movs r1, 0xE
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x1
|
|
bne _080B0904
|
|
ldr r0, _080B0924 @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080B0904
|
|
ldrh r0, [r4, 0x2]
|
|
negs r0, r0
|
|
strh r0, [r4, 0x2]
|
|
ldrh r0, [r4, 0x6]
|
|
negs r0, r0
|
|
strh r0, [r4, 0x6]
|
|
_080B0904:
|
|
ldr r4, _080B0920 @ =gUnknown_2037F02
|
|
ldrb r1, [r4, 0xC]
|
|
adds r0, r5, 0
|
|
bl StartSpriteAnim
|
|
movs r0, 0
|
|
strh r0, [r4, 0xC]
|
|
adds r0, r5, 0
|
|
bl sub_8075F0C
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B0920: .4byte gUnknown_2037F02
|
|
_080B0924: .4byte gUnknown_2037F1A
|
|
thumb_func_end sub_80B08DC
|
|
|
|
thumb_func_start sub_80B0928
|
|
sub_80B0928: @ 80B0928
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080B0944
|
|
ldr r0, _080B0950 @ =gUnknown_2037F02
|
|
ldrh r1, [r0, 0x2]
|
|
negs r1, r1
|
|
strh r1, [r0, 0x2]
|
|
ldrh r1, [r0, 0x6]
|
|
negs r1, r1
|
|
strh r1, [r0, 0x6]
|
|
_080B0944:
|
|
adds r0, r4, 0
|
|
bl sub_80B08DC
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B0950: .4byte gUnknown_2037F02
|
|
thumb_func_end sub_80B0928
|
|
|
|
thumb_func_start sub_80B0954
|
|
sub_80B0954: @ 80B0954
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
ldr r4, _080B0974 @ =gUnknown_2037F02
|
|
ldrb r1, [r4, 0x8]
|
|
bl StartSpriteAnim
|
|
movs r1, 0x6
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bne _080B0978
|
|
adds r0, r5, 0
|
|
movs r1, 0x1
|
|
bl sub_8075160
|
|
b _080B0980
|
|
.align 2, 0
|
|
_080B0974: .4byte gUnknown_2037F02
|
|
_080B0978:
|
|
adds r0, r5, 0
|
|
movs r1, 0x1
|
|
bl sub_8075114
|
|
_080B0980:
|
|
ldr r0, _080B0998 @ =gUnknown_2037F02
|
|
ldrh r0, [r0, 0x4]
|
|
strh r0, [r5, 0x2E]
|
|
ldr r0, _080B099C @ =sub_8074C44
|
|
str r0, [r5, 0x1C]
|
|
ldr r1, _080B09A0 @ =DestroyAnimSprite
|
|
adds r0, r5, 0
|
|
bl StoreSpriteCallbackInData6
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B0998: .4byte gUnknown_2037F02
|
|
_080B099C: .4byte sub_8074C44
|
|
_080B09A0: .4byte DestroyAnimSprite
|
|
thumb_func_end sub_80B0954
|
|
|
|
thumb_func_start sub_80B09A4
|
|
sub_80B09A4: @ 80B09A4
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
adds r5, r0, 0
|
|
ldr r0, _080B09C0 @ =gUnknown_2037F02
|
|
movs r2, 0
|
|
ldrsh r1, [r0, r2]
|
|
mov r9, r0
|
|
cmp r1, 0
|
|
bne _080B09C8
|
|
ldr r0, _080B09C4 @ =gUnknown_2037F1A
|
|
b _080B09CA
|
|
.align 2, 0
|
|
_080B09C0: .4byte gUnknown_2037F02
|
|
_080B09C4: .4byte gUnknown_2037F1A
|
|
_080B09C8:
|
|
ldr r0, _080B0B10 @ =gUnknown_2037F1B
|
|
_080B09CA:
|
|
ldrb r0, [r0]
|
|
mov r8, r0
|
|
mov r4, r9
|
|
movs r3, 0x4
|
|
ldrsh r0, [r4, r3]
|
|
cmp r0, 0
|
|
bge _080B09E8
|
|
bl Random
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x5
|
|
bl __umodsi3
|
|
strh r0, [r4, 0x4]
|
|
_080B09E8:
|
|
ldrb r1, [r4, 0x4]
|
|
adds r0, r5, 0
|
|
bl StartSpriteAnim
|
|
mov r0, r8
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x20]
|
|
mov r0, r8
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x22]
|
|
mov r0, r8
|
|
movs r1, 0x1
|
|
bl sub_8076B2C
|
|
lsls r0, 16
|
|
asrs r1, r0, 16
|
|
lsrs r0, 31
|
|
adds r1, r0
|
|
lsls r1, 15
|
|
lsrs r6, r1, 16
|
|
mov r0, r8
|
|
movs r1, 0
|
|
bl sub_8076B2C
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0
|
|
bge _080B0A32
|
|
adds r0, 0x3
|
|
_080B0A32:
|
|
lsls r4, r0, 14
|
|
lsrs r4, 16
|
|
bl Random
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
lsls r1, r6, 16
|
|
asrs r1, 16
|
|
bl __modsi3
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
bl Random
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
lsls r4, 16
|
|
asrs r4, 16
|
|
adds r1, r4, 0
|
|
bl __modsi3
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
bl Random
|
|
movs r7, 0x1
|
|
adds r1, r7, 0
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _080B0A74
|
|
lsls r0, r6, 16
|
|
negs r0, r0
|
|
lsrs r6, r0, 16
|
|
_080B0A74:
|
|
bl Random
|
|
adds r1, r7, 0
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _080B0A86
|
|
lsls r0, r4, 16
|
|
negs r0, r0
|
|
lsrs r4, r0, 16
|
|
_080B0A86:
|
|
ldr r0, _080B0B14 @ =gUnknown_2023BD6
|
|
add r0, r8
|
|
ldrb r1, [r0]
|
|
adds r0, r7, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080B0A9C
|
|
lsls r0, r4, 16
|
|
ldr r1, _080B0B18 @ =0xfff00000
|
|
adds r0, r1
|
|
lsrs r4, r0, 16
|
|
_080B0A9C:
|
|
lsls r0, r6, 16
|
|
asrs r0, 16
|
|
ldrh r2, [r5, 0x20]
|
|
adds r0, r2
|
|
strh r0, [r5, 0x20]
|
|
lsls r0, r4, 16
|
|
asrs r0, 16
|
|
ldrh r3, [r5, 0x22]
|
|
adds r0, r3
|
|
strh r0, [r5, 0x22]
|
|
mov r1, r9
|
|
ldrh r0, [r1, 0x2]
|
|
strh r0, [r5, 0x2E]
|
|
ldr r0, _080B0B1C @ =gUnknown_83E7C08
|
|
movs r2, 0x20
|
|
ldrsh r1, [r5, r2]
|
|
movs r3, 0x22
|
|
ldrsh r2, [r5, r3]
|
|
adds r3, r5, 0
|
|
adds r3, 0x43
|
|
ldrb r3, [r3]
|
|
adds r3, 0x1
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
bl CreateSprite
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x3C]
|
|
cmp r0, 0x40
|
|
beq _080B0B00
|
|
movs r0, 0x3C
|
|
ldrsh r1, [r5, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r4, _080B0B20 @ =gSprites
|
|
adds r0, r4
|
|
movs r1, 0
|
|
bl StartSpriteAffineAnim
|
|
movs r2, 0x3C
|
|
ldrsh r1, [r5, r2]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r4, 0x1C
|
|
adds r0, r4
|
|
ldr r1, _080B0B24 @ =SpriteCallbackDummy
|
|
str r1, [r0]
|
|
_080B0B00:
|
|
ldr r0, _080B0B28 @ =sub_80B0B2C
|
|
str r0, [r5, 0x1C]
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B0B10: .4byte gUnknown_2037F1B
|
|
_080B0B14: .4byte gUnknown_2023BD6
|
|
_080B0B18: .4byte 0xfff00000
|
|
_080B0B1C: .4byte gUnknown_83E7C08
|
|
_080B0B20: .4byte gSprites
|
|
_080B0B24: .4byte SpriteCallbackDummy
|
|
_080B0B28: .4byte sub_80B0B2C
|
|
thumb_func_end sub_80B09A4
|
|
|
|
thumb_func_start sub_80B0B2C
|
|
sub_80B0B2C: @ 80B0B2C
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
ldrh r1, [r5, 0x2E]
|
|
movs r2, 0x2E
|
|
ldrsh r0, [r5, r2]
|
|
cmp r0, 0
|
|
bne _080B0B74
|
|
movs r1, 0x3C
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0x40
|
|
beq _080B0B68
|
|
ldr r4, _080B0B70 @ =gSprites
|
|
adds r1, r0, 0
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldrb r0, [r0, 0x3]
|
|
lsls r0, 26
|
|
lsrs r0, 27
|
|
bl FreeOamMatrix
|
|
movs r0, 0x3C
|
|
ldrsh r1, [r5, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
bl DestroySprite
|
|
_080B0B68:
|
|
adds r0, r5, 0
|
|
bl DestroyAnimSprite
|
|
b _080B0B78
|
|
.align 2, 0
|
|
_080B0B70: .4byte gSprites
|
|
_080B0B74:
|
|
subs r0, r1, 0x1
|
|
strh r0, [r5, 0x2E]
|
|
_080B0B78:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80B0B2C
|
|
|
|
thumb_func_start sub_80B0B80
|
|
sub_80B0B80: @ 80B0B80
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x1
|
|
bl sub_8075114
|
|
movs r0, 0x1E
|
|
strh r0, [r4, 0x2E]
|
|
ldr r0, _080B0BA0 @ =gUnknown_2037F02
|
|
movs r1, 0x4
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0
|
|
bne _080B0BA4
|
|
ldrh r0, [r4, 0x20]
|
|
subs r0, 0x14
|
|
strh r0, [r4, 0x32]
|
|
b _080B0BB6
|
|
.align 2, 0
|
|
_080B0BA0: .4byte gUnknown_2037F02
|
|
_080B0BA4:
|
|
ldrh r0, [r4, 0x20]
|
|
adds r0, 0x14
|
|
strh r0, [r4, 0x32]
|
|
adds r2, r4, 0
|
|
adds r2, 0x3F
|
|
ldrb r0, [r2]
|
|
movs r1, 0x1
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
_080B0BB6:
|
|
ldrh r0, [r4, 0x22]
|
|
subs r0, 0x14
|
|
strh r0, [r4, 0x36]
|
|
ldr r0, _080B0BD0 @ =sub_8075590
|
|
str r0, [r4, 0x1C]
|
|
ldr r1, _080B0BD4 @ =sub_80B0BD8
|
|
adds r0, r4, 0
|
|
bl StoreSpriteCallbackInData6
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B0BD0: .4byte sub_8075590
|
|
_080B0BD4: .4byte sub_80B0BD8
|
|
thumb_func_end sub_80B0B80
|
|
|
|
thumb_func_start sub_80B0BD8
|
|
sub_80B0BD8: @ 80B0BD8
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
ldrh r0, [r5, 0x38]
|
|
adds r0, 0x1
|
|
movs r6, 0
|
|
strh r0, [r5, 0x38]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0xB
|
|
bne _080B0C18
|
|
ldrh r2, [r5, 0x20]
|
|
ldrh r4, [r5, 0x24]
|
|
subs r0, r2, r4
|
|
strh r0, [r5, 0x32]
|
|
ldrh r1, [r5, 0x22]
|
|
ldrh r3, [r5, 0x26]
|
|
subs r0, r1, r3
|
|
strh r0, [r5, 0x36]
|
|
movs r0, 0x8
|
|
strh r0, [r5, 0x2E]
|
|
adds r2, r4
|
|
strh r2, [r5, 0x20]
|
|
adds r1, r3
|
|
strh r1, [r5, 0x22]
|
|
strh r6, [r5, 0x26]
|
|
strh r6, [r5, 0x24]
|
|
ldr r0, _080B0C20 @ =sub_8075590
|
|
str r0, [r5, 0x1C]
|
|
ldr r1, _080B0C24 @ =DestroyAnimSprite
|
|
adds r0, r5, 0
|
|
bl StoreSpriteCallbackInData6
|
|
_080B0C18:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B0C20: .4byte sub_8075590
|
|
_080B0C24: .4byte DestroyAnimSprite
|
|
thumb_func_end sub_80B0BD8
|
|
|
|
thumb_func_start sub_80B0C28
|
|
sub_80B0C28: @ 80B0C28
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
ldr r0, _080B0CA4 @ =gUnknown_2037F1A
|
|
ldrb r1, [r0]
|
|
movs r0, 0x2
|
|
ldr r2, _080B0CA8 @ =gUnknown_2037F1B
|
|
eors r0, r1
|
|
ldrb r1, [r2]
|
|
cmp r0, r1
|
|
bne _080B0C54
|
|
ldrb r0, [r2]
|
|
bl GetBattlerPosition
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bhi _080B0C54
|
|
ldr r1, _080B0CAC @ =gUnknown_2037F02
|
|
movs r2, 0
|
|
ldrsh r0, [r1, r2]
|
|
negs r0, r0
|
|
strh r0, [r1]
|
|
_080B0C54:
|
|
adds r0, r6, 0
|
|
movs r1, 0x1
|
|
bl sub_8075114
|
|
ldr r0, _080B0CA4 @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080B0C72
|
|
ldr r1, _080B0CAC @ =gUnknown_2037F02
|
|
ldrh r0, [r1, 0x4]
|
|
negs r0, r0
|
|
strh r0, [r1, 0x4]
|
|
_080B0C72:
|
|
ldr r4, _080B0CAC @ =gUnknown_2037F02
|
|
ldrh r0, [r4, 0x6]
|
|
movs r5, 0
|
|
strh r0, [r6, 0x2E]
|
|
ldrh r0, [r6, 0x20]
|
|
strh r0, [r6, 0x30]
|
|
ldrh r1, [r4, 0x4]
|
|
adds r0, r1
|
|
strh r0, [r6, 0x32]
|
|
ldrh r0, [r6, 0x22]
|
|
strh r0, [r6, 0x34]
|
|
strh r0, [r6, 0x36]
|
|
adds r0, r6, 0
|
|
bl obj_translate_based_on_private_1_2_3_4
|
|
ldrh r0, [r4, 0xA]
|
|
strh r0, [r6, 0x38]
|
|
ldrh r0, [r4, 0x8]
|
|
strh r0, [r6, 0x3A]
|
|
strh r5, [r6, 0x3C]
|
|
ldr r0, _080B0CB0 @ =sub_80B0CB4
|
|
str r0, [r6, 0x1C]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B0CA4: .4byte gUnknown_2037F1A
|
|
_080B0CA8: .4byte gUnknown_2037F1B
|
|
_080B0CAC: .4byte gUnknown_2037F02
|
|
_080B0CB0: .4byte sub_80B0CB4
|
|
thumb_func_end sub_80B0C28
|
|
|
|
thumb_func_start sub_80B0CB4
|
|
sub_80B0CB4: @ 80B0CB4
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_80755E0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080B0CE0
|
|
ldrh r0, [r4, 0x3C]
|
|
lsls r0, 16
|
|
asrs r0, 24
|
|
movs r2, 0x38
|
|
ldrsh r1, [r4, r2]
|
|
bl Sin
|
|
ldrh r1, [r4, 0x26]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x26]
|
|
ldrh r0, [r4, 0x3A]
|
|
ldrh r2, [r4, 0x3C]
|
|
adds r0, r2
|
|
strh r0, [r4, 0x3C]
|
|
b _080B0CE6
|
|
_080B0CE0:
|
|
adds r0, r4, 0
|
|
bl DestroyAnimSprite
|
|
_080B0CE6:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80B0CB4
|
|
|
|
thumb_func_start sub_80B0CEC
|
|
sub_80B0CEC: @ 80B0CEC
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x1
|
|
bl sub_8075114
|
|
ldr r5, _080B0D18 @ =gUnknown_2037F02
|
|
ldrb r1, [r5, 0x4]
|
|
adds r0, r4, 0
|
|
bl StartSpriteAnim
|
|
ldrh r0, [r5, 0x6]
|
|
strh r0, [r4, 0x2E]
|
|
ldr r0, _080B0D1C @ =sub_8074C44
|
|
str r0, [r4, 0x1C]
|
|
ldr r1, _080B0D20 @ =sub_80B0D24
|
|
adds r0, r4, 0
|
|
bl StoreSpriteCallbackInData6
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B0D18: .4byte gUnknown_2037F02
|
|
_080B0D1C: .4byte sub_8074C44
|
|
_080B0D20: .4byte sub_80B0D24
|
|
thumb_func_end sub_80B0CEC
|
|
|
|
thumb_func_start sub_80B0D24
|
|
sub_80B0D24: @ 80B0D24
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0
|
|
bl StartSpriteAffineAnim
|
|
adds r2, r4, 0
|
|
adds r2, 0x2C
|
|
ldrb r0, [r2]
|
|
movs r1, 0x80
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
movs r0, 0x14
|
|
strh r0, [r4, 0x2E]
|
|
ldr r0, _080B0D50 @ =sub_8074C44
|
|
str r0, [r4, 0x1C]
|
|
ldr r1, _080B0D54 @ =DestroyAnimSprite
|
|
adds r0, r4, 0
|
|
bl StoreSpriteCallbackInData6
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B0D50: .4byte sub_8074C44
|
|
_080B0D54: .4byte DestroyAnimSprite
|
|
thumb_func_end sub_80B0D24
|
|
|
|
thumb_func_start sub_80B0D58
|
|
sub_80B0D58: @ 80B0D58
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x1
|
|
bl sub_8075114
|
|
ldr r0, _080B0D74 @ =gUnknown_2037F02
|
|
ldrh r0, [r0, 0x4]
|
|
strh r0, [r4, 0x2E]
|
|
ldr r0, _080B0D78 @ =sub_80B0D7C
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B0D74: .4byte gUnknown_2037F02
|
|
_080B0D78: .4byte sub_80B0D7C
|
|
thumb_func_end sub_80B0D58
|
|
|
|
thumb_func_start sub_80B0D7C
|
|
sub_80B0D7C: @ 80B0D7C
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
ldrh r0, [r5, 0x2E]
|
|
subs r0, 0x1
|
|
strh r0, [r5, 0x2E]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
cmp r0, r1
|
|
bne _080B0DC0
|
|
movs r0, 0x6
|
|
strh r0, [r5, 0x2E]
|
|
ldr r4, _080B0DC8 @ =gUnknown_2037F1B
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x32]
|
|
ldrb r0, [r4]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x36]
|
|
ldr r0, _080B0DCC @ =sub_8075590
|
|
str r0, [r5, 0x1C]
|
|
ldr r1, _080B0DD0 @ =sub_80B0DD4
|
|
adds r0, r5, 0
|
|
bl StoreSpriteCallbackInData6
|
|
_080B0DC0:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B0DC8: .4byte gUnknown_2037F1B
|
|
_080B0DCC: .4byte sub_8075590
|
|
_080B0DD0: .4byte sub_80B0DD4
|
|
thumb_func_end sub_80B0D7C
|
|
|
|
thumb_func_start sub_80B0DD4
|
|
sub_80B0DD4: @ 80B0DD4
|
|
push {lr}
|
|
movs r1, 0xF
|
|
strh r1, [r0, 0x2E]
|
|
ldr r1, _080B0DE8 @ =sub_8074C44
|
|
str r1, [r0, 0x1C]
|
|
ldr r1, _080B0DEC @ =DestroyAnimSprite
|
|
bl StoreSpriteCallbackInData6
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B0DE8: .4byte sub_8074C44
|
|
_080B0DEC: .4byte DestroyAnimSprite
|
|
thumb_func_end sub_80B0DD4
|
|
|
|
thumb_func_start sub_80B0DF0
|
|
sub_80B0DF0: @ 80B0DF0
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bne _080B0E1C
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl sub_8075114
|
|
ldr r1, _080B0E18 @ =gUnknown_2037F02
|
|
ldrh r0, [r1, 0x4]
|
|
strh r0, [r4, 0x30]
|
|
ldrh r0, [r1, 0x6]
|
|
strh r0, [r4, 0x32]
|
|
ldrh r0, [r4, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
b _080B0E78
|
|
.align 2, 0
|
|
_080B0E18: .4byte gUnknown_2037F02
|
|
_080B0E1C:
|
|
ldrh r0, [r4, 0x30]
|
|
ldrh r2, [r4, 0x36]
|
|
adds r0, r2
|
|
strh r0, [r4, 0x36]
|
|
lsls r0, 16
|
|
asrs r0, 24
|
|
strh r0, [r4, 0x24]
|
|
movs r1, 0x34
|
|
ldrsh r0, [r4, r1]
|
|
movs r2, 0x32
|
|
ldrsh r1, [r4, r2]
|
|
bl Sin
|
|
strh r0, [r4, 0x26]
|
|
ldrh r0, [r4, 0x34]
|
|
adds r0, 0x3
|
|
movs r1, 0xFF
|
|
ands r0, r1
|
|
strh r0, [r4, 0x34]
|
|
cmp r0, 0x64
|
|
ble _080B0E6A
|
|
movs r0, 0x34
|
|
ldrsh r1, [r4, r0]
|
|
lsrs r0, r1, 31
|
|
adds r0, r1, r0
|
|
asrs r0, 1
|
|
lsls r0, 1
|
|
subs r1, r0
|
|
adds r3, r4, 0
|
|
adds r3, 0x3E
|
|
movs r0, 0x1
|
|
ands r1, r0
|
|
lsls r1, 2
|
|
ldrb r2, [r3]
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r3]
|
|
_080B0E6A:
|
|
movs r1, 0x34
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x78
|
|
ble _080B0E78
|
|
adds r0, r4, 0
|
|
bl DestroyAnimSprite
|
|
_080B0E78:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80B0DF0
|
|
|
|
thumb_func_start sub_80B0E80
|
|
sub_80B0E80: @ 80B0E80
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
ldr r0, _080B0E94 @ =gUnknown_2037F02
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0
|
|
bne _080B0E9C
|
|
ldr r4, _080B0E98 @ =gUnknown_2037F1A
|
|
b _080B0E9E
|
|
.align 2, 0
|
|
_080B0E94: .4byte gUnknown_2037F02
|
|
_080B0E98: .4byte gUnknown_2037F1A
|
|
_080B0E9C:
|
|
ldr r4, _080B0EE4 @ =gUnknown_2037F1B
|
|
_080B0E9E:
|
|
ldrb r0, [r4]
|
|
movs r1, 0
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x20]
|
|
ldrb r0, [r4]
|
|
movs r1, 0x1
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x22]
|
|
ldr r1, _080B0EE8 @ =gUnknown_2037F02
|
|
ldrh r0, [r1, 0x2]
|
|
ldrh r2, [r5, 0x20]
|
|
adds r0, r2
|
|
movs r2, 0
|
|
strh r0, [r5, 0x20]
|
|
ldrh r0, [r1, 0x4]
|
|
ldrh r3, [r5, 0x22]
|
|
adds r0, r3
|
|
strh r0, [r5, 0x22]
|
|
strh r2, [r5, 0x2E]
|
|
ldrh r0, [r1, 0x6]
|
|
strh r0, [r5, 0x30]
|
|
ldrh r0, [r1, 0x8]
|
|
strh r0, [r5, 0x32]
|
|
strh r2, [r5, 0x34]
|
|
ldr r0, _080B0EEC @ =sub_80B0EF0
|
|
str r0, [r5, 0x1C]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B0EE4: .4byte gUnknown_2037F1B
|
|
_080B0EE8: .4byte gUnknown_2037F02
|
|
_080B0EEC: .4byte sub_80B0EF0
|
|
thumb_func_end sub_80B0E80
|
|
|
|
thumb_func_start sub_80B0EF0
|
|
sub_80B0EF0: @ 80B0EF0
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
movs r0, 0x2E
|
|
ldrsh r2, [r1, r0]
|
|
cmp r2, 0
|
|
beq _080B0F02
|
|
cmp r2, 0x1
|
|
beq _080B0F26
|
|
b _080B0F60
|
|
_080B0F02:
|
|
ldrh r0, [r1, 0x30]
|
|
subs r0, 0x1
|
|
strh r0, [r1, 0x30]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bne _080B0F60
|
|
movs r2, 0x32
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, 0
|
|
bne _080B0F1E
|
|
adds r0, r1, 0
|
|
bl DestroyAnimSprite
|
|
b _080B0F60
|
|
_080B0F1E:
|
|
ldrh r0, [r1, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x2E]
|
|
b _080B0F60
|
|
_080B0F26:
|
|
ldrh r0, [r1, 0x30]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x30]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1
|
|
ble _080B0F4E
|
|
movs r0, 0
|
|
strh r0, [r1, 0x30]
|
|
ldrh r0, [r1, 0x34]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x34]
|
|
ands r0, r2
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
beq _080B0F4A
|
|
movs r0, 0x2
|
|
b _080B0F4C
|
|
_080B0F4A:
|
|
ldr r0, _080B0F64 @ =0x0000fffe
|
|
_080B0F4C:
|
|
strh r0, [r1, 0x24]
|
|
_080B0F4E:
|
|
ldrh r0, [r1, 0x32]
|
|
subs r0, 0x1
|
|
strh r0, [r1, 0x32]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bne _080B0F60
|
|
adds r0, r1, 0
|
|
bl DestroyAnimSprite
|
|
_080B0F60:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B0F64: .4byte 0x0000fffe
|
|
thumb_func_end sub_80B0EF0
|
|
|
|
thumb_func_start sub_80B0F68
|
|
sub_80B0F68: @ 80B0F68
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
ldr r6, _080B0F8C @ =gUnknown_2037F02
|
|
movs r1, 0
|
|
ldrsh r0, [r6, r1]
|
|
cmp r0, 0
|
|
bne _080B0F94
|
|
ldr r4, _080B0F90 @ =gUnknown_2037F1A
|
|
ldrb r0, [r4]
|
|
movs r1, 0
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrh r2, [r6, 0x4]
|
|
adds r0, r2
|
|
b _080B0FA6
|
|
.align 2, 0
|
|
_080B0F8C: .4byte gUnknown_2037F02
|
|
_080B0F90: .4byte gUnknown_2037F1A
|
|
_080B0F94:
|
|
ldr r4, _080B0FF0 @ =gUnknown_2037F1B
|
|
ldrb r0, [r4]
|
|
movs r1, 0
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrh r1, [r6, 0x4]
|
|
adds r0, r1
|
|
_080B0FA6:
|
|
strh r0, [r5, 0x20]
|
|
ldrb r0, [r4]
|
|
movs r1, 0x1
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrh r6, [r6, 0x6]
|
|
adds r0, r6
|
|
strh r0, [r5, 0x22]
|
|
ldrh r2, [r5, 0x4]
|
|
lsls r1, r2, 22
|
|
lsrs r1, 22
|
|
ldr r3, _080B0FF4 @ =gUnknown_2037F02
|
|
movs r4, 0x2
|
|
ldrsh r0, [r3, r4]
|
|
lsls r0, 4
|
|
adds r1, r0
|
|
ldr r4, _080B0FF8 @ =0x000003ff
|
|
adds r0, r4, 0
|
|
ands r1, r0
|
|
ldr r0, _080B0FFC @ =0xfffffc00
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strh r0, [r5, 0x4]
|
|
movs r1, 0
|
|
movs r0, 0
|
|
strh r0, [r5, 0x2E]
|
|
movs r2, 0x2
|
|
ldrsh r0, [r3, r2]
|
|
cmp r0, 0x1
|
|
beq _080B1014
|
|
cmp r0, 0x1
|
|
bgt _080B1000
|
|
cmp r0, 0
|
|
beq _080B100A
|
|
b _080B103A
|
|
.align 2, 0
|
|
_080B0FF0: .4byte gUnknown_2037F1B
|
|
_080B0FF4: .4byte gUnknown_2037F02
|
|
_080B0FF8: .4byte 0x000003ff
|
|
_080B0FFC: .4byte 0xfffffc00
|
|
_080B1000:
|
|
cmp r0, 0x2
|
|
beq _080B1024
|
|
cmp r0, 0x3
|
|
beq _080B1034
|
|
b _080B103A
|
|
_080B100A:
|
|
ldr r0, _080B1010 @ =0x0000fffd
|
|
b _080B1034
|
|
.align 2, 0
|
|
_080B1010: .4byte 0x0000fffd
|
|
_080B1014:
|
|
movs r0, 0x3
|
|
strh r0, [r5, 0x3A]
|
|
ldr r0, _080B1020 @ =0x0000fffd
|
|
strh r0, [r5, 0x3C]
|
|
b _080B1042
|
|
.align 2, 0
|
|
_080B1020: .4byte 0x0000fffd
|
|
_080B1024:
|
|
ldr r0, _080B1030 @ =0x0000fffd
|
|
strh r0, [r5, 0x3A]
|
|
movs r0, 0x3
|
|
strh r0, [r5, 0x3C]
|
|
b _080B1042
|
|
.align 2, 0
|
|
_080B1030: .4byte 0x0000fffd
|
|
_080B1034:
|
|
strh r0, [r5, 0x3A]
|
|
strh r0, [r5, 0x3C]
|
|
b _080B1042
|
|
_080B103A:
|
|
adds r0, r5, 0
|
|
bl DestroyAnimSprite
|
|
b _080B1046
|
|
_080B1042:
|
|
ldr r0, _080B104C @ =sub_80B1050
|
|
str r0, [r5, 0x1C]
|
|
_080B1046:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B104C: .4byte sub_80B1050
|
|
thumb_func_end sub_80B0F68
|
|
|
|
thumb_func_start sub_80B1050
|
|
sub_80B1050: @ 80B1050
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
ldrh r0, [r1, 0x3A]
|
|
ldrh r2, [r1, 0x20]
|
|
adds r0, r2
|
|
strh r0, [r1, 0x20]
|
|
ldrh r0, [r1, 0x3C]
|
|
ldrh r2, [r1, 0x22]
|
|
adds r0, r2
|
|
strh r0, [r1, 0x22]
|
|
ldrh r0, [r1, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x2E]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x28
|
|
ble _080B1078
|
|
adds r0, r1, 0
|
|
bl DestroyAnimSprite
|
|
_080B1078:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80B1050
|
|
|
|
thumb_func_start sub_80B107C
|
|
sub_80B107C: @ 80B107C
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
ldr r0, _080B10C8 @ =gUnknown_2037F02
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0
|
|
bne _080B10D8
|
|
ldr r4, _080B10CC @ =sBattler_AI
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x20]
|
|
ldrb r0, [r4]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x22]
|
|
ldr r0, _080B10D0 @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl sub_8076884
|
|
movs r1, 0x3
|
|
ands r1, r0
|
|
lsls r1, 2
|
|
ldrb r2, [r5, 0x5]
|
|
movs r0, 0xD
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r5, 0x5]
|
|
ldr r0, _080B10D4 @ =gUnknown_2037F1B
|
|
b _080B10F4
|
|
.align 2, 0
|
|
_080B10C8: .4byte gUnknown_2037F02
|
|
_080B10CC: .4byte sBattler_AI
|
|
_080B10D0: .4byte gUnknown_2037F1A
|
|
_080B10D4: .4byte gUnknown_2037F1B
|
|
_080B10D8:
|
|
ldr r0, _080B1110 @ =gUnknown_2037F1B
|
|
ldrb r0, [r0]
|
|
bl sub_8076884
|
|
movs r1, 0x3
|
|
ands r1, r0
|
|
lsls r1, 2
|
|
ldrb r2, [r5, 0x5]
|
|
movs r0, 0xD
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r5, 0x5]
|
|
ldr r0, _080B1114 @ =gUnknown_2037F1A
|
|
_080B10F4:
|
|
ldrb r0, [r0]
|
|
strh r0, [r5, 0x3C]
|
|
movs r0, 0
|
|
strh r0, [r5, 0x2E]
|
|
movs r0, 0xC
|
|
strh r0, [r5, 0x30]
|
|
movs r0, 0x8
|
|
strh r0, [r5, 0x32]
|
|
ldr r0, _080B1118 @ =sub_80B111C
|
|
str r0, [r5, 0x1C]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B1110: .4byte gUnknown_2037F1B
|
|
_080B1114: .4byte gUnknown_2037F1A
|
|
_080B1118: .4byte sub_80B111C
|
|
thumb_func_end sub_80B107C
|
|
|
|
thumb_func_start sub_80B111C
|
|
sub_80B111C: @ 80B111C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrh r0, [r4, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0xB4
|
|
bne _080B1178
|
|
movs r0, 0x50
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x10
|
|
strh r0, [r4, 0x2E]
|
|
ldrh r0, [r4, 0x20]
|
|
strh r0, [r4, 0x30]
|
|
ldrh r0, [r4, 0x3C]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x32]
|
|
ldrh r0, [r4, 0x22]
|
|
strh r0, [r4, 0x34]
|
|
ldrh r0, [r4, 0x3C]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x36]
|
|
adds r0, r4, 0
|
|
bl obj_translate_based_on_private_1_2_3_4
|
|
ldr r1, _080B1180 @ =move_anim_8074EE0
|
|
adds r0, r4, 0
|
|
bl StoreSpriteCallbackInData6
|
|
ldr r0, _080B1184 @ =sub_807563C
|
|
str r0, [r4, 0x1C]
|
|
_080B1178:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B1180: .4byte move_anim_8074EE0
|
|
_080B1184: .4byte sub_807563C
|
|
thumb_func_end sub_80B111C
|
|
|
|
thumb_func_start sub_80B1188
|
|
sub_80B1188: @ 80B1188
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
ldr r4, _080B11D4 @ =gUnknown_2037F02
|
|
ldrh r0, [r4]
|
|
strh r0, [r5, 0x20]
|
|
movs r2, 0x78
|
|
strh r2, [r5, 0x22]
|
|
ldrh r0, [r4, 0x6]
|
|
strh r0, [r5, 0x2E]
|
|
adds r0, r5, 0
|
|
adds r0, 0x36
|
|
adds r1, r5, 0
|
|
adds r1, 0x38
|
|
lsls r2, 8
|
|
bl sub_80765C0
|
|
ldrh r0, [r4, 0x2]
|
|
strh r0, [r5, 0x3A]
|
|
ldrh r2, [r5, 0x4]
|
|
lsls r1, r2, 22
|
|
lsrs r1, 22
|
|
movs r3, 0x4
|
|
ldrsh r0, [r4, r3]
|
|
lsls r0, 2
|
|
adds r1, r0
|
|
ldr r3, _080B11D8 @ =0x000003ff
|
|
adds r0, r3, 0
|
|
ands r1, r0
|
|
ldr r0, _080B11DC @ =0xfffffc00
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strh r0, [r5, 0x4]
|
|
ldr r0, _080B11E0 @ =sub_80B11E4
|
|
str r0, [r5, 0x1C]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B11D4: .4byte gUnknown_2037F02
|
|
_080B11D8: .4byte 0x000003ff
|
|
_080B11DC: .4byte 0xfffffc00
|
|
_080B11E0: .4byte sub_80B11E4
|
|
thumb_func_end sub_80B1188
|
|
|
|
thumb_func_start sub_80B11E4
|
|
sub_80B11E4: @ 80B11E4
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
adds r7, r0, 0
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r7, r1]
|
|
cmp r0, 0
|
|
beq _080B1236
|
|
movs r2, 0x36
|
|
ldrsh r0, [r7, r2]
|
|
movs r2, 0x38
|
|
ldrsh r1, [r7, r2]
|
|
bl sub_80765C8
|
|
adds r4, r0, 0
|
|
movs r1, 0x3A
|
|
ldrsh r0, [r7, r1]
|
|
subs r4, r0
|
|
adds r0, r7, 0
|
|
adds r0, 0x36
|
|
adds r1, r7, 0
|
|
adds r1, 0x38
|
|
adds r2, r4, 0
|
|
bl sub_80765C0
|
|
asrs r4, 8
|
|
strh r4, [r7, 0x22]
|
|
lsls r4, 16
|
|
asrs r4, 16
|
|
movs r0, 0x8
|
|
negs r0, r0
|
|
cmp r4, r0
|
|
bge _080B122E
|
|
adds r0, r7, 0
|
|
bl DestroyAnimSprite
|
|
b _080B128C
|
|
_080B122E:
|
|
ldrh r0, [r7, 0x2E]
|
|
subs r0, 0x1
|
|
strh r0, [r7, 0x2E]
|
|
b _080B128C
|
|
_080B1236:
|
|
ldr r4, _080B1298 @ =gUnknown_2037F1A
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
adds r6, r0, 0
|
|
lsls r6, 24
|
|
lsrs r6, 24
|
|
ldrb r0, [r4]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
adds r5, r0, 0
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
ldr r2, _080B129C @ =gUnknown_2037F1B
|
|
mov r8, r2
|
|
ldrb r0, [r2]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
mov r1, r8
|
|
ldrb r0, [r1]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
subs r4, r6
|
|
strh r4, [r7, 0x2E]
|
|
lsrs r0, 24
|
|
subs r0, r5
|
|
strh r0, [r7, 0x30]
|
|
ldrh r0, [r7, 0x20]
|
|
lsls r0, 4
|
|
strh r0, [r7, 0x32]
|
|
ldrh r0, [r7, 0x22]
|
|
lsls r0, 4
|
|
strh r0, [r7, 0x34]
|
|
ldr r0, _080B12A0 @ =sub_80B12A4
|
|
str r0, [r7, 0x1C]
|
|
_080B128C:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B1298: .4byte gUnknown_2037F1A
|
|
_080B129C: .4byte gUnknown_2037F1B
|
|
_080B12A0: .4byte sub_80B12A4
|
|
thumb_func_end sub_80B11E4
|
|
|
|
thumb_func_start sub_80B12A4
|
|
sub_80B12A4: @ 80B12A4
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
ldrh r0, [r2, 0x2E]
|
|
ldrh r1, [r2, 0x32]
|
|
adds r0, r1
|
|
strh r0, [r2, 0x32]
|
|
ldrh r1, [r2, 0x30]
|
|
ldrh r3, [r2, 0x34]
|
|
adds r1, r3
|
|
strh r1, [r2, 0x34]
|
|
lsls r0, 16
|
|
asrs r0, 20
|
|
strh r0, [r2, 0x20]
|
|
lsls r1, 16
|
|
asrs r3, r1, 20
|
|
strh r3, [r2, 0x22]
|
|
adds r0, 0x8
|
|
lsls r0, 16
|
|
movs r1, 0x80
|
|
lsls r1, 17
|
|
cmp r0, r1
|
|
bhi _080B12DE
|
|
adds r1, r3, 0
|
|
movs r0, 0x8
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
blt _080B12DE
|
|
cmp r1, 0x78
|
|
ble _080B12E4
|
|
_080B12DE:
|
|
adds r0, r2, 0
|
|
bl DestroyAnimSprite
|
|
_080B12E4:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80B12A4
|
|
|
|
thumb_func_start sub_80B12E8
|
|
sub_80B12E8: @ 80B12E8
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
ldr r0, _080B131C @ =gUnknown_2037F02
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0
|
|
bne _080B132C
|
|
ldr r4, _080B1320 @ =sBattler_AI
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x20]
|
|
ldrb r0, [r4]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x22]
|
|
ldr r0, _080B1324 @ =gUnknown_2037F1B
|
|
ldrb r4, [r0]
|
|
ldr r0, _080B1328 @ =gUnknown_2037F1A
|
|
b _080B1332
|
|
.align 2, 0
|
|
_080B131C: .4byte gUnknown_2037F02
|
|
_080B1320: .4byte sBattler_AI
|
|
_080B1324: .4byte gUnknown_2037F1B
|
|
_080B1328: .4byte gUnknown_2037F1A
|
|
_080B132C:
|
|
ldr r0, _080B1364 @ =gUnknown_2037F1A
|
|
ldrb r4, [r0]
|
|
ldr r0, _080B1368 @ =gUnknown_2037F1B
|
|
_080B1332:
|
|
ldrb r0, [r0]
|
|
bl sub_8076884
|
|
movs r1, 0x3
|
|
ands r1, r0
|
|
lsls r1, 2
|
|
ldrb r2, [r5, 0x5]
|
|
movs r0, 0xD
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r5, 0x5]
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080B136C
|
|
ldrb r2, [r5, 0x3]
|
|
lsls r1, r2, 26
|
|
lsrs r1, 27
|
|
movs r0, 0x8
|
|
orrs r1, r0
|
|
lsls r1, 1
|
|
subs r0, 0x47
|
|
b _080B1386
|
|
.align 2, 0
|
|
_080B1364: .4byte gUnknown_2037F1A
|
|
_080B1368: .4byte gUnknown_2037F1B
|
|
_080B136C:
|
|
adds r0, r4, 0
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080B138C
|
|
ldrb r2, [r5, 0x3]
|
|
lsls r1, r2, 26
|
|
lsrs r1, 27
|
|
movs r0, 0x18
|
|
orrs r1, r0
|
|
lsls r1, 1
|
|
subs r0, 0x57
|
|
_080B1386:
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r5, 0x3]
|
|
_080B138C:
|
|
movs r0, 0x10
|
|
strh r0, [r5, 0x2E]
|
|
ldrh r0, [r5, 0x20]
|
|
strh r0, [r5, 0x30]
|
|
adds r0, r4, 0
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x32]
|
|
ldrh r0, [r5, 0x22]
|
|
strh r0, [r5, 0x34]
|
|
adds r0, r4, 0
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x36]
|
|
adds r0, r5, 0
|
|
bl obj_translate_based_on_private_1_2_3_4
|
|
ldr r1, _080B13CC @ =DestroyAnimSprite
|
|
adds r0, r5, 0
|
|
bl StoreSpriteCallbackInData6
|
|
ldr r0, _080B13D0 @ =sub_807563C
|
|
str r0, [r5, 0x1C]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B13CC: .4byte DestroyAnimSprite
|
|
_080B13D0: .4byte sub_807563C
|
|
thumb_func_end sub_80B12E8
|
|
|
|
thumb_func_start sub_80B13D4
|
|
sub_80B13D4: @ 80B13D4
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x2E
|
|
ldrsh r1, [r4, r0]
|
|
movs r2, 0x36
|
|
ldrsh r0, [r4, r2]
|
|
cmp r1, r0
|
|
bne _080B13EA
|
|
adds r0, r4, 0
|
|
bl DestroyAnimSprite
|
|
_080B13EA:
|
|
ldrh r0, [r4, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80B13D4
|
|
|
|
thumb_func_start sub_80B13F8
|
|
sub_80B13F8: @ 80B13F8
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
ldr r4, _080B1474 @ =gUnknown_2037F1B
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x20]
|
|
ldrb r0, [r4]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x22]
|
|
ldr r1, _080B1478 @ =gUnknown_2037F02
|
|
ldrh r0, [r1, 0x6]
|
|
strh r0, [r5, 0x30]
|
|
ldrh r0, [r1]
|
|
strh r0, [r5, 0x32]
|
|
ldrh r0, [r1, 0x2]
|
|
strh r0, [r5, 0x34]
|
|
ldrh r0, [r1, 0x4]
|
|
strh r0, [r5, 0x36]
|
|
ldr r0, _080B147C @ =gUnknown_2037F16
|
|
ldrb r6, [r0]
|
|
ldrb r0, [r4]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080B1442
|
|
adds r0, r6, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
_080B1442:
|
|
movs r0, 0x1
|
|
ands r6, r0
|
|
cmp r6, 0
|
|
beq _080B1456
|
|
ldrh r0, [r5, 0x32]
|
|
negs r0, r0
|
|
strh r0, [r5, 0x32]
|
|
ldrh r0, [r5, 0x30]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x30]
|
|
_080B1456:
|
|
ldrh r1, [r5, 0x30]
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r5, 0
|
|
bl StartSpriteAnim
|
|
ldrh r0, [r5, 0x32]
|
|
strh r0, [r5, 0x24]
|
|
ldrh r0, [r5, 0x34]
|
|
strh r0, [r5, 0x26]
|
|
ldr r0, _080B1480 @ =sub_80B13D4
|
|
str r0, [r5, 0x1C]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B1474: .4byte gUnknown_2037F1B
|
|
_080B1478: .4byte gUnknown_2037F02
|
|
_080B147C: .4byte gUnknown_2037F16
|
|
_080B1480: .4byte sub_80B13D4
|
|
thumb_func_end sub_80B13F8
|
|
|
|
thumb_func_start sub_80B1484
|
|
sub_80B1484: @ 80B1484
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldr r0, _080B149C @ =gUnknown_2037F02
|
|
movs r1, 0x4
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0
|
|
bne _080B14A0
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl sub_8075160
|
|
b _080B14A8
|
|
.align 2, 0
|
|
_080B149C: .4byte gUnknown_2037F02
|
|
_080B14A0:
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl sub_8075114
|
|
_080B14A8:
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080B14BC
|
|
adds r0, r4, 0
|
|
movs r1, 0x2
|
|
bl StartSpriteAnim
|
|
b _080B14D2
|
|
_080B14BC:
|
|
ldr r0, _080B14E4 @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080B14D2
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl StartSpriteAnim
|
|
_080B14D2:
|
|
ldr r0, _080B14E8 @ =sub_8074F6C
|
|
str r0, [r4, 0x1C]
|
|
ldr r1, _080B14EC @ =DestroyAnimSprite
|
|
adds r0, r4, 0
|
|
bl StoreSpriteCallbackInData6
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B14E4: .4byte gUnknown_2037F1A
|
|
_080B14E8: .4byte sub_8074F6C
|
|
_080B14EC: .4byte DestroyAnimSprite
|
|
thumb_func_end sub_80B1484
|
|
|
|
thumb_func_start sub_80B14F0
|
|
sub_80B14F0: @ 80B14F0
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
adds r0, 0x3F
|
|
ldrb r1, [r0]
|
|
movs r0, 0x20
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080B152A
|
|
ldrh r0, [r4, 0x30]
|
|
adds r0, 0x28
|
|
movs r1, 0xFF
|
|
ands r0, r1
|
|
strh r0, [r4, 0x30]
|
|
movs r1, 0x30
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0x2
|
|
bl Sin
|
|
strh r0, [r4, 0x24]
|
|
ldrh r0, [r4, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x28
|
|
ble _080B152A
|
|
adds r0, r4, 0
|
|
bl DestroyAnimSprite
|
|
_080B152A:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80B14F0
|
|
|
|
thumb_func_start sub_80B1530
|
|
sub_80B1530: @ 80B1530
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
lsls r0, r6, 2
|
|
adds r0, r6
|
|
lsls r0, 3
|
|
ldr r1, _080B1560 @ =gTasks
|
|
adds r4, r0, r1
|
|
movs r1, 0x8
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x1
|
|
beq _080B1568
|
|
cmp r0, 0x1
|
|
bgt _080B1582
|
|
cmp r0, 0
|
|
bne _080B1582
|
|
movs r0, 0
|
|
bl sub_8075458
|
|
ldr r0, _080B1564 @ =gUnknown_2037F02
|
|
ldrh r0, [r0]
|
|
strh r0, [r4, 0x18]
|
|
b _080B157A
|
|
.align 2, 0
|
|
_080B1560: .4byte gTasks
|
|
_080B1564: .4byte gUnknown_2037F02
|
|
_080B1568:
|
|
ldrh r0, [r4, 0x18]
|
|
subs r0, 0x1
|
|
strh r0, [r4, 0x18]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
cmp r0, r1
|
|
bne _080B158E
|
|
_080B157A:
|
|
ldrh r0, [r4, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x8]
|
|
b _080B158E
|
|
_080B1582:
|
|
movs r2, 0xA0
|
|
lsls r2, 3
|
|
adds r0, r2, 0
|
|
ldrh r1, [r4, 0x1A]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x1A]
|
|
_080B158E:
|
|
movs r2, 0xB0
|
|
lsls r2, 4
|
|
adds r0, r2, 0
|
|
ldrh r1, [r4, 0x1C]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x1C]
|
|
ldr r0, _080B15BC @ =gUnknown_2037F1B
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080B15C4
|
|
ldr r1, _080B15C0 @ =gUnknown_2022980
|
|
ldrh r0, [r4, 0x1A]
|
|
lsls r0, 16
|
|
asrs r0, 24
|
|
ldrh r2, [r1]
|
|
adds r0, r2
|
|
strh r0, [r1]
|
|
adds r7, r1, 0
|
|
b _080B15D4
|
|
.align 2, 0
|
|
_080B15BC: .4byte gUnknown_2037F1B
|
|
_080B15C0: .4byte gUnknown_2022980
|
|
_080B15C4:
|
|
ldr r2, _080B1614 @ =gUnknown_2022980
|
|
ldrh r1, [r4, 0x1A]
|
|
lsls r1, 16
|
|
asrs r1, 24
|
|
ldrh r0, [r2]
|
|
subs r0, r1
|
|
strh r0, [r2]
|
|
adds r7, r2, 0
|
|
_080B15D4:
|
|
ldr r3, _080B1618 @ =gUnknown_2022982
|
|
ldrh r2, [r4, 0x1C]
|
|
lsls r0, r2, 16
|
|
asrs r0, 24
|
|
ldrh r1, [r3]
|
|
adds r0, r1
|
|
strh r0, [r3]
|
|
movs r0, 0xFF
|
|
ldrb r1, [r4, 0x1A]
|
|
movs r5, 0
|
|
strh r1, [r4, 0x1A]
|
|
ands r0, r2
|
|
strh r0, [r4, 0x1C]
|
|
ldr r0, _080B161C @ =gUnknown_2037F02
|
|
movs r2, 0xE
|
|
ldrsh r1, [r0, r2]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
bne _080B160C
|
|
strh r5, [r7]
|
|
strh r5, [r3]
|
|
movs r0, 0x1
|
|
bl sub_8075458
|
|
adds r0, r6, 0
|
|
bl DestroyAnimVisualTask
|
|
_080B160C:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B1614: .4byte gUnknown_2022980
|
|
_080B1618: .4byte gUnknown_2022982
|
|
_080B161C: .4byte gUnknown_2037F02
|
|
thumb_func_end sub_80B1530
|
|
|
|
thumb_func_start sub_80B1620
|
|
sub_80B1620: @ 80B1620
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
ldr r4, _080B1674 @ =gUnknown_2037F02
|
|
movs r1, 0x6
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bne _080B1636
|
|
adds r0, r5, 0
|
|
movs r1, 0x2
|
|
bl StartSpriteAnim
|
|
_080B1636:
|
|
adds r0, r5, 0
|
|
movs r1, 0x1
|
|
bl sub_8075160
|
|
ldrh r0, [r4, 0x4]
|
|
strh r0, [r5, 0x2E]
|
|
ldr r4, _080B1678 @ =gUnknown_2037F1B
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x32]
|
|
ldrb r0, [r4]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x36]
|
|
ldr r0, _080B167C @ =0x0000ffe2
|
|
strh r0, [r5, 0x38]
|
|
adds r0, r5, 0
|
|
bl sub_8075068
|
|
ldr r0, _080B1680 @ =sub_80B1684
|
|
str r0, [r5, 0x1C]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B1674: .4byte gUnknown_2037F02
|
|
_080B1678: .4byte gUnknown_2037F1B
|
|
_080B167C: .4byte 0x0000ffe2
|
|
_080B1680: .4byte sub_80B1684
|
|
thumb_func_end sub_80B1620
|
|
|
|
thumb_func_start sub_80B1684
|
|
sub_80B1684: @ 80B1684
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl AnimateBallThrow
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080B1698
|
|
adds r0, r4, 0
|
|
bl DestroyAnimSprite
|
|
_080B1698:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80B1684
|
|
|
|
thumb_func_start sub_80B16A0
|
|
sub_80B16A0: @ 80B16A0
|
|
push {r4-r6,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
ldr r5, _080B1714 @ =gUnknown_2037F02
|
|
movs r1, 0x6
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0
|
|
bne _080B16B8
|
|
adds r0, r4, 0
|
|
movs r1, 0x2
|
|
bl StartSpriteAnim
|
|
_080B16B8:
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl sub_8075160
|
|
ldr r0, _080B1718 @ =gUnknown_2037F1B
|
|
ldrb r0, [r0]
|
|
mov r6, sp
|
|
adds r6, 0x2
|
|
movs r1, 0x1
|
|
mov r2, sp
|
|
adds r3, r6, 0
|
|
bl sub_8076D9C
|
|
ldr r0, _080B171C @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080B16E6
|
|
ldrh r0, [r5, 0x8]
|
|
negs r0, r0
|
|
strh r0, [r5, 0x8]
|
|
_080B16E6:
|
|
ldrh r0, [r5, 0x4]
|
|
strh r0, [r4, 0x2E]
|
|
mov r1, sp
|
|
ldrh r0, [r5, 0x8]
|
|
ldrh r1, [r1]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x32]
|
|
ldrh r0, [r5, 0xA]
|
|
ldrh r6, [r6]
|
|
adds r0, r6
|
|
strh r0, [r4, 0x36]
|
|
ldr r0, _080B1720 @ =0x0000ffe2
|
|
strh r0, [r4, 0x38]
|
|
adds r0, r4, 0
|
|
bl sub_8075068
|
|
ldr r0, _080B1724 @ =sub_80B1728
|
|
str r0, [r4, 0x1C]
|
|
add sp, 0x4
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B1714: .4byte gUnknown_2037F02
|
|
_080B1718: .4byte gUnknown_2037F1B
|
|
_080B171C: .4byte gUnknown_2037F1A
|
|
_080B1720: .4byte 0x0000ffe2
|
|
_080B1724: .4byte sub_80B1728
|
|
thumb_func_end sub_80B16A0
|
|
|
|
thumb_func_start sub_80B1728
|
|
sub_80B1728: @ 80B1728
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl AnimateBallThrow
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080B173C
|
|
adds r0, r4, 0
|
|
bl DestroyAnimSprite
|
|
_080B173C:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80B1728
|
|
|
|
thumb_func_start sub_80B1744
|
|
sub_80B1744: @ 80B1744
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
ldr r5, _080B1790 @ =gUnknown_2037F02
|
|
ldrh r0, [r5, 0x4]
|
|
strh r0, [r4, 0x2E]
|
|
ldrh r0, [r4, 0x20]
|
|
strh r0, [r4, 0x30]
|
|
ldrh r1, [r5]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x32]
|
|
ldrh r0, [r4, 0x22]
|
|
strh r0, [r4, 0x34]
|
|
ldrh r1, [r5, 0x2]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x36]
|
|
adds r0, r4, 0
|
|
bl sub_80754B8
|
|
movs r1, 0x30
|
|
ldrsh r0, [r4, r1]
|
|
movs r2, 0x4
|
|
ldrsh r1, [r5, r2]
|
|
bl __divsi3
|
|
strh r0, [r4, 0x38]
|
|
movs r1, 0x32
|
|
ldrsh r0, [r4, r1]
|
|
movs r2, 0x4
|
|
ldrsh r1, [r5, r2]
|
|
bl __divsi3
|
|
strh r0, [r4, 0x3A]
|
|
ldr r0, _080B1794 @ =sub_80B1798
|
|
str r0, [r4, 0x1C]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B1790: .4byte gUnknown_2037F02
|
|
_080B1794: .4byte sub_80B1798
|
|
thumb_func_end sub_80B1744
|
|
|
|
thumb_func_start sub_80B1798
|
|
sub_80B1798: @ 80B1798
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_8074D00
|
|
ldrh r0, [r4, 0x30]
|
|
ldrh r1, [r4, 0x38]
|
|
subs r0, r1
|
|
strh r0, [r4, 0x30]
|
|
ldrh r0, [r4, 0x32]
|
|
ldrh r1, [r4, 0x3A]
|
|
subs r0, r1
|
|
strh r0, [r4, 0x32]
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bne _080B17BE
|
|
adds r0, r4, 0
|
|
bl DestroyAnimSprite
|
|
_080B17BE:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80B1798
|
|
|
|
thumb_func_start sub_80B17C4
|
|
sub_80B17C4: @ 80B17C4
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldr r0, _080B1824 @ =gUnknown_2037F1B
|
|
ldrb r0, [r0]
|
|
adds r2, r4, 0
|
|
adds r2, 0x20
|
|
adds r3, r4, 0
|
|
adds r3, 0x22
|
|
movs r1, 0x1
|
|
bl sub_8076D9C
|
|
ldr r0, _080B1828 @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080B17F0
|
|
ldr r1, _080B182C @ =gUnknown_2037F02
|
|
ldrh r0, [r1]
|
|
negs r0, r0
|
|
strh r0, [r1]
|
|
_080B17F0:
|
|
ldr r0, _080B182C @ =gUnknown_2037F02
|
|
ldrh r2, [r0]
|
|
ldrh r1, [r4, 0x20]
|
|
adds r2, r1
|
|
strh r2, [r4, 0x20]
|
|
ldrh r1, [r0, 0x2]
|
|
ldrh r3, [r4, 0x22]
|
|
adds r1, r3
|
|
strh r1, [r4, 0x22]
|
|
ldrh r3, [r0, 0x8]
|
|
strh r3, [r4, 0x2E]
|
|
ldrh r0, [r0, 0x4]
|
|
adds r2, r0
|
|
strh r2, [r4, 0x32]
|
|
adds r1, r3
|
|
strh r1, [r4, 0x36]
|
|
ldr r0, _080B1830 @ =sub_8075590
|
|
str r0, [r4, 0x1C]
|
|
ldr r1, _080B1834 @ =DestroyAnimSprite
|
|
adds r0, r4, 0
|
|
bl StoreSpriteCallbackInData6
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B1824: .4byte gUnknown_2037F1B
|
|
_080B1828: .4byte gUnknown_2037F1A
|
|
_080B182C: .4byte gUnknown_2037F02
|
|
_080B1830: .4byte sub_8075590
|
|
_080B1834: .4byte DestroyAnimSprite
|
|
thumb_func_end sub_80B17C4
|
|
|
|
thumb_func_start sub_80B1838
|
|
sub_80B1838: @ 80B1838
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
ldr r5, _080B1850 @ =gUnknown_2037F02
|
|
movs r1, 0x4
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0
|
|
bne _080B1854
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl sub_8075114
|
|
b _080B188A
|
|
.align 2, 0
|
|
_080B1850: .4byte gUnknown_2037F02
|
|
_080B1854:
|
|
ldr r0, _080B1894 @ =gUnknown_2037F1B
|
|
ldrb r0, [r0]
|
|
adds r2, r4, 0
|
|
adds r2, 0x20
|
|
adds r3, r4, 0
|
|
adds r3, 0x22
|
|
movs r1, 0x1
|
|
bl sub_8076D9C
|
|
ldr r0, _080B1898 @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080B187A
|
|
ldrh r0, [r5]
|
|
negs r0, r0
|
|
strh r0, [r5]
|
|
_080B187A:
|
|
ldrh r0, [r5]
|
|
ldrh r1, [r4, 0x20]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x20]
|
|
ldrh r0, [r5, 0x2]
|
|
ldrh r1, [r4, 0x22]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x22]
|
|
_080B188A:
|
|
ldr r0, _080B189C @ =sub_80B18A0
|
|
str r0, [r4, 0x1C]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B1894: .4byte gUnknown_2037F1B
|
|
_080B1898: .4byte gUnknown_2037F1A
|
|
_080B189C: .4byte sub_80B18A0
|
|
thumb_func_end sub_80B1838
|
|
|
|
thumb_func_start sub_80B18A0
|
|
sub_80B18A0: @ 80B18A0
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrh r0, [r4, 0x2E]
|
|
adds r0, 0xB
|
|
movs r1, 0xFF
|
|
ands r0, r1
|
|
strh r0, [r4, 0x2E]
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0x4
|
|
bl Sin
|
|
strh r0, [r4, 0x24]
|
|
ldrh r0, [r4, 0x30]
|
|
adds r0, 0x30
|
|
strh r0, [r4, 0x30]
|
|
lsls r0, 16
|
|
asrs r0, 24
|
|
negs r0, r0
|
|
strh r0, [r4, 0x26]
|
|
adds r0, r4, 0
|
|
adds r0, 0x3F
|
|
ldrb r1, [r0]
|
|
movs r0, 0x20
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080B18DC
|
|
adds r0, r4, 0
|
|
bl DestroyAnimSprite
|
|
_080B18DC:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80B18A0
|
|
|
|
thumb_func_start sub_80B18E4
|
|
sub_80B18E4: @ 80B18E4
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0
|
|
bl sub_8075114
|
|
ldrh r0, [r4, 0x22]
|
|
adds r0, 0x14
|
|
strh r0, [r4, 0x22]
|
|
movs r0, 0xBF
|
|
strh r0, [r4, 0x30]
|
|
ldr r1, _080B1908 @ =sub_80B190C
|
|
str r1, [r4, 0x1C]
|
|
adds r0, r4, 0
|
|
bl _call_via_r1
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B1908: .4byte sub_80B190C
|
|
thumb_func_end sub_80B18E4
|
|
|
|
thumb_func_start sub_80B190C
|
|
sub_80B190C: @ 80B190C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x30
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0x20
|
|
bl Sin
|
|
strh r0, [r4, 0x24]
|
|
movs r1, 0x30
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0x8
|
|
bl Cos
|
|
strh r0, [r4, 0x26]
|
|
ldrh r0, [r4, 0x30]
|
|
adds r0, 0x5
|
|
movs r1, 0xFF
|
|
ands r0, r1
|
|
strh r0, [r4, 0x30]
|
|
ldrh r0, [r4, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x47
|
|
bne _080B1946
|
|
adds r0, r4, 0
|
|
bl DestroyAnimSprite
|
|
_080B1946:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80B190C
|
|
|
|
thumb_func_start sub_80B194C
|
|
sub_80B194C: @ 80B194C
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _080B197C @ =gTasks
|
|
lsls r4, r0, 2
|
|
adds r4, r0
|
|
lsls r4, 3
|
|
adds r4, r1
|
|
ldr r1, _080B1980 @ =gUnknown_2037F02
|
|
ldrh r0, [r1, 0x2]
|
|
strh r0, [r4, 0x8]
|
|
ldrh r0, [r1]
|
|
strh r0, [r4, 0xA]
|
|
ldr r0, _080B1984 @ =0x00002719
|
|
bl IndexOfSpritePaletteTag
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0xC]
|
|
ldr r0, _080B1988 @ =sub_80B198C
|
|
str r0, [r4]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B197C: .4byte gTasks
|
|
_080B1980: .4byte gUnknown_2037F02
|
|
_080B1984: .4byte 0x00002719
|
|
_080B1988: .4byte sub_80B198C
|
|
thumb_func_end sub_80B194C
|
|
|
|
thumb_func_start sub_80B198C
|
|
sub_80B198C: @ 80B198C
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r2, _080B1A0C @ =gTasks
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
adds r3, r0, r2
|
|
ldrh r0, [r3, 0x1C]
|
|
adds r1, r0, 0x1
|
|
strh r1, [r3, 0x1C]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r4, 0xA
|
|
ldrsh r1, [r3, r4]
|
|
adds r7, r2, 0
|
|
cmp r0, r1
|
|
bne _080B19EA
|
|
movs r0, 0
|
|
strh r0, [r3, 0x1C]
|
|
ldrb r0, [r3, 0xC]
|
|
ldr r2, _080B1A10 @ =gPlttBufferFaded
|
|
lsls r0, 4
|
|
movs r3, 0x84
|
|
lsls r3, 1
|
|
adds r1, r0, r3
|
|
lsls r1, 1
|
|
adds r1, r2
|
|
ldrh r6, [r1]
|
|
movs r4, 0x7
|
|
mov r12, r0
|
|
ldr r0, _080B1A14 @ =0x00000107
|
|
add r0, r12
|
|
lsls r0, 1
|
|
adds r3, r0, r2
|
|
_080B19D2:
|
|
ldrh r0, [r3]
|
|
strh r0, [r1]
|
|
subs r3, 0x2
|
|
subs r1, 0x2
|
|
subs r4, 0x1
|
|
cmp r4, 0
|
|
bgt _080B19D2
|
|
ldr r0, _080B1A18 @ =0x00000101
|
|
add r0, r12
|
|
lsls r0, 1
|
|
adds r0, r2
|
|
strh r6, [r0]
|
|
_080B19EA:
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
adds r0, r7
|
|
ldrh r1, [r0, 0x8]
|
|
subs r1, 0x1
|
|
strh r1, [r0, 0x8]
|
|
lsls r1, 16
|
|
cmp r1, 0
|
|
bne _080B1A04
|
|
adds r0, r5, 0
|
|
bl DestroyAnimVisualTask
|
|
_080B1A04:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B1A0C: .4byte gTasks
|
|
_080B1A10: .4byte gPlttBufferFaded
|
|
_080B1A14: .4byte 0x00000107
|
|
_080B1A18: .4byte 0x00000101
|
|
thumb_func_end sub_80B198C
|
|
|
|
thumb_func_start sub_80B1A1C
|
|
sub_80B1A1C: @ 80B1A1C
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
movs r1, 0x1
|
|
bl sub_8075160
|
|
ldr r0, _080B1A88 @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080B1A3C
|
|
ldr r1, _080B1A8C @ =gUnknown_2037F02
|
|
ldrh r0, [r1, 0x4]
|
|
negs r0, r0
|
|
strh r0, [r1, 0x4]
|
|
_080B1A3C:
|
|
ldr r4, _080B1A8C @ =gUnknown_2037F02
|
|
ldrh r0, [r4, 0x8]
|
|
strh r0, [r6, 0x2E]
|
|
ldrh r0, [r6, 0x20]
|
|
strh r0, [r6, 0x30]
|
|
ldr r5, _080B1A90 @ =gUnknown_2037F1B
|
|
ldrb r0, [r5]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrh r1, [r4, 0x4]
|
|
adds r0, r1
|
|
strh r0, [r6, 0x32]
|
|
ldrh r0, [r6, 0x22]
|
|
strh r0, [r6, 0x34]
|
|
ldrb r0, [r5]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrh r4, [r4, 0x6]
|
|
adds r0, r4
|
|
strh r0, [r6, 0x36]
|
|
adds r0, r6, 0
|
|
bl obj_translate_based_on_private_1_2_3_4
|
|
ldr r0, _080B1A94 @ =sub_8074F50
|
|
str r0, [r6, 0x1C]
|
|
ldr r1, _080B1A98 @ =sub_80B1A9C
|
|
adds r0, r6, 0
|
|
bl StoreSpriteCallbackInData6
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B1A88: .4byte gUnknown_2037F1A
|
|
_080B1A8C: .4byte gUnknown_2037F02
|
|
_080B1A90: .4byte gUnknown_2037F1B
|
|
_080B1A94: .4byte sub_8074F50
|
|
_080B1A98: .4byte sub_80B1A9C
|
|
thumb_func_end sub_80B1A1C
|
|
|
|
thumb_func_start sub_80B1A9C
|
|
sub_80B1A9C: @ 80B1A9C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_80755E0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080B1AB0
|
|
adds r0, r4, 0
|
|
bl DestroyAnimSprite
|
|
_080B1AB0:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80B1A9C
|
|
|
|
thumb_func_start sub_80B1AB8
|
|
sub_80B1AB8: @ 80B1AB8
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
ldr r4, _080B1B54 @ =gUnknown_2037F1A
|
|
ldrb r0, [r4]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080B1AE4
|
|
ldr r1, _080B1B58 @ =gUnknown_2037F02
|
|
ldrh r0, [r1]
|
|
negs r0, r0
|
|
strh r0, [r1]
|
|
ldrh r0, [r1, 0x2]
|
|
negs r0, r0
|
|
strh r0, [r1, 0x2]
|
|
ldrh r0, [r1, 0x4]
|
|
negs r0, r0
|
|
strh r0, [r1, 0x4]
|
|
ldrh r0, [r1, 0x6]
|
|
negs r0, r0
|
|
strh r0, [r1, 0x6]
|
|
_080B1AE4:
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080B1AFC
|
|
ldr r0, _080B1B58 @ =gUnknown_2037F02
|
|
ldrh r1, [r0, 0x2]
|
|
negs r1, r1
|
|
strh r1, [r0, 0x2]
|
|
ldrh r1, [r0, 0x6]
|
|
negs r1, r1
|
|
strh r1, [r0, 0x6]
|
|
_080B1AFC:
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x20]
|
|
ldrb r0, [r4]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
ldr r2, _080B1B58 @ =gUnknown_2037F02
|
|
ldrh r1, [r2]
|
|
ldrh r3, [r5, 0x20]
|
|
adds r1, r3
|
|
strh r1, [r5, 0x20]
|
|
lsrs r0, 24
|
|
ldrh r1, [r2, 0x2]
|
|
adds r0, r1
|
|
strh r0, [r5, 0x22]
|
|
ldrh r0, [r2, 0x8]
|
|
strh r0, [r5, 0x2E]
|
|
movs r3, 0xC
|
|
ldrsh r0, [r2, r3]
|
|
cmp r0, 0
|
|
bne _080B1B60
|
|
ldr r4, _080B1B5C @ =gUnknown_2037F1B
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x32]
|
|
ldrb r0, [r4]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x36]
|
|
b _080B1B72
|
|
.align 2, 0
|
|
_080B1B54: .4byte gUnknown_2037F1A
|
|
_080B1B58: .4byte gUnknown_2037F02
|
|
_080B1B5C: .4byte gUnknown_2037F1B
|
|
_080B1B60:
|
|
ldr r0, _080B1BA0 @ =gUnknown_2037F1B
|
|
ldrb r0, [r0]
|
|
adds r2, r5, 0
|
|
adds r2, 0x32
|
|
adds r3, r5, 0
|
|
adds r3, 0x36
|
|
movs r1, 0x1
|
|
bl sub_8076D9C
|
|
_080B1B72:
|
|
ldr r4, _080B1BA4 @ =gUnknown_2037F02
|
|
ldrh r0, [r4, 0x4]
|
|
ldrh r1, [r5, 0x32]
|
|
adds r0, r1
|
|
strh r0, [r5, 0x32]
|
|
ldrh r0, [r4, 0x6]
|
|
ldrh r3, [r5, 0x36]
|
|
adds r0, r3
|
|
strh r0, [r5, 0x36]
|
|
ldr r0, _080B1BA8 @ =sub_8075590
|
|
str r0, [r5, 0x1C]
|
|
ldr r1, _080B1BAC @ =DestroyAnimSprite
|
|
adds r0, r5, 0
|
|
bl StoreSpriteCallbackInData6
|
|
ldrb r1, [r4, 0xA]
|
|
adds r0, r5, 0
|
|
bl SeekSpriteAnim
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B1BA0: .4byte gUnknown_2037F1B
|
|
_080B1BA4: .4byte gUnknown_2037F02
|
|
_080B1BA8: .4byte sub_8075590
|
|
_080B1BAC: .4byte DestroyAnimSprite
|
|
thumb_func_end sub_80B1AB8
|
|
|
|
thumb_func_start sub_80B1BB0
|
|
sub_80B1BB0: @ 80B1BB0
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x1
|
|
bl sub_8075160
|
|
ldr r1, _080B1BEC @ =gUnknown_2037F02
|
|
ldrh r0, [r1, 0x4]
|
|
strh r0, [r4, 0x2E]
|
|
ldrh r0, [r1, 0x6]
|
|
strh r0, [r4, 0x30]
|
|
ldr r0, _080B1BF0 @ =sub_80B1BF8
|
|
str r0, [r4, 0x1C]
|
|
movs r0, 0
|
|
bl GetAnimBankSpriteId
|
|
ldr r2, _080B1BF4 @ =gSprites
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
adds r1, 0x3E
|
|
ldrb r0, [r1]
|
|
movs r2, 0x4
|
|
orrs r0, r2
|
|
strb r0, [r1]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B1BEC: .4byte gUnknown_2037F02
|
|
_080B1BF0: .4byte sub_80B1BF8
|
|
_080B1BF4: .4byte gSprites
|
|
thumb_func_end sub_80B1BB0
|
|
|
|
thumb_func_start sub_80B1BF8
|
|
sub_80B1BF8: @ 80B1BF8
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
ldrh r1, [r2, 0x2E]
|
|
movs r3, 0x2E
|
|
ldrsh r0, [r2, r3]
|
|
cmp r0, 0
|
|
ble _080B1C0C
|
|
subs r0, r1, 0x1
|
|
strh r0, [r2, 0x2E]
|
|
b _080B1C1E
|
|
_080B1C0C:
|
|
ldrh r0, [r2, 0x30]
|
|
ldrh r1, [r2, 0x32]
|
|
adds r0, r1
|
|
strh r0, [r2, 0x32]
|
|
lsls r0, 16
|
|
asrs r0, 24
|
|
ldrh r1, [r2, 0x26]
|
|
subs r1, r0
|
|
strh r1, [r2, 0x26]
|
|
_080B1C1E:
|
|
movs r3, 0x22
|
|
ldrsh r0, [r2, r3]
|
|
movs r3, 0x26
|
|
ldrsh r1, [r2, r3]
|
|
adds r0, r1
|
|
movs r1, 0x20
|
|
negs r1, r1
|
|
cmp r0, r1
|
|
bge _080B1C36
|
|
adds r0, r2, 0
|
|
bl DestroyAnimSprite
|
|
_080B1C36:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80B1BF8
|
|
|
|
thumb_func_start sub_80B1C3C
|
|
sub_80B1C3C: @ 80B1C3C
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
ldr r0, _080B1C64 @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080B1C6C
|
|
movs r0, 0x88
|
|
lsls r0, 1
|
|
strh r0, [r5, 0x20]
|
|
ldr r0, _080B1C68 @ =0x0000ffe0
|
|
strh r0, [r5, 0x22]
|
|
adds r0, r5, 0
|
|
movs r1, 0x1
|
|
bl StartSpriteAffineAnim
|
|
b _080B1C72
|
|
.align 2, 0
|
|
_080B1C64: .4byte gUnknown_2037F1A
|
|
_080B1C68: .4byte 0x0000ffe0
|
|
_080B1C6C:
|
|
ldr r0, _080B1CB0 @ =0x0000ffe0
|
|
strh r0, [r5, 0x20]
|
|
strh r0, [r5, 0x22]
|
|
_080B1C72:
|
|
ldr r0, _080B1CB4 @ =gUnknown_2037F02
|
|
ldrh r0, [r0]
|
|
strh r0, [r5, 0x2E]
|
|
ldrh r0, [r5, 0x20]
|
|
strh r0, [r5, 0x30]
|
|
ldr r4, _080B1CB8 @ =gUnknown_2037F1B
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x32]
|
|
ldrh r0, [r5, 0x22]
|
|
strh r0, [r5, 0x34]
|
|
ldrb r0, [r4]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x36]
|
|
adds r0, r5, 0
|
|
bl obj_translate_based_on_private_1_2_3_4
|
|
ldr r0, _080B1CBC @ =sub_80B1CC0
|
|
str r0, [r5, 0x1C]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B1CB0: .4byte 0x0000ffe0
|
|
_080B1CB4: .4byte gUnknown_2037F02
|
|
_080B1CB8: .4byte gUnknown_2037F1B
|
|
_080B1CBC: .4byte sub_80B1CC0
|
|
thumb_func_end sub_80B1C3C
|
|
|
|
thumb_func_start sub_80B1CC0
|
|
sub_80B1CC0: @ 80B1CC0
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
adds r0, r4, 0
|
|
bl sub_80755E0
|
|
ldrh r1, [r4, 0x34]
|
|
lsrs r0, r1, 8
|
|
cmp r0, 0xC8
|
|
bls _080B1CE8
|
|
ldrh r0, [r4, 0x24]
|
|
ldrh r2, [r4, 0x20]
|
|
adds r0, r2
|
|
strh r0, [r4, 0x20]
|
|
movs r0, 0
|
|
strh r0, [r4, 0x24]
|
|
movs r0, 0xFF
|
|
ands r0, r1
|
|
strh r0, [r4, 0x34]
|
|
_080B1CE8:
|
|
movs r1, 0x20
|
|
ldrsh r0, [r4, r1]
|
|
movs r2, 0x24
|
|
ldrsh r1, [r4, r2]
|
|
adds r0, r1
|
|
adds r0, 0x20
|
|
movs r1, 0x98
|
|
lsls r1, 1
|
|
cmp r0, r1
|
|
bhi _080B1D0A
|
|
movs r1, 0x22
|
|
ldrsh r0, [r4, r1]
|
|
movs r2, 0x26
|
|
ldrsh r1, [r4, r2]
|
|
adds r0, r1
|
|
cmp r0, 0xA0
|
|
ble _080B1D30
|
|
_080B1D0A:
|
|
movs r0, 0
|
|
bl GetAnimBankSpriteId
|
|
ldr r2, _080B1D38 @ =gSprites
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
adds r1, 0x3E
|
|
ldrb r2, [r1]
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
adds r0, r4, 0
|
|
bl DestroyAnimSprite
|
|
_080B1D30:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B1D38: .4byte gSprites
|
|
thumb_func_end sub_80B1CC0
|
|
|
|
thumb_func_start sub_80B1D3C
|
|
sub_80B1D3C: @ 80B1D3C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrh r0, [r4, 0x2E]
|
|
subs r1, r0, 0x1
|
|
strh r1, [r4, 0x2E]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bgt _080B1D7C
|
|
ldrb r0, [r4, 0x1]
|
|
lsls r0, 30
|
|
lsrs r0, 30
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080B1D6E
|
|
ldrb r0, [r4, 0x3]
|
|
lsls r0, 26
|
|
lsrs r0, 27
|
|
bl FreeOamMatrix
|
|
ldrb r1, [r4, 0x1]
|
|
movs r0, 0x4
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r4, 0x1]
|
|
_080B1D6E:
|
|
adds r0, r4, 0
|
|
bl DestroySprite
|
|
ldr r1, _080B1D84 @ =gUnknown_2037EE2
|
|
ldrb r0, [r1]
|
|
subs r0, 0x1
|
|
strb r0, [r1]
|
|
_080B1D7C:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B1D84: .4byte gUnknown_2037EE2
|
|
thumb_func_end sub_80B1D3C
|
|
|
|
thumb_func_start sub_80B1D88
|
|
sub_80B1D88: @ 80B1D88
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
adds r7, r0, 0
|
|
adds r5, r7, 0
|
|
adds r5, 0x2E
|
|
ldr r0, _080B1DA8 @ =gUnknown_2037F02
|
|
ldrh r1, [r0, 0xE]
|
|
movs r0, 0x80
|
|
lsls r0, 1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080B1DB0
|
|
ldr r0, _080B1DAC @ =gUnknown_2037F1A
|
|
b _080B1DB2
|
|
.align 2, 0
|
|
_080B1DA8: .4byte gUnknown_2037F02
|
|
_080B1DAC: .4byte gUnknown_2037F1A
|
|
_080B1DB0:
|
|
ldr r0, _080B1E5C @ =gUnknown_2037F1B
|
|
_080B1DB2:
|
|
ldrb r6, [r0]
|
|
adds r0, r6, 0
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080B1DC8
|
|
ldr r1, _080B1E60 @ =gUnknown_2037F02
|
|
ldrh r0, [r1]
|
|
negs r0, r0
|
|
strh r0, [r1]
|
|
_080B1DC8:
|
|
adds r0, r6, 0
|
|
movs r1, 0
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
ldr r4, _080B1E60 @ =gUnknown_2037F02
|
|
lsrs r0, 24
|
|
ldrh r1, [r4]
|
|
adds r0, r1
|
|
strh r0, [r7, 0x20]
|
|
adds r0, r6, 0
|
|
movs r1, 0x1
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
ldrh r1, [r4, 0x2]
|
|
lsrs r0, 24
|
|
adds r1, r0, r1
|
|
strh r1, [r7, 0x22]
|
|
lsls r1, 8
|
|
strh r1, [r5, 0x8]
|
|
ldrh r1, [r4, 0xC]
|
|
adds r0, r1
|
|
lsls r0, 1
|
|
ldrh r2, [r5, 0xE]
|
|
movs r1, 0x1
|
|
ands r1, r2
|
|
orrs r1, r0
|
|
strh r1, [r5, 0xE]
|
|
ldrb r0, [r5]
|
|
movs r2, 0x4
|
|
mov r8, r2
|
|
mov r1, r8
|
|
orrs r0, r1
|
|
strb r0, [r5]
|
|
ldrh r0, [r4, 0x4]
|
|
ldrb r1, [r4, 0x4]
|
|
strh r1, [r5, 0x2]
|
|
lsls r0, 16
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0xA]
|
|
ldrh r0, [r4, 0x6]
|
|
strh r0, [r5, 0x4]
|
|
ldrh r0, [r4, 0x8]
|
|
strh r0, [r5, 0x6]
|
|
ldrh r0, [r4, 0xA]
|
|
strh r0, [r5, 0xC]
|
|
subs r1, 0x40
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
cmp r1, 0x7F
|
|
bhi _080B1EBE
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080B1E64
|
|
adds r0, r6, 0
|
|
bl sub_8076884
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r0, 0x1
|
|
movs r1, 0x3
|
|
ands r0, r1
|
|
lsls r0, 2
|
|
ldrb r2, [r7, 0x5]
|
|
movs r1, 0xD
|
|
negs r1, r1
|
|
ands r1, r2
|
|
orrs r1, r0
|
|
strb r1, [r7, 0x5]
|
|
b _080B1E7C
|
|
.align 2, 0
|
|
_080B1E5C: .4byte gUnknown_2037F1B
|
|
_080B1E60: .4byte gUnknown_2037F02
|
|
_080B1E64:
|
|
adds r0, r6, 0
|
|
bl sub_8076884
|
|
movs r1, 0x3
|
|
ands r1, r0
|
|
lsls r1, 2
|
|
ldrb r2, [r7, 0x5]
|
|
movs r0, 0xD
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r7, 0x5]
|
|
_080B1E7C:
|
|
ldrb r1, [r5, 0xE]
|
|
movs r4, 0x2
|
|
negs r4, r4
|
|
adds r0, r4, 0
|
|
ands r0, r1
|
|
strb r0, [r5, 0xE]
|
|
movs r2, 0x4
|
|
ldrsh r0, [r5, r2]
|
|
movs r1, 0x80
|
|
lsls r1, 8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080B1F1E
|
|
adds r3, r7, 0
|
|
adds r3, 0x3F
|
|
ldrb r2, [r3]
|
|
lsls r0, r2, 31
|
|
lsrs r0, 31
|
|
movs r1, 0x1
|
|
eors r1, r0
|
|
adds r0, r4, 0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r3]
|
|
lsls r0, 31
|
|
lsrs r0, 31
|
|
adds r1, r7, 0
|
|
adds r1, 0x2A
|
|
strb r0, [r1]
|
|
ldrb r0, [r3]
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
b _080B1F16
|
|
_080B1EBE:
|
|
adds r0, r6, 0
|
|
bl sub_8076884
|
|
movs r1, 0x3
|
|
ands r1, r0
|
|
lsls r1, 2
|
|
ldrb r2, [r7, 0x5]
|
|
movs r0, 0xD
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r7, 0x5]
|
|
ldrb r0, [r5, 0xE]
|
|
movs r4, 0x1
|
|
orrs r0, r4
|
|
strb r0, [r5, 0xE]
|
|
movs r1, 0x4
|
|
ldrsh r0, [r5, r1]
|
|
movs r1, 0x80
|
|
lsls r1, 8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080B1F1E
|
|
adds r3, r7, 0
|
|
adds r3, 0x3F
|
|
ldrb r2, [r3]
|
|
lsls r1, r2, 31
|
|
lsrs r1, 31
|
|
movs r0, 0x1
|
|
eors r1, r0
|
|
ands r1, r4
|
|
movs r0, 0x2
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r3]
|
|
lsls r0, 31
|
|
lsrs r0, 31
|
|
adds r1, r7, 0
|
|
adds r1, 0x2A
|
|
strb r0, [r1]
|
|
ldrb r0, [r3]
|
|
mov r2, r8
|
|
orrs r0, r2
|
|
_080B1F16:
|
|
movs r1, 0x11
|
|
negs r1, r1
|
|
ands r0, r1
|
|
strb r0, [r3]
|
|
_080B1F1E:
|
|
ldrh r1, [r5, 0x2]
|
|
lsrs r1, 6
|
|
lsls r1, 4
|
|
ldrb r2, [r5]
|
|
movs r0, 0xF
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r5]
|
|
ldr r3, _080B1F88 @ =gUnknown_825E074
|
|
ldrh r0, [r5, 0x2]
|
|
lsls r0, 1
|
|
adds r0, r3
|
|
movs r2, 0
|
|
ldrsh r1, [r0, r2]
|
|
ldrb r0, [r5, 0xC]
|
|
muls r0, r1
|
|
asrs r0, 8
|
|
strh r0, [r7, 0x24]
|
|
ldrb r2, [r7, 0x3]
|
|
lsls r2, 26
|
|
lsrs r2, 27
|
|
movs r1, 0x24
|
|
ldrsh r0, [r7, r1]
|
|
negs r0, r0
|
|
asrs r0, 1
|
|
ldrb r5, [r5, 0xA]
|
|
adds r0, r5
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 1
|
|
adds r1, r3
|
|
ldrh r4, [r1]
|
|
ldr r1, _080B1F8C @ =gOamMatrices
|
|
lsls r2, 3
|
|
adds r2, r1
|
|
adds r0, 0x40
|
|
lsls r0, 1
|
|
adds r0, r3
|
|
ldrh r0, [r0]
|
|
strh r0, [r2, 0x6]
|
|
strh r0, [r2]
|
|
strh r4, [r2, 0x2]
|
|
lsls r0, r4, 16
|
|
asrs r0, 16
|
|
negs r0, r0
|
|
strh r0, [r2, 0x4]
|
|
ldr r0, _080B1F90 @ =sub_80B1F94
|
|
str r0, [r7, 0x1C]
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B1F88: .4byte gUnknown_825E074
|
|
_080B1F8C: .4byte gOamMatrices
|
|
_080B1F90: .4byte sub_80B1F94
|
|
thumb_func_end sub_80B1D88
|
|
|
|
thumb_func_start sub_80B1F94
|
|
sub_80B1F94: @ 80B1F94
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
adds r5, r0, 0
|
|
movs r6, 0
|
|
adds r4, r5, 0
|
|
adds r4, 0x2E
|
|
ldrb r2, [r4]
|
|
movs r7, 0x1
|
|
movs r0, 0x1
|
|
mov r9, r0
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _080B1FCE
|
|
ldrb r0, [r4, 0x1]
|
|
adds r1, r0, 0
|
|
adds r1, 0xFF
|
|
strb r1, [r4, 0x1]
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080B1FC2
|
|
b _080B24AA
|
|
_080B1FC2:
|
|
movs r0, 0x2
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r4]
|
|
strb r6, [r4, 0x1]
|
|
b _080B24AA
|
|
_080B1FCE:
|
|
ldrh r0, [r4, 0x2]
|
|
lsrs r1, r0, 6
|
|
mov r12, r0
|
|
cmp r1, 0x1
|
|
bne _080B1FDA
|
|
b _080B20FE
|
|
_080B1FDA:
|
|
cmp r1, 0x1
|
|
bgt _080B1FE4
|
|
cmp r1, 0
|
|
beq _080B1FF2
|
|
b _080B23F0
|
|
_080B1FE4:
|
|
cmp r1, 0x2
|
|
bne _080B1FEA
|
|
b _080B21F2
|
|
_080B1FEA:
|
|
cmp r1, 0x3
|
|
bne _080B1FF0
|
|
b _080B22E6
|
|
_080B1FF0:
|
|
b _080B23F0
|
|
_080B1FF2:
|
|
lsls r1, r2, 24
|
|
lsrs r0, r1, 28
|
|
cmp r0, 0x1
|
|
bne _080B2006
|
|
movs r0, 0x8
|
|
orrs r0, r2
|
|
orrs r0, r7
|
|
strb r0, [r4]
|
|
strb r6, [r4, 0x1]
|
|
b _080B20F4
|
|
_080B2006:
|
|
lsrs r0, r1, 28
|
|
cmp r0, 0x3
|
|
bne _080B2028
|
|
lsls r0, r2, 30
|
|
lsrs r0, 31
|
|
movs r1, 0x1
|
|
eors r0, r1
|
|
ands r0, r7
|
|
lsls r0, 1
|
|
movs r1, 0x3
|
|
negs r1, r1
|
|
ands r1, r2
|
|
orrs r1, r0
|
|
orrs r1, r7
|
|
strb r1, [r4]
|
|
strb r6, [r4, 0x1]
|
|
b _080B20F4
|
|
_080B2028:
|
|
movs r0, 0x8
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _080B20F4
|
|
adds r3, r5, 0
|
|
adds r3, 0x3F
|
|
ldrb r2, [r3]
|
|
lsls r1, r2, 31
|
|
lsrs r1, 31
|
|
movs r6, 0x1
|
|
eors r1, r6
|
|
ands r1, r7
|
|
movs r0, 0x2
|
|
negs r0, r0
|
|
mov r8, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r3]
|
|
lsls r0, 31
|
|
lsrs r0, 31
|
|
adds r1, r5, 0
|
|
adds r1, 0x2A
|
|
strb r0, [r1]
|
|
ldrb r0, [r3]
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
movs r1, 0x11
|
|
negs r1, r1
|
|
ands r0, r1
|
|
strb r0, [r3]
|
|
ldrb r1, [r4]
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080B20E6
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080B20B6
|
|
ldrb r1, [r4, 0xE]
|
|
mov r0, r9
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080B209C
|
|
ldrb r2, [r5, 0x5]
|
|
lsls r1, r2, 28
|
|
lsrs r1, 30
|
|
subs r1, 0x1
|
|
movs r0, 0x3
|
|
ands r1, r0
|
|
lsls r1, 2
|
|
movs r0, 0xD
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r5, 0x5]
|
|
b _080B20D4
|
|
_080B209C:
|
|
ldrb r2, [r5, 0x5]
|
|
lsls r1, r2, 28
|
|
lsrs r1, 30
|
|
adds r1, 0x1
|
|
movs r0, 0x3
|
|
ands r1, r0
|
|
lsls r1, 2
|
|
movs r0, 0xD
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r5, 0x5]
|
|
b _080B20D4
|
|
_080B20B6:
|
|
ldrb r1, [r4, 0xE]
|
|
mov r0, r9
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080B20CA
|
|
adds r1, r5, 0
|
|
adds r1, 0x43
|
|
ldrb r0, [r1]
|
|
subs r0, 0xC
|
|
b _080B20D2
|
|
_080B20CA:
|
|
adds r1, r5, 0
|
|
adds r1, 0x43
|
|
ldrb r0, [r1]
|
|
adds r0, 0xC
|
|
_080B20D2:
|
|
strb r0, [r1]
|
|
_080B20D4:
|
|
ldrb r2, [r4, 0xE]
|
|
lsls r0, r2, 31
|
|
lsrs r0, 31
|
|
eors r0, r6
|
|
ands r0, r7
|
|
mov r1, r8
|
|
ands r1, r2
|
|
orrs r1, r0
|
|
strb r1, [r4, 0xE]
|
|
_080B20E6:
|
|
ldrb r1, [r4]
|
|
movs r0, 0x9
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r4]
|
|
ldrh r1, [r4, 0x2]
|
|
mov r12, r1
|
|
_080B20F4:
|
|
ldrb r1, [r4]
|
|
movs r0, 0xF
|
|
ands r0, r1
|
|
strb r0, [r4]
|
|
b _080B23F0
|
|
_080B20FE:
|
|
lsls r1, r2, 24
|
|
lsrs r0, r1, 28
|
|
cmp r0, 0
|
|
bne _080B210C
|
|
movs r0, 0x8
|
|
orrs r0, r2
|
|
b _080B2114
|
|
_080B210C:
|
|
lsrs r0, r1, 28
|
|
cmp r0, 0x2
|
|
bne _080B211C
|
|
adds r0, r2, 0
|
|
_080B2114:
|
|
orrs r0, r7
|
|
strb r0, [r4]
|
|
strb r6, [r4, 0x1]
|
|
b _080B21E8
|
|
_080B211C:
|
|
movs r0, 0x8
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _080B21E8
|
|
adds r3, r5, 0
|
|
adds r3, 0x3F
|
|
ldrb r2, [r3]
|
|
lsls r1, r2, 31
|
|
lsrs r1, 31
|
|
movs r6, 0x1
|
|
eors r1, r6
|
|
ands r1, r7
|
|
movs r0, 0x2
|
|
negs r0, r0
|
|
mov r8, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r3]
|
|
lsls r0, 31
|
|
lsrs r0, 31
|
|
adds r1, r5, 0
|
|
adds r1, 0x2A
|
|
strb r0, [r1]
|
|
ldrb r0, [r3]
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
movs r1, 0x11
|
|
negs r1, r1
|
|
ands r0, r1
|
|
strb r0, [r3]
|
|
ldrb r1, [r4]
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080B21DA
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080B21AA
|
|
ldrb r1, [r4, 0xE]
|
|
mov r0, r9
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080B2190
|
|
ldrb r2, [r5, 0x5]
|
|
lsls r1, r2, 28
|
|
lsrs r1, 30
|
|
subs r1, 0x1
|
|
movs r0, 0x3
|
|
ands r1, r0
|
|
lsls r1, 2
|
|
movs r0, 0xD
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r5, 0x5]
|
|
b _080B21C8
|
|
_080B2190:
|
|
ldrb r2, [r5, 0x5]
|
|
lsls r1, r2, 28
|
|
lsrs r1, 30
|
|
adds r1, 0x1
|
|
movs r0, 0x3
|
|
ands r1, r0
|
|
lsls r1, 2
|
|
movs r0, 0xD
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r5, 0x5]
|
|
b _080B21C8
|
|
_080B21AA:
|
|
ldrb r1, [r4, 0xE]
|
|
mov r0, r9
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080B21BE
|
|
adds r1, r5, 0
|
|
adds r1, 0x43
|
|
ldrb r0, [r1]
|
|
subs r0, 0xC
|
|
b _080B21C6
|
|
_080B21BE:
|
|
adds r1, r5, 0
|
|
adds r1, 0x43
|
|
ldrb r0, [r1]
|
|
adds r0, 0xC
|
|
_080B21C6:
|
|
strb r0, [r1]
|
|
_080B21C8:
|
|
ldrb r2, [r4, 0xE]
|
|
lsls r0, r2, 31
|
|
lsrs r0, 31
|
|
eors r0, r6
|
|
ands r0, r7
|
|
mov r1, r8
|
|
ands r1, r2
|
|
orrs r1, r0
|
|
strb r1, [r4, 0xE]
|
|
_080B21DA:
|
|
ldrb r1, [r4]
|
|
movs r0, 0x9
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r4]
|
|
ldrh r1, [r4, 0x2]
|
|
mov r12, r1
|
|
_080B21E8:
|
|
ldrb r0, [r4]
|
|
movs r1, 0xF
|
|
ands r1, r0
|
|
movs r0, 0x10
|
|
b _080B23EC
|
|
_080B21F2:
|
|
lsls r1, r2, 24
|
|
lsrs r0, r1, 28
|
|
cmp r0, 0x3
|
|
bne _080B2200
|
|
movs r0, 0x8
|
|
orrs r0, r2
|
|
b _080B2208
|
|
_080B2200:
|
|
lsrs r0, r1, 28
|
|
cmp r0, 0x1
|
|
bne _080B2210
|
|
adds r0, r2, 0
|
|
_080B2208:
|
|
orrs r0, r7
|
|
strb r0, [r4]
|
|
strb r6, [r4, 0x1]
|
|
b _080B22DC
|
|
_080B2210:
|
|
movs r0, 0x8
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _080B22DC
|
|
adds r3, r5, 0
|
|
adds r3, 0x3F
|
|
ldrb r2, [r3]
|
|
lsls r1, r2, 31
|
|
lsrs r1, 31
|
|
movs r6, 0x1
|
|
eors r1, r6
|
|
ands r1, r7
|
|
movs r0, 0x2
|
|
negs r0, r0
|
|
mov r8, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r3]
|
|
lsls r0, 31
|
|
lsrs r0, 31
|
|
adds r1, r5, 0
|
|
adds r1, 0x2A
|
|
strb r0, [r1]
|
|
ldrb r0, [r3]
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
movs r1, 0x11
|
|
negs r1, r1
|
|
ands r0, r1
|
|
strb r0, [r3]
|
|
ldrb r1, [r4]
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080B22CE
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080B229E
|
|
ldrb r1, [r4, 0xE]
|
|
mov r0, r9
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080B2284
|
|
ldrb r2, [r5, 0x5]
|
|
lsls r1, r2, 28
|
|
lsrs r1, 30
|
|
subs r1, 0x1
|
|
movs r0, 0x3
|
|
ands r1, r0
|
|
lsls r1, 2
|
|
movs r0, 0xD
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r5, 0x5]
|
|
b _080B22BC
|
|
_080B2284:
|
|
ldrb r2, [r5, 0x5]
|
|
lsls r1, r2, 28
|
|
lsrs r1, 30
|
|
adds r1, 0x1
|
|
movs r0, 0x3
|
|
ands r1, r0
|
|
lsls r1, 2
|
|
movs r0, 0xD
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r5, 0x5]
|
|
b _080B22BC
|
|
_080B229E:
|
|
ldrb r1, [r4, 0xE]
|
|
mov r0, r9
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080B22B2
|
|
adds r1, r5, 0
|
|
adds r1, 0x43
|
|
ldrb r0, [r1]
|
|
subs r0, 0xC
|
|
b _080B22BA
|
|
_080B22B2:
|
|
adds r1, r5, 0
|
|
adds r1, 0x43
|
|
ldrb r0, [r1]
|
|
adds r0, 0xC
|
|
_080B22BA:
|
|
strb r0, [r1]
|
|
_080B22BC:
|
|
ldrb r2, [r4, 0xE]
|
|
lsls r0, r2, 31
|
|
lsrs r0, 31
|
|
eors r0, r6
|
|
ands r0, r7
|
|
mov r1, r8
|
|
ands r1, r2
|
|
orrs r1, r0
|
|
strb r1, [r4, 0xE]
|
|
_080B22CE:
|
|
ldrb r1, [r4]
|
|
movs r0, 0x9
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r4]
|
|
ldrh r1, [r4, 0x2]
|
|
mov r12, r1
|
|
_080B22DC:
|
|
ldrb r0, [r4]
|
|
movs r1, 0xF
|
|
ands r1, r0
|
|
movs r0, 0x20
|
|
b _080B23EC
|
|
_080B22E6:
|
|
lsls r1, r2, 24
|
|
lsrs r0, r1, 28
|
|
cmp r0, 0x2
|
|
bne _080B22F6
|
|
movs r0, 0x8
|
|
orrs r0, r2
|
|
strb r0, [r4]
|
|
b _080B23E4
|
|
_080B22F6:
|
|
lsrs r0, r1, 28
|
|
cmp r0, 0
|
|
bne _080B2318
|
|
lsls r0, r2, 30
|
|
lsrs r0, 31
|
|
movs r1, 0x1
|
|
eors r0, r1
|
|
ands r0, r7
|
|
lsls r0, 1
|
|
movs r1, 0x3
|
|
negs r1, r1
|
|
ands r1, r2
|
|
orrs r1, r0
|
|
orrs r1, r7
|
|
strb r1, [r4]
|
|
strb r6, [r4, 0x1]
|
|
b _080B23E4
|
|
_080B2318:
|
|
movs r0, 0x8
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _080B23E4
|
|
adds r3, r5, 0
|
|
adds r3, 0x3F
|
|
ldrb r2, [r3]
|
|
lsls r1, r2, 31
|
|
lsrs r1, 31
|
|
movs r6, 0x1
|
|
eors r1, r6
|
|
ands r1, r7
|
|
movs r0, 0x2
|
|
negs r0, r0
|
|
mov r8, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r3]
|
|
lsls r0, 31
|
|
lsrs r0, 31
|
|
adds r1, r5, 0
|
|
adds r1, 0x2A
|
|
strb r0, [r1]
|
|
ldrb r0, [r3]
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
movs r1, 0x11
|
|
negs r1, r1
|
|
ands r0, r1
|
|
strb r0, [r3]
|
|
ldrb r1, [r4]
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080B23D6
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080B23A6
|
|
ldrb r1, [r4, 0xE]
|
|
mov r0, r9
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080B238C
|
|
ldrb r2, [r5, 0x5]
|
|
lsls r1, r2, 28
|
|
lsrs r1, 30
|
|
subs r1, 0x1
|
|
movs r0, 0x3
|
|
ands r1, r0
|
|
lsls r1, 2
|
|
movs r0, 0xD
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r5, 0x5]
|
|
b _080B23C4
|
|
_080B238C:
|
|
ldrb r2, [r5, 0x5]
|
|
lsls r1, r2, 28
|
|
lsrs r1, 30
|
|
adds r1, 0x1
|
|
movs r0, 0x3
|
|
ands r1, r0
|
|
lsls r1, 2
|
|
movs r0, 0xD
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r5, 0x5]
|
|
b _080B23C4
|
|
_080B23A6:
|
|
ldrb r1, [r4, 0xE]
|
|
mov r0, r9
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080B23BA
|
|
adds r1, r5, 0
|
|
adds r1, 0x43
|
|
ldrb r0, [r1]
|
|
subs r0, 0xC
|
|
b _080B23C2
|
|
_080B23BA:
|
|
adds r1, r5, 0
|
|
adds r1, 0x43
|
|
ldrb r0, [r1]
|
|
adds r0, 0xC
|
|
_080B23C2:
|
|
strb r0, [r1]
|
|
_080B23C4:
|
|
ldrb r2, [r4, 0xE]
|
|
lsls r0, r2, 31
|
|
lsrs r0, 31
|
|
eors r0, r6
|
|
ands r0, r7
|
|
mov r1, r8
|
|
ands r1, r2
|
|
orrs r1, r0
|
|
strb r1, [r4, 0xE]
|
|
_080B23D6:
|
|
ldrb r1, [r4]
|
|
movs r0, 0x9
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r4]
|
|
ldrh r1, [r4, 0x2]
|
|
mov r12, r1
|
|
_080B23E4:
|
|
ldrb r0, [r4]
|
|
movs r1, 0xF
|
|
ands r1, r0
|
|
movs r0, 0x30
|
|
_080B23EC:
|
|
orrs r1, r0
|
|
strb r1, [r4]
|
|
_080B23F0:
|
|
ldrb r1, [r4]
|
|
lsls r1, 30
|
|
lsrs r1, 31
|
|
adds r0, r4, 0
|
|
adds r0, 0xC
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
ldr r3, _080B2478 @ =gUnknown_825E074
|
|
mov r2, r12
|
|
lsls r0, r2, 1
|
|
adds r0, r3
|
|
movs r2, 0
|
|
ldrsh r0, [r0, r2]
|
|
muls r0, r1
|
|
asrs r0, 8
|
|
strh r0, [r5, 0x24]
|
|
ldrb r2, [r5, 0x3]
|
|
lsls r2, 26
|
|
lsrs r2, 27
|
|
movs r1, 0x24
|
|
ldrsh r0, [r5, r1]
|
|
negs r0, r0
|
|
asrs r0, 1
|
|
ldrb r1, [r4, 0xA]
|
|
adds r0, r1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 1
|
|
adds r1, r3
|
|
ldrh r6, [r1]
|
|
ldr r1, _080B247C @ =gOamMatrices
|
|
lsls r2, 3
|
|
adds r2, r1
|
|
adds r0, 0x40
|
|
lsls r0, 1
|
|
adds r0, r3
|
|
ldrh r0, [r0]
|
|
strh r0, [r2, 0x6]
|
|
strh r0, [r2]
|
|
strh r6, [r2, 0x2]
|
|
lsls r0, r6, 16
|
|
asrs r0, 16
|
|
negs r0, r0
|
|
strh r0, [r2, 0x4]
|
|
ldrh r0, [r4, 0x6]
|
|
ldrh r2, [r4, 0x8]
|
|
adds r0, r2
|
|
strh r0, [r4, 0x8]
|
|
lsls r0, 16
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x22]
|
|
movs r1, 0x4
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0x80
|
|
lsls r1, 8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080B2480
|
|
ldrh r0, [r4, 0x4]
|
|
subs r1, 0x1
|
|
ands r1, r0
|
|
ldrh r0, [r4, 0x2]
|
|
subs r0, r1
|
|
movs r1, 0xFF
|
|
ands r0, r1
|
|
strh r0, [r4, 0x2]
|
|
b _080B2490
|
|
.align 2, 0
|
|
_080B2478: .4byte gUnknown_825E074
|
|
_080B247C: .4byte gOamMatrices
|
|
_080B2480:
|
|
ldrh r0, [r4, 0x4]
|
|
ldr r1, _080B24B8 @ =0x00007fff
|
|
ands r1, r0
|
|
ldrh r2, [r4, 0x2]
|
|
adds r1, r2
|
|
movs r0, 0xFF
|
|
ands r1, r0
|
|
strh r1, [r4, 0x2]
|
|
_080B2490:
|
|
movs r0, 0x22
|
|
ldrsh r1, [r5, r0]
|
|
movs r2, 0x26
|
|
ldrsh r0, [r5, r2]
|
|
adds r1, r0
|
|
ldrh r0, [r4, 0xE]
|
|
lsrs r0, 1
|
|
cmp r1, r0
|
|
blt _080B24AA
|
|
movs r0, 0
|
|
strh r0, [r5, 0x2E]
|
|
ldr r0, _080B24BC @ =sub_80B1D3C
|
|
str r0, [r5, 0x1C]
|
|
_080B24AA:
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B24B8: .4byte 0x00007fff
|
|
_080B24BC: .4byte sub_80B1D3C
|
|
thumb_func_end sub_80B1F94
|
|
|
|
thumb_func_start sub_80B24C0
|
|
sub_80B24C0: @ 80B24C0
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
ldr r0, _080B2508 @ =gUnknown_2037F1B
|
|
ldrb r0, [r0]
|
|
bl sub_8076884
|
|
movs r1, 0x3
|
|
ands r1, r0
|
|
lsls r1, 2
|
|
ldrb r2, [r4, 0x5]
|
|
movs r0, 0xD
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r4, 0x5]
|
|
ldr r5, _080B250C @ =gUnknown_2037F1A
|
|
ldrb r0, [r5]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x20]
|
|
ldrb r0, [r5]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x22]
|
|
ldr r0, _080B2510 @ =sub_8075DF4
|
|
str r0, [r4, 0x1C]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B2508: .4byte gUnknown_2037F1B
|
|
_080B250C: .4byte gUnknown_2037F1A
|
|
_080B2510: .4byte sub_8075DF4
|
|
thumb_func_end sub_80B24C0
|
|
|
|
thumb_func_start sub_80B2514
|
|
sub_80B2514: @ 80B2514
|
|
push {r4-r7,lr}
|
|
adds r4, r0, 0
|
|
ldr r5, _080B2554 @ =gUnknown_2037F02
|
|
ldrh r0, [r5]
|
|
strh r0, [r4, 0x30]
|
|
ldrh r0, [r5, 0x2]
|
|
strh r0, [r4, 0x32]
|
|
ldrh r0, [r5, 0x4]
|
|
strh r0, [r4, 0x34]
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080B25C4
|
|
ldr r0, _080B2558 @ =gUnknown_2023BD6
|
|
ldr r1, _080B255C @ =gUnknown_2037F1B
|
|
ldrb r2, [r1]
|
|
adds r0, r2, r0
|
|
ldrb r1, [r0]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080B2560
|
|
adds r0, r2, 0
|
|
movs r1, 0x1
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrh r5, [r5, 0x6]
|
|
adds r0, r5
|
|
b _080B256E
|
|
.align 2, 0
|
|
_080B2554: .4byte gUnknown_2037F02
|
|
_080B2558: .4byte gUnknown_2023BD6
|
|
_080B255C: .4byte gUnknown_2037F1B
|
|
_080B2560:
|
|
adds r0, r2, 0
|
|
movs r1, 0x1
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r0, 0x28
|
|
_080B256E:
|
|
strh r0, [r4, 0x3C]
|
|
ldr r0, _080B259C @ =gUnknown_2037F02
|
|
movs r1, 0x8
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0
|
|
beq _080B25A4
|
|
ldr r0, _080B25A0 @ =gUnknown_2037F1B
|
|
ldrb r0, [r0]
|
|
bl sub_8076884
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r0, 0x1
|
|
movs r1, 0x3
|
|
ands r0, r1
|
|
lsls r0, 2
|
|
ldrb r2, [r4, 0x5]
|
|
movs r1, 0xD
|
|
negs r1, r1
|
|
ands r1, r2
|
|
orrs r1, r0
|
|
strb r1, [r4, 0x5]
|
|
b _080B25D8
|
|
.align 2, 0
|
|
_080B259C: .4byte gUnknown_2037F02
|
|
_080B25A0: .4byte gUnknown_2037F1B
|
|
_080B25A4:
|
|
ldr r0, _080B25C0 @ =gUnknown_2037F1B
|
|
ldrb r0, [r0]
|
|
bl sub_8076884
|
|
movs r1, 0x3
|
|
ands r1, r0
|
|
lsls r1, 2
|
|
ldrb r2, [r4, 0x5]
|
|
movs r0, 0xD
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r4, 0x5]
|
|
b _080B25D8
|
|
.align 2, 0
|
|
_080B25C0: .4byte gUnknown_2037F1B
|
|
_080B25C4:
|
|
ldr r0, _080B267C @ =gUnknown_2037F1B
|
|
ldrb r0, [r0]
|
|
movs r1, 0x1
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrh r5, [r5, 0x6]
|
|
adds r0, r5
|
|
strh r0, [r4, 0x3C]
|
|
_080B25D8:
|
|
ldr r5, _080B2680 @ =gUnknown_825E074
|
|
ldrh r3, [r4, 0x30]
|
|
movs r1, 0xFF
|
|
ands r1, r3
|
|
lsls r0, r1, 1
|
|
adds r0, r5
|
|
ldrh r0, [r0]
|
|
movs r2, 0
|
|
strh r0, [r4, 0x36]
|
|
adds r1, 0x40
|
|
lsls r1, 1
|
|
adds r1, r5
|
|
ldrh r0, [r1]
|
|
negs r0, r0
|
|
strh r0, [r4, 0x38]
|
|
strh r2, [r4, 0x3A]
|
|
strh r2, [r4, 0x26]
|
|
strh r2, [r4, 0x24]
|
|
ldrb r0, [r4, 0x3]
|
|
lsls r0, 26
|
|
lsrs r6, r0, 27
|
|
lsls r3, 16
|
|
lsrs r3, 24
|
|
strh r3, [r4, 0x30]
|
|
bl Random
|
|
lsls r0, 16
|
|
asrs r7, r0, 16
|
|
movs r0, 0x80
|
|
lsls r0, 8
|
|
ands r0, r7
|
|
cmp r0, 0
|
|
beq _080B2622
|
|
ldrh r1, [r4, 0x30]
|
|
movs r0, 0xFF
|
|
subs r0, r1
|
|
strh r0, [r4, 0x30]
|
|
_080B2622:
|
|
movs r0, 0x30
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 1
|
|
adds r0, r5
|
|
ldrh r0, [r0]
|
|
ldr r3, _080B2684 @ =gOamMatrices
|
|
lsls r2, r6, 3
|
|
adds r2, r3
|
|
adds r1, 0x40
|
|
lsls r1, 1
|
|
adds r1, r5
|
|
ldrh r1, [r1]
|
|
strh r1, [r2, 0x6]
|
|
strh r1, [r2]
|
|
strh r0, [r2, 0x2]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
negs r0, r0
|
|
strh r0, [r2, 0x4]
|
|
adds r3, r4, 0
|
|
adds r3, 0x3F
|
|
ldrb r0, [r3]
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
movs r1, 0x11
|
|
negs r1, r1
|
|
ands r0, r1
|
|
strb r0, [r3]
|
|
movs r0, 0x1
|
|
ands r0, r7
|
|
cmp r0, 0
|
|
beq _080B2672
|
|
adds r2, r4, 0
|
|
adds r2, 0x2A
|
|
movs r1, 0x1
|
|
movs r0, 0x1
|
|
strb r0, [r2]
|
|
ldrb r0, [r3]
|
|
orrs r0, r1
|
|
strb r0, [r3]
|
|
_080B2672:
|
|
ldr r0, _080B2688 @ =sub_80B268C
|
|
str r0, [r4, 0x1C]
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B267C: .4byte gUnknown_2037F1B
|
|
_080B2680: .4byte gUnknown_825E074
|
|
_080B2684: .4byte gOamMatrices
|
|
_080B2688: .4byte sub_80B268C
|
|
thumb_func_end sub_80B2514
|
|
|
|
thumb_func_start sub_80B268C
|
|
sub_80B268C: @ 80B268C
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x10
|
|
adds r4, r0, 0
|
|
adds r5, r4, 0
|
|
adds r5, 0x2E
|
|
ldrh r0, [r4, 0x2E]
|
|
adds r0, 0x1
|
|
movs r1, 0
|
|
mov r8, r1
|
|
movs r7, 0
|
|
strh r0, [r4, 0x2E]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x4
|
|
ble _080B2770
|
|
movs r2, 0x36
|
|
ldrsh r1, [r4, r2]
|
|
movs r2, 0x3A
|
|
ldrsh r0, [r4, r2]
|
|
muls r0, r1
|
|
asrs r6, r0, 8
|
|
strh r6, [r4, 0x24]
|
|
movs r0, 0x38
|
|
ldrsh r1, [r4, r0]
|
|
movs r2, 0x3A
|
|
ldrsh r0, [r4, r2]
|
|
muls r0, r1
|
|
asrs r3, r0, 8
|
|
strh r3, [r4, 0x26]
|
|
ldrh r2, [r4, 0x34]
|
|
movs r1, 0xFF
|
|
adds r0, r1, 0
|
|
ands r0, r2
|
|
ldrh r2, [r4, 0x3A]
|
|
adds r0, r2
|
|
strh r0, [r4, 0x3A]
|
|
ldrh r2, [r4, 0x32]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
ands r1, r2
|
|
cmp r0, r1
|
|
blt _080B2770
|
|
ldrh r0, [r4, 0x20]
|
|
adds r0, r6
|
|
strh r0, [r4, 0x20]
|
|
ldrh r0, [r4, 0x22]
|
|
adds r0, r3
|
|
strh r0, [r4, 0x22]
|
|
strh r7, [r4, 0x24]
|
|
strh r7, [r4, 0x26]
|
|
mov r0, sp
|
|
adds r1, r5, 0
|
|
movs r2, 0x10
|
|
bl memcpy
|
|
adds r0, r5, 0
|
|
movs r1, 0
|
|
movs r2, 0x10
|
|
bl memset
|
|
ldrh r0, [r4, 0x22]
|
|
lsls r0, 8
|
|
strh r0, [r5, 0x8]
|
|
mov r0, sp
|
|
ldrh r0, [r0, 0x6]
|
|
lsrs r1, r0, 8
|
|
strh r1, [r5, 0x6]
|
|
strh r7, [r5, 0x2]
|
|
mov r0, sp
|
|
ldrh r0, [r0, 0x2]
|
|
strh r0, [r5, 0xA]
|
|
adds r0, r4, 0
|
|
adds r0, 0x2A
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _080B2740
|
|
movs r0, 0x8
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _080B2738
|
|
ldr r0, _080B2734 @ =0x00008001
|
|
b _080B274E
|
|
.align 2, 0
|
|
_080B2734: .4byte 0x00008001
|
|
_080B2738:
|
|
ldr r0, _080B273C @ =0x00008002
|
|
b _080B274E
|
|
.align 2, 0
|
|
_080B273C: .4byte 0x00008002
|
|
_080B2740:
|
|
movs r0, 0x8
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _080B274C
|
|
movs r0, 0x1
|
|
b _080B274E
|
|
_080B274C:
|
|
movs r0, 0x2
|
|
_080B274E:
|
|
strh r0, [r5, 0x4]
|
|
mov r0, sp
|
|
ldrh r0, [r0, 0x4]
|
|
lsrs r0, 8
|
|
strb r0, [r5, 0xC]
|
|
subs r0, 0x2
|
|
strb r0, [r5, 0xD]
|
|
mov r0, sp
|
|
ldrh r1, [r0, 0xE]
|
|
lsls r1, 1
|
|
ldrh r2, [r5, 0xE]
|
|
movs r0, 0x1
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strh r0, [r5, 0xE]
|
|
ldr r0, _080B277C @ =sub_80B1F94
|
|
str r0, [r4, 0x1C]
|
|
_080B2770:
|
|
add sp, 0x10
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B277C: .4byte sub_80B1F94
|
|
thumb_func_end sub_80B268C
|
|
|
|
thumb_func_start sub_80B2780
|
|
sub_80B2780: @ 80B2780
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
ldr r0, _080B2798 @ =gUnknown_2037F02
|
|
movs r1, 0x4
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0
|
|
bne _080B279C
|
|
adds r0, r5, 0
|
|
movs r1, 0
|
|
bl sub_8075160
|
|
b _080B27A4
|
|
.align 2, 0
|
|
_080B2798: .4byte gUnknown_2037F02
|
|
_080B279C:
|
|
adds r0, r5, 0
|
|
movs r1, 0
|
|
bl sub_8075114
|
|
_080B27A4:
|
|
ldr r4, _080B280C @ =gUnknown_2037F02
|
|
movs r2, 0x4
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0
|
|
bne _080B27BC
|
|
ldr r0, _080B2810 @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080B27D2
|
|
_080B27BC:
|
|
movs r1, 0x4
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x1
|
|
bne _080B27D8
|
|
ldr r0, _080B2814 @ =gUnknown_2037F1B
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080B27D8
|
|
_080B27D2:
|
|
ldrh r0, [r5, 0x20]
|
|
adds r0, 0x8
|
|
strh r0, [r5, 0x20]
|
|
_080B27D8:
|
|
ldr r4, _080B280C @ =gUnknown_2037F02
|
|
ldrb r1, [r4, 0x8]
|
|
adds r0, r5, 0
|
|
bl SeekSpriteAnim
|
|
ldrh r0, [r5, 0x20]
|
|
subs r0, 0x20
|
|
strh r0, [r5, 0x20]
|
|
ldr r0, _080B2818 @ =0x00000ccc
|
|
strh r0, [r5, 0x30]
|
|
ldrh r1, [r4, 0x8]
|
|
movs r0, 0xC
|
|
adds r2, r0, 0
|
|
muls r2, r1
|
|
adds r0, r2, 0
|
|
ldrh r2, [r5, 0x24]
|
|
adds r0, r2
|
|
strh r0, [r5, 0x24]
|
|
strh r1, [r5, 0x2E]
|
|
ldrh r0, [r4, 0x6]
|
|
strh r0, [r5, 0x3C]
|
|
ldr r0, _080B281C @ =sub_80B2820
|
|
str r0, [r5, 0x1C]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B280C: .4byte gUnknown_2037F02
|
|
_080B2810: .4byte gUnknown_2037F1A
|
|
_080B2814: .4byte gUnknown_2037F1B
|
|
_080B2818: .4byte 0x00000ccc
|
|
_080B281C: .4byte sub_80B2820
|
|
thumb_func_end sub_80B2780
|
|
|
|
thumb_func_start sub_80B2820
|
|
sub_80B2820: @ 80B2820
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrh r0, [r4, 0x30]
|
|
lsls r0, 16
|
|
asrs r0, 24
|
|
ldrh r1, [r4, 0x24]
|
|
adds r0, r1
|
|
movs r1, 0
|
|
strh r0, [r4, 0x24]
|
|
ldrh r0, [r4, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x6
|
|
bne _080B284A
|
|
strh r1, [r4, 0x2E]
|
|
strh r1, [r4, 0x24]
|
|
adds r0, r4, 0
|
|
bl StartSpriteAnim
|
|
_080B284A:
|
|
ldrh r0, [r4, 0x3C]
|
|
subs r0, 0x1
|
|
strh r0, [r4, 0x3C]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
cmp r0, r1
|
|
bne _080B2862
|
|
adds r0, r4, 0
|
|
bl DestroyAnimSprite
|
|
_080B2862:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80B2820
|
|
|
|
thumb_func_start sub_80B2868
|
|
sub_80B2868: @ 80B2868
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r6, r0, 0
|
|
ldr r1, _080B2900 @ =gTasks
|
|
lsls r0, r6, 2
|
|
adds r0, r6
|
|
lsls r0, 3
|
|
adds r7, r0, r1
|
|
ldrh r0, [r7, 0x8]
|
|
movs r1, 0x1F
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080B28E2
|
|
ldr r1, _080B2904 @ =gUnknown_2037EE2
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
movs r1, 0x8
|
|
ldrsh r0, [r7, r1]
|
|
movs r5, 0xD
|
|
negs r5, r5
|
|
adds r1, r5, 0
|
|
bl Sin
|
|
ldr r4, _080B2908 @ =gUnknown_2037F02
|
|
strh r0, [r4]
|
|
movs r1, 0x8
|
|
ldrsh r0, [r7, r1]
|
|
adds r1, r5, 0
|
|
bl Cos
|
|
strh r0, [r4, 0x2]
|
|
movs r0, 0x1
|
|
strh r0, [r4, 0x4]
|
|
movs r0, 0x3
|
|
strh r0, [r4, 0x6]
|
|
ldr r0, _080B290C @ =gUnknown_83E7C98
|
|
mov r8, r0
|
|
ldr r5, _080B2910 @ =gUnknown_2037F1B
|
|
ldrb r0, [r5]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
ldrb r0, [r5]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
mov r0, r8
|
|
adds r1, r4, 0
|
|
movs r3, 0x3
|
|
bl CreateSpriteAndAnimate
|
|
_080B28E2:
|
|
ldrh r0, [r7, 0x8]
|
|
adds r0, 0x8
|
|
strh r0, [r7, 0x8]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0xFF
|
|
ble _080B28F6
|
|
adds r0, r6, 0
|
|
bl DestroyAnimVisualTask
|
|
_080B28F6:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B2900: .4byte gTasks
|
|
_080B2904: .4byte gUnknown_2037EE2
|
|
_080B2908: .4byte gUnknown_2037F02
|
|
_080B290C: .4byte gUnknown_83E7C98
|
|
_080B2910: .4byte gUnknown_2037F1B
|
|
thumb_func_end sub_80B2868
|
|
|
|
thumb_func_start sub_80B2914
|
|
sub_80B2914: @ 80B2914
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
beq _080B2926
|
|
cmp r0, 0x1
|
|
beq _080B2958
|
|
b _080B296C
|
|
_080B2926:
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl sub_8075160
|
|
movs r0, 0
|
|
bl GetAnimBankSpriteId
|
|
ldr r2, _080B2954 @ =gSprites
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
adds r1, 0x3E
|
|
ldrb r0, [r1]
|
|
movs r2, 0x4
|
|
orrs r0, r2
|
|
strb r0, [r1]
|
|
ldrh r0, [r4, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
b _080B296C
|
|
.align 2, 0
|
|
_080B2954: .4byte gSprites
|
|
_080B2958:
|
|
adds r0, r4, 0
|
|
adds r0, 0x3F
|
|
ldrb r1, [r0]
|
|
movs r0, 0x20
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080B296C
|
|
adds r0, r4, 0
|
|
bl DestroyAnimSprite
|
|
_080B296C:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80B2914
|
|
|
|
thumb_func_start sub_80B2974
|
|
sub_80B2974: @ 80B2974
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x1
|
|
beq _080B29AC
|
|
cmp r0, 0x1
|
|
bgt _080B298A
|
|
cmp r0, 0
|
|
beq _080B2990
|
|
b _080B29FE
|
|
_080B298A:
|
|
cmp r0, 0x2
|
|
beq _080B29C0
|
|
b _080B29FE
|
|
_080B2990:
|
|
ldr r0, _080B29A8 @ =gUnknown_2037F1B
|
|
ldrb r0, [r0]
|
|
movs r1, 0x1
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x22]
|
|
negs r0, r0
|
|
subs r0, 0x20
|
|
strh r0, [r4, 0x26]
|
|
b _080B29B8
|
|
.align 2, 0
|
|
_080B29A8: .4byte gUnknown_2037F1B
|
|
_080B29AC:
|
|
ldrh r0, [r4, 0x26]
|
|
adds r0, 0xA
|
|
strh r0, [r4, 0x26]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
blt _080B29FE
|
|
_080B29B8:
|
|
ldrh r0, [r4, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
b _080B29FE
|
|
_080B29C0:
|
|
ldrh r0, [r4, 0x26]
|
|
subs r0, 0xA
|
|
strh r0, [r4, 0x26]
|
|
movs r2, 0x22
|
|
ldrsh r0, [r4, r2]
|
|
movs r2, 0x26
|
|
ldrsh r1, [r4, r2]
|
|
adds r0, r1
|
|
movs r1, 0x20
|
|
negs r1, r1
|
|
cmp r0, r1
|
|
bge _080B29FE
|
|
movs r0, 0
|
|
bl GetAnimBankSpriteId
|
|
ldr r2, _080B2A04 @ =gSprites
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
adds r1, 0x3E
|
|
ldrb r2, [r1]
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
adds r0, r4, 0
|
|
bl DestroyAnimSprite
|
|
_080B29FE:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B2A04: .4byte gSprites
|
|
thumb_func_end sub_80B2974
|
|
|
|
thumb_func_start sub_80B2A08
|
|
sub_80B2A08: @ 80B2A08
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x1
|
|
bl sub_8075160
|
|
ldr r1, _080B2A44 @ =gUnknown_2037F02
|
|
ldrh r0, [r1, 0x4]
|
|
strh r0, [r4, 0x2E]
|
|
ldrh r0, [r1, 0x6]
|
|
strh r0, [r4, 0x30]
|
|
ldr r0, _080B2A48 @ =sub_80B2A50
|
|
str r0, [r4, 0x1C]
|
|
movs r0, 0
|
|
bl GetAnimBankSpriteId
|
|
ldr r2, _080B2A4C @ =gSprites
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
adds r1, 0x3E
|
|
ldrb r0, [r1]
|
|
movs r2, 0x4
|
|
orrs r0, r2
|
|
strb r0, [r1]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B2A44: .4byte gUnknown_2037F02
|
|
_080B2A48: .4byte sub_80B2A50
|
|
_080B2A4C: .4byte gSprites
|
|
thumb_func_end sub_80B2A08
|
|
|
|
thumb_func_start sub_80B2A50
|
|
sub_80B2A50: @ 80B2A50
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
ldrh r1, [r2, 0x2E]
|
|
movs r3, 0x2E
|
|
ldrsh r0, [r2, r3]
|
|
cmp r0, 0
|
|
ble _080B2A64
|
|
subs r0, r1, 0x1
|
|
strh r0, [r2, 0x2E]
|
|
b _080B2AA8
|
|
_080B2A64:
|
|
movs r1, 0x22
|
|
ldrsh r0, [r2, r1]
|
|
movs r3, 0x26
|
|
ldrsh r1, [r2, r3]
|
|
adds r0, r1
|
|
movs r1, 0x20
|
|
negs r1, r1
|
|
cmp r0, r1
|
|
ble _080B2A8A
|
|
ldrh r0, [r2, 0x30]
|
|
ldrh r1, [r2, 0x32]
|
|
adds r0, r1
|
|
strh r0, [r2, 0x32]
|
|
lsls r0, 16
|
|
asrs r0, 24
|
|
ldrh r1, [r2, 0x26]
|
|
subs r1, r0
|
|
strh r1, [r2, 0x26]
|
|
b _080B2AA8
|
|
_080B2A8A:
|
|
adds r3, r2, 0
|
|
adds r3, 0x3E
|
|
ldrb r0, [r3]
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
strb r0, [r3]
|
|
ldrh r0, [r2, 0x34]
|
|
adds r1, r0, 0x1
|
|
strh r1, [r2, 0x34]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x14
|
|
ble _080B2AA8
|
|
ldr r0, _080B2AAC @ =sub_80B2AB0
|
|
str r0, [r2, 0x1C]
|
|
_080B2AA8:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B2AAC: .4byte sub_80B2AB0
|
|
thumb_func_end sub_80B2A50
|
|
|
|
thumb_func_start sub_80B2AB0
|
|
sub_80B2AB0: @ 80B2AB0
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
ldrh r0, [r2, 0x32]
|
|
lsls r0, 16
|
|
asrs r0, 24
|
|
ldrh r1, [r2, 0x26]
|
|
adds r0, r1
|
|
strh r0, [r2, 0x26]
|
|
movs r3, 0x22
|
|
ldrsh r0, [r2, r3]
|
|
movs r3, 0x26
|
|
ldrsh r1, [r2, r3]
|
|
adds r0, r1
|
|
movs r1, 0x20
|
|
negs r1, r1
|
|
cmp r0, r1
|
|
ble _080B2AE0
|
|
adds r3, r2, 0
|
|
adds r3, 0x3E
|
|
ldrb r1, [r3]
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r3]
|
|
_080B2AE0:
|
|
movs r1, 0x26
|
|
ldrsh r0, [r2, r1]
|
|
cmp r0, 0
|
|
ble _080B2AEE
|
|
adds r0, r2, 0
|
|
bl DestroyAnimSprite
|
|
_080B2AEE:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80B2AB0
|
|
|
|
thumb_func_start sub_80B2AF4
|
|
sub_80B2AF4: @ 80B2AF4
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0
|
|
beq _080B2B08
|
|
cmp r0, 0x1
|
|
beq _080B2B60
|
|
b _080B2BCC
|
|
_080B2B08:
|
|
ldr r0, _080B2B18 @ =gUnknown_2037F02
|
|
movs r2, 0
|
|
ldrsh r0, [r0, r2]
|
|
cmp r0, 0
|
|
bne _080B2B20
|
|
ldr r4, _080B2B1C @ =gUnknown_2037F1A
|
|
b _080B2B22
|
|
.align 2, 0
|
|
_080B2B18: .4byte gUnknown_2037F02
|
|
_080B2B1C: .4byte gUnknown_2037F1A
|
|
_080B2B20:
|
|
ldr r4, _080B2B5C @ =gUnknown_2037F1B
|
|
_080B2B22:
|
|
ldrb r0, [r4]
|
|
movs r1, 0
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x20]
|
|
ldrb r0, [r4]
|
|
movs r1, 0x1
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x22]
|
|
movs r0, 0
|
|
movs r3, 0x80
|
|
lsls r3, 2
|
|
strh r3, [r5, 0x30]
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
str r0, [sp]
|
|
adds r0, r5, 0
|
|
movs r1, 0
|
|
bl sub_8075A1C
|
|
ldrh r0, [r5, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x2E]
|
|
b _080B2BCC
|
|
.align 2, 0
|
|
_080B2B5C: .4byte gUnknown_2037F1B
|
|
_080B2B60:
|
|
movs r1, 0x32
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0xB
|
|
bgt _080B2B6E
|
|
ldrh r0, [r5, 0x30]
|
|
subs r0, 0x28
|
|
b _080B2B72
|
|
_080B2B6E:
|
|
ldrh r0, [r5, 0x30]
|
|
adds r0, 0x28
|
|
_080B2B72:
|
|
strh r0, [r5, 0x30]
|
|
ldrh r0, [r5, 0x32]
|
|
adds r0, 0x1
|
|
movs r1, 0
|
|
strh r0, [r5, 0x32]
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
movs r0, 0x30
|
|
ldrsh r3, [r5, r0]
|
|
str r1, [sp]
|
|
adds r0, r5, 0
|
|
bl sub_8075A1C
|
|
ldrb r1, [r5, 0x3]
|
|
lsls r1, 26
|
|
lsrs r1, 27
|
|
movs r0, 0xF4
|
|
lsls r0, 6
|
|
ldr r2, _080B2BD4 @ =gOamMatrices
|
|
lsls r1, 3
|
|
adds r1, r2
|
|
movs r2, 0x6
|
|
ldrsh r1, [r1, r2]
|
|
bl __divsi3
|
|
adds r1, r0, 0x1
|
|
cmp r1, 0x80
|
|
ble _080B2BAC
|
|
movs r1, 0x80
|
|
_080B2BAC:
|
|
movs r0, 0x40
|
|
subs r0, r1
|
|
lsrs r1, r0, 31
|
|
adds r0, r1
|
|
asrs r1, r0, 1
|
|
strh r1, [r5, 0x26]
|
|
movs r1, 0x32
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0x18
|
|
bne _080B2BCC
|
|
adds r0, r5, 0
|
|
bl sub_8075AD8
|
|
adds r0, r5, 0
|
|
bl DestroyAnimSprite
|
|
_080B2BCC:
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B2BD4: .4byte gOamMatrices
|
|
thumb_func_end sub_80B2AF4
|
|
|
|
thumb_func_start sub_80B2BD8
|
|
sub_80B2BD8: @ 80B2BD8
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
bl Random
|
|
ldr r4, _080B2BFC @ =0x000001ff
|
|
ands r4, r0
|
|
bl Random
|
|
movs r1, 0x7F
|
|
ands r1, r0
|
|
movs r0, 0x1
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
beq _080B2C00
|
|
movs r2, 0xB8
|
|
lsls r2, 2
|
|
adds r0, r4, r2
|
|
b _080B2C08
|
|
.align 2, 0
|
|
_080B2BFC: .4byte 0x000001ff
|
|
_080B2C00:
|
|
movs r2, 0xB8
|
|
lsls r2, 2
|
|
adds r0, r2, 0
|
|
subs r0, r4
|
|
_080B2C08:
|
|
strh r0, [r5, 0x2E]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080B2C1C
|
|
movs r2, 0xE0
|
|
lsls r2, 2
|
|
adds r0, r2, 0
|
|
adds r0, r1, r0
|
|
b _080B2C24
|
|
_080B2C1C:
|
|
movs r2, 0xE0
|
|
lsls r2, 2
|
|
adds r0, r2, 0
|
|
subs r0, r1
|
|
_080B2C24:
|
|
strh r0, [r5, 0x30]
|
|
ldr r2, _080B2C4C @ =gUnknown_2037F02
|
|
ldrh r0, [r2]
|
|
strh r0, [r5, 0x32]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
beq _080B2C40
|
|
ldrb r0, [r5, 0x3]
|
|
movs r1, 0x3F
|
|
negs r1, r1
|
|
ands r1, r0
|
|
movs r0, 0x10
|
|
orrs r1, r0
|
|
strb r1, [r5, 0x3]
|
|
_080B2C40:
|
|
movs r1, 0x2
|
|
ldrsh r0, [r2, r1]
|
|
cmp r0, 0
|
|
bne _080B2C54
|
|
ldr r4, _080B2C50 @ =gUnknown_2037F1A
|
|
b _080B2C56
|
|
.align 2, 0
|
|
_080B2C4C: .4byte gUnknown_2037F02
|
|
_080B2C50: .4byte gUnknown_2037F1A
|
|
_080B2C54:
|
|
ldr r4, _080B2C80 @ =gUnknown_2037F1B
|
|
_080B2C56:
|
|
ldrb r0, [r4]
|
|
movs r1, 0
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x20]
|
|
ldrb r0, [r4]
|
|
movs r1, 0x1
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r0, 0x20
|
|
strh r0, [r5, 0x22]
|
|
ldr r0, _080B2C84 @ =sub_80B2C88
|
|
str r0, [r5, 0x1C]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B2C80: .4byte gUnknown_2037F1B
|
|
_080B2C84: .4byte sub_80B2C88
|
|
thumb_func_end sub_80B2BD8
|
|
|
|
thumb_func_start sub_80B2C88
|
|
sub_80B2C88: @ 80B2C88
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x32
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bne _080B2CA0
|
|
ldrh r3, [r4, 0x2E]
|
|
lsls r0, r3, 16
|
|
asrs r0, 24
|
|
ldrh r1, [r4, 0x24]
|
|
adds r0, r1
|
|
b _080B2CAA
|
|
_080B2CA0:
|
|
ldrh r3, [r4, 0x2E]
|
|
lsls r1, r3, 16
|
|
asrs r1, 24
|
|
ldrh r0, [r4, 0x24]
|
|
subs r0, r1
|
|
_080B2CAA:
|
|
strh r0, [r4, 0x24]
|
|
ldrh r2, [r4, 0x30]
|
|
lsls r1, r2, 16
|
|
asrs r1, 24
|
|
ldrh r0, [r4, 0x26]
|
|
subs r0, r1
|
|
strh r0, [r4, 0x26]
|
|
strh r3, [r4, 0x2E]
|
|
adds r0, r2, 0
|
|
subs r0, 0x20
|
|
strh r0, [r4, 0x30]
|
|
lsls r0, r3, 16
|
|
cmp r0, 0
|
|
bge _080B2CCA
|
|
movs r0, 0
|
|
strh r0, [r4, 0x2E]
|
|
_080B2CCA:
|
|
ldrh r0, [r4, 0x34]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x34]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1F
|
|
bne _080B2CDE
|
|
adds r0, r4, 0
|
|
bl DestroyAnimSprite
|
|
_080B2CDE:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80B2C88
|
|
|
|
thumb_func_start sub_80B2CE4
|
|
sub_80B2CE4: @ 80B2CE4
|
|
movs r1, 0
|
|
strh r1, [r0, 0x3A]
|
|
movs r1, 0x40
|
|
strh r1, [r0, 0x3C]
|
|
ldr r1, _080B2CF4 @ =sub_80B2CF8
|
|
str r1, [r0, 0x1C]
|
|
bx lr
|
|
.align 2, 0
|
|
_080B2CF4: .4byte sub_80B2CF8
|
|
thumb_func_end sub_80B2CE4
|
|
|
|
thumb_func_start sub_80B2CF8
|
|
sub_80B2CF8: @ 80B2CF8
|
|
push {lr}
|
|
adds r3, r0, 0
|
|
movs r0, 0x2E
|
|
ldrsh r1, [r3, r0]
|
|
cmp r1, 0
|
|
beq _080B2D0A
|
|
cmp r1, 0x1
|
|
beq _080B2D58
|
|
b _080B2D5E
|
|
_080B2D0A:
|
|
ldrh r0, [r3, 0x30]
|
|
adds r0, 0x1
|
|
strh r0, [r3, 0x30]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x8
|
|
ble _080B2D5E
|
|
strh r1, [r3, 0x30]
|
|
movs r1, 0x3E
|
|
adds r1, r3
|
|
mov r12, r1
|
|
ldrb r2, [r1]
|
|
lsls r0, r2, 29
|
|
lsrs r0, 31
|
|
movs r1, 0x1
|
|
eors r1, r0
|
|
lsls r1, 2
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
mov r1, r12
|
|
strb r0, [r1]
|
|
ldrh r0, [r3, 0x32]
|
|
adds r0, 0x1
|
|
strh r0, [r3, 0x32]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x5
|
|
ble _080B2D5E
|
|
ldrb r1, [r1]
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080B2D5E
|
|
ldrh r0, [r3, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r3, 0x2E]
|
|
b _080B2D5E
|
|
_080B2D58:
|
|
adds r0, r3, 0
|
|
bl DestroyAnimSprite
|
|
_080B2D5E:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80B2CF8
|
|
|
|
thumb_func_start sub_80B2D64
|
|
sub_80B2D64: @ 80B2D64
|
|
push {r4-r6,lr}
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5,r6}
|
|
sub sp, 0x4
|
|
mov r8, r0
|
|
ldrh r4, [r0, 0x20]
|
|
ldrh r5, [r0, 0x22]
|
|
ldr r6, _080B2E18 @ =gUnknown_2037F1A
|
|
ldrb r0, [r6]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r1, r8
|
|
strh r0, [r1, 0x20]
|
|
ldrb r0, [r6]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
adds r6, r0, 0
|
|
lsls r6, 24
|
|
lsrs r6, 24
|
|
mov r2, r8
|
|
strh r6, [r2, 0x22]
|
|
ldrh r0, [r2, 0x20]
|
|
mov r9, r0
|
|
mov r1, r9
|
|
lsls r0, r1, 4
|
|
strh r0, [r2, 0x36]
|
|
lsls r0, r6, 4
|
|
strh r0, [r2, 0x38]
|
|
lsls r4, 16
|
|
asrs r4, 16
|
|
movs r1, 0x20
|
|
ldrsh r0, [r2, r1]
|
|
subs r0, r4, r0
|
|
lsls r0, 4
|
|
movs r1, 0xC
|
|
bl __divsi3
|
|
mov r2, r8
|
|
strh r0, [r2, 0x3A]
|
|
lsls r5, 16
|
|
asrs r5, 16
|
|
movs r1, 0x22
|
|
ldrsh r0, [r2, r1]
|
|
subs r0, r5, r0
|
|
lsls r0, 4
|
|
movs r1, 0xC
|
|
bl __divsi3
|
|
mov r2, r8
|
|
strh r0, [r2, 0x3C]
|
|
mov r0, r9
|
|
subs r4, r0
|
|
lsls r4, 16
|
|
asrs r4, 16
|
|
subs r5, r6
|
|
lsls r5, 16
|
|
asrs r5, 16
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8075B30
|
|
lsls r0, 16
|
|
movs r1, 0xC0
|
|
lsls r1, 24
|
|
adds r0, r1
|
|
lsrs r0, 16
|
|
movs r3, 0x80
|
|
lsls r3, 1
|
|
str r0, [sp]
|
|
mov r0, r8
|
|
movs r1, 0x1
|
|
adds r2, r3, 0
|
|
bl sub_8075A1C
|
|
ldr r0, _080B2E1C @ =sub_80B2E20
|
|
mov r2, r8
|
|
str r0, [r2, 0x1C]
|
|
add sp, 0x4
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B2E18: .4byte gUnknown_2037F1A
|
|
_080B2E1C: .4byte sub_80B2E20
|
|
thumb_func_end sub_80B2D64
|
|
|
|
thumb_func_start sub_80B2E20
|
|
sub_80B2E20: @ 80B2E20
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
ldrh r0, [r2, 0x3A]
|
|
ldrh r1, [r2, 0x36]
|
|
adds r0, r1
|
|
strh r0, [r2, 0x36]
|
|
ldrh r1, [r2, 0x3C]
|
|
ldrh r3, [r2, 0x38]
|
|
adds r1, r3
|
|
strh r1, [r2, 0x38]
|
|
lsls r0, 16
|
|
asrs r0, 20
|
|
strh r0, [r2, 0x20]
|
|
lsls r1, 16
|
|
asrs r3, r1, 20
|
|
strh r3, [r2, 0x22]
|
|
adds r0, 0x2D
|
|
lsls r0, 16
|
|
movs r1, 0xA5
|
|
lsls r1, 17
|
|
cmp r0, r1
|
|
bhi _080B2E5A
|
|
adds r1, r3, 0
|
|
cmp r1, 0x9D
|
|
bgt _080B2E5A
|
|
movs r0, 0x2D
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
bge _080B2E60
|
|
_080B2E5A:
|
|
adds r0, r2, 0
|
|
bl move_anim_8074EE0
|
|
_080B2E60:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80B2E20
|
|
|
|
thumb_func_start sub_80B2E64
|
|
sub_80B2E64: @ 80B2E64
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r0, _080B2E94 @ =gUnknown_2037F02
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0
|
|
bne _080B2E9C
|
|
movs r0, 0
|
|
bl GetAnimBankSpriteId
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, _080B2E98 @ =gSprites
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
adds r1, 0x3E
|
|
ldrb r0, [r1]
|
|
movs r2, 0x4
|
|
orrs r0, r2
|
|
b _080B2EBA
|
|
.align 2, 0
|
|
_080B2E94: .4byte gUnknown_2037F02
|
|
_080B2E98: .4byte gSprites
|
|
_080B2E9C:
|
|
movs r0, 0
|
|
bl GetAnimBankSpriteId
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, _080B2EC8 @ =gSprites
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
adds r1, 0x3E
|
|
ldrb r2, [r1]
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r2
|
|
_080B2EBA:
|
|
strb r0, [r1]
|
|
adds r0, r4, 0
|
|
bl DestroyAnimVisualTask
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B2EC8: .4byte gSprites
|
|
thumb_func_end sub_80B2E64
|
|
|
|
thumb_func_start sub_80B2ECC
|
|
sub_80B2ECC: @ 80B2ECC
|
|
push {r4-r7,lr}
|
|
adds r6, r0, 0
|
|
ldr r0, _080B2F84 @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080B2EE8
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080B2EFE
|
|
_080B2EE8:
|
|
ldrb r1, [r6, 0x5]
|
|
movs r0, 0xD
|
|
negs r0, r0
|
|
ands r0, r1
|
|
movs r1, 0x8
|
|
orrs r0, r1
|
|
strb r0, [r6, 0x5]
|
|
adds r1, r6, 0
|
|
adds r1, 0x43
|
|
movs r0, 0xC8
|
|
strb r0, [r1]
|
|
_080B2EFE:
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080B2F5A
|
|
movs r0, 0x1
|
|
bl GetBattlerAtPosition
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
adds r7, r4, 0
|
|
adds r0, r4, 0
|
|
bl sub_80768B0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0x1
|
|
eors r0, r1
|
|
negs r1, r0
|
|
orrs r1, r0
|
|
lsrs r5, r1, 31
|
|
adds r0, r4, 0
|
|
bl sub_8072DF0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080B2F3C
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8072E48
|
|
_080B2F3C:
|
|
movs r0, 0x2
|
|
adds r4, r0, 0
|
|
eors r4, r7
|
|
adds r0, r4, 0
|
|
bl sub_8072DF0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080B2F5A
|
|
movs r0, 0x1
|
|
eors r5, r0
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8072E48
|
|
_080B2F5A:
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080B2F90
|
|
bl sub_8075290
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080B2F90
|
|
ldr r0, _080B2F84 @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080B2F88
|
|
movs r0, 0x48
|
|
strh r0, [r6, 0x20]
|
|
movs r0, 0x50
|
|
b _080B2FCA
|
|
.align 2, 0
|
|
_080B2F84: .4byte gUnknown_2037F1A
|
|
_080B2F88:
|
|
movs r0, 0xB0
|
|
strh r0, [r6, 0x20]
|
|
movs r0, 0x28
|
|
b _080B2FCA
|
|
_080B2F90:
|
|
ldr r5, _080B3000 @ =gUnknown_2037F1A
|
|
ldrb r0, [r5]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080B2FA6
|
|
ldr r1, _080B3004 @ =gUnknown_2037F02
|
|
ldrh r0, [r1]
|
|
negs r0, r0
|
|
strh r0, [r1]
|
|
_080B2FA6:
|
|
ldrb r0, [r5]
|
|
movs r1, 0
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
ldr r4, _080B3004 @ =gUnknown_2037F02
|
|
lsrs r0, 24
|
|
ldrh r1, [r4]
|
|
adds r0, r1
|
|
strh r0, [r6, 0x20]
|
|
ldrb r0, [r5]
|
|
movs r1, 0x1
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrh r4, [r4, 0x2]
|
|
adds r0, r4
|
|
_080B2FCA:
|
|
strh r0, [r6, 0x22]
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080B2FDC
|
|
ldrh r0, [r6, 0x22]
|
|
adds r0, 0x9
|
|
strh r0, [r6, 0x22]
|
|
_080B2FDC:
|
|
ldr r0, _080B3004 @ =gUnknown_2037F02
|
|
ldrh r0, [r0, 0x4]
|
|
bl IndexOfSpritePaletteTag
|
|
lsls r0, 24
|
|
lsrs r0, 20
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
strh r0, [r6, 0x2E]
|
|
ldr r1, _080B3008 @ =sub_80B300C
|
|
str r1, [r6, 0x1C]
|
|
adds r0, r6, 0
|
|
bl _call_via_r1
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B3000: .4byte gUnknown_2037F1A
|
|
_080B3004: .4byte gUnknown_2037F02
|
|
_080B3008: .4byte sub_80B300C
|
|
thumb_func_end sub_80B2ECC
|
|
|
|
thumb_func_start sub_80B300C
|
|
sub_80B300C: @ 80B300C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrh r0, [r4, 0x34]
|
|
movs r1, 0x10
|
|
subs r1, r0
|
|
lsls r1, 8
|
|
orrs r1, r0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
ldrh r1, [r4, 0x34]
|
|
movs r2, 0x34
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0xD
|
|
bne _080B3038
|
|
ldr r0, _080B3034 @ =sub_80B3044
|
|
str r0, [r4, 0x1C]
|
|
b _080B303C
|
|
.align 2, 0
|
|
_080B3034: .4byte sub_80B3044
|
|
_080B3038:
|
|
adds r0, r1, 0x1
|
|
strh r0, [r4, 0x34]
|
|
_080B303C:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80B300C
|
|
|
|
thumb_func_start sub_80B3044
|
|
sub_80B3044: @ 80B3044
|
|
push {r4-r7,lr}
|
|
adds r3, r0, 0
|
|
ldrh r0, [r3, 0x30]
|
|
adds r0, 0x1
|
|
strh r0, [r3, 0x30]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x2
|
|
bne _080B30A2
|
|
movs r0, 0
|
|
strh r0, [r3, 0x30]
|
|
ldrh r4, [r3, 0x2E]
|
|
ldr r1, _080B30A8 @ =gPlttBufferFaded
|
|
adds r0, r4, 0
|
|
adds r0, 0x8
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
ldrh r7, [r0]
|
|
movs r5, 0x8
|
|
adds r6, r1, 0
|
|
adds r1, r4, 0x7
|
|
lsls r0, r4, 1
|
|
adds r0, r6
|
|
adds r2, r0, 0
|
|
adds r2, 0x10
|
|
lsls r1, 1
|
|
adds r1, r6
|
|
_080B307A:
|
|
ldrh r0, [r1]
|
|
strh r0, [r2]
|
|
subs r1, 0x2
|
|
subs r2, 0x2
|
|
subs r5, 0x1
|
|
cmp r5, 0
|
|
bgt _080B307A
|
|
adds r0, r4, 0x1
|
|
lsls r0, 1
|
|
adds r0, r6
|
|
strh r7, [r0]
|
|
ldrh r0, [r3, 0x32]
|
|
adds r0, 0x1
|
|
strh r0, [r3, 0x32]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x10
|
|
bne _080B30A2
|
|
ldr r0, _080B30AC @ =sub_80B30B0
|
|
str r0, [r3, 0x1C]
|
|
_080B30A2:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B30A8: .4byte gPlttBufferFaded
|
|
_080B30AC: .4byte sub_80B30B0
|
|
thumb_func_end sub_80B3044
|
|
|
|
thumb_func_start sub_80B30B0
|
|
sub_80B30B0: @ 80B30B0
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
ldrh r0, [r5, 0x34]
|
|
movs r1, 0x10
|
|
subs r1, r0
|
|
lsls r1, 8
|
|
orrs r1, r0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
ldrh r0, [r5, 0x34]
|
|
subs r0, 0x1
|
|
strh r0, [r5, 0x34]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
cmp r0, r1
|
|
bne _080B3156
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080B3146
|
|
movs r0, 0x1
|
|
bl GetBattlerAtPosition
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
adds r6, r4, 0
|
|
adds r0, r4, 0
|
|
bl sub_8072DF0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080B3118
|
|
ldr r2, _080B315C @ =gSprites
|
|
ldr r0, _080B3160 @ =gUnknown_2023D44
|
|
adds r0, r4, r0
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
adds r0, 0x3E
|
|
ldrb r2, [r0]
|
|
movs r1, 0x5
|
|
negs r1, r1
|
|
ands r1, r2
|
|
strb r1, [r0]
|
|
_080B3118:
|
|
movs r0, 0x2
|
|
adds r4, r0, 0
|
|
eors r4, r6
|
|
adds r0, r4, 0
|
|
bl sub_8072DF0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080B3146
|
|
ldr r2, _080B315C @ =gSprites
|
|
ldr r0, _080B3160 @ =gUnknown_2023D44
|
|
adds r0, r4, r0
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
adds r0, 0x3E
|
|
ldrb r2, [r0]
|
|
movs r1, 0x5
|
|
negs r1, r1
|
|
ands r1, r2
|
|
strb r1, [r0]
|
|
_080B3146:
|
|
adds r2, r5, 0
|
|
adds r2, 0x3E
|
|
ldrb r0, [r2]
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r0, _080B3164 @ =sub_80B3168
|
|
str r0, [r5, 0x1C]
|
|
_080B3156:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B315C: .4byte gSprites
|
|
_080B3160: .4byte gUnknown_2023D44
|
|
_080B3164: .4byte sub_80B3168
|
|
thumb_func_end sub_80B30B0
|
|
|
|
thumb_func_start sub_80B3168
|
|
sub_80B3168: @ 80B3168
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080B31C0
|
|
movs r0, 0x1
|
|
bl GetBattlerAtPosition
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r4, r0, 0
|
|
bl sub_80768B0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0x1
|
|
eors r0, r1
|
|
negs r1, r0
|
|
orrs r1, r0
|
|
lsrs r5, r1, 31
|
|
adds r0, r4, 0
|
|
bl sub_8072DF0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080B31A6
|
|
adds r0, r5, 0
|
|
bl sub_8073128
|
|
_080B31A6:
|
|
movs r0, 0x2
|
|
eors r4, r0
|
|
adds r0, r4, 0
|
|
bl sub_8072DF0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080B31C0
|
|
movs r0, 0x1
|
|
eors r5, r0
|
|
adds r0, r5, 0
|
|
bl sub_8073128
|
|
_080B31C0:
|
|
ldr r0, _080B31CC @ =DestroyAnimSprite
|
|
str r0, [r6, 0x1C]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B31CC: .4byte DestroyAnimSprite
|
|
thumb_func_end sub_80B3168
|
|
|
|
thumb_func_start sub_80B31D0
|
|
sub_80B31D0: @ 80B31D0
|
|
push {r4-r6,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bne _080B325C
|
|
ldr r5, _080B321C @ =gUnknown_2037F02
|
|
movs r1, 0x6
|
|
ldrsh r0, [r5, r1]
|
|
movs r6, 0
|
|
cmp r0, 0
|
|
bne _080B31EA
|
|
movs r6, 0x1
|
|
_080B31EA:
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080B3232
|
|
bl sub_8075290
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080B3232
|
|
ldr r0, _080B3220 @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080B3224
|
|
ldrh r0, [r5]
|
|
movs r1, 0x48
|
|
subs r1, r0
|
|
strh r1, [r4, 0x20]
|
|
ldrh r0, [r5, 0x2]
|
|
adds r0, 0x50
|
|
strh r0, [r4, 0x22]
|
|
b _080B3254
|
|
.align 2, 0
|
|
_080B321C: .4byte gUnknown_2037F02
|
|
_080B3220: .4byte gUnknown_2037F1A
|
|
_080B3224:
|
|
ldrh r0, [r5]
|
|
adds r0, 0xB0
|
|
strh r0, [r4, 0x20]
|
|
ldrh r0, [r5, 0x2]
|
|
adds r0, 0x28
|
|
strh r0, [r4, 0x22]
|
|
b _080B3254
|
|
_080B3232:
|
|
ldr r0, _080B3248 @ =gUnknown_2037F02
|
|
movs r1, 0x4
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0
|
|
bne _080B324C
|
|
adds r0, r4, 0
|
|
adds r1, r6, 0
|
|
bl sub_8075160
|
|
b _080B3254
|
|
.align 2, 0
|
|
_080B3248: .4byte gUnknown_2037F02
|
|
_080B324C:
|
|
adds r0, r4, 0
|
|
adds r1, r6, 0
|
|
bl sub_8075114
|
|
_080B3254:
|
|
ldrh r0, [r4, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
b _080B3270
|
|
_080B325C:
|
|
adds r0, r4, 0
|
|
adds r0, 0x3F
|
|
ldrb r1, [r0]
|
|
movs r0, 0x30
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080B3270
|
|
adds r0, r4, 0
|
|
bl move_anim_8074EE0
|
|
_080B3270:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80B31D0
|
|
|
|
thumb_func_start sub_80B3278
|
|
sub_80B3278: @ 80B3278
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
ldr r4, _080B32C0 @ =gUnknown_2037F1A
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x20]
|
|
ldrb r0, [r4]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x22]
|
|
ldrb r0, [r4]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080B32C8
|
|
adds r0, r5, 0
|
|
movs r1, 0x1
|
|
bl StartSpriteAnim
|
|
ldrh r0, [r5, 0x20]
|
|
subs r0, 0x28
|
|
strh r0, [r5, 0x20]
|
|
ldrh r0, [r5, 0x22]
|
|
adds r0, 0xA
|
|
strh r0, [r5, 0x22]
|
|
ldr r0, _080B32C4 @ =0x0000ffff
|
|
b _080B32D6
|
|
.align 2, 0
|
|
_080B32C0: .4byte gUnknown_2037F1A
|
|
_080B32C4: .4byte 0x0000ffff
|
|
_080B32C8:
|
|
ldrh r0, [r5, 0x20]
|
|
adds r0, 0x28
|
|
strh r0, [r5, 0x20]
|
|
ldrh r0, [r5, 0x22]
|
|
subs r0, 0xA
|
|
strh r0, [r5, 0x22]
|
|
movs r0, 0x1
|
|
_080B32D6:
|
|
strh r0, [r5, 0x30]
|
|
ldr r1, _080B32EC @ =DestroyAnimSprite
|
|
adds r0, r5, 0
|
|
bl StoreSpriteCallbackInData6
|
|
ldr r0, _080B32F0 @ =sub_8074F6C
|
|
str r0, [r5, 0x1C]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B32EC: .4byte DestroyAnimSprite
|
|
_080B32F0: .4byte sub_8074F6C
|
|
thumb_func_end sub_80B3278
|
|
|
|
thumb_func_start sub_80B32F4
|
|
sub_80B32F4: @ 80B32F4
|
|
push {r4-r7,lr}
|
|
adds r5, r0, 0
|
|
ldr r6, _080B3378 @ =gUnknown_2037F1A
|
|
ldrb r0, [r6]
|
|
movs r1, 0x1
|
|
bl sub_8076B2C
|
|
lsls r0, 16
|
|
asrs r1, r0, 16
|
|
lsrs r0, 31
|
|
adds r1, r0
|
|
lsls r1, 15
|
|
lsrs r4, r1, 16
|
|
ldrb r0, [r6]
|
|
movs r1, 0
|
|
bl sub_8076B2C
|
|
lsls r0, 16
|
|
asrs r1, r0, 16
|
|
lsrs r0, 31
|
|
adds r1, r0
|
|
asrs r1, 1
|
|
negs r1, r1
|
|
lsls r1, 16
|
|
lsrs r7, r1, 16
|
|
ldrb r0, [r6]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _080B333A
|
|
lsls r0, r4, 16
|
|
negs r0, r0
|
|
lsrs r4, r0, 16
|
|
_080B333A:
|
|
ldrb r0, [r6]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r0, r4
|
|
strh r0, [r5, 0x20]
|
|
ldrb r0, [r6]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r0, r7
|
|
strh r0, [r5, 0x22]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0xF
|
|
bgt _080B3366
|
|
movs r0, 0x10
|
|
strh r0, [r5, 0x22]
|
|
_080B3366:
|
|
ldr r1, _080B337C @ =sub_80B3384
|
|
adds r0, r5, 0
|
|
bl StoreSpriteCallbackInData6
|
|
ldr r0, _080B3380 @ =sub_8074F6C
|
|
str r0, [r5, 0x1C]
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B3378: .4byte gUnknown_2037F1A
|
|
_080B337C: .4byte sub_80B3384
|
|
_080B3380: .4byte sub_8074F6C
|
|
thumb_func_end sub_80B32F4
|
|
|
|
thumb_func_start sub_80B3384
|
|
sub_80B3384: @ 80B3384
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrb r1, [r4, 0x1]
|
|
movs r0, 0x4
|
|
negs r0, r0
|
|
ands r0, r1
|
|
movs r1, 0x1
|
|
orrs r0, r1
|
|
strb r0, [r4, 0x1]
|
|
ldr r0, _080B33B0 @ =gUnknown_83E6FF0
|
|
str r0, [r4, 0x10]
|
|
movs r0, 0
|
|
strh r0, [r4, 0x2E]
|
|
adds r0, r4, 0
|
|
bl InitSpriteAffineAnim
|
|
ldr r0, _080B33B4 @ =sub_80B33B8
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B33B0: .4byte gUnknown_83E6FF0
|
|
_080B33B4: .4byte sub_80B33B8
|
|
thumb_func_end sub_80B3384
|
|
|
|
thumb_func_start sub_80B33B8
|
|
sub_80B33B8: @ 80B33B8
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
beq _080B33CA
|
|
cmp r0, 0x1
|
|
beq _080B33F8
|
|
b _080B3410
|
|
_080B33CA:
|
|
adds r0, r4, 0
|
|
adds r0, 0x3F
|
|
ldrb r1, [r0]
|
|
movs r0, 0x20
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080B3410
|
|
ldrb r0, [r4, 0x3]
|
|
lsls r0, 26
|
|
lsrs r0, 27
|
|
bl FreeOamMatrix
|
|
ldrb r1, [r4, 0x1]
|
|
movs r0, 0x4
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r4, 0x1]
|
|
movs r0, 0x12
|
|
strh r0, [r4, 0x30]
|
|
ldrh r0, [r4, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
b _080B3410
|
|
_080B33F8:
|
|
ldrh r0, [r4, 0x30]
|
|
subs r0, 0x1
|
|
strh r0, [r4, 0x30]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
cmp r0, r1
|
|
bne _080B3410
|
|
adds r0, r4, 0
|
|
bl DestroyAnimSprite
|
|
_080B3410:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80B33B8
|
|
|
|
thumb_func_start sub_80B3418
|
|
sub_80B3418: @ 80B3418
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r4, r0, 2
|
|
adds r4, r0
|
|
lsls r4, 3
|
|
ldr r0, _080B3448 @ =gTasks
|
|
adds r4, r0
|
|
movs r0, 0
|
|
bl GetAnimBankSpriteId
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
strh r1, [r4, 0x8]
|
|
ldr r2, _080B344C @ =gUnknown_83E700C
|
|
adds r0, r4, 0
|
|
bl sub_80762D0
|
|
ldr r0, _080B3450 @ =sub_80B3454
|
|
str r0, [r4]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B3448: .4byte gTasks
|
|
_080B344C: .4byte gUnknown_83E700C
|
|
_080B3450: .4byte sub_80B3454
|
|
thumb_func_end sub_80B3418
|
|
|
|
thumb_func_start sub_80B3454
|
|
sub_80B3454: @ 80B3454
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
ldr r1, _080B347C @ =gTasks
|
|
adds r0, r1
|
|
bl sub_8076308
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080B3474
|
|
adds r0, r4, 0
|
|
bl DestroyAnimVisualTask
|
|
_080B3474:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B347C: .4byte gTasks
|
|
thumb_func_end sub_80B3454
|
|
|
|
thumb_func_start sub_80B3480
|
|
sub_80B3480: @ 80B3480
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
ldr r0, _080B34CC @ =gTasks
|
|
adds r4, r1, r0
|
|
movs r0, 0
|
|
bl GetAnimBankSpriteId
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0
|
|
strh r0, [r4, 0x8]
|
|
strh r1, [r4, 0xA]
|
|
strh r1, [r4, 0xC]
|
|
ldr r0, _080B34D0 @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
movs r1, 0x8
|
|
cmp r0, 0
|
|
beq _080B34B4
|
|
movs r1, 0x4
|
|
_080B34B4:
|
|
strh r1, [r4, 0xE]
|
|
ldrb r1, [r4, 0x8]
|
|
ldr r2, _080B34D4 @ =gUnknown_83E702C
|
|
adds r0, r4, 0
|
|
bl sub_80762D0
|
|
ldr r0, _080B34D8 @ =sub_80B34DC
|
|
str r0, [r4]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B34CC: .4byte gTasks
|
|
_080B34D0: .4byte gUnknown_2037F1A
|
|
_080B34D4: .4byte gUnknown_83E702C
|
|
_080B34D8: .4byte sub_80B34DC
|
|
thumb_func_end sub_80B3480
|
|
|
|
thumb_func_start sub_80B34DC
|
|
sub_80B34DC: @ 80B34DC
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
ldr r1, _080B34FC @ =gTasks
|
|
adds r4, r0, r1
|
|
movs r1, 0xA
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
beq _080B3500
|
|
cmp r0, 0x1
|
|
beq _080B351C
|
|
b _080B357A
|
|
.align 2, 0
|
|
_080B34FC: .4byte gTasks
|
|
_080B3500:
|
|
adds r0, r4, 0
|
|
bl sub_8076308
|
|
ldrh r0, [r4, 0xC]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0xC]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x13
|
|
ble _080B357A
|
|
ldrh r0, [r4, 0xA]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0xA]
|
|
b _080B357A
|
|
_080B351C:
|
|
movs r1, 0xE
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
beq _080B3544
|
|
ldr r2, _080B3540 @ =gSprites
|
|
movs r0, 0x8
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrh r1, [r0, 0x26]
|
|
subs r1, 0x8
|
|
strh r1, [r0, 0x26]
|
|
ldrh r0, [r4, 0xE]
|
|
subs r0, 0x1
|
|
strh r0, [r4, 0xE]
|
|
b _080B357A
|
|
.align 2, 0
|
|
_080B3540: .4byte gSprites
|
|
_080B3544:
|
|
ldr r3, _080B3580 @ =gSprites
|
|
movs r0, 0x8
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
adds r0, 0x3E
|
|
ldrb r1, [r0]
|
|
movs r2, 0x4
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
movs r0, 0x8
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
movs r1, 0x88
|
|
lsls r1, 1
|
|
strh r1, [r0, 0x20]
|
|
ldrb r0, [r4, 0x8]
|
|
bl sub_8075980
|
|
adds r0, r5, 0
|
|
bl DestroyAnimVisualTask
|
|
_080B357A:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B3580: .4byte gSprites
|
|
thumb_func_end sub_80B34DC
|
|
|
|
thumb_func_start sub_80B3584
|
|
sub_80B3584: @ 80B3584
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
ldr r0, _080B360C @ =gTasks
|
|
adds r5, r1, r0
|
|
movs r1, 0
|
|
movs r0, 0x10
|
|
strh r0, [r5, 0xE]
|
|
strh r1, [r5, 0x10]
|
|
ldr r4, _080B3610 @ =gUnknown_2037F1A
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x22]
|
|
ldrb r0, [r4]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x24]
|
|
ldrb r0, [r4]
|
|
movs r1, 0x1
|
|
bl sub_8076B2C
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r1, 0x3
|
|
bl __divsi3
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
ldrb r0, [r4]
|
|
movs r1, 0
|
|
bl sub_8076B2C
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r1, 0x3
|
|
bl __divsi3
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
adds r1, r0, 0
|
|
cmp r0, r6
|
|
bcs _080B35EE
|
|
adds r1, r6, 0
|
|
_080B35EE:
|
|
strh r1, [r5, 0x20]
|
|
movs r1, 0xFD
|
|
lsls r1, 6
|
|
movs r0, 0x50
|
|
bl SetGpuReg
|
|
movs r0, 0x52
|
|
movs r1, 0x10
|
|
bl SetGpuReg
|
|
ldr r0, _080B3614 @ =sub_80B3618
|
|
str r0, [r5]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B360C: .4byte gTasks
|
|
_080B3610: .4byte gUnknown_2037F1A
|
|
_080B3614: .4byte sub_80B3618
|
|
thumb_func_end sub_80B3584
|
|
|
|
thumb_func_start sub_80B3618
|
|
sub_80B3618: @ 80B3618
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
ldr r1, _080B363C @ =gTasks
|
|
adds r4, r0, r1
|
|
movs r0, 0x8
|
|
ldrsh r1, [r4, r0]
|
|
cmp r1, 0x1
|
|
beq _080B3718
|
|
cmp r1, 0x1
|
|
bgt _080B3640
|
|
cmp r1, 0
|
|
beq _080B364E
|
|
b _080B379E
|
|
.align 2, 0
|
|
_080B363C: .4byte gTasks
|
|
_080B3640:
|
|
cmp r1, 0x2
|
|
bne _080B3646
|
|
b _080B377A
|
|
_080B3646:
|
|
cmp r1, 0x3
|
|
bne _080B364C
|
|
b _080B3788
|
|
_080B364C:
|
|
b _080B379E
|
|
_080B364E:
|
|
ldrh r0, [r4, 0xA]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0xA]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x8
|
|
bgt _080B365E
|
|
b _080B379E
|
|
_080B365E:
|
|
strh r1, [r4, 0xA]
|
|
ldr r0, _080B369C @ =gUnknown_83E7044
|
|
movs r2, 0x22
|
|
ldrsh r1, [r4, r2]
|
|
movs r3, 0x24
|
|
ldrsh r2, [r4, r3]
|
|
movs r3, 0
|
|
bl CreateSprite
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
movs r0, 0xC
|
|
ldrsh r1, [r4, r0]
|
|
adds r1, 0x8
|
|
lsls r1, 1
|
|
adds r0, r4, 0
|
|
adds r0, 0x8
|
|
adds r0, r1
|
|
strh r2, [r0]
|
|
cmp r2, 0x40
|
|
beq _080B3702
|
|
movs r1, 0xC
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x1
|
|
beq _080B36BC
|
|
cmp r0, 0x1
|
|
bgt _080B36A0
|
|
cmp r0, 0
|
|
beq _080B36AA
|
|
b _080B3702
|
|
.align 2, 0
|
|
_080B369C: .4byte gUnknown_83E7044
|
|
_080B36A0:
|
|
cmp r0, 0x2
|
|
beq _080B36D4
|
|
cmp r0, 0x3
|
|
beq _080B36EC
|
|
b _080B3702
|
|
_080B36AA:
|
|
ldr r0, _080B36B8 @ =gSprites
|
|
lsls r1, r2, 4
|
|
adds r1, r2
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrh r0, [r4, 0x20]
|
|
b _080B36FA
|
|
.align 2, 0
|
|
_080B36B8: .4byte gSprites
|
|
_080B36BC:
|
|
ldr r0, _080B36D0 @ =gSprites
|
|
lsls r1, r2, 4
|
|
adds r1, r2
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrh r0, [r4, 0x20]
|
|
negs r0, r0
|
|
strh r0, [r1, 0x24]
|
|
ldrh r0, [r4, 0x20]
|
|
b _080B3700
|
|
.align 2, 0
|
|
_080B36D0: .4byte gSprites
|
|
_080B36D4:
|
|
ldr r1, _080B36E8 @ =gSprites
|
|
lsls r0, r2, 4
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrh r1, [r4, 0x20]
|
|
strh r1, [r0, 0x24]
|
|
ldrh r1, [r4, 0x20]
|
|
strh r1, [r0, 0x26]
|
|
b _080B3702
|
|
.align 2, 0
|
|
_080B36E8: .4byte gSprites
|
|
_080B36EC:
|
|
ldr r0, _080B3714 @ =gSprites
|
|
lsls r1, r2, 4
|
|
adds r1, r2
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrh r0, [r4, 0x20]
|
|
negs r0, r0
|
|
_080B36FA:
|
|
strh r0, [r1, 0x24]
|
|
ldrh r0, [r4, 0x20]
|
|
negs r0, r0
|
|
_080B3700:
|
|
strh r0, [r1, 0x26]
|
|
_080B3702:
|
|
ldrh r0, [r4, 0xC]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0xC]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x5
|
|
bne _080B379E
|
|
b _080B377A
|
|
.align 2, 0
|
|
_080B3714: .4byte gSprites
|
|
_080B3718:
|
|
ldrh r0, [r4, 0xA]
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _080B3728
|
|
ldrh r0, [r4, 0xE]
|
|
subs r0, 0x1
|
|
strh r0, [r4, 0xE]
|
|
b _080B372E
|
|
_080B3728:
|
|
ldrh r0, [r4, 0x10]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x10]
|
|
_080B372E:
|
|
ldrh r1, [r4, 0x10]
|
|
lsls r1, 8
|
|
ldrh r0, [r4, 0xE]
|
|
orrs r1, r0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
ldrh r0, [r4, 0xA]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0xA]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x20
|
|
bne _080B379E
|
|
movs r5, 0x8
|
|
adds r6, r4, 0
|
|
adds r6, 0x8
|
|
_080B3754:
|
|
lsls r0, r5, 1
|
|
adds r1, r6, r0
|
|
movs r2, 0
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, 0x40
|
|
beq _080B3770
|
|
adds r1, r0, 0
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _080B3784 @ =gSprites
|
|
adds r0, r1
|
|
bl DestroySprite
|
|
_080B3770:
|
|
adds r0, r5, 0x1
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
cmp r5, 0xC
|
|
bls _080B3754
|
|
_080B377A:
|
|
ldrh r0, [r4, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x8]
|
|
b _080B379E
|
|
.align 2, 0
|
|
_080B3784: .4byte gSprites
|
|
_080B3788:
|
|
movs r0, 0x52
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x50
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
adds r0, r5, 0
|
|
bl DestroyAnimVisualTask
|
|
_080B379E:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80B3618
|
|
|
|
thumb_func_start sub_80B37A4
|
|
sub_80B37A4: @ 80B37A4
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x30
|
|
ldrsh r1, [r4, r0]
|
|
movs r2, 0x2E
|
|
ldrsh r0, [r4, r2]
|
|
subs r0, 0xA
|
|
cmp r1, r0
|
|
ble _080B37CE
|
|
ldrh r0, [r4, 0x30]
|
|
movs r1, 0x1
|
|
ands r1, r0
|
|
adds r3, r4, 0
|
|
adds r3, 0x3E
|
|
lsls r1, 2
|
|
ldrb r2, [r3]
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r3]
|
|
_080B37CE:
|
|
movs r0, 0x30
|
|
ldrsh r1, [r4, r0]
|
|
movs r2, 0x2E
|
|
ldrsh r0, [r4, r2]
|
|
cmp r1, r0
|
|
bne _080B37E0
|
|
adds r0, r4, 0
|
|
bl DestroyAnimSprite
|
|
_080B37E0:
|
|
ldrh r0, [r4, 0x30]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x30]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80B37A4
|
|
|
|
thumb_func_start sub_80B37EC
|
|
sub_80B37EC: @ 80B37EC
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
ldr r6, _080B3828 @ =gUnknown_2037F02
|
|
movs r1, 0
|
|
ldrsh r0, [r6, r1]
|
|
cmp r0, 0
|
|
bne _080B3818
|
|
ldr r4, _080B382C @ =gUnknown_2037F1A
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x20]
|
|
ldrb r0, [r4]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x22]
|
|
_080B3818:
|
|
ldrh r0, [r6, 0x2]
|
|
strh r0, [r5, 0x2E]
|
|
ldr r0, _080B3830 @ =sub_80B37A4
|
|
str r0, [r5, 0x1C]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B3828: .4byte gUnknown_2037F02
|
|
_080B382C: .4byte gUnknown_2037F1A
|
|
_080B3830: .4byte sub_80B37A4
|
|
thumb_func_end sub_80B37EC
|
|
|
|
thumb_func_start sub_80B3834
|
|
sub_80B3834: @ 80B3834
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
ldr r0, _080B3890 @ =gTasks
|
|
adds r5, r1, r0
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080B38D8
|
|
ldr r0, _080B3894 @ =gUnknown_2037F02
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0x1
|
|
bne _080B38A4
|
|
ldr r0, _080B3898 @ =0x0000fff6
|
|
strh r0, [r5, 0x1C]
|
|
ldr r4, _080B389C @ =gUnknown_2037F1B
|
|
ldrb r0, [r4]
|
|
movs r1, 0x5
|
|
bl sub_8076B2C
|
|
subs r0, 0x8
|
|
strh r0, [r5, 0x1E]
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
bl sub_8076B2C
|
|
adds r0, 0x8
|
|
strh r0, [r5, 0x20]
|
|
ldr r4, _080B38A0 @ =gUnknown_2037F1A
|
|
ldrb r0, [r4]
|
|
movs r1, 0x5
|
|
bl sub_8076B2C
|
|
subs r0, 0x8
|
|
strh r0, [r5, 0x22]
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
bl sub_8076B2C
|
|
adds r0, 0x8
|
|
b _080B3962
|
|
.align 2, 0
|
|
_080B3890: .4byte gTasks
|
|
_080B3894: .4byte gUnknown_2037F02
|
|
_080B3898: .4byte 0x0000fff6
|
|
_080B389C: .4byte gUnknown_2037F1B
|
|
_080B38A0: .4byte gUnknown_2037F1A
|
|
_080B38A4:
|
|
movs r0, 0xA
|
|
strh r0, [r5, 0x1C]
|
|
ldr r4, _080B38D0 @ =gUnknown_2037F1A
|
|
ldrb r0, [r4]
|
|
movs r1, 0x4
|
|
bl sub_8076B2C
|
|
adds r0, 0x8
|
|
strh r0, [r5, 0x1E]
|
|
ldrb r0, [r4]
|
|
movs r1, 0x3
|
|
bl sub_8076B2C
|
|
subs r0, 0x8
|
|
strh r0, [r5, 0x20]
|
|
ldr r4, _080B38D4 @ =gUnknown_2037F1B
|
|
ldrb r0, [r4]
|
|
movs r1, 0x4
|
|
bl sub_8076B2C
|
|
adds r0, 0x8
|
|
b _080B3956
|
|
.align 2, 0
|
|
_080B38D0: .4byte gUnknown_2037F1A
|
|
_080B38D4: .4byte gUnknown_2037F1B
|
|
_080B38D8:
|
|
ldr r0, _080B391C @ =gUnknown_2037F02
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0x1
|
|
bne _080B392C
|
|
ldr r0, _080B3920 @ =0x0000fff6
|
|
strh r0, [r5, 0x1C]
|
|
ldr r4, _080B3924 @ =gUnknown_2037F1B
|
|
ldrb r0, [r4]
|
|
movs r1, 0x4
|
|
bl sub_8076B2C
|
|
adds r0, 0x8
|
|
strh r0, [r5, 0x1E]
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
bl sub_8076B2C
|
|
adds r0, 0x8
|
|
strh r0, [r5, 0x20]
|
|
ldr r4, _080B3928 @ =gUnknown_2037F1A
|
|
ldrb r0, [r4]
|
|
movs r1, 0x4
|
|
bl sub_8076B2C
|
|
adds r0, 0x8
|
|
strh r0, [r5, 0x22]
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
bl sub_8076B2C
|
|
adds r0, 0x8
|
|
b _080B3962
|
|
.align 2, 0
|
|
_080B391C: .4byte gUnknown_2037F02
|
|
_080B3920: .4byte 0x0000fff6
|
|
_080B3924: .4byte gUnknown_2037F1B
|
|
_080B3928: .4byte gUnknown_2037F1A
|
|
_080B392C:
|
|
movs r0, 0xA
|
|
strh r0, [r5, 0x1C]
|
|
ldr r4, _080B3974 @ =gUnknown_2037F1A
|
|
ldrb r0, [r4]
|
|
movs r1, 0x5
|
|
bl sub_8076B2C
|
|
subs r0, 0x8
|
|
strh r0, [r5, 0x1E]
|
|
ldrb r0, [r4]
|
|
movs r1, 0x3
|
|
bl sub_8076B2C
|
|
subs r0, 0x8
|
|
strh r0, [r5, 0x20]
|
|
ldr r4, _080B3978 @ =gUnknown_2037F1B
|
|
ldrb r0, [r4]
|
|
movs r1, 0x5
|
|
bl sub_8076B2C
|
|
subs r0, 0x8
|
|
_080B3956:
|
|
strh r0, [r5, 0x22]
|
|
ldrb r0, [r4]
|
|
movs r1, 0x3
|
|
bl sub_8076B2C
|
|
subs r0, 0x8
|
|
_080B3962:
|
|
strh r0, [r5, 0x24]
|
|
movs r0, 0x6
|
|
strh r0, [r5, 0xA]
|
|
ldr r0, _080B397C @ =sub_80B3980
|
|
str r0, [r5]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B3974: .4byte gUnknown_2037F1A
|
|
_080B3978: .4byte gUnknown_2037F1B
|
|
_080B397C: .4byte sub_80B3980
|
|
thumb_func_end sub_80B3834
|
|
|
|
thumb_func_start sub_80B3980
|
|
sub_80B3980: @ 80B3980
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
lsls r0, r2, 2
|
|
adds r0, r2
|
|
lsls r0, 3
|
|
ldr r1, _080B39A0 @ =gTasks
|
|
adds r5, r0, r1
|
|
movs r0, 0x8
|
|
ldrsh r1, [r5, r0]
|
|
cmp r1, 0
|
|
beq _080B39A4
|
|
cmp r1, 0x1
|
|
beq _080B3A18
|
|
b _080B3A2C
|
|
.align 2, 0
|
|
_080B39A0: .4byte gTasks
|
|
_080B39A4:
|
|
ldrh r0, [r5, 0xA]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0xA]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x6
|
|
ble _080B3A2C
|
|
strh r1, [r5, 0xA]
|
|
ldr r0, _080B3A10 @ =gUnknown_83E7114
|
|
movs r2, 0x1E
|
|
ldrsh r1, [r5, r2]
|
|
movs r3, 0x20
|
|
ldrsh r2, [r5, r3]
|
|
movs r3, 0
|
|
bl CreateSprite
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0x40
|
|
beq _080B39F8
|
|
ldr r0, _080B3A14 @ =gSprites
|
|
lsls r4, r1, 4
|
|
adds r4, r1
|
|
lsls r4, 2
|
|
adds r4, r0
|
|
movs r0, 0x10
|
|
strh r0, [r4, 0x2E]
|
|
ldrh r0, [r5, 0x22]
|
|
strh r0, [r4, 0x32]
|
|
ldrh r0, [r5, 0x24]
|
|
strh r0, [r4, 0x36]
|
|
ldrh r0, [r5, 0x1C]
|
|
strh r0, [r4, 0x38]
|
|
adds r0, r4, 0
|
|
bl sub_8075068
|
|
ldrb r0, [r5, 0xC]
|
|
movs r1, 0x3
|
|
ands r1, r0
|
|
adds r0, r4, 0
|
|
bl StartSpriteAffineAnim
|
|
_080B39F8:
|
|
ldrh r0, [r5, 0xC]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0xC]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0xC
|
|
bne _080B3A2C
|
|
ldrh r0, [r5, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x8]
|
|
b _080B3A2C
|
|
.align 2, 0
|
|
_080B3A10: .4byte gUnknown_83E7114
|
|
_080B3A14: .4byte gSprites
|
|
_080B3A18:
|
|
ldrh r0, [r5, 0xA]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0xA]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x11
|
|
ble _080B3A2C
|
|
adds r0, r2, 0
|
|
bl DestroyAnimVisualTask
|
|
_080B3A2C:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80B3980
|
|
|
|
thumb_func_start sub_80B3A34
|
|
sub_80B3A34: @ 80B3A34
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl AnimateBallThrow
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080B3A52
|
|
ldrb r0, [r4, 0x3]
|
|
lsls r0, 26
|
|
lsrs r0, 27
|
|
bl FreeOamMatrix
|
|
adds r0, r4, 0
|
|
bl DestroySprite
|
|
_080B3A52:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80B3A34
|
|
|
|
thumb_func_start sub_80B3A58
|
|
sub_80B3A58: @ 80B3A58
|
|
push {r4-r6,lr}
|
|
sub sp, 0xC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
ldr r0, _080B3A90 @ =gTasks
|
|
adds r4, r1, r0
|
|
ldr r0, _080B3A94 @ =gUnknown_2037F1B
|
|
ldrb r0, [r0]
|
|
bl sub_807492C
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
adds r0, r1, 0
|
|
subs r0, 0x20
|
|
strh r0, [r4, 0x24]
|
|
ldr r0, _080B3A98 @ =gUnknown_2037F02
|
|
movs r2, 0
|
|
ldrsh r0, [r0, r2]
|
|
cmp r0, 0x1
|
|
beq _080B3AAE
|
|
cmp r0, 0x1
|
|
bgt _080B3A9C
|
|
cmp r0, 0
|
|
beq _080B3AA2
|
|
b _080B3ACA
|
|
.align 2, 0
|
|
_080B3A90: .4byte gTasks
|
|
_080B3A94: .4byte gUnknown_2037F1B
|
|
_080B3A98: .4byte gUnknown_2037F02
|
|
_080B3A9C:
|
|
cmp r0, 0x2
|
|
beq _080B3ABA
|
|
b _080B3ACA
|
|
_080B3AA2:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x1E]
|
|
movs r0, 0x5
|
|
strh r0, [r4, 0x20]
|
|
movs r0, 0x40
|
|
b _080B3AC2
|
|
_080B3AAE:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x1E]
|
|
movs r0, 0x5
|
|
strh r0, [r4, 0x20]
|
|
movs r0, 0xC0
|
|
b _080B3AC2
|
|
_080B3ABA:
|
|
movs r0, 0x4
|
|
strh r0, [r4, 0x1E]
|
|
strh r0, [r4, 0x20]
|
|
movs r0, 0
|
|
_080B3AC2:
|
|
strh r0, [r4, 0x22]
|
|
adds r0, r1, 0
|
|
adds r0, 0x20
|
|
strh r0, [r4, 0x26]
|
|
_080B3ACA:
|
|
movs r1, 0x24
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bge _080B3AD6
|
|
movs r0, 0
|
|
strh r0, [r4, 0x24]
|
|
_080B3AD6:
|
|
ldr r0, _080B3AF0 @ =gUnknown_2037F1B
|
|
ldrb r0, [r0]
|
|
bl sub_80768B0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _080B3AFC
|
|
ldr r0, _080B3AF4 @ =gUnknown_2022978
|
|
ldrh r0, [r0]
|
|
strh r0, [r4, 0x1C]
|
|
ldr r0, _080B3AF8 @ =0x04000014
|
|
b _080B3B04
|
|
.align 2, 0
|
|
_080B3AF0: .4byte gUnknown_2037F1B
|
|
_080B3AF4: .4byte gUnknown_2022978
|
|
_080B3AF8: .4byte 0x04000014
|
|
_080B3AFC:
|
|
ldr r0, _080B3B64 @ =gUnknown_202297C
|
|
ldrh r0, [r0]
|
|
strh r0, [r4, 0x1C]
|
|
ldr r0, _080B3B68 @ =0x04000018
|
|
_080B3B04:
|
|
str r0, [sp]
|
|
ldrh r1, [r4, 0x24]
|
|
lsls r3, r1, 16
|
|
asrs r1, r3, 16
|
|
movs r2, 0x24
|
|
ldrsh r0, [r4, r2]
|
|
adds r0, 0x40
|
|
cmp r1, r0
|
|
bgt _080B3B3E
|
|
ldr r5, _080B3B6C @ =gUnknown_2038700
|
|
movs r0, 0xF0
|
|
lsls r0, 3
|
|
adds r6, r5, r0
|
|
_080B3B1E:
|
|
asrs r3, 16
|
|
lsls r1, r3, 1
|
|
adds r2, r1, r5
|
|
ldrh r0, [r4, 0x1C]
|
|
strh r0, [r2]
|
|
adds r1, r6
|
|
ldrh r0, [r4, 0x1C]
|
|
strh r0, [r1]
|
|
adds r3, 0x1
|
|
lsls r3, 16
|
|
asrs r1, r3, 16
|
|
movs r2, 0x24
|
|
ldrsh r0, [r4, r2]
|
|
adds r0, 0x40
|
|
cmp r1, r0
|
|
ble _080B3B1E
|
|
_080B3B3E:
|
|
ldr r0, _080B3B70 @ =0xa2600001
|
|
str r0, [sp, 0x4]
|
|
mov r1, sp
|
|
movs r2, 0
|
|
movs r0, 0x1
|
|
strb r0, [r1, 0x8]
|
|
mov r0, sp
|
|
strb r2, [r0, 0x9]
|
|
ldr r0, [sp]
|
|
ldr r1, [sp, 0x4]
|
|
ldr r2, [sp, 0x8]
|
|
bl sub_8087EE4
|
|
ldr r0, _080B3B74 @ =sub_80B3B78
|
|
str r0, [r4]
|
|
add sp, 0xC
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B3B64: .4byte gUnknown_202297C
|
|
_080B3B68: .4byte 0x04000018
|
|
_080B3B6C: .4byte gUnknown_2038700
|
|
_080B3B70: .4byte 0xa2600001
|
|
_080B3B74: .4byte sub_80B3B78
|
|
thumb_func_end sub_80B3A58
|
|
|
|
thumb_func_start sub_80B3B78
|
|
sub_80B3B78: @ 80B3B78
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
lsls r0, r2, 2
|
|
adds r0, r2
|
|
lsls r0, 3
|
|
ldr r1, _080B3BA0 @ =gTasks
|
|
adds r5, r0, r1
|
|
movs r1, 0x8
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0x1
|
|
beq _080B3C52
|
|
cmp r0, 0x1
|
|
bgt _080B3BA4
|
|
cmp r0, 0
|
|
beq _080B3BAA
|
|
b _080B3C6A
|
|
.align 2, 0
|
|
_080B3BA0: .4byte gTasks
|
|
_080B3BA4:
|
|
cmp r0, 0x2
|
|
beq _080B3C64
|
|
b _080B3C6A
|
|
_080B3BAA:
|
|
ldrh r3, [r5, 0x22]
|
|
ldrh r4, [r5, 0x24]
|
|
movs r2, 0x24
|
|
ldrsh r1, [r5, r2]
|
|
movs r2, 0x26
|
|
ldrsh r0, [r5, r2]
|
|
cmp r1, r0
|
|
bgt _080B3C42
|
|
ldr r0, _080B3BF4 @ =gUnknown_825E074
|
|
mov r9, r0
|
|
movs r7, 0x3
|
|
ldr r1, _080B3BF8 @ =gUnknown_2038700
|
|
mov r12, r1
|
|
movs r2, 0xF0
|
|
lsls r2, 3
|
|
add r2, r12
|
|
mov r8, r2
|
|
_080B3BCC:
|
|
lsls r2, r3, 16
|
|
asrs r0, r2, 15
|
|
add r0, r9
|
|
movs r3, 0
|
|
ldrsh r0, [r0, r3]
|
|
movs r3, 0x20
|
|
ldrsh r1, [r5, r3]
|
|
asrs r0, r1
|
|
lsls r0, 16
|
|
lsrs r1, r0, 16
|
|
asrs r3, r0, 16
|
|
adds r6, r2, 0
|
|
cmp r3, 0
|
|
ble _080B3BFC
|
|
ldrh r1, [r5, 0xA]
|
|
adds r0, r7, 0
|
|
ands r0, r1
|
|
adds r0, r3, r0
|
|
b _080B3C08
|
|
.align 2, 0
|
|
_080B3BF4: .4byte gUnknown_825E074
|
|
_080B3BF8: .4byte gUnknown_2038700
|
|
_080B3BFC:
|
|
cmp r3, 0
|
|
bge _080B3C0C
|
|
ldrh r1, [r5, 0xA]
|
|
adds r0, r7, 0
|
|
ands r0, r1
|
|
subs r0, r3, r0
|
|
_080B3C08:
|
|
lsls r0, 16
|
|
lsrs r1, r0, 16
|
|
_080B3C0C:
|
|
lsls r2, r4, 16
|
|
asrs r2, 16
|
|
lsls r3, r2, 1
|
|
mov r0, r12
|
|
adds r4, r3, r0
|
|
ldrh r0, [r5, 0x1C]
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
adds r0, r1, r0
|
|
strh r0, [r4]
|
|
add r3, r8
|
|
ldrh r0, [r5, 0x1C]
|
|
adds r1, r0
|
|
strh r1, [r3]
|
|
asrs r0, r6, 16
|
|
ldrh r1, [r5, 0x1E]
|
|
adds r0, r1
|
|
lsls r0, 16
|
|
lsrs r3, r0, 16
|
|
adds r2, 0x1
|
|
lsls r2, 16
|
|
lsrs r4, r2, 16
|
|
asrs r2, 16
|
|
movs r1, 0x26
|
|
ldrsh r0, [r5, r1]
|
|
cmp r2, r0
|
|
ble _080B3BCC
|
|
_080B3C42:
|
|
ldrh r0, [r5, 0xA]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0xA]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x17
|
|
ble _080B3C6A
|
|
b _080B3C58
|
|
_080B3C52:
|
|
ldr r1, _080B3C60 @ =gUnknown_2039600
|
|
movs r0, 0x3
|
|
strb r0, [r1, 0x15]
|
|
_080B3C58:
|
|
ldrh r0, [r5, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x8]
|
|
b _080B3C6A
|
|
.align 2, 0
|
|
_080B3C60: .4byte gUnknown_2039600
|
|
_080B3C64:
|
|
adds r0, r2, 0
|
|
bl DestroyAnimVisualTask
|
|
_080B3C6A:
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80B3B78
|
|
|
|
thumb_func_start sub_80B3C78
|
|
sub_80B3C78: @ 80B3C78
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
mov r8, r4
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
ldr r1, _080B3CAC @ =gTasks
|
|
adds r7, r0, r1
|
|
bl AllocOamMatrix
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
mov r10, r5
|
|
adds r6, r5, 0
|
|
cmp r6, 0xFF
|
|
bne _080B3CB0
|
|
adds r0, r4, 0
|
|
bl DestroyAnimVisualTask
|
|
b _080B3D5A
|
|
.align 2, 0
|
|
_080B3CAC: .4byte gTasks
|
|
_080B3CB0:
|
|
ldr r1, _080B3CD4 @ =gUnknown_2037F02
|
|
ldrb r0, [r1]
|
|
bl duplicate_obj_of_side_rel2move_in_transparent_mode
|
|
lsls r0, 16
|
|
lsrs r1, r0, 16
|
|
mov r9, r1
|
|
asrs r0, 16
|
|
cmp r0, 0
|
|
bge _080B3CD8
|
|
adds r0, r5, 0
|
|
bl FreeOamMatrix
|
|
mov r0, r8
|
|
bl DestroyAnimVisualTask
|
|
b _080B3D5A
|
|
.align 2, 0
|
|
_080B3CD4: .4byte gUnknown_2037F02
|
|
_080B3CD8:
|
|
ldr r2, _080B3D68 @ =gSprites
|
|
lsls r4, r0, 4
|
|
adds r4, r0
|
|
lsls r4, 2
|
|
adds r0, r2, 0
|
|
adds r0, 0x1C
|
|
adds r0, r4, r0
|
|
ldr r1, _080B3D6C @ =SpriteCallbackDummy
|
|
str r1, [r0]
|
|
adds r4, r2
|
|
ldrb r0, [r4, 0x1]
|
|
movs r1, 0x3
|
|
orrs r0, r1
|
|
strb r0, [r4, 0x1]
|
|
movs r0, 0x1F
|
|
ands r6, r0
|
|
lsls r2, r6, 1
|
|
ldrb r1, [r4, 0x3]
|
|
movs r0, 0x3F
|
|
negs r0, r0
|
|
ands r0, r1
|
|
orrs r0, r2
|
|
strb r0, [r4, 0x3]
|
|
adds r2, r4, 0
|
|
adds r2, 0x2C
|
|
ldrb r0, [r2]
|
|
movs r1, 0x80
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
adds r1, r4, 0
|
|
adds r1, 0x43
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
mov r1, r9
|
|
lsls r0, r1, 24
|
|
lsrs r0, 24
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r1, r2, 0
|
|
movs r3, 0
|
|
bl obj_id_set_rotscale
|
|
ldrb r3, [r4, 0x1]
|
|
lsrs r1, r3, 6
|
|
ldrb r2, [r4, 0x3]
|
|
lsrs r2, 6
|
|
lsls r3, 30
|
|
lsrs r3, 30
|
|
adds r0, r4, 0
|
|
bl CalcCenterToCornerVec
|
|
ldr r1, _080B3D70 @ =gUnknown_2037F02
|
|
ldrb r0, [r1]
|
|
bl GetAnimBankSpriteId
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r7, 0x22]
|
|
mov r0, r10
|
|
strh r0, [r7, 0x24]
|
|
mov r1, r9
|
|
strh r1, [r7, 0x26]
|
|
ldr r0, _080B3D74 @ =sub_80B3D78
|
|
str r0, [r7]
|
|
_080B3D5A:
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B3D68: .4byte gSprites
|
|
_080B3D6C: .4byte SpriteCallbackDummy
|
|
_080B3D70: .4byte gUnknown_2037F02
|
|
_080B3D74: .4byte sub_80B3D78
|
|
thumb_func_end sub_80B3C78
|
|
|
|
thumb_func_start sub_80B3D78
|
|
sub_80B3D78: @ 80B3D78
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
ldr r1, _080B3D9C @ =gTasks
|
|
adds r4, r0, r1
|
|
movs r1, 0x8
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x1
|
|
beq _080B3DFC
|
|
cmp r0, 0x1
|
|
bgt _080B3DA0
|
|
cmp r0, 0
|
|
beq _080B3DAA
|
|
b _080B3E7C
|
|
.align 2, 0
|
|
_080B3D9C: .4byte gTasks
|
|
_080B3DA0:
|
|
cmp r0, 0x2
|
|
beq _080B3E4C
|
|
cmp r0, 0x3
|
|
beq _080B3E6C
|
|
b _080B3E7C
|
|
_080B3DAA:
|
|
ldrh r0, [r4, 0xA]
|
|
adds r0, 0x4
|
|
strh r0, [r4, 0xA]
|
|
ldr r1, _080B3DF8 @ =gUnknown_825E074
|
|
movs r2, 0xA
|
|
ldrsh r0, [r4, r2]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
lsls r1, 16
|
|
asrs r1, 17
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r0, r2, 0
|
|
subs r0, r1
|
|
strh r0, [r4, 0xC]
|
|
ldrh r0, [r4, 0x26]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0xC
|
|
ldrsh r2, [r4, r1]
|
|
adds r1, r2, 0
|
|
movs r3, 0
|
|
bl obj_id_set_rotscale
|
|
ldrh r0, [r4, 0x26]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrh r1, [r4, 0x22]
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
bl sub_8076494
|
|
movs r2, 0xA
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0x30
|
|
bne _080B3E7C
|
|
b _080B3E5E
|
|
.align 2, 0
|
|
_080B3DF8: .4byte gUnknown_825E074
|
|
_080B3DFC:
|
|
ldrh r0, [r4, 0xA]
|
|
subs r0, 0x4
|
|
strh r0, [r4, 0xA]
|
|
ldr r1, _080B3E48 @ =gUnknown_825E074
|
|
movs r2, 0xA
|
|
ldrsh r0, [r4, r2]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
lsls r1, 16
|
|
asrs r1, 17
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r0, r2, 0
|
|
subs r0, r1
|
|
strh r0, [r4, 0xC]
|
|
ldrh r0, [r4, 0x26]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0xC
|
|
ldrsh r2, [r4, r1]
|
|
adds r1, r2, 0
|
|
movs r3, 0
|
|
bl obj_id_set_rotscale
|
|
ldrh r0, [r4, 0x26]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrh r1, [r4, 0x22]
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
bl sub_8076494
|
|
movs r2, 0xA
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0
|
|
bne _080B3E7C
|
|
b _080B3E5E
|
|
.align 2, 0
|
|
_080B3E48: .4byte gUnknown_825E074
|
|
_080B3E4C:
|
|
movs r0, 0x26
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _080B3E68 @ =gSprites
|
|
adds r0, r1
|
|
bl obj_delete_but_dont_free_vram
|
|
_080B3E5E:
|
|
ldrh r0, [r4, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x8]
|
|
b _080B3E7C
|
|
.align 2, 0
|
|
_080B3E68: .4byte gSprites
|
|
_080B3E6C:
|
|
ldrh r0, [r4, 0x24]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl FreeOamMatrix
|
|
adds r0, r5, 0
|
|
bl DestroyAnimVisualTask
|
|
_080B3E7C:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80B3D78
|
|
|
|
thumb_func_start sub_80B3E84
|
|
sub_80B3E84: @ 80B3E84
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0x1
|
|
beq _080B3EFC
|
|
cmp r0, 0x1
|
|
bgt _080B3E9A
|
|
cmp r0, 0
|
|
beq _080B3EA4
|
|
b _080B3FA4
|
|
_080B3E9A:
|
|
cmp r0, 0x2
|
|
beq _080B3F2E
|
|
cmp r0, 0x3
|
|
beq _080B3F8E
|
|
b _080B3FA4
|
|
_080B3EA4:
|
|
ldr r4, _080B3EF8 @ =gUnknown_2037F1A
|
|
ldrb r0, [r4]
|
|
movs r1, 0
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x20]
|
|
ldrb r0, [r4]
|
|
movs r1, 0x1
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x22]
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080B3ED2
|
|
ldrh r0, [r5, 0x22]
|
|
adds r0, 0xC
|
|
strh r0, [r5, 0x22]
|
|
_080B3ED2:
|
|
movs r0, 0x8
|
|
strh r0, [r5, 0x30]
|
|
movs r1, 0xFD
|
|
lsls r1, 6
|
|
movs r0, 0x50
|
|
bl SetGpuReg
|
|
ldrh r0, [r5, 0x30]
|
|
movs r1, 0x10
|
|
subs r1, r0
|
|
lsls r1, 8
|
|
orrs r1, r0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
b _080B3F26
|
|
.align 2, 0
|
|
_080B3EF8: .4byte gUnknown_2037F1A
|
|
_080B3EFC:
|
|
adds r0, r5, 0
|
|
adds r0, 0x3F
|
|
ldrb r1, [r0]
|
|
movs r0, 0x20
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080B3FA4
|
|
movs r0, 0x40
|
|
negs r0, r0
|
|
bl sub_8073A44
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
asrs r1, 24
|
|
movs r0, 0xC4
|
|
bl PlaySE12WithPanning
|
|
adds r0, r5, 0
|
|
movs r1, 0x1
|
|
bl ChangeSpriteAffineAnim
|
|
_080B3F26:
|
|
ldrh r0, [r5, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x2E]
|
|
b _080B3FA4
|
|
_080B3F2E:
|
|
ldrh r0, [r5, 0x32]
|
|
adds r1, r0, 0x1
|
|
strh r1, [r5, 0x32]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1
|
|
ble _080B3F72
|
|
movs r0, 0
|
|
strh r0, [r5, 0x32]
|
|
ldrh r1, [r5, 0x30]
|
|
subs r1, 0x1
|
|
strh r1, [r5, 0x30]
|
|
movs r0, 0x10
|
|
subs r0, r1
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
movs r1, 0x30
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0
|
|
bne _080B3F72
|
|
ldrh r0, [r5, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x2E]
|
|
adds r2, r5, 0
|
|
adds r2, 0x3E
|
|
ldrb r0, [r2]
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
_080B3F72:
|
|
movs r0, 0xE0
|
|
lsls r0, 2
|
|
adds r2, r0, 0
|
|
ldrh r1, [r5, 0x34]
|
|
adds r2, r1
|
|
lsls r1, r2, 16
|
|
asrs r1, 24
|
|
ldrh r0, [r5, 0x26]
|
|
subs r0, r1
|
|
strh r0, [r5, 0x26]
|
|
movs r0, 0xFF
|
|
ands r2, r0
|
|
strh r2, [r5, 0x34]
|
|
b _080B3FA4
|
|
_080B3F8E:
|
|
movs r0, 0x50
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x52
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
adds r0, r5, 0
|
|
bl DestroyAnimSprite
|
|
_080B3FA4:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80B3E84
|
|
|
|
thumb_func_start sub_80B3FAC
|
|
sub_80B3FAC: @ 80B3FAC
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080B3FD8
|
|
adds r0, r6, 0
|
|
movs r1, 0x2
|
|
bl StartSpriteAffineAnim
|
|
ldr r0, _080B3FD4 @ =gUnknown_2037F02
|
|
ldrh r1, [r0, 0x4]
|
|
negs r1, r1
|
|
strh r1, [r0, 0x4]
|
|
ldrh r1, [r0]
|
|
negs r1, r1
|
|
strh r1, [r0]
|
|
b _080B4008
|
|
.align 2, 0
|
|
_080B3FD4: .4byte gUnknown_2037F02
|
|
_080B3FD8:
|
|
ldr r0, _080B406C @ =gUnknown_2037F1B
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080B4008
|
|
adds r0, r6, 0
|
|
movs r1, 0x1
|
|
bl StartSpriteAffineAnim
|
|
ldr r1, _080B4070 @ =gUnknown_2037F02
|
|
ldrh r0, [r1, 0x2]
|
|
negs r0, r0
|
|
strh r0, [r1, 0x2]
|
|
ldrh r0, [r1, 0x4]
|
|
negs r0, r0
|
|
strh r0, [r1, 0x4]
|
|
ldrh r0, [r1, 0x6]
|
|
negs r0, r0
|
|
strh r0, [r1, 0x6]
|
|
ldrh r0, [r1]
|
|
negs r0, r0
|
|
strh r0, [r1]
|
|
_080B4008:
|
|
ldr r5, _080B406C @ =gUnknown_2037F1B
|
|
ldrb r0, [r5]
|
|
movs r1, 0x2
|
|
bl sub_8074844
|
|
lsls r0, 24
|
|
ldr r4, _080B4070 @ =gUnknown_2037F02
|
|
lsrs r0, 24
|
|
ldrh r1, [r4]
|
|
adds r0, r1
|
|
strh r0, [r6, 0x20]
|
|
ldrb r0, [r5]
|
|
movs r1, 0x3
|
|
bl sub_8074844
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrh r1, [r4, 0x2]
|
|
adds r0, r1
|
|
strh r0, [r6, 0x22]
|
|
ldrh r0, [r4, 0x8]
|
|
strh r0, [r6, 0x2E]
|
|
ldrb r0, [r5]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrh r1, [r4, 0x4]
|
|
adds r0, r1
|
|
strh r0, [r6, 0x32]
|
|
ldrb r0, [r5]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrh r4, [r4, 0x6]
|
|
adds r0, r4
|
|
strh r0, [r6, 0x36]
|
|
ldr r0, _080B4074 @ =sub_8075590
|
|
str r0, [r6, 0x1C]
|
|
ldr r1, _080B4078 @ =DestroyAnimSprite
|
|
adds r0, r6, 0
|
|
bl StoreSpriteCallbackInData6
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B406C: .4byte gUnknown_2037F1B
|
|
_080B4070: .4byte gUnknown_2037F02
|
|
_080B4074: .4byte sub_8075590
|
|
_080B4078: .4byte DestroyAnimSprite
|
|
thumb_func_end sub_80B3FAC
|
|
|
|
thumb_func_start sub_80B407C
|
|
sub_80B407C: @ 80B407C
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080B40A0
|
|
ldr r1, _080B409C @ =gUnknown_2037F02
|
|
ldrh r0, [r1]
|
|
negs r0, r0
|
|
strh r0, [r1]
|
|
adds r0, r6, 0
|
|
movs r1, 0x2
|
|
bl StartSpriteAffineAnim
|
|
b _080B40BC
|
|
.align 2, 0
|
|
_080B409C: .4byte gUnknown_2037F02
|
|
_080B40A0:
|
|
ldr r0, _080B4118 @ =gUnknown_2037F1B
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080B40BC
|
|
ldr r0, _080B411C @ =gUnknown_2037F02
|
|
ldrh r1, [r0, 0x2]
|
|
negs r1, r1
|
|
strh r1, [r0, 0x2]
|
|
ldrh r1, [r0]
|
|
negs r1, r1
|
|
strh r1, [r0]
|
|
_080B40BC:
|
|
ldr r5, _080B4118 @ =gUnknown_2037F1B
|
|
ldrb r0, [r5]
|
|
movs r1, 0x2
|
|
bl sub_8074844
|
|
lsls r0, 24
|
|
ldr r4, _080B411C @ =gUnknown_2037F02
|
|
lsrs r0, 24
|
|
ldrh r1, [r4]
|
|
adds r0, r1
|
|
strh r0, [r6, 0x20]
|
|
ldrb r0, [r5]
|
|
movs r1, 0x3
|
|
bl sub_8074844
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrh r1, [r4, 0x2]
|
|
adds r0, r1
|
|
strh r0, [r6, 0x22]
|
|
ldrh r0, [r4, 0x4]
|
|
strh r0, [r6, 0x2E]
|
|
ldrb r0, [r5]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r6, 0x32]
|
|
ldrb r0, [r5]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r6, 0x36]
|
|
ldr r0, _080B4120 @ =sub_8075590
|
|
str r0, [r6, 0x1C]
|
|
ldr r1, _080B4124 @ =DestroyAnimSprite
|
|
adds r0, r6, 0
|
|
bl StoreSpriteCallbackInData6
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B4118: .4byte gUnknown_2037F1B
|
|
_080B411C: .4byte gUnknown_2037F02
|
|
_080B4120: .4byte sub_8075590
|
|
_080B4124: .4byte DestroyAnimSprite
|
|
thumb_func_end sub_80B407C
|
|
|
|
thumb_func_start sub_80B4128
|
|
sub_80B4128: @ 80B4128
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080B4144
|
|
ldr r0, _080B4184 @ =gUnknown_2037F02
|
|
movs r2, 0x4
|
|
ldrsh r1, [r0, r2]
|
|
lsrs r2, r1, 31
|
|
adds r1, r2
|
|
asrs r1, 1
|
|
strh r1, [r0, 0x4]
|
|
_080B4144:
|
|
adds r0, r5, 0
|
|
movs r1, 0x1
|
|
bl sub_8075160
|
|
ldr r1, _080B4184 @ =gUnknown_2037F02
|
|
ldrh r0, [r1, 0x4]
|
|
strh r0, [r5, 0x2E]
|
|
ldrh r0, [r5, 0x20]
|
|
strh r0, [r5, 0x30]
|
|
ldrh r0, [r5, 0x22]
|
|
strh r0, [r5, 0x34]
|
|
movs r2, 0x8
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, 0
|
|
bne _080B418C
|
|
ldr r4, _080B4188 @ =gUnknown_2037F1B
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x32]
|
|
ldrb r0, [r4]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x36]
|
|
b _080B419E
|
|
.align 2, 0
|
|
_080B4184: .4byte gUnknown_2037F02
|
|
_080B4188: .4byte gUnknown_2037F1B
|
|
_080B418C:
|
|
ldr r0, _080B41B4 @ =gUnknown_2037F1B
|
|
ldrb r0, [r0]
|
|
adds r2, r5, 0
|
|
adds r2, 0x32
|
|
adds r3, r5, 0
|
|
adds r3, 0x36
|
|
movs r1, 0x1
|
|
bl sub_8076D9C
|
|
_080B419E:
|
|
adds r0, r5, 0
|
|
bl sub_8075678
|
|
ldr r0, _080B41B8 @ =gUnknown_2037F02
|
|
ldrh r0, [r0, 0x6]
|
|
strh r0, [r5, 0x38]
|
|
ldr r0, _080B41BC @ =sub_80B41C0
|
|
str r0, [r5, 0x1C]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B41B4: .4byte gUnknown_2037F1B
|
|
_080B41B8: .4byte gUnknown_2037F02
|
|
_080B41BC: .4byte sub_80B41C0
|
|
thumb_func_end sub_80B4128
|
|
|
|
thumb_func_start sub_80B41C0
|
|
sub_80B41C0: @ 80B41C0
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_80755E0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080B41D6
|
|
adds r0, r4, 0
|
|
bl DestroyAnimSprite
|
|
b _080B41F2
|
|
_080B41D6:
|
|
movs r1, 0x3A
|
|
ldrsh r0, [r4, r1]
|
|
movs r2, 0x38
|
|
ldrsh r1, [r4, r2]
|
|
bl Sin
|
|
ldrh r1, [r4, 0x24]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x24]
|
|
ldrh r0, [r4, 0x3A]
|
|
adds r0, 0xD
|
|
movs r1, 0xFF
|
|
ands r0, r1
|
|
strh r0, [r4, 0x3A]
|
|
_080B41F2:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80B41C0
|
|
|
|
thumb_func_start sub_80B41F8
|
|
sub_80B41F8: @ 80B41F8
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldr r0, _080B4228 @ =gUnknown_2037F1B
|
|
ldrb r0, [r0]
|
|
adds r2, r4, 0
|
|
adds r2, 0x20
|
|
adds r3, r4, 0
|
|
adds r3, 0x22
|
|
movs r1, 0
|
|
bl sub_8076D9C
|
|
ldr r0, _080B422C @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080B4234
|
|
ldr r0, _080B4230 @ =gUnknown_2037F02
|
|
ldrh r1, [r4, 0x20]
|
|
ldrh r2, [r0]
|
|
subs r1, r2
|
|
strh r1, [r4, 0x20]
|
|
b _080B4240
|
|
.align 2, 0
|
|
_080B4228: .4byte gUnknown_2037F1B
|
|
_080B422C: .4byte gUnknown_2037F1A
|
|
_080B4230: .4byte gUnknown_2037F02
|
|
_080B4234:
|
|
ldr r1, _080B4268 @ =gUnknown_2037F02
|
|
ldrh r0, [r1]
|
|
ldrh r2, [r4, 0x20]
|
|
adds r0, r2
|
|
strh r0, [r4, 0x20]
|
|
adds r0, r1, 0
|
|
_080B4240:
|
|
ldrh r0, [r0, 0x2]
|
|
ldrh r1, [r4, 0x22]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x22]
|
|
ldr r0, _080B426C @ =gUnknown_2037F1B
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080B425C
|
|
ldrh r0, [r4, 0x22]
|
|
adds r0, 0x8
|
|
strh r0, [r4, 0x22]
|
|
_080B425C:
|
|
ldr r0, _080B4270 @ =sub_80B4274
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B4268: .4byte gUnknown_2037F02
|
|
_080B426C: .4byte gUnknown_2037F1B
|
|
_080B4270: .4byte sub_80B4274
|
|
thumb_func_end sub_80B41F8
|
|
|
|
thumb_func_start sub_80B4274
|
|
sub_80B4274: @ 80B4274
|
|
push {lr}
|
|
adds r3, r0, 0
|
|
ldrh r0, [r3, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r3, 0x2E]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x3
|
|
bne _080B42A8
|
|
movs r0, 0
|
|
strh r0, [r3, 0x2E]
|
|
movs r0, 0x3E
|
|
adds r0, r3
|
|
mov r12, r0
|
|
ldrb r2, [r0]
|
|
lsls r0, r2, 29
|
|
lsrs r0, 31
|
|
movs r1, 0x1
|
|
eors r1, r0
|
|
lsls r1, 2
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
mov r1, r12
|
|
strb r0, [r1]
|
|
_080B42A8:
|
|
ldrh r0, [r3, 0x30]
|
|
adds r0, 0x1
|
|
strh r0, [r3, 0x30]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x33
|
|
bne _080B42BC
|
|
adds r0, r3, 0
|
|
bl DestroyAnimSprite
|
|
_080B42BC:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80B4274
|
|
|
|
thumb_func_start sub_80B42C0
|
|
sub_80B42C0: @ 80B42C0
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0xFD
|
|
lsls r1, 6
|
|
movs r0, 0x50
|
|
bl SetGpuReg
|
|
movs r0, 0x52
|
|
movs r1, 0x10
|
|
bl SetGpuReg
|
|
movs r0, 0x10
|
|
strh r0, [r4, 0x2E]
|
|
ldr r0, _080B42E4 @ =sub_80B42E8
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B42E4: .4byte sub_80B42E8
|
|
thumb_func_end sub_80B42C0
|
|
|
|
thumb_func_start sub_80B42E8
|
|
sub_80B42E8: @ 80B42E8
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrh r1, [r4, 0x32]
|
|
movs r2, 0x32
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0x13
|
|
bgt _080B42FC
|
|
adds r0, r1, 0x1
|
|
strh r0, [r4, 0x32]
|
|
b _080B433A
|
|
_080B42FC:
|
|
ldrh r1, [r4, 0x30]
|
|
adds r0, r1, 0x1
|
|
strh r0, [r4, 0x30]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080B433A
|
|
ldrh r1, [r4, 0x2E]
|
|
subs r1, 0x1
|
|
strh r1, [r4, 0x2E]
|
|
movs r0, 0x10
|
|
subs r0, r1
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bne _080B433A
|
|
adds r2, r4, 0
|
|
adds r2, 0x3E
|
|
ldrb r0, [r2]
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r0, _080B4340 @ =sub_80B4344
|
|
str r0, [r4, 0x1C]
|
|
_080B433A:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B4340: .4byte sub_80B4344
|
|
thumb_func_end sub_80B42E8
|
|
|
|
thumb_func_start sub_80B4344
|
|
sub_80B4344: @ 80B4344
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x50
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x52
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
adds r0, r4, 0
|
|
bl DestroyAnimSprite
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80B4344
|
|
|
|
thumb_func_start sub_80B4364
|
|
sub_80B4364: @ 80B4364
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
adds r7, r0, 0
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080B4384
|
|
ldr r1, _080B4380 @ =gUnknown_2037F02
|
|
ldrh r0, [r1, 0x4]
|
|
negs r0, r0
|
|
strh r0, [r1, 0x4]
|
|
b _080B43A6
|
|
.align 2, 0
|
|
_080B4380: .4byte gUnknown_2037F02
|
|
_080B4384:
|
|
ldr r0, _080B4480 @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080B43A6
|
|
ldr r1, _080B4484 @ =gUnknown_2037F02
|
|
ldrh r0, [r1, 0x4]
|
|
negs r0, r0
|
|
strh r0, [r1, 0x4]
|
|
ldrh r0, [r1, 0x2]
|
|
negs r0, r0
|
|
strh r0, [r1, 0x2]
|
|
ldrh r0, [r1, 0x6]
|
|
negs r0, r0
|
|
strh r0, [r1, 0x6]
|
|
_080B43A6:
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080B43F6
|
|
ldr r0, _080B4480 @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
adds r4, r0, 0
|
|
ldr r5, _080B4488 @ =gUnknown_2037F1B
|
|
ldrb r0, [r5]
|
|
bl GetBattlerSide
|
|
lsls r4, 24
|
|
lsls r0, 24
|
|
cmp r4, r0
|
|
bne _080B43F6
|
|
ldrb r0, [r5]
|
|
bl GetBattlerPosition
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080B43E4
|
|
ldrb r0, [r5]
|
|
bl GetBattlerPosition
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _080B43F6
|
|
_080B43E4:
|
|
ldr r0, _080B4484 @ =gUnknown_2037F02
|
|
movs r2, 0x4
|
|
ldrsh r1, [r0, r2]
|
|
negs r1, r1
|
|
strh r1, [r0, 0x4]
|
|
movs r2, 0
|
|
ldrsh r1, [r0, r2]
|
|
negs r1, r1
|
|
strh r1, [r0]
|
|
_080B43F6:
|
|
adds r0, r7, 0
|
|
movs r1, 0x1
|
|
bl sub_8075160
|
|
ldr r5, _080B4488 @ =gUnknown_2037F1B
|
|
ldrb r0, [r5]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
ldr r6, _080B4484 @ =gUnknown_2037F02
|
|
lsrs r4, 24
|
|
ldrh r0, [r6, 0x4]
|
|
adds r4, r0
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
ldrb r0, [r5]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
ldrh r2, [r6, 0x6]
|
|
adds r1, r2
|
|
lsls r1, 16
|
|
ldrh r2, [r7, 0x20]
|
|
lsls r0, r4, 16
|
|
asrs r0, 16
|
|
subs r0, r2
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
ldrh r2, [r7, 0x22]
|
|
lsrs r5, r1, 16
|
|
asrs r1, 16
|
|
subs r1, r2
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
bl sub_8075B30
|
|
lsls r0, 16
|
|
movs r1, 0xC0
|
|
lsls r1, 24
|
|
adds r0, r1
|
|
lsrs r0, 16
|
|
movs r3, 0x80
|
|
lsls r3, 1
|
|
str r0, [sp]
|
|
adds r0, r7, 0
|
|
movs r1, 0
|
|
adds r2, r3, 0
|
|
bl sub_8075A1C
|
|
ldrh r0, [r6, 0x8]
|
|
strh r0, [r7, 0x2E]
|
|
strh r4, [r7, 0x32]
|
|
strh r5, [r7, 0x36]
|
|
ldr r0, _080B448C @ =sub_8075590
|
|
str r0, [r7, 0x1C]
|
|
ldr r1, _080B4490 @ =DestroyAnimSprite
|
|
adds r0, r7, 0
|
|
bl StoreSpriteCallbackInData6
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B4480: .4byte gUnknown_2037F1A
|
|
_080B4484: .4byte gUnknown_2037F02
|
|
_080B4488: .4byte gUnknown_2037F1B
|
|
_080B448C: .4byte sub_8075590
|
|
_080B4490: .4byte DestroyAnimSprite
|
|
thumb_func_end sub_80B4364
|
|
|
|
thumb_func_start sub_80B4494
|
|
sub_80B4494: @ 80B4494
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
movs r1, 0x1
|
|
bl sub_8075160
|
|
ldr r0, _080B4500 @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080B44B4
|
|
ldr r1, _080B4504 @ =gUnknown_2037F02
|
|
ldrh r0, [r1, 0x4]
|
|
negs r0, r0
|
|
strh r0, [r1, 0x4]
|
|
_080B44B4:
|
|
ldr r4, _080B4504 @ =gUnknown_2037F02
|
|
ldrh r0, [r4, 0x8]
|
|
strh r0, [r6, 0x2E]
|
|
ldr r5, _080B4508 @ =gUnknown_2037F1B
|
|
ldrb r0, [r5]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrh r1, [r4, 0x4]
|
|
adds r0, r1
|
|
strh r0, [r6, 0x32]
|
|
ldrb r0, [r5]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrh r1, [r4, 0x6]
|
|
adds r0, r1
|
|
strh r0, [r6, 0x36]
|
|
ldrh r0, [r4, 0xA]
|
|
strh r0, [r6, 0x38]
|
|
adds r0, r6, 0
|
|
bl sub_8075068
|
|
ldr r0, _080B450C @ =sub_80B4510
|
|
str r0, [r6, 0x1C]
|
|
adds r2, r6, 0
|
|
adds r2, 0x3E
|
|
ldrb r0, [r2]
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B4500: .4byte gUnknown_2037F1A
|
|
_080B4504: .4byte gUnknown_2037F02
|
|
_080B4508: .4byte gUnknown_2037F1B
|
|
_080B450C: .4byte sub_80B4510
|
|
thumb_func_end sub_80B4494
|
|
|
|
thumb_func_start sub_80B4510
|
|
sub_80B4510: @ 80B4510
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x14
|
|
adds r4, r0, 0
|
|
adds r2, r4, 0
|
|
adds r2, 0x3E
|
|
ldrb r0, [r2]
|
|
movs r1, 0x5
|
|
negs r1, r1
|
|
ands r1, r0
|
|
strb r1, [r2]
|
|
adds r0, r4, 0
|
|
bl AnimateBallThrow
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080B453C
|
|
adds r0, r4, 0
|
|
bl DestroyAnimSprite
|
|
b _080B45CC
|
|
_080B453C:
|
|
movs r0, 0x2E
|
|
adds r0, r4
|
|
mov r8, r0
|
|
ldrh r7, [r4, 0x20]
|
|
ldrh r5, [r4, 0x24]
|
|
ldrh r1, [r4, 0x22]
|
|
mov r12, r1
|
|
ldrh r6, [r4, 0x26]
|
|
mov r2, r8
|
|
add r1, sp, 0x4
|
|
movs r3, 0x7
|
|
_080B4552:
|
|
ldrh r0, [r2]
|
|
strh r0, [r1]
|
|
adds r2, 0x2
|
|
adds r1, 0x2
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bge _080B4552
|
|
adds r0, r7, r5
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
mov r2, r12
|
|
adds r0, r2, r6
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
adds r0, r4, 0
|
|
bl AnimateBallThrow
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080B45CC
|
|
ldrh r0, [r4, 0x24]
|
|
ldrh r1, [r4, 0x20]
|
|
adds r0, r1
|
|
lsls r1, r5, 16
|
|
asrs r1, 16
|
|
subs r0, r1
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
ldrh r1, [r4, 0x26]
|
|
ldrh r2, [r4, 0x22]
|
|
adds r1, r2
|
|
lsls r2, r6, 16
|
|
asrs r2, 16
|
|
subs r1, r2
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
bl sub_8075B30
|
|
lsls r0, 16
|
|
movs r1, 0xC0
|
|
lsls r1, 24
|
|
adds r0, r1
|
|
lsrs r0, 16
|
|
movs r3, 0x80
|
|
lsls r3, 1
|
|
str r0, [sp]
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
adds r2, r3, 0
|
|
bl sub_8075A1C
|
|
add r2, sp, 0x4
|
|
mov r1, r8
|
|
movs r3, 0x7
|
|
_080B45BE:
|
|
ldrh r0, [r2]
|
|
strh r0, [r1]
|
|
adds r2, 0x2
|
|
adds r1, 0x2
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bge _080B45BE
|
|
_080B45CC:
|
|
add sp, 0x14
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80B4510
|
|
|
|
thumb_func_start sub_80B45D8
|
|
sub_80B45D8: @ 80B45D8
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
ldr r0, _080B45EC @ =gUnknown_2037F02
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0
|
|
bne _080B45F4
|
|
ldr r4, _080B45F0 @ =gUnknown_2037F1A
|
|
b _080B45F6
|
|
.align 2, 0
|
|
_080B45EC: .4byte gUnknown_2037F02
|
|
_080B45F0: .4byte gUnknown_2037F1A
|
|
_080B45F4:
|
|
ldr r4, _080B4628 @ =gUnknown_2037F1B
|
|
_080B45F6:
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x20]
|
|
ldrb r0, [r4]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r0, 0x12
|
|
strh r0, [r5, 0x22]
|
|
ldr r1, _080B462C @ =move_anim_8074EE0
|
|
adds r0, r5, 0
|
|
bl StoreSpriteCallbackInData6
|
|
ldr r0, _080B4630 @ =sub_8074F50
|
|
str r0, [r5, 0x1C]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B4628: .4byte gUnknown_2037F1B
|
|
_080B462C: .4byte move_anim_8074EE0
|
|
_080B4630: .4byte sub_8074F50
|
|
thumb_func_end sub_80B45D8
|
|
|
|
thumb_func_start sub_80B4634
|
|
sub_80B4634: @ 80B4634
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
ldr r6, _080B46A0 @ =gUnknown_2037F02
|
|
movs r1, 0x6
|
|
ldrsh r0, [r6, r1]
|
|
cmp r0, 0
|
|
beq _080B4654
|
|
ldr r0, _080B46A4 @ =gUnknown_2037F1B
|
|
ldrb r0, [r0]
|
|
adds r2, r5, 0
|
|
adds r2, 0x20
|
|
adds r3, r5, 0
|
|
adds r3, 0x22
|
|
movs r1, 0
|
|
bl sub_8076D9C
|
|
_080B4654:
|
|
ldrh r0, [r6]
|
|
ldrh r1, [r5, 0x20]
|
|
adds r0, r1
|
|
movs r4, 0
|
|
strh r0, [r5, 0x20]
|
|
ldrh r0, [r5, 0x22]
|
|
adds r0, 0xE
|
|
strh r0, [r5, 0x22]
|
|
ldrb r1, [r6, 0x2]
|
|
adds r0, r5, 0
|
|
bl StartSpriteAnim
|
|
adds r0, r5, 0
|
|
bl AnimateSprite
|
|
strh r4, [r5, 0x2E]
|
|
strh r4, [r5, 0x30]
|
|
movs r0, 0x4
|
|
strh r0, [r5, 0x32]
|
|
movs r0, 0x10
|
|
strh r0, [r5, 0x34]
|
|
ldr r0, _080B46A8 @ =0x0000ffba
|
|
strh r0, [r5, 0x36]
|
|
ldrh r0, [r6, 0x4]
|
|
strh r0, [r5, 0x38]
|
|
ldr r1, _080B46AC @ =sub_80B46B4
|
|
adds r0, r5, 0
|
|
bl StoreSpriteCallbackInData6
|
|
ldr r1, _080B46B0 @ =sub_8074BE4
|
|
str r1, [r5, 0x1C]
|
|
adds r0, r5, 0
|
|
bl _call_via_r1
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B46A0: .4byte gUnknown_2037F02
|
|
_080B46A4: .4byte gUnknown_2037F1B
|
|
_080B46A8: .4byte 0x0000ffba
|
|
_080B46AC: .4byte sub_80B46B4
|
|
_080B46B0: .4byte sub_8074BE4
|
|
thumb_func_end sub_80B4634
|
|
|
|
thumb_func_start sub_80B46B4
|
|
sub_80B46B4: @ 80B46B4
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrh r1, [r4, 0x38]
|
|
ldrh r2, [r4, 0x20]
|
|
adds r0, r1, r2
|
|
strh r0, [r4, 0x20]
|
|
movs r0, 0xC0
|
|
strh r0, [r4, 0x2E]
|
|
strh r1, [r4, 0x30]
|
|
movs r0, 0x4
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x20
|
|
strh r0, [r4, 0x34]
|
|
ldr r0, _080B46EC @ =0x0000ffe8
|
|
strh r0, [r4, 0x36]
|
|
ldr r1, _080B46F0 @ =move_anim_8074EE0
|
|
adds r0, r4, 0
|
|
bl StoreSpriteCallbackInData6
|
|
ldr r1, _080B46F4 @ =sub_8074BE4
|
|
str r1, [r4, 0x1C]
|
|
adds r0, r4, 0
|
|
bl _call_via_r1
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B46EC: .4byte 0x0000ffe8
|
|
_080B46F0: .4byte move_anim_8074EE0
|
|
_080B46F4: .4byte sub_8074BE4
|
|
thumb_func_end sub_80B46B4
|
|
|
|
thumb_func_start sub_80B46F8
|
|
sub_80B46F8: @ 80B46F8
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
ldr r4, _080B4720 @ =gUnknown_2037F02
|
|
ldrb r1, [r4, 0xA]
|
|
bl StartSpriteAnim
|
|
adds r0, r5, 0
|
|
bl AnimateSprite
|
|
ldr r0, _080B4724 @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080B4728
|
|
ldrh r0, [r5, 0x20]
|
|
ldrh r1, [r4]
|
|
subs r0, r1
|
|
b _080B472E
|
|
.align 2, 0
|
|
_080B4720: .4byte gUnknown_2037F02
|
|
_080B4724: .4byte gUnknown_2037F1A
|
|
_080B4728:
|
|
ldrh r0, [r4]
|
|
ldrh r1, [r5, 0x20]
|
|
adds r0, r1
|
|
_080B472E:
|
|
strh r0, [r5, 0x20]
|
|
ldr r3, _080B4770 @ =gUnknown_2037F02
|
|
ldrh r2, [r3, 0x2]
|
|
ldrh r0, [r5, 0x22]
|
|
adds r2, r0
|
|
movs r4, 0
|
|
strh r2, [r5, 0x22]
|
|
ldrh r0, [r3, 0x8]
|
|
strh r0, [r5, 0x2E]
|
|
ldrh r0, [r5, 0x20]
|
|
strh r0, [r5, 0x30]
|
|
ldrh r1, [r3, 0x4]
|
|
adds r0, r1
|
|
strh r0, [r5, 0x32]
|
|
strh r2, [r5, 0x34]
|
|
ldrh r0, [r3, 0x6]
|
|
adds r2, r0
|
|
strh r2, [r5, 0x36]
|
|
adds r0, r5, 0
|
|
bl sub_80754B8
|
|
strh r4, [r5, 0x34]
|
|
strh r4, [r5, 0x36]
|
|
ldr r0, _080B4774 @ =sub_8074D00
|
|
str r0, [r5, 0x1C]
|
|
ldr r1, _080B4778 @ =move_anim_8074EE0
|
|
adds r0, r5, 0
|
|
bl StoreSpriteCallbackInData6
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B4770: .4byte gUnknown_2037F02
|
|
_080B4774: .4byte sub_8074D00
|
|
_080B4778: .4byte move_anim_8074EE0
|
|
thumb_func_end sub_80B46F8
|
|
|
|
thumb_func_start sub_80B477C
|
|
sub_80B477C: @ 80B477C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldr r0, _080B4794 @ =gUnknown_2037F02
|
|
movs r1, 0xC
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0
|
|
bne _080B4798
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl sub_8075160
|
|
b _080B47A0
|
|
.align 2, 0
|
|
_080B4794: .4byte gUnknown_2037F02
|
|
_080B4798:
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl sub_8075114
|
|
_080B47A0:
|
|
ldr r1, _080B47BC @ =gUnknown_2037F02
|
|
ldrh r0, [r1, 0x6]
|
|
strh r0, [r4, 0x2E]
|
|
ldrh r0, [r1, 0x4]
|
|
strh r0, [r4, 0x30]
|
|
ldrh r0, [r1, 0x8]
|
|
strh r0, [r4, 0x32]
|
|
ldrh r0, [r1, 0xA]
|
|
strh r0, [r4, 0x34]
|
|
ldr r0, _080B47C0 @ =sub_80B47C4
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B47BC: .4byte gUnknown_2037F02
|
|
_080B47C0: .4byte sub_80B47C4
|
|
thumb_func_end sub_80B477C
|
|
|
|
thumb_func_start sub_80B47C4
|
|
sub_80B47C4: @ 80B47C4
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrh r0, [r4, 0x30]
|
|
ldrh r1, [r4, 0x36]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x36]
|
|
lsls r0, 16
|
|
asrs r0, 24
|
|
negs r0, r0
|
|
strh r0, [r4, 0x26]
|
|
movs r2, 0x38
|
|
ldrsh r0, [r4, r2]
|
|
movs r2, 0x34
|
|
ldrsh r1, [r4, r2]
|
|
bl Sin
|
|
strh r0, [r4, 0x24]
|
|
ldrh r0, [r4, 0x32]
|
|
ldrh r1, [r4, 0x38]
|
|
adds r0, r1
|
|
movs r1, 0xFF
|
|
ands r0, r1
|
|
strh r0, [r4, 0x38]
|
|
ldrh r0, [r4, 0x2E]
|
|
subs r0, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
cmp r0, r1
|
|
bne _080B480A
|
|
adds r0, r4, 0
|
|
bl DestroyAnimSprite
|
|
_080B480A:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80B47C4
|
|
|
|
thumb_func_start do_boulder_dust
|
|
do_boulder_dust: @ 80B4810
|
|
push {r4-r6,lr}
|
|
sub sp, 0x10
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
movs r5, 0
|
|
ldr r1, _080B48E4 @ =0x00003f42
|
|
movs r0, 0x50
|
|
bl SetGpuReg
|
|
movs r1, 0x80
|
|
lsls r1, 5
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
movs r0, 0x1
|
|
movs r1, 0x4
|
|
movs r2, 0x1
|
|
bl SetAnimBgAttribute
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl SetAnimBgAttribute
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080B4854
|
|
movs r0, 0x1
|
|
movs r1, 0x3
|
|
movs r2, 0x1
|
|
bl SetAnimBgAttribute
|
|
_080B4854:
|
|
ldr r0, _080B48E8 @ =gUnknown_2022978
|
|
strh r5, [r0]
|
|
ldr r4, _080B48EC @ =gUnknown_202297A
|
|
strh r5, [r4]
|
|
movs r0, 0x14
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
ldrh r1, [r4]
|
|
movs r0, 0x16
|
|
bl SetGpuReg
|
|
mov r0, sp
|
|
bl sub_80752A0
|
|
mov r0, sp
|
|
ldrb r0, [r0, 0x9]
|
|
ldr r1, _080B48F0 @ =gFile_graphics_battle_anims_backgrounds_sandstorm_brew_tilemap
|
|
bl sub_807543C
|
|
mov r0, sp
|
|
ldrb r0, [r0, 0x9]
|
|
ldr r1, _080B48F4 @ =gFile_graphics_battle_anims_backgrounds_sandstorm_brew_sheet
|
|
mov r2, sp
|
|
ldrh r2, [r2, 0xA]
|
|
bl sub_80753B4
|
|
ldr r0, _080B48F8 @ =gFile_graphics_battle_anims_sprites_261_palette
|
|
mov r1, sp
|
|
ldrb r1, [r1, 0x8]
|
|
lsls r1, 4
|
|
movs r2, 0x20
|
|
bl LoadCompressedPalette
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080B48B0
|
|
mov r0, sp
|
|
ldrb r0, [r0, 0x8]
|
|
ldr r1, [sp, 0x4]
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl sub_80730C0
|
|
_080B48B0:
|
|
ldr r0, _080B48FC @ =gUnknown_2037F02
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0
|
|
beq _080B48CA
|
|
ldr r0, _080B4900 @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080B48CA
|
|
movs r5, 0x1
|
|
_080B48CA:
|
|
ldr r0, _080B4904 @ =gTasks
|
|
lsls r1, r6, 2
|
|
adds r1, r6
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
strh r5, [r1, 0x8]
|
|
ldr r0, _080B4908 @ =sub_80B490C
|
|
str r0, [r1]
|
|
add sp, 0x10
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B48E4: .4byte 0x00003f42
|
|
_080B48E8: .4byte gUnknown_2022978
|
|
_080B48EC: .4byte gUnknown_202297A
|
|
_080B48F0: .4byte gFile_graphics_battle_anims_backgrounds_sandstorm_brew_tilemap
|
|
_080B48F4: .4byte gFile_graphics_battle_anims_backgrounds_sandstorm_brew_sheet
|
|
_080B48F8: .4byte gFile_graphics_battle_anims_sprites_261_palette
|
|
_080B48FC: .4byte gUnknown_2037F02
|
|
_080B4900: .4byte gUnknown_2037F1A
|
|
_080B4904: .4byte gTasks
|
|
_080B4908: .4byte sub_80B490C
|
|
thumb_func_end do_boulder_dust
|
|
|
|
thumb_func_start sub_80B490C
|
|
sub_80B490C: @ 80B490C
|
|
push {r4,r5,lr}
|
|
sub sp, 0x10
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r1, _080B4934 @ =gTasks
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
movs r2, 0x8
|
|
ldrsh r0, [r0, r2]
|
|
adds r2, r1, 0
|
|
cmp r0, 0
|
|
bne _080B4940
|
|
ldr r1, _080B4938 @ =gUnknown_2022978
|
|
ldr r3, _080B493C @ =0x0000fffa
|
|
adds r0, r3, 0
|
|
ldrh r3, [r1]
|
|
adds r0, r3
|
|
b _080B4946
|
|
.align 2, 0
|
|
_080B4934: .4byte gTasks
|
|
_080B4938: .4byte gUnknown_2022978
|
|
_080B493C: .4byte 0x0000fffa
|
|
_080B4940:
|
|
ldr r1, _080B4974 @ =gUnknown_2022978
|
|
ldrh r0, [r1]
|
|
adds r0, 0x6
|
|
_080B4946:
|
|
strh r0, [r1]
|
|
ldr r1, _080B4978 @ =gUnknown_202297A
|
|
ldr r3, _080B497C @ =0x0000ffff
|
|
adds r0, r3, 0
|
|
ldrh r3, [r1]
|
|
adds r0, r3
|
|
strh r0, [r1]
|
|
lsls r1, r5, 2
|
|
adds r0, r1, r5
|
|
lsls r0, 3
|
|
adds r0, r2
|
|
movs r3, 0x20
|
|
ldrsh r0, [r0, r3]
|
|
adds r4, r1, 0
|
|
cmp r0, 0x4
|
|
bls _080B4968
|
|
b _080B4A96
|
|
_080B4968:
|
|
lsls r0, 2
|
|
ldr r1, _080B4980 @ =_080B4984
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080B4974: .4byte gUnknown_2022978
|
|
_080B4978: .4byte gUnknown_202297A
|
|
_080B497C: .4byte 0x0000ffff
|
|
_080B4980: .4byte _080B4984
|
|
.align 2, 0
|
|
_080B4984:
|
|
.4byte _080B4998
|
|
.4byte _080B49DA
|
|
.4byte _080B49F4
|
|
.4byte _080B4A36
|
|
.4byte _080B4A58
|
|
_080B4998:
|
|
adds r0, r4, r5
|
|
lsls r0, 3
|
|
adds r4, r0, r2
|
|
ldrh r0, [r4, 0x1C]
|
|
adds r0, 0x1
|
|
movs r5, 0
|
|
strh r0, [r4, 0x1C]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x4
|
|
bne _080B4A96
|
|
strh r5, [r4, 0x1C]
|
|
ldrh r1, [r4, 0x1E]
|
|
adds r1, 0x1
|
|
strh r1, [r4, 0x1E]
|
|
movs r0, 0x10
|
|
subs r0, r1
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
movs r1, 0x1E
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x7
|
|
bne _080B4A96
|
|
ldrh r0, [r4, 0x20]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x20]
|
|
strh r5, [r4, 0x1E]
|
|
b _080B4A96
|
|
_080B49DA:
|
|
adds r0, r4, r5
|
|
lsls r0, 3
|
|
adds r1, r0, r2
|
|
ldrh r0, [r1, 0x1E]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x1E]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x65
|
|
bne _080B4A96
|
|
movs r0, 0x7
|
|
strh r0, [r1, 0x1E]
|
|
b _080B4A4C
|
|
_080B49F4:
|
|
adds r0, r4, r5
|
|
lsls r0, 3
|
|
adds r4, r0, r2
|
|
ldrh r0, [r4, 0x1C]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x1C]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x4
|
|
bne _080B4A96
|
|
movs r0, 0
|
|
strh r0, [r4, 0x1C]
|
|
ldrh r1, [r4, 0x1E]
|
|
subs r1, 0x1
|
|
strh r1, [r4, 0x1E]
|
|
movs r0, 0x10
|
|
subs r0, r1
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
movs r2, 0x1E
|
|
ldrsh r1, [r4, r2]
|
|
cmp r1, 0
|
|
bne _080B4A96
|
|
ldrh r0, [r4, 0x20]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x20]
|
|
strh r1, [r4, 0x1E]
|
|
b _080B4A96
|
|
_080B4A36:
|
|
mov r0, sp
|
|
bl sub_80752A0
|
|
mov r0, sp
|
|
ldrb r0, [r0, 0x9]
|
|
bl sub_8075358
|
|
ldr r0, _080B4A54 @ =gTasks
|
|
adds r1, r4, r5
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
_080B4A4C:
|
|
ldrh r0, [r1, 0x20]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x20]
|
|
b _080B4A96
|
|
.align 2, 0
|
|
_080B4A54: .4byte gTasks
|
|
_080B4A58:
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080B4A6C
|
|
movs r0, 0x1
|
|
movs r1, 0x3
|
|
movs r2, 0
|
|
bl SetAnimBgAttribute
|
|
_080B4A6C:
|
|
ldr r0, _080B4AA0 @ =gUnknown_2022978
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
ldr r0, _080B4AA4 @ =gUnknown_202297A
|
|
strh r1, [r0]
|
|
movs r0, 0x50
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x52
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x1
|
|
movs r1, 0x4
|
|
movs r2, 0x1
|
|
bl SetAnimBgAttribute
|
|
adds r0, r5, 0
|
|
bl DestroyAnimVisualTask
|
|
_080B4A96:
|
|
add sp, 0x10
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B4AA0: .4byte gUnknown_2022978
|
|
_080B4AA4: .4byte gUnknown_202297A
|
|
thumb_func_end sub_80B490C
|
|
|
|
thumb_func_start sub_80B4AA8
|
|
sub_80B4AA8: @ 80B4AA8
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0
|
|
bne _080B4B24
|
|
ldr r4, _080B4AEC @ =gUnknown_2037F02
|
|
movs r2, 0x6
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0
|
|
beq _080B4AF4
|
|
ldr r0, _080B4AF0 @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080B4AF4
|
|
movs r0, 0x98
|
|
lsls r0, 1
|
|
strh r0, [r5, 0x20]
|
|
ldrh r0, [r4, 0x2]
|
|
negs r0, r0
|
|
strh r0, [r4, 0x2]
|
|
movs r0, 0x1
|
|
strh r0, [r5, 0x38]
|
|
ldrb r1, [r5, 0x3]
|
|
subs r0, 0x40
|
|
ands r0, r1
|
|
movs r1, 0x10
|
|
orrs r0, r1
|
|
strb r0, [r5, 0x3]
|
|
b _080B4AF8
|
|
.align 2, 0
|
|
_080B4AEC: .4byte gUnknown_2037F02
|
|
_080B4AF0: .4byte gUnknown_2037F1A
|
|
_080B4AF4:
|
|
ldr r0, _080B4B18 @ =0x0000ffc0
|
|
strh r0, [r5, 0x20]
|
|
_080B4AF8:
|
|
ldr r4, _080B4B1C @ =gUnknown_2037F02
|
|
ldrh r0, [r4]
|
|
strh r0, [r5, 0x22]
|
|
ldr r1, _080B4B20 @ =gUnknown_83E7470
|
|
adds r0, r5, 0
|
|
bl SetSubspriteTables
|
|
ldrh r0, [r4, 0x2]
|
|
strh r0, [r5, 0x30]
|
|
ldrh r0, [r4, 0x4]
|
|
strh r0, [r5, 0x32]
|
|
ldrh r0, [r5, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x2E]
|
|
b _080B4B80
|
|
.align 2, 0
|
|
_080B4B18: .4byte 0x0000ffc0
|
|
_080B4B1C: .4byte gUnknown_2037F02
|
|
_080B4B20: .4byte gUnknown_83E7470
|
|
_080B4B24:
|
|
ldrh r1, [r5, 0x30]
|
|
ldrh r3, [r5, 0x34]
|
|
adds r1, r3
|
|
ldrh r2, [r5, 0x32]
|
|
ldrh r0, [r5, 0x36]
|
|
adds r2, r0
|
|
lsls r0, r1, 16
|
|
asrs r0, 24
|
|
ldrh r3, [r5, 0x24]
|
|
adds r0, r3
|
|
strh r0, [r5, 0x24]
|
|
lsls r0, r2, 16
|
|
asrs r0, 24
|
|
ldrh r3, [r5, 0x26]
|
|
adds r0, r3
|
|
strh r0, [r5, 0x26]
|
|
movs r0, 0xFF
|
|
ands r1, r0
|
|
strh r1, [r5, 0x34]
|
|
ands r2, r0
|
|
strh r2, [r5, 0x36]
|
|
movs r1, 0x38
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0
|
|
bne _080B4B6A
|
|
movs r2, 0x20
|
|
ldrsh r0, [r5, r2]
|
|
movs r3, 0x24
|
|
ldrsh r1, [r5, r3]
|
|
adds r0, r1
|
|
movs r1, 0x88
|
|
lsls r1, 1
|
|
cmp r0, r1
|
|
ble _080B4B80
|
|
b _080B4B7C
|
|
_080B4B6A:
|
|
movs r1, 0x20
|
|
ldrsh r0, [r5, r1]
|
|
movs r2, 0x24
|
|
ldrsh r1, [r5, r2]
|
|
adds r0, r1
|
|
movs r1, 0x20
|
|
negs r1, r1
|
|
cmp r0, r1
|
|
bge _080B4B80
|
|
_080B4B7C:
|
|
ldr r0, _080B4B88 @ =DestroyAnimSprite
|
|
str r0, [r5, 0x1C]
|
|
_080B4B80:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B4B88: .4byte DestroyAnimSprite
|
|
thumb_func_end sub_80B4AA8
|
|
|
|
thumb_func_start sub_80B4B8C
|
|
sub_80B4B8C: @ 80B4B8C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
ldr r5, _080B4BC4 @ =gUnknown_2037F02
|
|
ldrb r1, [r5, 0x8]
|
|
bl StartSpriteAnim
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl sub_8075160
|
|
ldrh r0, [r5, 0x6]
|
|
strh r0, [r4, 0x2E]
|
|
ldrh r0, [r4, 0x20]
|
|
strh r0, [r4, 0x32]
|
|
ldrh r0, [r5, 0x4]
|
|
ldrh r1, [r4, 0x22]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x36]
|
|
ldr r0, _080B4BC8 @ =sub_8075590
|
|
str r0, [r4, 0x1C]
|
|
ldr r1, _080B4BCC @ =DestroyAnimSprite
|
|
adds r0, r4, 0
|
|
bl StoreSpriteCallbackInData6
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B4BC4: .4byte gUnknown_2037F02
|
|
_080B4BC8: .4byte sub_8075590
|
|
_080B4BCC: .4byte DestroyAnimSprite
|
|
thumb_func_end sub_80B4B8C
|
|
|
|
thumb_func_start sub_80B4BD0
|
|
sub_80B4BD0: @ 80B4BD0
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
ldr r0, _080B4C50 @ =gTasks
|
|
adds r6, r1, r0
|
|
ldr r5, _080B4C54 @ =gUnknown_2037F1A
|
|
ldrb r0, [r5]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
ldrb r0, [r5]
|
|
movs r1, 0x1
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 8
|
|
movs r1, 0xC0
|
|
lsls r1, 13
|
|
adds r0, r1
|
|
lsrs r7, r0, 16
|
|
ldr r4, _080B4C58 @ =gUnknown_2037F1B
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r10, r0
|
|
ldrb r0, [r4]
|
|
movs r1, 0x1
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 8
|
|
movs r2, 0xC0
|
|
lsls r2, 13
|
|
adds r0, r2
|
|
lsrs r0, 16
|
|
mov r8, r0
|
|
ldrb r1, [r5]
|
|
movs r0, 0x2
|
|
eors r0, r1
|
|
ldrb r4, [r4]
|
|
cmp r0, r4
|
|
bne _080B4C40
|
|
mov r8, r7
|
|
_080B4C40:
|
|
bl sub_80B4FB8
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0x1
|
|
bne _080B4C5C
|
|
movs r0, 0x20
|
|
b _080B4C62
|
|
.align 2, 0
|
|
_080B4C50: .4byte gTasks
|
|
_080B4C54: .4byte gUnknown_2037F1A
|
|
_080B4C58: .4byte gUnknown_2037F1B
|
|
_080B4C5C:
|
|
lsls r1, r5, 3
|
|
movs r0, 0x30
|
|
subs r0, r1
|
|
_080B4C62:
|
|
strh r0, [r6, 0x18]
|
|
movs r4, 0
|
|
strh r4, [r6, 0x8]
|
|
strh r4, [r6, 0x1E]
|
|
strh r4, [r6, 0x1A]
|
|
movs r0, 0x1
|
|
strh r0, [r6, 0x20]
|
|
movs r1, 0x18
|
|
ldrsh r0, [r6, r1]
|
|
cmp r0, 0
|
|
bge _080B4C7A
|
|
adds r0, 0x7
|
|
_080B4C7A:
|
|
asrs r0, 3
|
|
subs r0, 0x1
|
|
strh r0, [r6, 0x1C]
|
|
mov r2, r9
|
|
lsls r0, r2, 3
|
|
strh r0, [r6, 0xC]
|
|
lsls r0, r7, 3
|
|
strh r0, [r6, 0xE]
|
|
mov r1, r10
|
|
subs r0, r1, r2
|
|
lsls r0, 3
|
|
movs r2, 0x18
|
|
ldrsh r1, [r6, r2]
|
|
bl __divsi3
|
|
strh r0, [r6, 0x10]
|
|
mov r1, r8
|
|
subs r0, r1, r7
|
|
lsls r0, 3
|
|
movs r2, 0x18
|
|
ldrsh r1, [r6, r2]
|
|
bl __divsi3
|
|
strh r0, [r6, 0x12]
|
|
strh r4, [r6, 0x14]
|
|
strh r4, [r6, 0x16]
|
|
movs r0, 0x40
|
|
negs r0, r0
|
|
bl sub_8073A44
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
asrs r4, 8
|
|
lsrs r4, 16
|
|
movs r0, 0x3F
|
|
bl sub_8073A44
|
|
lsls r0, 24
|
|
strh r4, [r6, 0x22]
|
|
asrs r0, 24
|
|
lsls r4, 16
|
|
asrs r4, 16
|
|
subs r0, r4
|
|
movs r2, 0x18
|
|
ldrsh r1, [r6, r2]
|
|
bl __divsi3
|
|
strh r0, [r6, 0x24]
|
|
strh r5, [r6, 0xA]
|
|
movs r0, 0
|
|
bl GetAnimBankSpriteId
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r6, 0x26]
|
|
ldr r0, _080B4CFC @ =sub_80B4D00
|
|
str r0, [r6]
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B4CFC: .4byte sub_80B4D00
|
|
thumb_func_end sub_80B4BD0
|
|
|
|
thumb_func_start sub_80B4D00
|
|
sub_80B4D00: @ 80B4D00
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
lsls r0, r2, 2
|
|
adds r0, r2
|
|
lsls r0, 3
|
|
ldr r1, _080B4D24 @ =gTasks
|
|
adds r4, r0, r1
|
|
movs r1, 0x8
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x4
|
|
bls _080B4D1A
|
|
b _080B4E68
|
|
_080B4D1A:
|
|
lsls r0, 2
|
|
ldr r1, _080B4D28 @ =_080B4D2C
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080B4D24: .4byte gTasks
|
|
_080B4D28: .4byte _080B4D2C
|
|
.align 2, 0
|
|
_080B4D2C:
|
|
.4byte _080B4D40
|
|
.4byte _080B4DA4
|
|
.4byte _080B4DAC
|
|
.4byte _080B4E08
|
|
.4byte _080B4E5A
|
|
_080B4D40:
|
|
ldrh r2, [r4, 0x14]
|
|
ldrh r0, [r4, 0x10]
|
|
subs r2, r0
|
|
strh r2, [r4, 0x14]
|
|
ldrh r0, [r4, 0x16]
|
|
ldrh r1, [r4, 0x12]
|
|
subs r0, r1
|
|
strh r0, [r4, 0x16]
|
|
ldr r3, _080B4DA0 @ =gSprites
|
|
movs r0, 0x26
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
lsls r2, 16
|
|
asrs r2, 19
|
|
strh r2, [r0, 0x24]
|
|
movs r1, 0x26
|
|
ldrsh r0, [r4, r1]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r3
|
|
ldrh r0, [r4, 0x16]
|
|
lsls r0, 16
|
|
asrs r0, 19
|
|
strh r0, [r1, 0x26]
|
|
ldrh r0, [r4, 0x1A]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x1A]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0xA
|
|
bne _080B4D90
|
|
movs r0, 0x14
|
|
strh r0, [r4, 0x1E]
|
|
ldrh r0, [r4, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x8]
|
|
_080B4D90:
|
|
ldrh r1, [r4, 0x22]
|
|
lsls r1, 24
|
|
asrs r1, 24
|
|
movs r0, 0x9B
|
|
bl PlaySE12WithPanning
|
|
b _080B4E68
|
|
.align 2, 0
|
|
_080B4DA0: .4byte gSprites
|
|
_080B4DA4:
|
|
ldrh r0, [r4, 0x1E]
|
|
subs r0, 0x1
|
|
strh r0, [r4, 0x1E]
|
|
b _080B4E4C
|
|
_080B4DAC:
|
|
ldrh r0, [r4, 0x1A]
|
|
subs r0, 0x1
|
|
strh r0, [r4, 0x1A]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0
|
|
beq _080B4DCC
|
|
ldrh r0, [r4, 0x10]
|
|
ldrh r2, [r4, 0x14]
|
|
adds r0, r2
|
|
strh r0, [r4, 0x14]
|
|
ldrh r0, [r4, 0x12]
|
|
ldrh r1, [r4, 0x16]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x16]
|
|
b _080B4DD6
|
|
_080B4DCC:
|
|
strh r0, [r4, 0x14]
|
|
strh r0, [r4, 0x16]
|
|
ldrh r0, [r4, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x8]
|
|
_080B4DD6:
|
|
ldr r2, _080B4E04 @ =gSprites
|
|
movs r1, 0x26
|
|
ldrsh r0, [r4, r1]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
ldrh r0, [r4, 0x14]
|
|
lsls r0, 16
|
|
asrs r0, 19
|
|
strh r0, [r1, 0x24]
|
|
movs r1, 0x26
|
|
ldrsh r0, [r4, r1]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
ldrh r0, [r4, 0x16]
|
|
lsls r0, 16
|
|
asrs r0, 19
|
|
strh r0, [r1, 0x26]
|
|
b _080B4E68
|
|
.align 2, 0
|
|
_080B4E04: .4byte gSprites
|
|
_080B4E08:
|
|
ldrh r0, [r4, 0x10]
|
|
ldrh r2, [r4, 0xC]
|
|
adds r0, r2
|
|
strh r0, [r4, 0xC]
|
|
ldrh r0, [r4, 0x12]
|
|
ldrh r1, [r4, 0xE]
|
|
adds r0, r1
|
|
strh r0, [r4, 0xE]
|
|
ldrh r0, [r4, 0x1A]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x1A]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r2, 0x1C
|
|
ldrsh r1, [r4, r2]
|
|
cmp r0, r1
|
|
blt _080B4E46
|
|
movs r0, 0
|
|
strh r0, [r4, 0x1A]
|
|
adds r0, r4, 0
|
|
bl sub_80B4E70
|
|
ldrh r1, [r4, 0x24]
|
|
ldrh r0, [r4, 0x22]
|
|
adds r1, r0
|
|
strh r1, [r4, 0x22]
|
|
lsls r1, 24
|
|
asrs r1, 24
|
|
movs r0, 0xA8
|
|
bl PlaySE12WithPanning
|
|
_080B4E46:
|
|
ldrh r0, [r4, 0x18]
|
|
subs r0, 0x1
|
|
strh r0, [r4, 0x18]
|
|
_080B4E4C:
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bne _080B4E68
|
|
ldrh r0, [r4, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x8]
|
|
b _080B4E68
|
|
_080B4E5A:
|
|
movs r1, 0x1E
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bne _080B4E68
|
|
adds r0, r2, 0
|
|
bl DestroyAnimVisualTask
|
|
_080B4E68:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80B4D00
|
|
|
|
thumb_func_start sub_80B4E70
|
|
sub_80B4E70: @ 80B4E70
|
|
push {r4-r7,lr}
|
|
adds r4, r0, 0
|
|
ldrh r0, [r4, 0xA]
|
|
subs r0, 0x1
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x4
|
|
bhi _080B4F60
|
|
lsls r0, 2
|
|
ldr r1, _080B4E8C @ =_080B4E90
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080B4E8C: .4byte _080B4E90
|
|
.align 2, 0
|
|
_080B4E90:
|
|
.4byte _080B4EA4
|
|
.4byte _080B4EB0
|
|
.4byte _080B4EB0
|
|
.4byte _080B4EBC
|
|
.4byte _080B4EC8
|
|
_080B4EA4:
|
|
ldr r3, _080B4EAC @ =gUnknown_83E74D8
|
|
movs r5, 0
|
|
b _080B4ECC
|
|
.align 2, 0
|
|
_080B4EAC: .4byte gUnknown_83E74D8
|
|
_080B4EB0:
|
|
ldr r3, _080B4EB8 @ =gUnknown_83E74F0
|
|
movs r5, 0x50
|
|
b _080B4ECC
|
|
.align 2, 0
|
|
_080B4EB8: .4byte gUnknown_83E74F0
|
|
_080B4EBC:
|
|
ldr r3, _080B4EC4 @ =gUnknown_83E74F0
|
|
movs r5, 0x40
|
|
b _080B4ECC
|
|
.align 2, 0
|
|
_080B4EC4: .4byte gUnknown_83E74F0
|
|
_080B4EC8:
|
|
ldr r3, _080B4F68 @ =gUnknown_83E74F0
|
|
movs r5, 0x30
|
|
_080B4ECC:
|
|
ldrh r1, [r4, 0xC]
|
|
lsls r1, 16
|
|
asrs r1, 19
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
ldrh r2, [r4, 0xE]
|
|
lsls r2, 16
|
|
asrs r2, 19
|
|
lsls r2, 16
|
|
movs r6, 0x20
|
|
ldrsh r0, [r4, r6]
|
|
lsls r0, 2
|
|
adds r1, r0
|
|
lsls r1, 16
|
|
lsrs r6, r1, 16
|
|
asrs r1, 16
|
|
lsrs r7, r2, 16
|
|
asrs r2, 16
|
|
adds r0, r3, 0
|
|
movs r3, 0x23
|
|
bl CreateSprite
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0x40
|
|
beq _080B4F58
|
|
ldr r1, _080B4F6C @ =gSprites
|
|
lsls r0, r2, 4
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
movs r1, 0x12
|
|
strh r1, [r0, 0x2E]
|
|
movs r2, 0x20
|
|
ldrsh r1, [r4, r2]
|
|
lsls r2, r1, 2
|
|
adds r2, r1
|
|
lsls r2, 2
|
|
adds r2, r6, r2
|
|
movs r6, 0xA
|
|
ldrsh r3, [r4, r6]
|
|
lsls r1, r3, 1
|
|
adds r1, r3
|
|
adds r2, r1
|
|
strh r2, [r0, 0x32]
|
|
strh r7, [r0, 0x36]
|
|
movs r1, 0xA
|
|
ldrsh r2, [r4, r1]
|
|
lsls r2, 1
|
|
movs r3, 0x10
|
|
negs r3, r3
|
|
adds r1, r3, 0
|
|
subs r1, r2
|
|
strh r1, [r0, 0x38]
|
|
ldrh r3, [r0, 0x4]
|
|
lsls r2, r3, 22
|
|
lsrs r2, 22
|
|
adds r2, r5
|
|
ldr r5, _080B4F70 @ =0x000003ff
|
|
adds r1, r5, 0
|
|
ands r2, r1
|
|
ldr r1, _080B4F74 @ =0xfffffc00
|
|
ands r1, r3
|
|
orrs r1, r2
|
|
strh r1, [r0, 0x4]
|
|
bl sub_8075068
|
|
ldrh r0, [r4, 0x1E]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x1E]
|
|
_080B4F58:
|
|
movs r6, 0x20
|
|
ldrsh r0, [r4, r6]
|
|
negs r0, r0
|
|
strh r0, [r4, 0x20]
|
|
_080B4F60:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B4F68: .4byte gUnknown_83E74F0
|
|
_080B4F6C: .4byte gSprites
|
|
_080B4F70: .4byte 0x000003ff
|
|
_080B4F74: .4byte 0xfffffc00
|
|
thumb_func_end sub_80B4E70
|
|
|
|
thumb_func_start sub_80B4F78
|
|
sub_80B4F78: @ 80B4F78
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl AnimateBallThrow
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080B4FAA
|
|
ldr r0, _080B4FB0 @ =sub_80B4D00
|
|
bl FindTaskIdByFunc
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0xFF
|
|
beq _080B4FA4
|
|
ldr r0, _080B4FB4 @ =gTasks
|
|
lsls r1, r2, 2
|
|
adds r1, r2
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldrh r0, [r1, 0x1E]
|
|
subs r0, 0x1
|
|
strh r0, [r1, 0x1E]
|
|
_080B4FA4:
|
|
adds r0, r4, 0
|
|
bl DestroySprite
|
|
_080B4FAA:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B4FB0: .4byte sub_80B4D00
|
|
_080B4FB4: .4byte gTasks
|
|
thumb_func_end sub_80B4F78
|
|
|
|
thumb_func_start sub_80B4FB8
|
|
sub_80B4FB8: @ 80B4FB8
|
|
push {lr}
|
|
ldr r0, _080B4FE0 @ =gUnknown_2037EE4
|
|
ldr r0, [r0]
|
|
ldrb r1, [r0, 0x11]
|
|
lsrs r0, r1, 4
|
|
lsls r1, 28
|
|
lsrs r1, 28
|
|
subs r0, r1
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
movs r2, 0xFF
|
|
lsls r2, 24
|
|
adds r0, r2
|
|
lsrs r0, 24
|
|
cmp r0, 0x4
|
|
bls _080B4FDA
|
|
movs r1, 0x1
|
|
_080B4FDA:
|
|
adds r0, r1, 0
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080B4FE0: .4byte gUnknown_2037EE4
|
|
thumb_func_end sub_80B4FB8
|
|
|
|
thumb_func_start sub_80B4FE4
|
|
sub_80B4FE4: @ 80B4FE4
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
ldr r5, _080B501C @ =gUnknown_2037F02
|
|
ldrb r1, [r5, 0x8]
|
|
bl StartSpriteAnim
|
|
ldrh r0, [r5]
|
|
strh r0, [r4, 0x24]
|
|
ldrh r0, [r5, 0x2]
|
|
strh r0, [r4, 0x32]
|
|
ldrh r0, [r4, 0x34]
|
|
ldrh r1, [r5, 0x4]
|
|
subs r0, r1
|
|
strh r0, [r4, 0x34]
|
|
movs r0, 0x3
|
|
strh r0, [r4, 0x2E]
|
|
ldrh r0, [r5, 0x6]
|
|
strh r0, [r4, 0x30]
|
|
ldr r0, _080B5020 @ =sub_80B5024
|
|
str r0, [r4, 0x1C]
|
|
adds r4, 0x3E
|
|
ldrb r0, [r4]
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
strb r0, [r4]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B501C: .4byte gUnknown_2037F02
|
|
_080B5020: .4byte sub_80B5024
|
|
thumb_func_end sub_80B4FE4
|
|
|
|
thumb_func_start sub_80B5024
|
|
sub_80B5024: @ 80B5024
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
adds r3, r2, 0
|
|
adds r3, 0x3E
|
|
ldrb r0, [r3]
|
|
movs r1, 0x5
|
|
negs r1, r1
|
|
ands r1, r0
|
|
strb r1, [r3]
|
|
ldrh r1, [r2, 0x34]
|
|
movs r3, 0x34
|
|
ldrsh r0, [r2, r3]
|
|
cmp r0, 0
|
|
beq _080B505C
|
|
ldrh r3, [r2, 0x32]
|
|
adds r0, r1, r3
|
|
strh r0, [r2, 0x26]
|
|
ldrh r0, [r2, 0x2E]
|
|
adds r1, r0
|
|
strh r1, [r2, 0x34]
|
|
adds r0, 0x1
|
|
strh r0, [r2, 0x2E]
|
|
lsls r1, 16
|
|
cmp r1, 0
|
|
ble _080B506E
|
|
movs r0, 0
|
|
strh r0, [r2, 0x34]
|
|
b _080B506E
|
|
_080B505C:
|
|
ldrh r0, [r2, 0x30]
|
|
subs r0, 0x1
|
|
strh r0, [r2, 0x30]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bne _080B506E
|
|
adds r0, r2, 0
|
|
bl DestroyAnimSprite
|
|
_080B506E:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80B5024
|
|
|
|
thumb_func_start sub_80B5074
|
|
sub_80B5074: @ 80B5074
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldr r0, _080B509C @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _080B5090
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl StartSpriteAffineAnim
|
|
_080B5090:
|
|
adds r0, r4, 0
|
|
bl sub_8075DF4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B509C: .4byte gUnknown_2037F1A
|
|
thumb_func_end sub_80B5074
|
|
|
|
thumb_func_start sub_80B50A0
|
|
sub_80B50A0: @ 80B50A0
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
ldr r5, _080B50EC @ =gUnknown_2037F1B
|
|
ldrb r0, [r5]
|
|
movs r1, 0
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x20]
|
|
ldrb r0, [r5]
|
|
movs r1, 0x1
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, _080B50F0 @ =gUnknown_2037F02
|
|
ldrh r3, [r2]
|
|
ldrh r5, [r4, 0x20]
|
|
adds r1, r3, r5
|
|
strh r1, [r4, 0x20]
|
|
ldrh r1, [r2, 0x2]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x22]
|
|
strh r3, [r4, 0x30]
|
|
strh r1, [r4, 0x32]
|
|
ldrh r0, [r2, 0x4]
|
|
strh r0, [r4, 0x38]
|
|
ldrb r1, [r2, 0x6]
|
|
adds r0, r4, 0
|
|
bl StartSpriteAnim
|
|
ldr r0, _080B50F4 @ =sub_80B50F8
|
|
str r0, [r4, 0x1C]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B50EC: .4byte gUnknown_2037F1B
|
|
_080B50F0: .4byte gUnknown_2037F02
|
|
_080B50F4: .4byte sub_80B50F8
|
|
thumb_func_end sub_80B50A0
|
|
|
|
thumb_func_start sub_80B50F8
|
|
sub_80B50F8: @ 80B50F8
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrh r0, [r4, 0x2E]
|
|
adds r0, 0x8
|
|
strh r0, [r4, 0x2E]
|
|
ldrh r0, [r4, 0x30]
|
|
ldrh r1, [r4, 0x34]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x34]
|
|
ldrh r0, [r4, 0x32]
|
|
ldrh r2, [r4, 0x36]
|
|
adds r0, r2
|
|
strh r0, [r4, 0x36]
|
|
movs r1, 0x34
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0x28
|
|
bl __divsi3
|
|
ldrh r1, [r4, 0x24]
|
|
adds r1, r0
|
|
strh r1, [r4, 0x24]
|
|
movs r2, 0x2E
|
|
ldrsh r0, [r4, r2]
|
|
movs r2, 0x38
|
|
ldrsh r1, [r4, r2]
|
|
bl Sin
|
|
ldrh r1, [r4, 0x26]
|
|
subs r1, r0
|
|
strh r1, [r4, 0x26]
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x8C
|
|
ble _080B5142
|
|
adds r0, r4, 0
|
|
bl DestroyAnimSprite
|
|
_080B5142:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80B50F8
|
|
|
|
thumb_func_start sub_80B5148
|
|
sub_80B5148: @ 80B5148
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
ldr r2, _080B5180 @ =gUnknown_2037EE8
|
|
ldr r0, [r2]
|
|
cmp r0, 0x20
|
|
bgt _080B515C
|
|
ldr r1, _080B5184 @ =gUnknown_2037F02
|
|
movs r0, 0
|
|
strh r0, [r1, 0xE]
|
|
_080B515C:
|
|
ldr r2, [r2]
|
|
adds r0, r2, 0
|
|
subs r0, 0x21
|
|
cmp r0, 0x20
|
|
bhi _080B516C
|
|
ldr r1, _080B5184 @ =gUnknown_2037F02
|
|
movs r0, 0x1
|
|
strh r0, [r1, 0xE]
|
|
_080B516C:
|
|
cmp r2, 0x41
|
|
ble _080B5176
|
|
ldr r1, _080B5184 @ =gUnknown_2037F02
|
|
movs r0, 0x2
|
|
strh r0, [r1, 0xE]
|
|
_080B5176:
|
|
adds r0, r3, 0
|
|
bl DestroyAnimVisualTask
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B5180: .4byte gUnknown_2037EE8
|
|
_080B5184: .4byte gUnknown_2037F02
|
|
thumb_func_end sub_80B5148
|
|
|
|
thumb_func_start sub_80B5188
|
|
sub_80B5188: @ 80B5188
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
ldr r1, _080B51E4 @ =gTasks
|
|
lsls r0, r6, 2
|
|
adds r0, r6
|
|
lsls r0, 3
|
|
adds r5, r0, r1
|
|
movs r1, 0x8
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0
|
|
bne _080B51AA
|
|
movs r0, 0
|
|
bl sub_8075458
|
|
movs r0, 0xC8
|
|
strh r0, [r5, 0xA]
|
|
_080B51AA:
|
|
ldr r4, _080B51E8 @ =gUnknown_2022982
|
|
movs r1, 0xA
|
|
ldrsh r0, [r5, r1]
|
|
movs r1, 0xA
|
|
bl __divsi3
|
|
ldrh r1, [r4]
|
|
adds r1, r0
|
|
strh r1, [r4]
|
|
ldrh r0, [r5, 0xA]
|
|
subs r0, 0x3
|
|
strh r0, [r5, 0xA]
|
|
movs r1, 0x8
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0x78
|
|
bne _080B51D6
|
|
movs r0, 0x1
|
|
bl sub_8075458
|
|
adds r0, r6, 0
|
|
bl DestroyAnimVisualTask
|
|
_080B51D6:
|
|
ldrh r0, [r5, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x8]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B51E4: .4byte gTasks
|
|
_080B51E8: .4byte gUnknown_2022982
|
|
thumb_func_end sub_80B5188
|
|
|
|
thumb_func_start sub_80B51EC
|
|
sub_80B51EC: @ 80B51EC
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r5, r0, 0
|
|
ldr r1, _080B5258 @ =gTasks
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
adds r4, r0, r1
|
|
movs r1, 0x8
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bne _080B5218
|
|
movs r0, 0
|
|
bl sub_8075458
|
|
ldrh r0, [r4, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x8]
|
|
ldr r0, _080B525C @ =gUnknown_2022982
|
|
ldrh r0, [r0]
|
|
strh r0, [r4, 0xC]
|
|
_080B5218:
|
|
ldrh r0, [r4, 0xA]
|
|
adds r0, 0x50
|
|
movs r1, 0xFF
|
|
ands r0, r1
|
|
strh r0, [r4, 0xA]
|
|
ldr r6, _080B525C @ =gUnknown_2022982
|
|
movs r2, 0xA
|
|
ldrsh r1, [r4, r2]
|
|
movs r0, 0x4
|
|
bl Cos
|
|
ldrh r4, [r4, 0xC]
|
|
adds r0, r4
|
|
strh r0, [r6]
|
|
ldr r0, _080B5260 @ =gUnknown_2037F02
|
|
movs r2, 0xE
|
|
ldrsh r1, [r0, r2]
|
|
ldr r0, _080B5264 @ =0x00000fff
|
|
cmp r1, r0
|
|
bne _080B5250
|
|
movs r0, 0
|
|
strh r0, [r6]
|
|
movs r0, 0x1
|
|
bl sub_8075458
|
|
adds r0, r5, 0
|
|
bl DestroyAnimVisualTask
|
|
_080B5250:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B5258: .4byte gTasks
|
|
_080B525C: .4byte gUnknown_2022982
|
|
_080B5260: .4byte gUnknown_2037F02
|
|
_080B5264: .4byte 0x00000fff
|
|
thumb_func_end sub_80B51EC
|
|
|
|
thumb_func_start sub_80B5268
|
|
sub_80B5268: @ 80B5268
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x1
|
|
bl sub_8075160
|
|
ldr r0, _080B52C4 @ =gUnknown_2037F02
|
|
ldrh r0, [r0, 0x4]
|
|
strh r0, [r4, 0x2E]
|
|
ldrh r0, [r4, 0x20]
|
|
strh r0, [r4, 0x30]
|
|
ldr r5, _080B52C8 @ =gUnknown_2037F1B
|
|
ldrb r0, [r5]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x32]
|
|
ldrh r0, [r4, 0x22]
|
|
strh r0, [r4, 0x34]
|
|
ldrb r0, [r5]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x36]
|
|
adds r0, r4, 0
|
|
bl sub_8075678
|
|
ldr r0, _080B52CC @ =sub_80B52D0
|
|
str r0, [r4, 0x1C]
|
|
movs r0, 0x10
|
|
strh r0, [r4, 0x3A]
|
|
movs r1, 0xFD
|
|
lsls r1, 6
|
|
movs r0, 0x50
|
|
bl SetGpuReg
|
|
ldrh r1, [r4, 0x3A]
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B52C4: .4byte gUnknown_2037F02
|
|
_080B52C8: .4byte gUnknown_2037F1B
|
|
_080B52CC: .4byte sub_80B52D0
|
|
thumb_func_end sub_80B5268
|
|
|
|
thumb_func_start sub_80B52D0
|
|
sub_80B52D0: @ 80B52D0
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_80B53C0
|
|
adds r0, r4, 0
|
|
bl sub_80755E0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080B52F0
|
|
ldr r0, _080B52EC @ =sub_80B5344
|
|
str r0, [r4, 0x1C]
|
|
b _080B533A
|
|
.align 2, 0
|
|
_080B52EC: .4byte sub_80B5344
|
|
_080B52F0:
|
|
movs r1, 0x38
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0xA
|
|
bl Sin
|
|
ldrh r1, [r4, 0x24]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x24]
|
|
movs r1, 0x38
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0xF
|
|
bl Cos
|
|
ldrh r1, [r4, 0x26]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x26]
|
|
ldrh r2, [r4, 0x38]
|
|
adds r0, r2, 0x5
|
|
movs r1, 0xFF
|
|
ands r0, r1
|
|
strh r0, [r4, 0x38]
|
|
ldrh r0, [r4, 0x38]
|
|
lsls r2, 16
|
|
asrs r2, 16
|
|
cmp r2, 0
|
|
beq _080B5328
|
|
cmp r2, 0xC4
|
|
ble _080B533A
|
|
_080B5328:
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
ble _080B533A
|
|
ldr r0, _080B5340 @ =gUnknown_2037F24
|
|
movs r1, 0
|
|
ldrsb r1, [r0, r1]
|
|
movs r0, 0xBD
|
|
bl PlaySE12WithPanning
|
|
_080B533A:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B5340: .4byte gUnknown_2037F24
|
|
thumb_func_end sub_80B52D0
|
|
|
|
thumb_func_start sub_80B5344
|
|
sub_80B5344: @ 80B5344
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
adds r0, r4, 0
|
|
bl sub_80755E0
|
|
movs r1, 0x38
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0xA
|
|
bl Sin
|
|
ldrh r1, [r4, 0x24]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x24]
|
|
movs r1, 0x38
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0xF
|
|
bl Cos
|
|
ldrh r1, [r4, 0x26]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x26]
|
|
ldrh r2, [r4, 0x38]
|
|
adds r0, r2, 0x5
|
|
movs r1, 0xFF
|
|
ands r0, r1
|
|
strh r0, [r4, 0x38]
|
|
ldrh r0, [r4, 0x38]
|
|
lsls r2, 16
|
|
asrs r2, 16
|
|
cmp r2, 0
|
|
beq _080B538A
|
|
cmp r2, 0xC4
|
|
ble _080B5396
|
|
_080B538A:
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
ble _080B5396
|
|
movs r0, 0xBD
|
|
bl PlaySE
|
|
_080B5396:
|
|
movs r1, 0x3A
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bne _080B53B4
|
|
adds r2, r4, 0
|
|
adds r2, 0x3E
|
|
ldrb r0, [r2]
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r0, _080B53B0 @ =sub_8074F88
|
|
str r0, [r4, 0x1C]
|
|
b _080B53BA
|
|
.align 2, 0
|
|
_080B53B0: .4byte sub_8074F88
|
|
_080B53B4:
|
|
adds r0, r4, 0
|
|
bl sub_80B53C0
|
|
_080B53BA:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80B5344
|
|
|
|
thumb_func_start sub_80B53C0
|
|
sub_80B53C0: @ 80B53C0
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrh r2, [r4, 0x3A]
|
|
movs r1, 0x3A
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0xFF
|
|
ble _080B53E4
|
|
adds r0, r2, 0x1
|
|
strh r0, [r4, 0x3A]
|
|
lsls r0, 16
|
|
ldr r1, _080B53E0 @ =0x010d0000
|
|
cmp r0, r1
|
|
bne _080B544A
|
|
movs r0, 0
|
|
b _080B5448
|
|
.align 2, 0
|
|
_080B53E0: .4byte 0x010d0000
|
|
_080B53E4:
|
|
ldrh r1, [r4, 0x3C]
|
|
adds r3, r1, 0x1
|
|
strh r3, [r4, 0x3C]
|
|
movs r0, 0xFF
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080B544A
|
|
ldr r1, _080B5408 @ =0xffffff00
|
|
ands r1, r3
|
|
strh r1, [r4, 0x3C]
|
|
movs r0, 0x80
|
|
lsls r0, 1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080B540C
|
|
adds r0, r2, 0x1
|
|
b _080B540E
|
|
.align 2, 0
|
|
_080B5408: .4byte 0xffffff00
|
|
_080B540C:
|
|
subs r0, r2, 0x1
|
|
_080B540E:
|
|
strh r0, [r4, 0x3A]
|
|
ldrh r0, [r4, 0x3A]
|
|
movs r1, 0x10
|
|
subs r1, r0
|
|
lsls r1, 8
|
|
orrs r1, r0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
movs r2, 0x3A
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0
|
|
beq _080B5430
|
|
cmp r0, 0x10
|
|
bne _080B543C
|
|
_080B5430:
|
|
ldrh r0, [r4, 0x3C]
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r1, r2, 0
|
|
eors r0, r1
|
|
strh r0, [r4, 0x3C]
|
|
_080B543C:
|
|
movs r1, 0x3A
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bne _080B544A
|
|
movs r0, 0x80
|
|
lsls r0, 1
|
|
_080B5448:
|
|
strh r0, [r4, 0x3A]
|
|
_080B544A:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80B53C0
|
|
|
|
thumb_func_start sub_80B5450
|
|
sub_80B5450: @ 80B5450
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x1
|
|
bl sub_8075114
|
|
ldr r1, _080B546C @ =sub_80B5470
|
|
str r1, [r4, 0x1C]
|
|
adds r0, r4, 0
|
|
bl _call_via_r1
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B546C: .4byte sub_80B5470
|
|
thumb_func_end sub_80B5450
|
|
|
|
thumb_func_start sub_80B5470
|
|
sub_80B5470: @ 80B5470
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0x20
|
|
bl Sin
|
|
strh r0, [r4, 0x24]
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0x8
|
|
bl Cos
|
|
strh r0, [r4, 0x26]
|
|
ldrh r0, [r4, 0x2E]
|
|
subs r0, 0x41
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x82
|
|
bhi _080B54A4
|
|
ldrb r0, [r4, 0x5]
|
|
movs r1, 0xD
|
|
negs r1, r1
|
|
ands r1, r0
|
|
movs r0, 0x8
|
|
b _080B54AE
|
|
_080B54A4:
|
|
ldrb r0, [r4, 0x5]
|
|
movs r1, 0xD
|
|
negs r1, r1
|
|
ands r1, r0
|
|
movs r0, 0x4
|
|
_080B54AE:
|
|
orrs r1, r0
|
|
strb r1, [r4, 0x5]
|
|
ldrh r0, [r4, 0x2E]
|
|
adds r0, 0x13
|
|
movs r1, 0xFF
|
|
ands r0, r1
|
|
strh r0, [r4, 0x2E]
|
|
ldrh r0, [r4, 0x32]
|
|
adds r0, 0x50
|
|
strh r0, [r4, 0x32]
|
|
lsls r0, 16
|
|
asrs r0, 24
|
|
ldrh r1, [r4, 0x26]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x26]
|
|
ldrh r0, [r4, 0x3C]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x3C]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x3D
|
|
bne _080B54E0
|
|
adds r0, r4, 0
|
|
bl DestroyAnimSprite
|
|
_080B54E0:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80B5470
|
|
|
|
thumb_func_start sub_80B54E8
|
|
sub_80B54E8: @ 80B54E8
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
movs r1, 0xFD
|
|
lsls r1, 6
|
|
movs r0, 0x50
|
|
bl SetGpuReg
|
|
movs r1, 0x80
|
|
lsls r1, 5
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
movs r0, 0
|
|
bl GetAnimBankSpriteId
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl sub_80758E0
|
|
adds r0, r4, 0
|
|
movs r1, 0x80
|
|
movs r2, 0x80
|
|
movs r3, 0
|
|
bl obj_id_set_rotscale
|
|
ldr r1, _080B5560 @ =gSprites
|
|
lsls r0, r4, 4
|
|
adds r0, r4
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
adds r0, 0x3E
|
|
ldrb r2, [r0]
|
|
movs r1, 0x5
|
|
negs r1, r1
|
|
ands r1, r2
|
|
strb r1, [r0]
|
|
ldr r1, _080B5564 @ =gTasks
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
movs r2, 0
|
|
movs r1, 0x80
|
|
strh r1, [r0, 0x8]
|
|
ldr r1, _080B5568 @ =gUnknown_2037F02
|
|
ldrh r1, [r1]
|
|
strh r1, [r0, 0xA]
|
|
strh r2, [r0, 0xC]
|
|
movs r1, 0x10
|
|
strh r1, [r0, 0xE]
|
|
ldr r1, _080B556C @ =sub_80B5570
|
|
str r1, [r0]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B5560: .4byte gSprites
|
|
_080B5564: .4byte gTasks
|
|
_080B5568: .4byte gUnknown_2037F02
|
|
_080B556C: .4byte sub_80B5570
|
|
thumb_func_end sub_80B54E8
|
|
|
|
thumb_func_start sub_80B5570
|
|
sub_80B5570: @ 80B5570
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, _080B55C0 @ =gTasks
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r4, r1, r2
|
|
ldrh r0, [r4, 0x1C]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x1C]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x3
|
|
bne _080B55B8
|
|
movs r0, 0
|
|
strh r0, [r4, 0x1C]
|
|
ldrh r1, [r4, 0xC]
|
|
adds r1, 0x1
|
|
strh r1, [r4, 0xC]
|
|
ldrh r0, [r4, 0xE]
|
|
subs r0, 0x1
|
|
strh r0, [r4, 0xE]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
movs r1, 0xC
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x9
|
|
bne _080B55B8
|
|
ldr r0, _080B55C4 @ =sub_80B55C8
|
|
str r0, [r4]
|
|
_080B55B8:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B55C0: .4byte gTasks
|
|
_080B55C4: .4byte sub_80B55C8
|
|
thumb_func_end sub_80B5570
|
|
|
|
thumb_func_start sub_80B55C8
|
|
sub_80B55C8: @ 80B55C8
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r5, r0, 0
|
|
ldr r1, _080B55EC @ =gTasks
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
adds r4, r0, r1
|
|
ldrh r1, [r4, 0xA]
|
|
movs r2, 0xA
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0
|
|
ble _080B55F0
|
|
subs r0, r1, 0x1
|
|
strh r0, [r4, 0xA]
|
|
b _080B5634
|
|
.align 2, 0
|
|
_080B55EC: .4byte gTasks
|
|
_080B55F0:
|
|
movs r0, 0
|
|
bl GetAnimBankSpriteId
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
ldrh r0, [r4, 0x8]
|
|
adds r0, 0x8
|
|
strh r0, [r4, 0x8]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0xFF
|
|
bgt _080B5618
|
|
movs r0, 0x8
|
|
ldrsh r2, [r4, r0]
|
|
adds r0, r1, 0
|
|
adds r1, r2, 0
|
|
movs r3, 0
|
|
bl obj_id_set_rotscale
|
|
b _080B5634
|
|
_080B5618:
|
|
adds r0, r1, 0
|
|
bl sub_8075980
|
|
adds r0, r5, 0
|
|
bl DestroyAnimVisualTask
|
|
movs r0, 0x50
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x52
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
_080B5634:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80B55C8
|
|
|
|
thumb_func_start sub_80B563C
|
|
sub_80B563C: @ 80B563C
|
|
push {r4-r6,lr}
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5,r6}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
ldrh r5, [r4, 0x20]
|
|
ldrh r6, [r4, 0x22]
|
|
ldr r0, _080B56D8 @ =gUnknown_2037F1A
|
|
mov r8, r0
|
|
ldrb r0, [r0]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0
|
|
mov r9, r1
|
|
strh r0, [r4, 0x20]
|
|
mov r1, r8
|
|
ldrb r0, [r1]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x22]
|
|
mov r1, r9
|
|
strh r1, [r4, 0x2E]
|
|
ldr r2, _080B56DC @ =gUnknown_2037F02
|
|
ldrh r1, [r2]
|
|
strh r1, [r4, 0x30]
|
|
ldrh r1, [r2, 0x2]
|
|
strh r1, [r4, 0x32]
|
|
ldrh r1, [r2, 0x4]
|
|
strh r1, [r4, 0x34]
|
|
ldrh r1, [r4, 0x20]
|
|
lsls r1, 4
|
|
strh r1, [r4, 0x36]
|
|
lsls r0, 4
|
|
strh r0, [r4, 0x38]
|
|
lsls r5, 16
|
|
asrs r5, 16
|
|
movs r1, 0x20
|
|
ldrsh r0, [r4, r1]
|
|
subs r5, r0
|
|
lsls r5, 4
|
|
movs r0, 0
|
|
ldrsh r1, [r2, r0]
|
|
lsls r1, 1
|
|
adds r0, r5, 0
|
|
str r2, [sp]
|
|
bl __divsi3
|
|
strh r0, [r4, 0x3A]
|
|
lsls r6, 16
|
|
asrs r6, 16
|
|
movs r1, 0x22
|
|
ldrsh r0, [r4, r1]
|
|
subs r6, r0
|
|
lsls r6, 4
|
|
ldr r2, [sp]
|
|
movs r0, 0
|
|
ldrsh r1, [r2, r0]
|
|
lsls r1, 1
|
|
adds r0, r6, 0
|
|
bl __divsi3
|
|
strh r0, [r4, 0x3C]
|
|
ldr r0, _080B56E0 @ =sub_80B56E4
|
|
str r0, [r4, 0x1C]
|
|
add sp, 0x4
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B56D8: .4byte gUnknown_2037F1A
|
|
_080B56DC: .4byte gUnknown_2037F02
|
|
_080B56E0: .4byte sub_80B56E4
|
|
thumb_func_end sub_80B563C
|
|
|
|
thumb_func_start sub_80B56E4
|
|
sub_80B56E4: @ 80B56E4
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0x1
|
|
beq _080B572E
|
|
cmp r0, 0x1
|
|
bgt _080B56FA
|
|
cmp r0, 0
|
|
beq _080B5704
|
|
b _080B57F2
|
|
_080B56FA:
|
|
cmp r0, 0x2
|
|
beq _080B5798
|
|
cmp r0, 0x3
|
|
beq _080B57EC
|
|
b _080B57F2
|
|
_080B5704:
|
|
ldrh r0, [r5, 0x3A]
|
|
ldrh r2, [r5, 0x36]
|
|
adds r0, r2
|
|
strh r0, [r5, 0x36]
|
|
ldrh r1, [r5, 0x3C]
|
|
ldrh r2, [r5, 0x38]
|
|
adds r1, r2
|
|
strh r1, [r5, 0x38]
|
|
lsls r0, 16
|
|
asrs r0, 20
|
|
strh r0, [r5, 0x20]
|
|
lsls r1, 16
|
|
asrs r1, 20
|
|
strh r1, [r5, 0x22]
|
|
ldrh r0, [r5, 0x30]
|
|
subs r0, 0x1
|
|
strh r0, [r5, 0x30]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bgt _080B57F2
|
|
b _080B57DE
|
|
_080B572E:
|
|
ldrh r0, [r5, 0x32]
|
|
subs r0, 0x1
|
|
strh r0, [r5, 0x32]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bgt _080B57F2
|
|
ldr r4, _080B5794 @ =gUnknown_2037F1B
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x30]
|
|
ldrb r0, [r4]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x32]
|
|
ldrh r0, [r5, 0x20]
|
|
lsls r0, 4
|
|
strh r0, [r5, 0x36]
|
|
ldrh r0, [r5, 0x22]
|
|
lsls r0, 4
|
|
strh r0, [r5, 0x38]
|
|
movs r1, 0x30
|
|
ldrsh r0, [r5, r1]
|
|
movs r2, 0x20
|
|
ldrsh r1, [r5, r2]
|
|
subs r0, r1
|
|
lsls r0, 4
|
|
movs r2, 0x34
|
|
ldrsh r1, [r5, r2]
|
|
bl __divsi3
|
|
strh r0, [r5, 0x3A]
|
|
movs r1, 0x32
|
|
ldrsh r0, [r5, r1]
|
|
movs r2, 0x22
|
|
ldrsh r1, [r5, r2]
|
|
subs r0, r1
|
|
lsls r0, 4
|
|
movs r2, 0x34
|
|
ldrsh r1, [r5, r2]
|
|
bl __divsi3
|
|
strh r0, [r5, 0x3C]
|
|
b _080B57DE
|
|
.align 2, 0
|
|
_080B5794: .4byte gUnknown_2037F1B
|
|
_080B5798:
|
|
ldrh r0, [r5, 0x3A]
|
|
ldrh r1, [r5, 0x36]
|
|
adds r0, r1
|
|
strh r0, [r5, 0x36]
|
|
ldrh r1, [r5, 0x3C]
|
|
ldrh r2, [r5, 0x38]
|
|
adds r1, r2
|
|
strh r1, [r5, 0x38]
|
|
lsls r0, 16
|
|
asrs r0, 20
|
|
strh r0, [r5, 0x20]
|
|
lsls r1, 16
|
|
asrs r1, 20
|
|
strh r1, [r5, 0x22]
|
|
ldrh r0, [r5, 0x34]
|
|
subs r0, 0x1
|
|
strh r0, [r5, 0x34]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bgt _080B57F2
|
|
ldr r4, _080B57E8 @ =gUnknown_2037F1B
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x20]
|
|
ldrb r0, [r4]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x22]
|
|
_080B57DE:
|
|
ldrh r0, [r5, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x2E]
|
|
b _080B57F2
|
|
.align 2, 0
|
|
_080B57E8: .4byte gUnknown_2037F1B
|
|
_080B57EC:
|
|
adds r0, r5, 0
|
|
bl move_anim_8074EE0
|
|
_080B57F2:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80B56E4
|
|
|
|
thumb_func_start sub_80B57F8
|
|
sub_80B57F8: @ 80B57F8
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x1
|
|
bl sub_8075114
|
|
ldr r0, _080B580C @ =sub_80B5810
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B580C: .4byte sub_80B5810
|
|
thumb_func_end sub_80B57F8
|
|
|
|
thumb_func_start sub_80B5810
|
|
sub_80B5810: @ 80B5810
|
|
push {r4-r6,lr}
|
|
adds r3, r0, 0
|
|
movs r5, 0
|
|
movs r6, 0
|
|
adds r0, 0x3F
|
|
ldrb r1, [r0]
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080B58A6
|
|
adds r1, r3, 0
|
|
adds r1, 0x3E
|
|
ldrb r2, [r1]
|
|
movs r0, 0x4
|
|
ands r0, r2
|
|
adds r4, r1, 0
|
|
cmp r0, 0
|
|
bne _080B583A
|
|
movs r0, 0x4
|
|
orrs r0, r2
|
|
strb r0, [r4]
|
|
_080B583A:
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r3, r1]
|
|
cmp r0, 0
|
|
beq _080B584A
|
|
cmp r0, 0x1
|
|
beq _080B5854
|
|
movs r6, 0x1
|
|
b _080B585E
|
|
_080B584A:
|
|
movs r1, 0x30
|
|
ldrsh r0, [r3, r1]
|
|
cmp r0, 0x2
|
|
bne _080B585E
|
|
b _080B5862
|
|
_080B5854:
|
|
movs r1, 0x30
|
|
ldrsh r0, [r3, r1]
|
|
cmp r0, 0x4
|
|
bne _080B585E
|
|
movs r5, 0x1
|
|
_080B585E:
|
|
cmp r5, 0
|
|
beq _080B5894
|
|
_080B5862:
|
|
ldrb r2, [r4]
|
|
lsls r0, r2, 29
|
|
lsrs r0, 31
|
|
movs r1, 0x1
|
|
eors r1, r0
|
|
lsls r1, 2
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r4]
|
|
ldrh r0, [r3, 0x32]
|
|
adds r0, 0x1
|
|
movs r1, 0
|
|
strh r0, [r3, 0x32]
|
|
strh r1, [r3, 0x30]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x5
|
|
bne _080B58A6
|
|
strh r1, [r3, 0x32]
|
|
ldrh r0, [r3, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r3, 0x2E]
|
|
b _080B58A6
|
|
_080B5894:
|
|
cmp r6, 0
|
|
beq _080B58A0
|
|
adds r0, r3, 0
|
|
bl DestroyAnimSprite
|
|
b _080B58A6
|
|
_080B58A0:
|
|
ldrh r0, [r3, 0x30]
|
|
adds r0, 0x1
|
|
strh r0, [r3, 0x30]
|
|
_080B58A6:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80B5810
|
|
|
|
thumb_func_start sub_80B58AC
|
|
sub_80B58AC: @ 80B58AC
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
ldr r1, _080B58D8 @ =gTasks
|
|
adds r5, r0, r1
|
|
movs r0, 0x1
|
|
bl duplicate_obj_of_side_rel2move_in_transparent_mode
|
|
movs r6, 0
|
|
movs r1, 0
|
|
strh r0, [r5, 0x8]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bge _080B58DC
|
|
adds r0, r4, 0
|
|
bl DestroyAnimVisualTask
|
|
b _080B59B8
|
|
.align 2, 0
|
|
_080B58D8: .4byte gTasks
|
|
_080B58DC:
|
|
strh r1, [r5, 0xA]
|
|
movs r0, 0xF
|
|
strh r0, [r5, 0xC]
|
|
movs r0, 0x2
|
|
strh r0, [r5, 0xE]
|
|
strh r1, [r5, 0x10]
|
|
movs r1, 0xFD
|
|
lsls r1, 6
|
|
movs r0, 0x50
|
|
bl SetGpuReg
|
|
ldrh r1, [r5, 0xE]
|
|
lsls r1, 8
|
|
ldrh r0, [r5, 0xC]
|
|
orrs r1, r0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
ldr r4, _080B5944 @ =gSprites
|
|
movs r0, 0x8
|
|
ldrsh r1, [r5, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
movs r1, 0x50
|
|
strh r1, [r0, 0x2E]
|
|
ldr r0, _080B5948 @ =gUnknown_2037F1B
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080B5950
|
|
movs r0, 0x8
|
|
ldrsh r1, [r5, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldr r1, _080B594C @ =0x0000ff70
|
|
strh r1, [r0, 0x30]
|
|
movs r0, 0x8
|
|
ldrsh r1, [r5, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
movs r1, 0x70
|
|
b _080B596E
|
|
.align 2, 0
|
|
_080B5944: .4byte gSprites
|
|
_080B5948: .4byte gUnknown_2037F1B
|
|
_080B594C: .4byte 0x0000ff70
|
|
_080B5950:
|
|
movs r0, 0x8
|
|
ldrsh r1, [r5, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
movs r1, 0x90
|
|
strh r1, [r0, 0x30]
|
|
movs r0, 0x8
|
|
ldrsh r1, [r5, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldr r1, _080B59C0 @ =0x0000ff90
|
|
_080B596E:
|
|
strh r1, [r0, 0x32]
|
|
ldr r4, _080B59C4 @ =gSprites
|
|
movs r0, 0x8
|
|
ldrsh r1, [r5, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
movs r2, 0
|
|
strh r2, [r0, 0x34]
|
|
movs r0, 0x8
|
|
ldrsh r1, [r5, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
strh r2, [r0, 0x36]
|
|
movs r0, 0x8
|
|
ldrsh r1, [r5, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldr r1, _080B59C8 @ =SpriteCallbackDummy
|
|
bl StoreSpriteCallbackInData6
|
|
movs r0, 0x8
|
|
ldrsh r1, [r5, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r4, 0x1C
|
|
adds r0, r4
|
|
ldr r1, _080B59CC @ =sub_8074D00
|
|
str r1, [r0]
|
|
ldr r0, _080B59D0 @ =sub_80B59D4
|
|
str r0, [r5]
|
|
_080B59B8:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B59C0: .4byte 0x0000ff90
|
|
_080B59C4: .4byte gSprites
|
|
_080B59C8: .4byte SpriteCallbackDummy
|
|
_080B59CC: .4byte sub_8074D00
|
|
_080B59D0: .4byte sub_80B59D4
|
|
thumb_func_end sub_80B58AC
|
|
|
|
thumb_func_start sub_80B59D4
|
|
sub_80B59D4: @ 80B59D4
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
lsls r0, r2, 2
|
|
adds r0, r2
|
|
lsls r0, 3
|
|
ldr r1, _080B59F8 @ =gTasks
|
|
adds r4, r0, r1
|
|
movs r1, 0x10
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x1
|
|
beq _080B5A78
|
|
cmp r0, 0x1
|
|
bgt _080B59FC
|
|
cmp r0, 0
|
|
beq _080B5A02
|
|
b _080B5AA4
|
|
.align 2, 0
|
|
_080B59F8: .4byte gTasks
|
|
_080B59FC:
|
|
cmp r0, 0x2
|
|
beq _080B5A9E
|
|
b _080B5AA4
|
|
_080B5A02:
|
|
ldrh r1, [r4, 0xA]
|
|
adds r1, 0x1
|
|
strh r1, [r4, 0xA]
|
|
movs r0, 0x3
|
|
ands r0, r1
|
|
strh r0, [r4, 0x12]
|
|
cmp r0, 0x1
|
|
bne _080B5A20
|
|
ldrh r1, [r4, 0xC]
|
|
movs r2, 0xC
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0
|
|
ble _080B5A20
|
|
subs r0, r1, 0x1
|
|
strh r0, [r4, 0xC]
|
|
_080B5A20:
|
|
movs r1, 0x12
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x3
|
|
bne _080B5A36
|
|
ldrh r1, [r4, 0xE]
|
|
movs r2, 0xE
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0xF
|
|
bgt _080B5A36
|
|
adds r0, r1, 0x1
|
|
strh r0, [r4, 0xE]
|
|
_080B5A36:
|
|
ldrh r1, [r4, 0xE]
|
|
lsls r1, 8
|
|
ldrh r0, [r4, 0xC]
|
|
orrs r1, r0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
ldr r1, [r4, 0xC]
|
|
movs r0, 0x80
|
|
lsls r0, 13
|
|
cmp r1, r0
|
|
bne _080B5AA4
|
|
movs r1, 0xA
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x50
|
|
ble _080B5AA4
|
|
movs r2, 0x8
|
|
ldrsh r1, [r4, r2]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _080B5A74 @ =gSprites
|
|
adds r0, r1
|
|
bl obj_delete_but_dont_free_vram
|
|
movs r0, 0x1
|
|
strh r0, [r4, 0x10]
|
|
b _080B5AA4
|
|
.align 2, 0
|
|
_080B5A74: .4byte gSprites
|
|
_080B5A78:
|
|
ldrh r0, [r4, 0x14]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x14]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1
|
|
ble _080B5AA4
|
|
movs r0, 0x50
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x52
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
ldrh r0, [r4, 0x10]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x10]
|
|
b _080B5AA4
|
|
_080B5A9E:
|
|
adds r0, r2, 0
|
|
bl DestroyAnimVisualTask
|
|
_080B5AA4:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80B59D4
|
|
|
|
thumb_func_start sub_80B5AAC
|
|
sub_80B5AAC: @ 80B5AAC
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
ldr r2, _080B5ACC @ =gTasks
|
|
adds r1, r2
|
|
movs r2, 0
|
|
strh r2, [r1, 0x26]
|
|
ldr r2, _080B5AD0 @ =sub_80B5AD4
|
|
str r2, [r1]
|
|
bl _call_via_r2
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B5ACC: .4byte gTasks
|
|
_080B5AD0: .4byte sub_80B5AD4
|
|
thumb_func_end sub_80B5AAC
|
|
|
|
thumb_func_start sub_80B5AD4
|
|
sub_80B5AD4: @ 80B5AD4
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0xC
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
ldr r1, _080B5B0C @ =gTasks
|
|
adds r5, r0, r1
|
|
ldr r0, _080B5B10 @ =gUnknown_2037F1B
|
|
ldrb r0, [r0]
|
|
bl sub_80768B0
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
movs r1, 0x26
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0x4
|
|
bls _080B5B00
|
|
b _080B5D22
|
|
_080B5B00:
|
|
lsls r0, 2
|
|
ldr r1, _080B5B14 @ =_080B5B18
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080B5B0C: .4byte gTasks
|
|
_080B5B10: .4byte gUnknown_2037F1B
|
|
_080B5B14: .4byte _080B5B18
|
|
.align 2, 0
|
|
_080B5B18:
|
|
.4byte _080B5B2C
|
|
.4byte _080B5C2C
|
|
.4byte _080B5C70
|
|
.4byte _080B5CD8
|
|
.4byte _080B5D04
|
|
_080B5B2C:
|
|
ldr r7, _080B5B64 @ =0x00002771
|
|
adds r0, r7, 0
|
|
bl AllocSpritePalette
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r2, 0
|
|
mov r8, r2
|
|
strh r0, [r5, 0x24]
|
|
cmp r0, 0xFF
|
|
beq _080B5B5A
|
|
cmp r0, 0xF
|
|
beq _080B5B5A
|
|
movs r0, 0x1
|
|
bl duplicate_obj_of_side_rel2move_in_transparent_mode
|
|
strh r0, [r5, 0x8]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bge _080B5B68
|
|
adds r0, r7, 0
|
|
bl FreeSpritePaletteByTag
|
|
_080B5B5A:
|
|
adds r0, r4, 0
|
|
bl DestroyAnimVisualTask
|
|
b _080B5D28
|
|
.align 2, 0
|
|
_080B5B64: .4byte 0x00002771
|
|
_080B5B68:
|
|
ldr r4, _080B5C14 @ =gSprites
|
|
movs r1, 0x8
|
|
ldrsh r0, [r5, r1]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r4
|
|
ldrh r2, [r5, 0x24]
|
|
lsls r2, 4
|
|
ldrb r3, [r1, 0x5]
|
|
movs r0, 0xF
|
|
ands r0, r3
|
|
orrs r0, r2
|
|
strb r0, [r1, 0x5]
|
|
movs r2, 0x8
|
|
ldrsh r0, [r5, r2]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r4
|
|
ldrb r2, [r1, 0x1]
|
|
movs r0, 0xD
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1, 0x1]
|
|
movs r0, 0x8
|
|
ldrsh r1, [r5, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldrb r1, [r0, 0x5]
|
|
movs r2, 0xC
|
|
orrs r1, r2
|
|
strb r1, [r0, 0x5]
|
|
movs r1, 0x8
|
|
ldrsh r0, [r5, r1]
|
|
lsls r2, r0, 4
|
|
adds r2, r0
|
|
lsls r2, 2
|
|
adds r2, r4
|
|
ldr r0, _080B5C18 @ =gUnknown_2024018
|
|
ldr r1, [r0]
|
|
ldr r0, _080B5C1C @ =gUnknown_2037F1B
|
|
ldrb r0, [r0]
|
|
ldr r1, [r1]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, [r0]
|
|
lsls r1, 31
|
|
adds r2, 0x3E
|
|
lsrs r1, 31
|
|
lsls r1, 2
|
|
ldrb r3, [r2]
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r3
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
mov r2, r8
|
|
strh r2, [r5, 0xA]
|
|
strh r2, [r5, 0xC]
|
|
movs r0, 0x10
|
|
strh r0, [r5, 0xE]
|
|
movs r0, 0x1
|
|
bl GetAnimBankSpriteId
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x22]
|
|
movs r0, 0x22
|
|
ldrsh r1, [r5, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldrb r0, [r0, 0x5]
|
|
lsrs r0, 4
|
|
adds r0, 0x10
|
|
lsls r0, 4
|
|
strh r0, [r5, 0x10]
|
|
cmp r6, 0x1
|
|
bne _080B5C20
|
|
movs r1, 0x80
|
|
lsls r1, 2
|
|
b _080B5C24
|
|
.align 2, 0
|
|
_080B5C14: .4byte gSprites
|
|
_080B5C18: .4byte gUnknown_2024018
|
|
_080B5C1C: .4byte gUnknown_2037F1B
|
|
_080B5C20:
|
|
movs r1, 0x80
|
|
lsls r1, 3
|
|
_080B5C24:
|
|
movs r0, 0
|
|
bl ClearGpuRegBits
|
|
b _080B5D22
|
|
_080B5C2C:
|
|
movs r1, 0x24
|
|
ldrsh r0, [r5, r1]
|
|
adds r0, 0x10
|
|
lsls r0, 4
|
|
strh r0, [r5, 0x24]
|
|
movs r2, 0x10
|
|
ldrsh r0, [r5, r2]
|
|
lsls r0, 1
|
|
ldr r1, _080B5C60 @ =gPlttBufferUnfaded
|
|
adds r0, r1
|
|
movs r2, 0x24
|
|
ldrsh r1, [r5, r2]
|
|
lsls r1, 1
|
|
ldr r2, _080B5C64 @ =gPlttBufferFaded
|
|
adds r1, r2
|
|
ldr r2, _080B5C68 @ =0x04000008
|
|
bl CpuSet
|
|
ldrh r0, [r5, 0x10]
|
|
ldr r3, _080B5C6C @ =0x00003c0d
|
|
movs r1, 0x10
|
|
movs r2, 0xA
|
|
bl BlendPalette
|
|
b _080B5D22
|
|
.align 2, 0
|
|
_080B5C60: .4byte gPlttBufferUnfaded
|
|
_080B5C64: .4byte gPlttBufferFaded
|
|
_080B5C68: .4byte 0x04000008
|
|
_080B5C6C: .4byte 0x00003c0d
|
|
_080B5C70:
|
|
ldr r2, _080B5CAC @ =gSprites
|
|
movs r0, 0x22
|
|
ldrsh r1, [r5, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrh r1, [r0, 0x26]
|
|
ldrh r0, [r0, 0x22]
|
|
adds r1, r0
|
|
subs r1, 0x20
|
|
lsls r1, 16
|
|
lsrs r2, r1, 16
|
|
cmp r1, 0
|
|
bge _080B5C90
|
|
movs r2, 0
|
|
_080B5C90:
|
|
cmp r6, 0x1
|
|
bne _080B5CB0
|
|
lsls r0, r2, 24
|
|
lsrs r0, 24
|
|
adds r1, r2, 0
|
|
adds r1, 0x40
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
movs r2, 0
|
|
str r2, [sp]
|
|
movs r2, 0x4
|
|
str r2, [sp, 0x4]
|
|
str r6, [sp, 0x8]
|
|
b _080B5CC8
|
|
.align 2, 0
|
|
_080B5CAC: .4byte gSprites
|
|
_080B5CB0:
|
|
lsls r0, r2, 24
|
|
lsrs r0, 24
|
|
adds r1, r2, 0
|
|
adds r1, 0x40
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
movs r2, 0
|
|
str r2, [sp]
|
|
movs r2, 0x8
|
|
str r2, [sp, 0x4]
|
|
movs r2, 0x1
|
|
str r2, [sp, 0x8]
|
|
_080B5CC8:
|
|
movs r2, 0x2
|
|
movs r3, 0x6
|
|
bl sub_8088230
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x1C]
|
|
b _080B5D22
|
|
_080B5CD8:
|
|
cmp r6, 0x1
|
|
bne _080B5CEC
|
|
ldr r1, _080B5CE8 @ =0x00003f42
|
|
movs r0, 0x50
|
|
bl SetGpuReg
|
|
b _080B5CF4
|
|
.align 2, 0
|
|
_080B5CE8: .4byte 0x00003f42
|
|
_080B5CEC:
|
|
ldr r1, _080B5D00 @ =0x00003f44
|
|
movs r0, 0x50
|
|
bl SetGpuReg
|
|
_080B5CF4:
|
|
movs r1, 0x80
|
|
lsls r1, 5
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
b _080B5D22
|
|
.align 2, 0
|
|
_080B5D00: .4byte 0x00003f44
|
|
_080B5D04:
|
|
cmp r6, 0x1
|
|
bne _080B5D14
|
|
movs r1, 0x80
|
|
lsls r1, 2
|
|
movs r0, 0
|
|
bl SetGpuRegBits
|
|
b _080B5D1E
|
|
_080B5D14:
|
|
movs r1, 0x80
|
|
lsls r1, 3
|
|
movs r0, 0
|
|
bl SetGpuRegBits
|
|
_080B5D1E:
|
|
ldr r0, _080B5D34 @ =sub_80B5D38
|
|
str r0, [r5]
|
|
_080B5D22:
|
|
ldrh r0, [r5, 0x26]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x26]
|
|
_080B5D28:
|
|
add sp, 0xC
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B5D34: .4byte sub_80B5D38
|
|
thumb_func_end sub_80B5AD4
|
|
|
|
thumb_func_start sub_80B5D38
|
|
sub_80B5D38: @ 80B5D38
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r5, r0, 0
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
ldr r1, _080B5DC0 @ =gTasks
|
|
adds r4, r0, r1
|
|
ldrh r1, [r4, 0xA]
|
|
adds r1, 0x1
|
|
strh r1, [r4, 0xA]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
strh r0, [r4, 0x12]
|
|
cmp r0, 0
|
|
bne _080B5D70
|
|
ldr r1, _080B5DC4 @ =gUnknown_825E074
|
|
movs r2, 0xA
|
|
ldrsh r0, [r4, r2]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
movs r1, 0x12
|
|
bl __divsi3
|
|
strh r0, [r4, 0xC]
|
|
_080B5D70:
|
|
movs r2, 0x12
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0x1
|
|
bne _080B5D92
|
|
ldr r1, _080B5DC4 @ =gUnknown_825E074
|
|
movs r2, 0xA
|
|
ldrsh r0, [r4, r2]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
movs r1, 0x12
|
|
bl __divsi3
|
|
movs r1, 0x10
|
|
subs r1, r0
|
|
strh r1, [r4, 0xE]
|
|
_080B5D92:
|
|
ldrh r1, [r4, 0xE]
|
|
lsls r1, 8
|
|
ldrh r0, [r4, 0xC]
|
|
orrs r1, r0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
movs r2, 0xA
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0x80
|
|
bne _080B5DBA
|
|
movs r0, 0
|
|
strh r0, [r4, 0x26]
|
|
ldr r1, _080B5DC8 @ =sub_80B5DCC
|
|
str r1, [r4]
|
|
adds r0, r5, 0
|
|
bl _call_via_r1
|
|
_080B5DBA:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B5DC0: .4byte gTasks
|
|
_080B5DC4: .4byte gUnknown_825E074
|
|
_080B5DC8: .4byte sub_80B5DCC
|
|
thumb_func_end sub_80B5D38
|
|
|
|
thumb_func_start sub_80B5DCC
|
|
sub_80B5DCC: @ 80B5DCC
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
ldr r1, _080B5DFC @ =gTasks
|
|
adds r4, r0, r1
|
|
ldr r0, _080B5E00 @ =gUnknown_2037F1B
|
|
ldrb r0, [r0]
|
|
bl sub_80768B0
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
movs r1, 0x26
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x1
|
|
beq _080B5E38
|
|
cmp r0, 0x1
|
|
bgt _080B5E04
|
|
cmp r0, 0
|
|
beq _080B5E0A
|
|
b _080B5EB4
|
|
.align 2, 0
|
|
_080B5DFC: .4byte gTasks
|
|
_080B5E00: .4byte gUnknown_2037F1B
|
|
_080B5E04:
|
|
cmp r0, 0x2
|
|
beq _080B5E4C
|
|
b _080B5EB4
|
|
_080B5E0A:
|
|
ldr r1, _080B5E28 @ =gUnknown_2039600
|
|
movs r0, 0x3
|
|
strb r0, [r1, 0x15]
|
|
movs r0, 0x1
|
|
bl GetAnimBankSpriteId
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x24]
|
|
cmp r6, 0x1
|
|
bne _080B5E2C
|
|
movs r1, 0x80
|
|
lsls r1, 2
|
|
b _080B5E30
|
|
.align 2, 0
|
|
_080B5E28: .4byte gUnknown_2039600
|
|
_080B5E2C:
|
|
movs r1, 0x80
|
|
lsls r1, 3
|
|
_080B5E30:
|
|
movs r0, 0
|
|
bl ClearGpuRegBits
|
|
b _080B5EB4
|
|
_080B5E38:
|
|
ldrh r0, [r4, 0x10]
|
|
ldr r3, _080B5E48 @ =0x00003c0d
|
|
movs r1, 0x10
|
|
movs r2, 0
|
|
bl BlendPalette
|
|
b _080B5EB4
|
|
.align 2, 0
|
|
_080B5E48: .4byte 0x00003c0d
|
|
_080B5E4C:
|
|
ldr r3, _080B5E9C @ =gSprites
|
|
movs r0, 0x24
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
adds r0, 0x3E
|
|
ldrb r1, [r0]
|
|
movs r2, 0x4
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
movs r0, 0x8
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
bl obj_delete_but_dont_free_vram
|
|
ldr r0, _080B5EA0 @ =0x00002771
|
|
bl FreeSpritePaletteByTag
|
|
movs r0, 0x50
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x52
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
cmp r6, 0x1
|
|
bne _080B5EA4
|
|
movs r1, 0x80
|
|
lsls r1, 2
|
|
movs r0, 0
|
|
bl SetGpuRegBits
|
|
b _080B5EAE
|
|
.align 2, 0
|
|
_080B5E9C: .4byte gSprites
|
|
_080B5EA0: .4byte 0x00002771
|
|
_080B5EA4:
|
|
movs r1, 0x80
|
|
lsls r1, 3
|
|
movs r0, 0
|
|
bl SetGpuRegBits
|
|
_080B5EAE:
|
|
adds r0, r5, 0
|
|
bl DestroyAnimVisualTask
|
|
_080B5EB4:
|
|
ldrh r0, [r4, 0x26]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x26]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80B5DCC
|
|
|
|
thumb_func_start sub_80B5EC0
|
|
sub_80B5EC0: @ 80B5EC0
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
adds r7, r0, 0
|
|
ldr r0, _080B5EFC @ =gUnknown_2037F02
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0
|
|
bne _080B5F08
|
|
ldr r4, _080B5F00 @ =gUnknown_2037F1A
|
|
ldrb r0, [r4]
|
|
movs r1, 0
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
ldrb r0, [r4]
|
|
movs r1, 0x1
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 8
|
|
movs r2, 0xE0
|
|
lsls r2, 13
|
|
adds r0, r2
|
|
lsrs r5, r0, 16
|
|
ldr r4, _080B5F04 @ =gUnknown_2037F1B
|
|
b _080B5F2C
|
|
.align 2, 0
|
|
_080B5EFC: .4byte gUnknown_2037F02
|
|
_080B5F00: .4byte gUnknown_2037F1A
|
|
_080B5F04: .4byte gUnknown_2037F1B
|
|
_080B5F08:
|
|
ldr r4, _080B5FD0 @ =gUnknown_2037F1B
|
|
ldrb r0, [r4]
|
|
movs r1, 0
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
ldrb r0, [r4]
|
|
movs r1, 0x1
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 8
|
|
movs r2, 0xE0
|
|
lsls r2, 13
|
|
adds r0, r2
|
|
lsrs r5, r0, 16
|
|
ldr r4, _080B5FD4 @ =gUnknown_2037F1A
|
|
_080B5F2C:
|
|
ldrb r0, [r4]
|
|
movs r1, 0
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r10, r0
|
|
ldrb r0, [r4]
|
|
movs r1, 0x1
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 8
|
|
movs r1, 0xE0
|
|
lsls r1, 13
|
|
adds r0, r1
|
|
lsrs r0, 16
|
|
mov r9, r0
|
|
mov r8, r5
|
|
mov r2, r9
|
|
subs r4, r2, r5
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
lsls r0, r6, 4
|
|
strh r0, [r7, 0x2E]
|
|
lsls r0, r5, 4
|
|
strh r0, [r7, 0x30]
|
|
mov r1, r10
|
|
subs r0, r1, r6
|
|
lsls r0, 4
|
|
ldr r5, _080B5FD8 @ =gUnknown_2037F02
|
|
movs r2, 0x2
|
|
ldrsh r1, [r5, r2]
|
|
bl __divsi3
|
|
strh r0, [r7, 0x32]
|
|
lsls r4, 16
|
|
asrs r4, 12
|
|
movs r0, 0x2
|
|
ldrsh r1, [r5, r0]
|
|
adds r0, r4, 0
|
|
bl __divsi3
|
|
strh r0, [r7, 0x34]
|
|
ldrh r0, [r5, 0x2]
|
|
strh r0, [r7, 0x36]
|
|
mov r1, r10
|
|
strh r1, [r7, 0x38]
|
|
mov r2, r9
|
|
strh r2, [r7, 0x3A]
|
|
movs r1, 0x36
|
|
ldrsh r0, [r7, r1]
|
|
lsrs r1, r0, 31
|
|
adds r0, r1
|
|
asrs r0, 1
|
|
strh r0, [r7, 0x3C]
|
|
ldrb r1, [r7, 0x5]
|
|
movs r0, 0xD
|
|
negs r0, r0
|
|
ands r0, r1
|
|
movs r1, 0x8
|
|
orrs r0, r1
|
|
strb r0, [r7, 0x5]
|
|
strh r6, [r7, 0x20]
|
|
mov r2, r8
|
|
strh r2, [r7, 0x22]
|
|
ldr r0, _080B5FDC @ =sub_80B5FE0
|
|
str r0, [r7, 0x1C]
|
|
adds r2, r7, 0
|
|
adds r2, 0x3E
|
|
ldrb r0, [r2]
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B5FD0: .4byte gUnknown_2037F1B
|
|
_080B5FD4: .4byte gUnknown_2037F1A
|
|
_080B5FD8: .4byte gUnknown_2037F02
|
|
_080B5FDC: .4byte sub_80B5FE0
|
|
thumb_func_end sub_80B5EC0
|
|
|
|
thumb_func_start sub_80B5FE0
|
|
sub_80B5FE0: @ 80B5FE0
|
|
push {r4,lr}
|
|
adds r2, r0, 0
|
|
ldrh r3, [r2, 0x36]
|
|
movs r1, 0x36
|
|
ldrsh r0, [r2, r1]
|
|
cmp r0, 0
|
|
beq _080B6018
|
|
ldrh r0, [r2, 0x32]
|
|
ldrh r4, [r2, 0x2E]
|
|
adds r0, r4
|
|
strh r0, [r2, 0x2E]
|
|
ldrh r1, [r2, 0x34]
|
|
ldrh r4, [r2, 0x30]
|
|
adds r1, r4
|
|
strh r1, [r2, 0x30]
|
|
lsls r0, 16
|
|
asrs r0, 20
|
|
strh r0, [r2, 0x20]
|
|
lsls r1, 16
|
|
asrs r1, 20
|
|
strh r1, [r2, 0x22]
|
|
subs r0, r3, 0x1
|
|
strh r0, [r2, 0x36]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0
|
|
bne _080B6018
|
|
strh r0, [r2, 0x2E]
|
|
_080B6018:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80B5FE0
|
|
|
|
thumb_func_start sub_80B6020
|
|
sub_80B6020: @ 80B6020
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x14
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
ldr r0, _080B6170 @ =gTasks
|
|
adds r1, r0
|
|
str r1, [sp]
|
|
movs r1, 0xFD
|
|
lsls r1, 6
|
|
movs r0, 0x50
|
|
bl SetGpuReg
|
|
movs r1, 0x80
|
|
lsls r1, 5
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
movs r0, 0
|
|
ldr r1, [sp]
|
|
strh r0, [r1, 0x12]
|
|
strh r0, [r1, 0x14]
|
|
strh r0, [r1, 0x16]
|
|
strh r0, [r1, 0x18]
|
|
movs r0, 0x10
|
|
strh r0, [r1, 0x1A]
|
|
ldr r2, _080B6174 @ =gUnknown_2037F02
|
|
ldrh r0, [r2]
|
|
strh r0, [r1, 0x1C]
|
|
ldr r4, _080B6178 @ =gUnknown_2037F1A
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
str r0, [sp, 0x4]
|
|
ldrb r0, [r4]
|
|
movs r1, 0x3
|
|
bl sub_8076B2C
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
str r0, [sp, 0x8]
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080B6090
|
|
b _080B618C
|
|
_080B6090:
|
|
movs r4, 0
|
|
_080B6092:
|
|
lsls r1, r4, 16
|
|
asrs r3, r1, 16
|
|
ldr r0, _080B6178 @ =gUnknown_2037F1A
|
|
ldrb r2, [r0]
|
|
str r1, [sp, 0x10]
|
|
cmp r3, r2
|
|
beq _080B615E
|
|
movs r0, 0x2
|
|
eors r2, r0
|
|
cmp r3, r2
|
|
beq _080B615E
|
|
lsls r0, r4, 24
|
|
lsrs r4, r0, 24
|
|
adds r0, r4, 0
|
|
bl sub_8072DF0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080B615E
|
|
ldr r6, [sp, 0x4]
|
|
ldr r3, [sp, 0x8]
|
|
lsls r0, r3, 16
|
|
asrs r7, r0, 16
|
|
ldr r0, _080B617C @ =gUnknown_83E7668
|
|
adds r1, r6, 0
|
|
adds r2, r7, 0
|
|
movs r3, 0x37
|
|
bl CreateSprite
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
cmp r0, 0x40
|
|
beq _080B615E
|
|
adds r0, r4, 0
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r10, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x3
|
|
bl sub_8076B2C
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
mov r9, r0
|
|
mov r0, r8
|
|
lsls r5, r0, 4
|
|
add r5, r8
|
|
lsls r5, 2
|
|
ldr r1, _080B6180 @ =gSprites
|
|
adds r4, r5, r1
|
|
lsls r0, r6, 4
|
|
strh r0, [r4, 0x2E]
|
|
lsls r0, r7, 4
|
|
strh r0, [r4, 0x30]
|
|
mov r2, r10
|
|
subs r0, r2, r6
|
|
lsls r0, 4
|
|
ldr r3, _080B6174 @ =gUnknown_2037F02
|
|
movs r2, 0x2
|
|
ldrsh r1, [r3, r2]
|
|
bl __divsi3
|
|
strh r0, [r4, 0x32]
|
|
mov r3, r9
|
|
lsls r0, r3, 16
|
|
asrs r0, 16
|
|
subs r0, r7
|
|
lsls r0, 4
|
|
ldr r2, _080B6174 @ =gUnknown_2037F02
|
|
movs r3, 0x2
|
|
ldrsh r1, [r2, r3]
|
|
bl __divsi3
|
|
strh r0, [r4, 0x34]
|
|
ldr r1, _080B6174 @ =gUnknown_2037F02
|
|
ldrh r0, [r1, 0x2]
|
|
strh r0, [r4, 0x36]
|
|
mov r2, r10
|
|
strh r2, [r4, 0x38]
|
|
mov r3, r9
|
|
strh r3, [r4, 0x3A]
|
|
ldr r0, _080B6184 @ =gSprites + 0x1C
|
|
adds r5, r0
|
|
ldr r0, _080B6188 @ =sub_80B5FE0
|
|
str r0, [r5]
|
|
ldr r2, [sp]
|
|
movs r3, 0x20
|
|
ldrsh r1, [r2, r3]
|
|
adds r1, 0xD
|
|
lsls r1, 1
|
|
adds r0, r2, 0
|
|
adds r0, 0x8
|
|
adds r0, r1
|
|
mov r1, r8
|
|
strh r1, [r0]
|
|
ldrh r0, [r2, 0x20]
|
|
adds r0, 0x1
|
|
strh r0, [r2, 0x20]
|
|
_080B615E:
|
|
ldr r2, [sp, 0x10]
|
|
movs r3, 0x80
|
|
lsls r3, 9
|
|
adds r0, r2, r3
|
|
lsrs r4, r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x3
|
|
ble _080B6092
|
|
b _080B6210
|
|
.align 2, 0
|
|
_080B6170: .4byte gTasks
|
|
_080B6174: .4byte gUnknown_2037F02
|
|
_080B6178: .4byte gUnknown_2037F1A
|
|
_080B617C: .4byte gUnknown_83E7668
|
|
_080B6180: .4byte gSprites
|
|
_080B6184: .4byte gSprites + 0x1C
|
|
_080B6188: .4byte sub_80B5FE0
|
|
_080B618C:
|
|
ldr r0, _080B6228 @ =gUnknown_83E7668
|
|
ldr r7, [sp, 0x4]
|
|
ldr r2, [sp, 0x8]
|
|
lsls r1, r2, 16
|
|
asrs r1, 16
|
|
str r1, [sp, 0xC]
|
|
adds r1, r7, 0
|
|
ldr r2, [sp, 0xC]
|
|
movs r3, 0x37
|
|
bl CreateSprite
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
cmp r0, 0x40
|
|
beq _080B6210
|
|
movs r3, 0x30
|
|
mov r10, r3
|
|
movs r0, 0x28
|
|
mov r9, r0
|
|
ldr r6, _080B622C @ =gSprites
|
|
mov r1, r8
|
|
lsls r5, r1, 4
|
|
add r5, r8
|
|
lsls r5, 2
|
|
adds r4, r5, r6
|
|
lsls r0, r7, 4
|
|
strh r0, [r4, 0x2E]
|
|
ldr r2, [sp, 0xC]
|
|
lsls r0, r2, 4
|
|
strh r0, [r4, 0x30]
|
|
subs r0, r3, r7
|
|
lsls r0, 4
|
|
ldr r3, _080B6230 @ =gUnknown_2037F02
|
|
movs r2, 0x2
|
|
ldrsh r1, [r3, r2]
|
|
bl __divsi3
|
|
strh r0, [r4, 0x32]
|
|
mov r3, r9
|
|
ldr r1, [sp, 0xC]
|
|
subs r0, r3, r1
|
|
lsls r0, 4
|
|
ldr r2, _080B6230 @ =gUnknown_2037F02
|
|
movs r3, 0x2
|
|
ldrsh r1, [r2, r3]
|
|
bl __divsi3
|
|
strh r0, [r4, 0x34]
|
|
ldr r1, _080B6230 @ =gUnknown_2037F02
|
|
ldrh r0, [r1, 0x2]
|
|
strh r0, [r4, 0x36]
|
|
mov r2, r10
|
|
strh r2, [r4, 0x38]
|
|
mov r3, r9
|
|
strh r3, [r4, 0x3A]
|
|
adds r6, 0x1C
|
|
adds r5, r6
|
|
ldr r0, _080B6234 @ =sub_80B5FE0
|
|
str r0, [r5]
|
|
mov r1, r8
|
|
ldr r0, [sp]
|
|
strh r1, [r0, 0x22]
|
|
movs r0, 0x1
|
|
ldr r2, [sp]
|
|
strh r0, [r2, 0x20]
|
|
_080B6210:
|
|
ldr r0, _080B6238 @ =sub_80B623C
|
|
ldr r3, [sp]
|
|
str r0, [r3]
|
|
add sp, 0x14
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B6228: .4byte gUnknown_83E7668
|
|
_080B622C: .4byte gSprites
|
|
_080B6230: .4byte gUnknown_2037F02
|
|
_080B6234: .4byte sub_80B5FE0
|
|
_080B6238: .4byte sub_80B623C
|
|
thumb_func_end sub_80B6020
|
|
|
|
thumb_func_start sub_80B623C
|
|
sub_80B623C: @ 80B623C
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
ldr r1, _080B6260 @ =gTasks
|
|
adds r4, r0, r1
|
|
movs r0, 0x8
|
|
ldrsh r1, [r4, r0]
|
|
cmp r1, 0x1
|
|
beq _080B62F2
|
|
cmp r1, 0x1
|
|
bgt _080B6264
|
|
cmp r1, 0
|
|
beq _080B6272
|
|
b _080B63AE
|
|
.align 2, 0
|
|
_080B6260: .4byte gTasks
|
|
_080B6264:
|
|
cmp r1, 0x2
|
|
bne _080B626A
|
|
b _080B6384
|
|
_080B626A:
|
|
cmp r1, 0x3
|
|
bne _080B6270
|
|
b _080B6398
|
|
_080B6270:
|
|
b _080B63AE
|
|
_080B6272:
|
|
movs r2, 0x14
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0
|
|
bne _080B62D8
|
|
ldrh r0, [r4, 0x12]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x12]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1
|
|
ble _080B62D8
|
|
strh r1, [r4, 0x12]
|
|
ldrh r0, [r4, 0x16]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x16]
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080B62A8
|
|
ldrh r1, [r4, 0x18]
|
|
movs r2, 0x18
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0xF
|
|
bgt _080B62B6
|
|
adds r0, r1, 0x1
|
|
strh r0, [r4, 0x18]
|
|
b _080B62B6
|
|
_080B62A8:
|
|
ldrh r1, [r4, 0x1A]
|
|
movs r2, 0x1A
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0
|
|
beq _080B62B6
|
|
subs r0, r1, 0x1
|
|
strh r0, [r4, 0x1A]
|
|
_080B62B6:
|
|
ldrh r1, [r4, 0x1A]
|
|
lsls r1, 8
|
|
ldrh r0, [r4, 0x18]
|
|
orrs r1, r0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
movs r1, 0x16
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x17
|
|
ble _080B62D8
|
|
movs r0, 0
|
|
strh r0, [r4, 0x16]
|
|
movs r0, 0x1
|
|
strh r0, [r4, 0x14]
|
|
_080B62D8:
|
|
ldrh r1, [r4, 0x1C]
|
|
movs r2, 0x1C
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0
|
|
beq _080B62E8
|
|
subs r0, r1, 0x1
|
|
strh r0, [r4, 0x1C]
|
|
b _080B63AE
|
|
_080B62E8:
|
|
movs r1, 0x14
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
beq _080B63AE
|
|
b _080B6390
|
|
_080B62F2:
|
|
ldrh r0, [r4, 0x12]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x12]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1
|
|
ble _080B63AE
|
|
movs r0, 0
|
|
strh r0, [r4, 0x12]
|
|
ldrh r0, [r4, 0x16]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x16]
|
|
ands r0, r1
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
beq _080B6322
|
|
ldrh r1, [r4, 0x18]
|
|
movs r2, 0x18
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0
|
|
beq _080B6330
|
|
subs r0, r1, 0x1
|
|
strh r0, [r4, 0x18]
|
|
b _080B6330
|
|
_080B6322:
|
|
ldrh r1, [r4, 0x1A]
|
|
movs r2, 0x1A
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0xF
|
|
bgt _080B6330
|
|
adds r0, r1, 0x1
|
|
strh r0, [r4, 0x1A]
|
|
_080B6330:
|
|
ldrh r1, [r4, 0x1A]
|
|
lsls r1, 8
|
|
ldrh r0, [r4, 0x18]
|
|
orrs r1, r0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
ldr r1, [r4, 0x18]
|
|
movs r0, 0x80
|
|
lsls r0, 13
|
|
cmp r1, r0
|
|
bne _080B63AE
|
|
movs r5, 0
|
|
b _080B6374
|
|
_080B6350:
|
|
adds r1, r5, 0
|
|
adds r1, 0xD
|
|
lsls r1, 1
|
|
adds r0, r4, 0
|
|
adds r0, 0x8
|
|
adds r0, r1
|
|
movs r2, 0
|
|
ldrsh r1, [r0, r2]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _080B6380 @ =gSprites
|
|
adds r0, r1
|
|
bl DestroySprite
|
|
adds r0, r5, 0x1
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
_080B6374:
|
|
movs r1, 0x20
|
|
ldrsh r0, [r4, r1]
|
|
cmp r5, r0
|
|
blt _080B6350
|
|
b _080B6390
|
|
.align 2, 0
|
|
_080B6380: .4byte gSprites
|
|
_080B6384:
|
|
ldrh r0, [r4, 0x12]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x12]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
ble _080B63AE
|
|
_080B6390:
|
|
ldrh r0, [r4, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x8]
|
|
b _080B63AE
|
|
_080B6398:
|
|
movs r0, 0x50
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x52
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
adds r0, r5, 0
|
|
bl DestroyAnimVisualTask
|
|
_080B63AE:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80B623C
|
|
|
|
thumb_func_start sub_80B63B4
|
|
sub_80B63B4: @ 80B63B4
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
ldr r0, _080B6400 @ =gUnknown_2022984
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
ldr r0, _080B6404 @ =gUnknown_2022986
|
|
strh r1, [r0]
|
|
ldr r1, _080B6408 @ =0x00003f3f
|
|
movs r0, 0x48
|
|
bl SetGpuReg
|
|
ldr r1, _080B640C @ =0x00003f1f
|
|
movs r0, 0x4A
|
|
bl SetGpuReg
|
|
movs r0, 0x50
|
|
movs r1, 0xC8
|
|
bl SetGpuReg
|
|
movs r0, 0x54
|
|
movs r1, 0x10
|
|
bl SetGpuReg
|
|
ldr r0, _080B6410 @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080B63FC
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080B6414
|
|
_080B63FC:
|
|
movs r6, 0x28
|
|
b _080B6416
|
|
.align 2, 0
|
|
_080B6400: .4byte gUnknown_2022984
|
|
_080B6404: .4byte gUnknown_2022986
|
|
_080B6408: .4byte 0x00003f3f
|
|
_080B640C: .4byte 0x00003f1f
|
|
_080B6410: .4byte gUnknown_2037F1A
|
|
_080B6414:
|
|
movs r6, 0xC8
|
|
_080B6416:
|
|
ldr r1, _080B6454 @ =gUnknown_2022984
|
|
lsls r3, r6, 16
|
|
asrs r2, r3, 16
|
|
lsls r0, r2, 8
|
|
orrs r0, r2
|
|
strh r0, [r1]
|
|
ldr r1, _080B6458 @ =gUnknown_2022986
|
|
movs r5, 0x28
|
|
ldr r0, _080B645C @ =0x00002828
|
|
strh r0, [r1]
|
|
lsrs r3, 16
|
|
movs r1, 0xF0
|
|
subs r1, r2
|
|
movs r4, 0x48
|
|
ldr r2, _080B6460 @ =gTasks
|
|
lsls r0, r7, 2
|
|
adds r0, r7
|
|
lsls r0, 3
|
|
adds r0, r2
|
|
strh r3, [r0, 0xA]
|
|
strh r1, [r0, 0xC]
|
|
strh r5, [r0, 0xE]
|
|
strh r4, [r0, 0x10]
|
|
strh r6, [r0, 0x12]
|
|
strh r5, [r0, 0x14]
|
|
ldr r1, _080B6464 @ =sub_80B6468
|
|
str r1, [r0]
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B6454: .4byte gUnknown_2022984
|
|
_080B6458: .4byte gUnknown_2022986
|
|
_080B645C: .4byte 0x00002828
|
|
_080B6460: .4byte gTasks
|
|
_080B6464: .4byte sub_80B6468
|
|
thumb_func_end sub_80B63B4
|
|
|
|
thumb_func_start sub_80B6468
|
|
sub_80B6468: @ 80B6468
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x20
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, _080B6588 @ =gTasks
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r4, r1, r2
|
|
ldrh r1, [r4, 0x8]
|
|
adds r0, r1, 0x1
|
|
strh r0, [r4, 0x8]
|
|
ldrh r5, [r4, 0xA]
|
|
ldrh r7, [r4, 0xC]
|
|
ldrh r0, [r4, 0xE]
|
|
mov r10, r0
|
|
ldrh r2, [r4, 0x10]
|
|
str r2, [sp, 0xC]
|
|
ldrh r0, [r4, 0x12]
|
|
ldrh r2, [r4, 0x14]
|
|
mov r8, r2
|
|
lsls r1, 16
|
|
asrs r6, r1, 16
|
|
cmp r6, 0xF
|
|
ble _080B64A4
|
|
b _080B6594
|
|
_080B64A4:
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
bl __floatsidf
|
|
str r0, [sp, 0x10]
|
|
str r1, [sp, 0x14]
|
|
lsls r0, r5, 16
|
|
asrs r0, 16
|
|
bl __floatsidf
|
|
ldr r2, _080B658C @ =0x3fb00000
|
|
ldr r3, _080B6590 @ =0x00000000
|
|
bl __muldf3
|
|
adds r5, r1, 0
|
|
adds r4, r0, 0
|
|
adds r0, r6, 0
|
|
bl __floatsidf
|
|
str r0, [sp, 0x18]
|
|
str r1, [sp, 0x1C]
|
|
adds r1, r5, 0
|
|
adds r0, r4, 0
|
|
ldr r2, [sp, 0x18]
|
|
ldr r3, [sp, 0x1C]
|
|
bl __muldf3
|
|
adds r3, r1, 0
|
|
adds r2, r0, 0
|
|
ldr r0, [sp, 0x10]
|
|
ldr r1, [sp, 0x14]
|
|
bl __subdf3
|
|
bl __fixunsdfsi
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
mov r9, r0
|
|
lsls r0, r7, 16
|
|
asrs r0, 16
|
|
bl __floatsidf
|
|
ldr r2, _080B658C @ =0x3fb00000
|
|
ldr r3, _080B6590 @ =0x00000000
|
|
bl __muldf3
|
|
ldr r2, [sp, 0x18]
|
|
ldr r3, [sp, 0x1C]
|
|
bl __muldf3
|
|
adds r3, r1, 0
|
|
adds r2, r0, 0
|
|
ldr r0, [sp, 0x10]
|
|
ldr r1, [sp, 0x14]
|
|
bl __adddf3
|
|
bl __fixunsdfsi
|
|
lsls r0, 16
|
|
lsrs r7, r0, 16
|
|
mov r1, r8
|
|
lsls r0, r1, 16
|
|
asrs r0, 16
|
|
bl __floatsidf
|
|
adds r5, r1, 0
|
|
adds r4, r0, 0
|
|
mov r2, r10
|
|
lsls r0, r2, 16
|
|
asrs r0, 16
|
|
bl __floatsidf
|
|
ldr r2, _080B658C @ =0x3fb00000
|
|
ldr r3, _080B6590 @ =0x00000000
|
|
bl __muldf3
|
|
ldr r2, [sp, 0x18]
|
|
ldr r3, [sp, 0x1C]
|
|
bl __muldf3
|
|
adds r3, r1, 0
|
|
adds r2, r0, 0
|
|
adds r1, r5, 0
|
|
adds r0, r4, 0
|
|
bl __subdf3
|
|
bl __fixunsdfsi
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
ldr r1, [sp, 0xC]
|
|
lsls r0, r1, 16
|
|
asrs r0, 16
|
|
bl __floatsidf
|
|
ldr r2, _080B658C @ =0x3fb00000
|
|
ldr r3, _080B6590 @ =0x00000000
|
|
bl __muldf3
|
|
ldr r2, [sp, 0x18]
|
|
ldr r3, [sp, 0x1C]
|
|
bl __muldf3
|
|
adds r3, r1, 0
|
|
adds r2, r0, 0
|
|
adds r1, r5, 0
|
|
adds r0, r4, 0
|
|
bl __adddf3
|
|
bl __fixunsdfsi
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
b _080B65C2
|
|
.align 2, 0
|
|
_080B6588: .4byte gTasks
|
|
_080B658C: .4byte 0x3fb00000
|
|
_080B6590: .4byte 0x00000000
|
|
_080B6594:
|
|
movs r2, 0
|
|
mov r9, r2
|
|
movs r7, 0xF0
|
|
movs r6, 0
|
|
movs r5, 0x70
|
|
str r6, [sp]
|
|
str r6, [sp, 0x4]
|
|
str r6, [sp, 0x8]
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
movs r3, 0
|
|
bl sub_8075BE8
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
str r6, [sp]
|
|
movs r1, 0
|
|
movs r2, 0x10
|
|
movs r3, 0x10
|
|
bl BeginNormalPaletteFade
|
|
ldr r0, _080B65E4 @ =sub_80B65F0
|
|
str r0, [r4]
|
|
_080B65C2:
|
|
ldr r1, _080B65E8 @ =gUnknown_2022984
|
|
mov r2, r9
|
|
lsls r0, r2, 8
|
|
orrs r7, r0
|
|
strh r7, [r1]
|
|
ldr r1, _080B65EC @ =gUnknown_2022986
|
|
lsls r0, r6, 8
|
|
orrs r5, r0
|
|
strh r5, [r1]
|
|
add sp, 0x20
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B65E4: .4byte sub_80B65F0
|
|
_080B65E8: .4byte gUnknown_2022984
|
|
_080B65EC: .4byte gUnknown_2022986
|
|
thumb_func_end sub_80B6468
|
|
|
|
thumb_func_start sub_80B65F0
|
|
sub_80B65F0: @ 80B65F0
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r0, _080B663C @ =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0
|
|
bne _080B6636
|
|
ldr r0, _080B6640 @ =gUnknown_2022984
|
|
strh r1, [r0]
|
|
ldr r0, _080B6644 @ =gUnknown_2022986
|
|
strh r1, [r0]
|
|
ldr r4, _080B6648 @ =0x00003f3f
|
|
movs r0, 0x48
|
|
adds r1, r4, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x4A
|
|
adds r1, r4, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x50
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x54
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
adds r0, r5, 0
|
|
bl DestroyAnimVisualTask
|
|
_080B6636:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B663C: .4byte gPaletteFade
|
|
_080B6640: .4byte gUnknown_2022984
|
|
_080B6644: .4byte gUnknown_2022986
|
|
_080B6648: .4byte 0x00003f3f
|
|
thumb_func_end sub_80B65F0
|
|
|
|
thumb_func_start sub_80B664C
|
|
sub_80B664C: @ 80B664C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x1
|
|
bl sub_8075160
|
|
ldr r0, _080B6678 @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080B6680
|
|
movs r2, 0x18
|
|
ldr r3, _080B667C @ =0x0000fffe
|
|
ldrb r0, [r4, 0x3]
|
|
movs r1, 0x3F
|
|
negs r1, r1
|
|
ands r1, r0
|
|
movs r0, 0x10
|
|
orrs r1, r0
|
|
strb r1, [r4, 0x3]
|
|
b _080B6684
|
|
.align 2, 0
|
|
_080B6678: .4byte gUnknown_2037F1A
|
|
_080B667C: .4byte 0x0000fffe
|
|
_080B6680:
|
|
ldr r2, _080B66A0 @ =0x0000ffe8
|
|
movs r3, 0x2
|
|
_080B6684:
|
|
lsls r0, r2, 16
|
|
asrs r0, 16
|
|
ldrh r1, [r4, 0x20]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x20]
|
|
strh r3, [r4, 0x30]
|
|
movs r0, 0x3C
|
|
strh r0, [r4, 0x2E]
|
|
ldr r0, _080B66A4 @ =sub_80B66A8
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B66A0: .4byte 0x0000ffe8
|
|
_080B66A4: .4byte sub_80B66A8
|
|
thumb_func_end sub_80B664C
|
|
|
|
thumb_func_start sub_80B66A8
|
|
sub_80B66A8: @ 80B66A8
|
|
push {r4,lr}
|
|
adds r3, r0, 0
|
|
ldrh r1, [r3, 0x2E]
|
|
movs r2, 0x2E
|
|
ldrsh r0, [r3, r2]
|
|
cmp r0, 0
|
|
ble _080B66BA
|
|
subs r0, r1, 0x1
|
|
b _080B671E
|
|
_080B66BA:
|
|
ldrh r0, [r3, 0x30]
|
|
ldrh r4, [r3, 0x24]
|
|
adds r1, r0, r4
|
|
strh r1, [r3, 0x24]
|
|
adds r0, r1, 0x7
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0xE
|
|
bls _080B6720
|
|
ldrh r0, [r3, 0x20]
|
|
adds r0, r1
|
|
strh r0, [r3, 0x20]
|
|
movs r0, 0
|
|
strh r0, [r3, 0x24]
|
|
ldrh r2, [r3, 0x4]
|
|
lsls r1, r2, 22
|
|
lsrs r1, 22
|
|
adds r1, 0x8
|
|
ldr r4, _080B670C @ =0x000003ff
|
|
adds r0, r4, 0
|
|
ands r1, r0
|
|
ldr r0, _080B6710 @ =0xfffffc00
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strh r0, [r3, 0x4]
|
|
ldrh r0, [r3, 0x32]
|
|
adds r0, 0x1
|
|
strh r0, [r3, 0x32]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x3
|
|
bne _080B671C
|
|
movs r0, 0x1E
|
|
strh r0, [r3, 0x2E]
|
|
ldr r0, _080B6714 @ =sub_8074C44
|
|
str r0, [r3, 0x1C]
|
|
ldr r1, _080B6718 @ =sub_80B6728
|
|
adds r0, r3, 0
|
|
bl StoreSpriteCallbackInData6
|
|
b _080B6720
|
|
.align 2, 0
|
|
_080B670C: .4byte 0x000003ff
|
|
_080B6710: .4byte 0xfffffc00
|
|
_080B6714: .4byte sub_8074C44
|
|
_080B6718: .4byte sub_80B6728
|
|
_080B671C:
|
|
movs r0, 0x28
|
|
_080B671E:
|
|
strh r0, [r3, 0x2E]
|
|
_080B6720:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80B66A8
|
|
|
|
thumb_func_start sub_80B6728
|
|
sub_80B6728: @ 80B6728
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x2E
|
|
ldrsh r5, [r4, r0]
|
|
cmp r5, 0
|
|
bne _080B6752
|
|
movs r1, 0xFD
|
|
lsls r1, 6
|
|
movs r0, 0x50
|
|
bl SetGpuReg
|
|
movs r0, 0x52
|
|
movs r1, 0x10
|
|
bl SetGpuReg
|
|
ldrh r0, [r4, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
strh r5, [r4, 0x30]
|
|
strh r5, [r4, 0x32]
|
|
b _080B6796
|
|
_080B6752:
|
|
ldrh r1, [r4, 0x30]
|
|
movs r2, 0x30
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0x1
|
|
bgt _080B6762
|
|
adds r0, r1, 0x1
|
|
strh r0, [r4, 0x30]
|
|
b _080B6796
|
|
_080B6762:
|
|
movs r0, 0
|
|
strh r0, [r4, 0x30]
|
|
ldrh r0, [r4, 0x32]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x32]
|
|
movs r1, 0x10
|
|
subs r1, r0
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
movs r1, 0x32
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x10
|
|
bne _080B6796
|
|
adds r2, r4, 0
|
|
adds r2, 0x3E
|
|
ldrb r0, [r2]
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r0, _080B679C @ =sub_80B67A0
|
|
str r0, [r4, 0x1C]
|
|
_080B6796:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B679C: .4byte sub_80B67A0
|
|
thumb_func_end sub_80B6728
|
|
|
|
thumb_func_start sub_80B67A0
|
|
sub_80B67A0: @ 80B67A0
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x50
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x52
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
ldr r0, _080B67CC @ =gUnknown_2022984
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
ldr r0, _080B67D0 @ =gUnknown_2022986
|
|
strh r1, [r0]
|
|
adds r0, r4, 0
|
|
bl DestroyAnimSprite
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B67CC: .4byte gUnknown_2022984
|
|
_080B67D0: .4byte gUnknown_2022986
|
|
thumb_func_end sub_80B67A0
|
|
|
|
thumb_func_start sub_80B67D4
|
|
sub_80B67D4: @ 80B67D4
|
|
push {r4-r7,lr}
|
|
adds r5, r0, 0
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r5, r1]
|
|
movs r1, 0xC
|
|
bl Sin
|
|
strh r0, [r5, 0x24]
|
|
ldr r0, _080B683C @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080B67F8
|
|
ldrh r0, [r5, 0x24]
|
|
negs r0, r0
|
|
strh r0, [r5, 0x24]
|
|
_080B67F8:
|
|
ldrh r0, [r5, 0x2E]
|
|
adds r0, 0x6
|
|
movs r1, 0xFF
|
|
ands r0, r1
|
|
strh r0, [r5, 0x2E]
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
adds r0, r1, 0
|
|
ldrh r1, [r5, 0x30]
|
|
adds r0, r1
|
|
strh r0, [r5, 0x30]
|
|
lsls r0, 16
|
|
asrs r0, 24
|
|
negs r0, r0
|
|
strh r0, [r5, 0x26]
|
|
ldrh r0, [r5, 0x3C]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x3C]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1
|
|
bne _080B6844
|
|
ldr r0, _080B6840 @ =0x0000050b
|
|
strh r0, [r5, 0x3A]
|
|
movs r1, 0xFD
|
|
lsls r1, 6
|
|
movs r0, 0x50
|
|
bl SetGpuReg
|
|
ldrh r1, [r5, 0x3A]
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
b _080B689C
|
|
.align 2, 0
|
|
_080B683C: .4byte gUnknown_2037F1A
|
|
_080B6840: .4byte 0x0000050b
|
|
_080B6844:
|
|
cmp r0, 0x1E
|
|
ble _080B689C
|
|
ldrh r0, [r5, 0x32]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x32]
|
|
ldrh r1, [r5, 0x3A]
|
|
lsls r0, r1, 16
|
|
asrs r0, 24
|
|
lsls r0, 16
|
|
movs r6, 0xFF
|
|
ands r6, r1
|
|
movs r1, 0x80
|
|
lsls r1, 9
|
|
adds r0, r1
|
|
lsrs r7, r0, 16
|
|
cmp r7, 0x10
|
|
bls _080B6868
|
|
movs r7, 0x10
|
|
_080B6868:
|
|
subs r0, r6, 0x1
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
cmp r0, 0
|
|
bge _080B6874
|
|
movs r6, 0
|
|
_080B6874:
|
|
lsls r4, r7, 8
|
|
orrs r4, r6
|
|
lsls r1, r4, 16
|
|
lsrs r1, 16
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
strh r4, [r5, 0x3A]
|
|
cmp r7, 0x10
|
|
bne _080B689C
|
|
cmp r6, 0
|
|
bne _080B689C
|
|
adds r2, r5, 0
|
|
adds r2, 0x3E
|
|
ldrb r0, [r2]
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r0, _080B68A4 @ =sub_80B68A8
|
|
str r0, [r5, 0x1C]
|
|
_080B689C:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B68A4: .4byte sub_80B68A8
|
|
thumb_func_end sub_80B67D4
|
|
|
|
thumb_func_start sub_80B68A8
|
|
sub_80B68A8: @ 80B68A8
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x50
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x52
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
adds r0, r4, 0
|
|
bl DestroyAnimSprite
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80B68A8
|
|
|
|
thumb_func_start sub_80B68C8
|
|
sub_80B68C8: @ 80B68C8
|
|
push {r4-r6,lr}
|
|
mov r6, r8
|
|
push {r6}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r4, r0, 2
|
|
adds r4, r0
|
|
lsls r4, 3
|
|
ldr r0, _080B6960 @ =gTasks
|
|
adds r4, r0
|
|
movs r6, 0
|
|
strh r6, [r4, 0x8]
|
|
movs r0, 0x10
|
|
mov r8, r0
|
|
mov r0, r8
|
|
strh r0, [r4, 0xA]
|
|
ldr r5, _080B6964 @ =gUnknown_2037F1A
|
|
ldrb r0, [r5]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x1A]
|
|
ldrb r0, [r5]
|
|
bl sub_807492C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x1C]
|
|
ldrb r0, [r5]
|
|
movs r1, 0x1
|
|
bl sub_8076B2C
|
|
lsls r0, 16
|
|
asrs r1, r0, 16
|
|
lsrs r0, 31
|
|
adds r1, r0
|
|
asrs r1, 1
|
|
adds r1, 0x8
|
|
strh r1, [r4, 0x1E]
|
|
strh r6, [r4, 0x16]
|
|
ldrb r0, [r5]
|
|
bl sub_8076884
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x12]
|
|
ldrb r0, [r5]
|
|
bl sub_807685C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
subs r0, 0x2
|
|
strh r0, [r4, 0x14]
|
|
strh r6, [r4, 0xE]
|
|
mov r0, r8
|
|
strh r0, [r4, 0x10]
|
|
movs r1, 0xFD
|
|
lsls r1, 6
|
|
movs r0, 0x50
|
|
bl SetGpuReg
|
|
movs r1, 0x80
|
|
lsls r1, 5
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
strh r6, [r4, 0x18]
|
|
ldr r0, _080B6968 @ =sub_80B696C
|
|
str r0, [r4]
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B6960: .4byte gTasks
|
|
_080B6964: .4byte gUnknown_2037F1A
|
|
_080B6968: .4byte sub_80B696C
|
|
thumb_func_end sub_80B68C8
|
|
|
|
thumb_func_start sub_80B696C
|
|
sub_80B696C: @ 80B696C
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
lsls r0, r7, 2
|
|
adds r0, r7
|
|
lsls r0, 3
|
|
ldr r1, _080B6990 @ =gTasks
|
|
adds r4, r0, r1
|
|
movs r1, 0x8
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x5
|
|
bls _080B6986
|
|
b _080B6AF2
|
|
_080B6986:
|
|
lsls r0, 2
|
|
ldr r1, _080B6994 @ =_080B6998
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080B6990: .4byte gTasks
|
|
_080B6994: .4byte _080B6998
|
|
.align 2, 0
|
|
_080B6998:
|
|
.4byte _080B69B0
|
|
.4byte _080B6A20
|
|
.4byte _080B6A62
|
|
.4byte _080B6A76
|
|
.4byte _080B6ACC
|
|
.4byte _080B6ADC
|
|
_080B69B0:
|
|
movs r6, 0
|
|
_080B69B2:
|
|
movs r2, 0x1A
|
|
ldrsh r1, [r4, r2]
|
|
movs r0, 0x1C
|
|
ldrsh r2, [r4, r0]
|
|
ldrb r3, [r4, 0x14]
|
|
ldr r0, _080B6A14 @ =gUnknown_83E76E0
|
|
bl CreateSprite
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0x40
|
|
beq _080B6A06
|
|
ldr r1, _080B6A18 @ =gSprites
|
|
lsls r0, r2, 4
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r5, r0, r1
|
|
strh r7, [r5, 0x2E]
|
|
ldr r0, _080B6A1C @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
movs r1, 0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080B69E8
|
|
movs r1, 0x1
|
|
_080B69E8:
|
|
strh r1, [r5, 0x30]
|
|
movs r0, 0x2A
|
|
muls r0, r6
|
|
movs r1, 0xFF
|
|
ands r0, r1
|
|
strh r0, [r5, 0x32]
|
|
ldrh r0, [r4, 0x1E]
|
|
strh r0, [r5, 0x34]
|
|
lsls r0, r6, 1
|
|
adds r0, r6
|
|
lsls r0, 1
|
|
strh r0, [r5, 0x38]
|
|
ldrh r0, [r4, 0x16]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x16]
|
|
_080B6A06:
|
|
adds r0, r6, 0x1
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
cmp r6, 0x5
|
|
bls _080B69B2
|
|
b _080B6AD4
|
|
.align 2, 0
|
|
_080B6A14: .4byte gUnknown_83E76E0
|
|
_080B6A18: .4byte gSprites
|
|
_080B6A1C: .4byte gUnknown_2037F1A
|
|
_080B6A20:
|
|
ldrh r0, [r4, 0xA]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0xA]
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080B6A3E
|
|
ldrh r1, [r4, 0xE]
|
|
movs r2, 0xE
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0xD
|
|
bgt _080B6A4C
|
|
adds r0, r1, 0x1
|
|
strh r0, [r4, 0xE]
|
|
b _080B6A4C
|
|
_080B6A3E:
|
|
ldrh r1, [r4, 0x10]
|
|
movs r2, 0x10
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0x4
|
|
ble _080B6A4C
|
|
subs r0, r1, 0x1
|
|
strh r0, [r4, 0x10]
|
|
_080B6A4C:
|
|
movs r1, 0xE
|
|
ldrsh r0, [r4, r1]
|
|
ldrh r2, [r4, 0xE]
|
|
ldrh r1, [r4, 0x10]
|
|
cmp r0, 0xE
|
|
bne _080B6ABC
|
|
cmp r1, 0x4
|
|
bne _080B6ABC
|
|
movs r0, 0
|
|
strh r0, [r4, 0xA]
|
|
b _080B6AB6
|
|
_080B6A62:
|
|
ldrh r0, [r4, 0xA]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0xA]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1E
|
|
ble _080B6AF2
|
|
movs r0, 0
|
|
strh r0, [r4, 0xA]
|
|
b _080B6AD4
|
|
_080B6A76:
|
|
ldrh r0, [r4, 0xA]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0xA]
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080B6A94
|
|
ldrh r1, [r4, 0xE]
|
|
movs r2, 0xE
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0
|
|
ble _080B6AA2
|
|
subs r0, r1, 0x1
|
|
strh r0, [r4, 0xE]
|
|
b _080B6AA2
|
|
_080B6A94:
|
|
ldrh r1, [r4, 0x10]
|
|
movs r2, 0x10
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0xF
|
|
bgt _080B6AA2
|
|
adds r0, r1, 0x1
|
|
strh r0, [r4, 0x10]
|
|
_080B6AA2:
|
|
movs r1, 0xE
|
|
ldrsh r0, [r4, r1]
|
|
ldrh r2, [r4, 0xE]
|
|
ldrh r1, [r4, 0x10]
|
|
cmp r0, 0
|
|
bne _080B6ABC
|
|
cmp r1, 0x10
|
|
bne _080B6ABC
|
|
movs r0, 0x1
|
|
strh r0, [r4, 0x18]
|
|
_080B6AB6:
|
|
ldrh r0, [r4, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x8]
|
|
_080B6ABC:
|
|
lsls r1, 8
|
|
orrs r1, r2
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
b _080B6AF2
|
|
_080B6ACC:
|
|
movs r2, 0x16
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0
|
|
bne _080B6AF2
|
|
_080B6AD4:
|
|
ldrh r0, [r4, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x8]
|
|
b _080B6AF2
|
|
_080B6ADC:
|
|
movs r0, 0x50
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x52
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
adds r0, r7, 0
|
|
bl DestroyAnimVisualTask
|
|
_080B6AF2:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80B696C
|
|
|
|
thumb_func_start sub_80B6AF8
|
|
sub_80B6AF8: @ 80B6AF8
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x30
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bne _080B6B0A
|
|
ldrh r0, [r4, 0x32]
|
|
adds r0, 0x2
|
|
b _080B6B0E
|
|
_080B6B0A:
|
|
ldrh r0, [r4, 0x32]
|
|
subs r0, 0x2
|
|
_080B6B0E:
|
|
strh r0, [r4, 0x32]
|
|
ldrh r1, [r4, 0x32]
|
|
movs r0, 0xFF
|
|
ands r0, r1
|
|
strh r0, [r4, 0x32]
|
|
movs r2, 0x32
|
|
ldrsh r0, [r4, r2]
|
|
movs r2, 0x34
|
|
ldrsh r1, [r4, r2]
|
|
bl Sin
|
|
strh r0, [r4, 0x24]
|
|
ldrh r0, [r4, 0x32]
|
|
subs r0, 0x41
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x7E
|
|
bhi _080B6B50
|
|
ldr r2, _080B6B4C @ =gTasks
|
|
movs r0, 0x2E
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r0, r2
|
|
ldrh r1, [r0, 0x12]
|
|
adds r1, 0x1
|
|
movs r0, 0x3
|
|
ands r1, r0
|
|
b _080B6B64
|
|
.align 2, 0
|
|
_080B6B4C: .4byte gTasks
|
|
_080B6B50:
|
|
ldr r2, _080B6BB8 @ =gTasks
|
|
movs r0, 0x2E
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r0, r2
|
|
movs r2, 0x3
|
|
ldrb r1, [r0, 0x12]
|
|
ands r1, r2
|
|
_080B6B64:
|
|
lsls r1, 2
|
|
ldrb r2, [r4, 0x5]
|
|
movs r0, 0xD
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r4, 0x5]
|
|
ldrh r0, [r4, 0x38]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x38]
|
|
movs r1, 0x38
|
|
ldrsh r0, [r4, r1]
|
|
lsls r0, 3
|
|
movs r1, 0xFF
|
|
ands r0, r1
|
|
strh r0, [r4, 0x3A]
|
|
movs r2, 0x3A
|
|
ldrsh r0, [r4, r2]
|
|
movs r1, 0x7
|
|
bl Sin
|
|
strh r0, [r4, 0x26]
|
|
ldr r2, _080B6BB8 @ =gTasks
|
|
movs r0, 0x2E
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r1, r0, r2
|
|
movs r2, 0x18
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, 0
|
|
beq _080B6BB2
|
|
ldrh r0, [r1, 0x16]
|
|
subs r0, 0x1
|
|
strh r0, [r1, 0x16]
|
|
adds r0, r4, 0
|
|
bl DestroySprite
|
|
_080B6BB2:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B6BB8: .4byte gTasks
|
|
thumb_func_end sub_80B6AF8
|
|
|
|
thumb_func_start sub_80B6BBC
|
|
sub_80B6BBC: @ 80B6BBC
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
ldr r2, _080B6BDC @ =gTasks
|
|
adds r1, r2
|
|
movs r2, 0
|
|
strh r2, [r1, 0x26]
|
|
ldr r2, _080B6BE0 @ =sub_80B6BE4
|
|
str r2, [r1]
|
|
bl _call_via_r2
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B6BDC: .4byte gTasks
|
|
_080B6BE0: .4byte sub_80B6BE4
|
|
thumb_func_end sub_80B6BBC
|
|
|
|
thumb_func_start sub_80B6BE4
|
|
sub_80B6BE4: @ 80B6BE4
|
|
push {r4-r6,lr}
|
|
sub sp, 0x1C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
ldr r0, _080B6C18 @ =gTasks
|
|
adds r6, r1, r0
|
|
ldr r0, _080B6C1C @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl sub_80768B0
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
movs r1, 0x26
|
|
ldrsh r0, [r6, r1]
|
|
cmp r0, 0x7
|
|
bls _080B6C0C
|
|
b _080B6F1E
|
|
_080B6C0C:
|
|
lsls r0, 2
|
|
ldr r1, _080B6C20 @ =_080B6C24
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080B6C18: .4byte gTasks
|
|
_080B6C1C: .4byte gUnknown_2037F1A
|
|
_080B6C20: .4byte _080B6C24
|
|
.align 2, 0
|
|
_080B6C24:
|
|
.4byte _080B6C44
|
|
.4byte _080B6CCC
|
|
.4byte _080B6D28
|
|
.4byte _080B6D8C
|
|
.4byte _080B6E04
|
|
.4byte _080B6E6C
|
|
.4byte _080B6E82
|
|
.4byte _080B6EEC
|
|
_080B6C44:
|
|
movs r0, 0x1
|
|
movs r1, 0x4
|
|
movs r2, 0x2
|
|
bl SetAnimBgAttribute
|
|
movs r0, 0x2
|
|
movs r1, 0x4
|
|
movs r2, 0x1
|
|
bl SetAnimBgAttribute
|
|
movs r0, 0
|
|
strh r0, [r6, 0xA]
|
|
strh r0, [r6, 0xC]
|
|
movs r0, 0x10
|
|
strh r0, [r6, 0xE]
|
|
movs r0, 0
|
|
bl GetAnimBankSpriteId
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r6, 0x10]
|
|
ldr r3, _080B6CC8 @ =gSprites
|
|
movs r2, 0x10
|
|
ldrsh r1, [r6, r2]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
ldrb r0, [r0, 0x5]
|
|
lsls r0, 28
|
|
lsrs r0, 30
|
|
strh r0, [r6, 0x12]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
ldrb r0, [r0, 0x5]
|
|
lsrs r0, 4
|
|
adds r0, 0x10
|
|
lsls r0, 4
|
|
strh r0, [r6, 0x14]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
ldrb r2, [r0, 0x1]
|
|
movs r1, 0xD
|
|
negs r1, r1
|
|
ands r1, r2
|
|
movs r2, 0x4
|
|
orrs r1, r2
|
|
strb r1, [r0, 0x1]
|
|
movs r0, 0x10
|
|
ldrsh r1, [r6, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
ldrb r1, [r0, 0x5]
|
|
movs r2, 0xC
|
|
orrs r1, r2
|
|
strb r1, [r0, 0x5]
|
|
movs r0, 0x80
|
|
strh r0, [r6, 0x16]
|
|
b _080B6F1E
|
|
.align 2, 0
|
|
_080B6CC8: .4byte gSprites
|
|
_080B6CCC:
|
|
ldrh r0, [r6, 0xA]
|
|
adds r0, 0x1
|
|
strh r0, [r6, 0xA]
|
|
movs r5, 0x1
|
|
ands r5, r0
|
|
cmp r5, 0
|
|
beq _080B6CDC
|
|
b _080B6F24
|
|
_080B6CDC:
|
|
ldrh r0, [r6, 0x14]
|
|
ldrb r2, [r6, 0xC]
|
|
ldr r4, _080B6D08 @ =0x000066e0
|
|
movs r1, 0x10
|
|
adds r3, r4, 0
|
|
bl BlendPalette
|
|
ldrh r0, [r6, 0x16]
|
|
ldrb r2, [r6, 0xC]
|
|
movs r1, 0x10
|
|
adds r3, r4, 0
|
|
bl BlendPalette
|
|
ldrh r1, [r6, 0xC]
|
|
movs r2, 0xC
|
|
ldrsh r0, [r6, r2]
|
|
cmp r0, 0xB
|
|
bgt _080B6D0C
|
|
adds r0, r1, 0x1
|
|
strh r0, [r6, 0xC]
|
|
b _080B6F24
|
|
.align 2, 0
|
|
_080B6D08: .4byte 0x000066e0
|
|
_080B6D0C:
|
|
strh r5, [r6, 0xA]
|
|
strh r5, [r6, 0xC]
|
|
ldr r1, _080B6D24 @ =0x00003f44
|
|
movs r0, 0x50
|
|
bl SetGpuReg
|
|
movs r1, 0x80
|
|
lsls r1, 5
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
b _080B6F1E
|
|
.align 2, 0
|
|
_080B6D24: .4byte 0x00003f44
|
|
_080B6D28:
|
|
movs r0, 0x2
|
|
movs r1, 0x3
|
|
movs r2, 0x1
|
|
bl SetAnimBgAttribute
|
|
movs r0, 0x2
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl SetAnimBgAttribute
|
|
ldr r0, _080B6D7C @ =gUnknown_202297C
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
ldr r4, _080B6D80 @ =gUnknown_202297E
|
|
strh r1, [r4]
|
|
movs r0, 0x18
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
ldrh r1, [r4]
|
|
movs r0, 0x1A
|
|
bl SetGpuReg
|
|
add r0, sp, 0xC
|
|
movs r1, 0x2
|
|
bl sub_80752C8
|
|
add r0, sp, 0xC
|
|
ldrb r0, [r0, 0x9]
|
|
ldr r1, _080B6D84 @ =gFile_graphics_battle_anims_backgrounds_scary_face_sheet
|
|
add r2, sp, 0xC
|
|
ldrh r2, [r2, 0xA]
|
|
bl sub_80753B4
|
|
ldr r0, _080B6D88 @ =gFile_graphics_battle_anims_backgrounds_scary_face_palette
|
|
add r1, sp, 0xC
|
|
ldrb r1, [r1, 0x8]
|
|
lsls r1, 4
|
|
movs r2, 0x20
|
|
bl LoadCompressedPalette
|
|
b _080B6F1E
|
|
.align 2, 0
|
|
_080B6D7C: .4byte gUnknown_202297C
|
|
_080B6D80: .4byte gUnknown_202297E
|
|
_080B6D84: .4byte gFile_graphics_battle_anims_backgrounds_scary_face_sheet
|
|
_080B6D88: .4byte gFile_graphics_battle_anims_backgrounds_scary_face_palette
|
|
_080B6D8C:
|
|
add r0, sp, 0xC
|
|
movs r1, 0x2
|
|
bl sub_80752C8
|
|
movs r0, 0x80
|
|
lsls r0, 6
|
|
bl AllocZeroed
|
|
adds r1, r0, 0
|
|
ldr r5, _080B6DFC @ =gMonSpritesGfxPtr
|
|
ldr r0, [r5]
|
|
movs r4, 0xBE
|
|
lsls r4, 1
|
|
adds r0, r4
|
|
str r1, [r0]
|
|
ldr r0, _080B6E00 @ =gFile_graphics_battle_anims_backgrounds_scary_face_player_tilemap
|
|
bl LZDecompressWram
|
|
add r0, sp, 0xC
|
|
ldrb r0, [r0, 0x8]
|
|
ldr r1, [r5]
|
|
adds r1, r4
|
|
ldr r1, [r1]
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
movs r3, 0
|
|
bl sub_80730C0
|
|
add r0, sp, 0xC
|
|
ldrb r0, [r0, 0x9]
|
|
ldr r1, [r5]
|
|
adds r1, r4
|
|
ldr r1, [r1]
|
|
movs r2, 0x20
|
|
str r2, [sp]
|
|
str r2, [sp, 0x4]
|
|
movs r2, 0x11
|
|
str r2, [sp, 0x8]
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl CopyToBgTilemapBufferRect_ChangePalette
|
|
movs r0, 0x2
|
|
bl CopyBgTilemapBufferToVram
|
|
ldr r0, [r5]
|
|
adds r0, r4
|
|
ldr r0, [r0]
|
|
bl Free
|
|
ldr r0, [r5]
|
|
adds r0, r4
|
|
movs r1, 0
|
|
str r1, [r0]
|
|
b _080B6F1E
|
|
.align 2, 0
|
|
_080B6DFC: .4byte gMonSpritesGfxPtr
|
|
_080B6E00: .4byte gFile_graphics_battle_anims_backgrounds_scary_face_player_tilemap
|
|
_080B6E04:
|
|
ldrh r0, [r6, 0xA]
|
|
adds r0, 0x1
|
|
strh r0, [r6, 0xA]
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080B6E14
|
|
b _080B6F24
|
|
_080B6E14:
|
|
ldrh r1, [r6, 0xC]
|
|
adds r1, 0x1
|
|
strh r1, [r6, 0xC]
|
|
ldrh r0, [r6, 0xE]
|
|
subs r0, 0x1
|
|
strh r0, [r6, 0xE]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
movs r1, 0xE
|
|
ldrsh r0, [r6, r1]
|
|
cmp r0, 0
|
|
bne _080B6F24
|
|
strh r0, [r6, 0xA]
|
|
strh r0, [r6, 0xC]
|
|
movs r0, 0x10
|
|
strh r0, [r6, 0xE]
|
|
ldr r1, _080B6E68 @ =0x00003f42
|
|
movs r0, 0x50
|
|
bl SetGpuReg
|
|
movs r1, 0x80
|
|
lsls r1, 5
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
movs r0, 0x1
|
|
movs r1, 0x4
|
|
movs r2, 0x1
|
|
bl SetAnimBgAttribute
|
|
movs r0, 0x2
|
|
movs r1, 0x4
|
|
movs r2, 0x2
|
|
bl SetAnimBgAttribute
|
|
b _080B6F1E
|
|
.align 2, 0
|
|
_080B6E68: .4byte 0x00003f42
|
|
_080B6E6C:
|
|
cmp r4, 0x1
|
|
bne _080B6E76
|
|
movs r1, 0x80
|
|
lsls r1, 2
|
|
b _080B6E7A
|
|
_080B6E76:
|
|
movs r1, 0x80
|
|
lsls r1, 3
|
|
_080B6E7A:
|
|
movs r0, 0
|
|
bl ClearGpuRegBits
|
|
b _080B6F1E
|
|
_080B6E82:
|
|
ldr r2, _080B6EC0 @ =gSprites
|
|
movs r0, 0x10
|
|
ldrsh r1, [r6, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrh r1, [r0, 0x26]
|
|
ldrh r0, [r0, 0x22]
|
|
adds r1, r0
|
|
subs r1, 0x20
|
|
lsls r1, 16
|
|
lsrs r2, r1, 16
|
|
cmp r1, 0
|
|
bge _080B6EA2
|
|
movs r2, 0
|
|
_080B6EA2:
|
|
cmp r4, 0x1
|
|
bne _080B6EC4
|
|
lsls r0, r2, 24
|
|
lsrs r0, 24
|
|
adds r1, r2, 0
|
|
adds r1, 0x40
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
movs r2, 0
|
|
str r2, [sp]
|
|
movs r2, 0x4
|
|
str r2, [sp, 0x4]
|
|
str r4, [sp, 0x8]
|
|
b _080B6EDE
|
|
.align 2, 0
|
|
_080B6EC0: .4byte gSprites
|
|
_080B6EC4:
|
|
lsls r0, r2, 24
|
|
lsrs r0, 24
|
|
adds r1, r2, 0
|
|
adds r1, 0x40
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
movs r2, 0
|
|
str r2, [sp]
|
|
movs r2, 0x8
|
|
str r2, [sp, 0x4]
|
|
movs r2, 0x1
|
|
str r2, [sp, 0x8]
|
|
movs r2, 0x4
|
|
_080B6EDE:
|
|
movs r3, 0x8
|
|
bl sub_8088230
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r6, 0x1C]
|
|
b _080B6F1E
|
|
_080B6EEC:
|
|
ldrh r0, [r6, 0x16]
|
|
ldr r3, _080B6F08 @ =0x000077ff
|
|
movs r1, 0x10
|
|
movs r2, 0xC
|
|
bl BlendPalette
|
|
cmp r4, 0x1
|
|
bne _080B6F0C
|
|
movs r1, 0x80
|
|
lsls r1, 2
|
|
movs r0, 0
|
|
bl SetGpuRegBits
|
|
b _080B6F16
|
|
.align 2, 0
|
|
_080B6F08: .4byte 0x000077ff
|
|
_080B6F0C:
|
|
movs r1, 0x80
|
|
lsls r1, 3
|
|
movs r0, 0
|
|
bl SetGpuRegBits
|
|
_080B6F16:
|
|
ldr r0, _080B6F2C @ =sub_80B6F30
|
|
str r0, [r6]
|
|
movs r0, 0
|
|
strh r0, [r6, 0x26]
|
|
_080B6F1E:
|
|
ldrh r0, [r6, 0x26]
|
|
adds r0, 0x1
|
|
strh r0, [r6, 0x26]
|
|
_080B6F24:
|
|
add sp, 0x1C
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B6F2C: .4byte sub_80B6F30
|
|
thumb_func_end sub_80B6BE4
|
|
|
|
thumb_func_start sub_80B6F30
|
|
sub_80B6F30: @ 80B6F30
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r5, r0, 0
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
ldr r1, _080B6FB8 @ =gTasks
|
|
adds r4, r0, r1
|
|
ldrh r1, [r4, 0xA]
|
|
adds r1, 0x1
|
|
strh r1, [r4, 0xA]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
strh r0, [r4, 0x18]
|
|
cmp r0, 0
|
|
bne _080B6F68
|
|
ldr r1, _080B6FBC @ =gUnknown_825E074
|
|
movs r2, 0xA
|
|
ldrsh r0, [r4, r2]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
movs r1, 0x12
|
|
bl __divsi3
|
|
strh r0, [r4, 0xC]
|
|
_080B6F68:
|
|
movs r2, 0x18
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0x1
|
|
bne _080B6F8A
|
|
ldr r1, _080B6FBC @ =gUnknown_825E074
|
|
movs r2, 0xA
|
|
ldrsh r0, [r4, r2]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
movs r1, 0x12
|
|
bl __divsi3
|
|
movs r1, 0x10
|
|
subs r1, r0
|
|
strh r1, [r4, 0xE]
|
|
_080B6F8A:
|
|
ldrh r1, [r4, 0xE]
|
|
lsls r1, 8
|
|
ldrh r0, [r4, 0xC]
|
|
orrs r1, r0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
movs r2, 0xA
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0x80
|
|
bne _080B6FB2
|
|
movs r0, 0
|
|
strh r0, [r4, 0x26]
|
|
ldr r1, _080B6FC0 @ =sub_80B6FC4
|
|
str r1, [r4]
|
|
adds r0, r5, 0
|
|
bl _call_via_r1
|
|
_080B6FB2:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B6FB8: .4byte gTasks
|
|
_080B6FBC: .4byte gUnknown_825E074
|
|
_080B6FC0: .4byte sub_80B6FC4
|
|
thumb_func_end sub_80B6F30
|
|
|
|
thumb_func_start sub_80B6FC4
|
|
sub_80B6FC4: @ 80B6FC4
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
lsls r0, r7, 2
|
|
adds r0, r7
|
|
lsls r0, 3
|
|
ldr r1, _080B6FE8 @ =gTasks
|
|
adds r6, r0, r1
|
|
movs r1, 0x26
|
|
ldrsh r0, [r6, r1]
|
|
cmp r0, 0x5
|
|
bls _080B6FDE
|
|
b _080B7148
|
|
_080B6FDE:
|
|
lsls r0, 2
|
|
ldr r1, _080B6FEC @ =_080B6FF0
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080B6FE8: .4byte gTasks
|
|
_080B6FEC: .4byte _080B6FF0
|
|
.align 2, 0
|
|
_080B6FF0:
|
|
.4byte _080B7008
|
|
.4byte _080B7024
|
|
.4byte _080B7044
|
|
.4byte _080B707C
|
|
.4byte _080B709C
|
|
.4byte _080B70E8
|
|
_080B7008:
|
|
ldr r1, _080B701C @ =gUnknown_2039600
|
|
movs r0, 0x3
|
|
strb r0, [r1, 0x15]
|
|
ldrh r0, [r6, 0x16]
|
|
ldr r3, _080B7020 @ =0x000066e0
|
|
movs r1, 0x10
|
|
movs r2, 0xC
|
|
bl BlendPalette
|
|
b _080B7148
|
|
.align 2, 0
|
|
_080B701C: .4byte gUnknown_2039600
|
|
_080B7020: .4byte 0x000066e0
|
|
_080B7024:
|
|
ldr r1, _080B7040 @ =0x00003f44
|
|
movs r0, 0x50
|
|
bl SetGpuReg
|
|
movs r0, 0x52
|
|
movs r1, 0x10
|
|
bl SetGpuReg
|
|
movs r1, 0
|
|
movs r0, 0x10
|
|
strh r0, [r6, 0xC]
|
|
strh r1, [r6, 0xE]
|
|
b _080B7148
|
|
.align 2, 0
|
|
_080B7040: .4byte 0x00003f44
|
|
_080B7044:
|
|
ldrh r1, [r6, 0xC]
|
|
subs r1, 0x1
|
|
strh r1, [r6, 0xC]
|
|
ldrh r0, [r6, 0xE]
|
|
adds r0, 0x1
|
|
strh r0, [r6, 0xE]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
movs r2, 0xE
|
|
ldrsh r0, [r6, r2]
|
|
cmp r0, 0xF
|
|
ble _080B714E
|
|
movs r0, 0x1
|
|
movs r1, 0x4
|
|
movs r2, 0x2
|
|
bl SetAnimBgAttribute
|
|
movs r0, 0x2
|
|
movs r1, 0x4
|
|
movs r2, 0x2
|
|
bl SetAnimBgAttribute
|
|
b _080B7148
|
|
_080B707C:
|
|
movs r0, 0x2
|
|
bl sub_8075358
|
|
movs r0, 0
|
|
movs r1, 0x90
|
|
movs r2, 0x20
|
|
bl FillPalette
|
|
movs r0, 0x2
|
|
movs r1, 0x3
|
|
movs r2, 0
|
|
bl SetAnimBgAttribute
|
|
movs r0, 0xC
|
|
strh r0, [r6, 0xA]
|
|
b _080B7148
|
|
_080B709C:
|
|
ldrh r0, [r6, 0x14]
|
|
ldrb r2, [r6, 0xA]
|
|
ldr r4, _080B70C8 @ =0x000066e0
|
|
movs r1, 0x10
|
|
adds r3, r4, 0
|
|
bl BlendPalette
|
|
ldrh r0, [r6, 0x16]
|
|
ldrb r2, [r6, 0xA]
|
|
movs r1, 0x10
|
|
adds r3, r4, 0
|
|
bl BlendPalette
|
|
ldrh r0, [r6, 0xA]
|
|
movs r2, 0xA
|
|
ldrsh r1, [r6, r2]
|
|
cmp r1, 0
|
|
beq _080B70CC
|
|
subs r0, 0x1
|
|
strh r0, [r6, 0xA]
|
|
b _080B714E
|
|
.align 2, 0
|
|
_080B70C8: .4byte 0x000066e0
|
|
_080B70CC:
|
|
strh r1, [r6, 0xA]
|
|
ldr r1, _080B70E4 @ =0x00003f44
|
|
movs r0, 0x50
|
|
bl SetGpuReg
|
|
movs r1, 0x80
|
|
lsls r1, 5
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
b _080B7148
|
|
.align 2, 0
|
|
_080B70E4: .4byte 0x00003f44
|
|
_080B70E8:
|
|
ldr r5, _080B7154 @ =gSprites
|
|
movs r1, 0x10
|
|
ldrsh r0, [r6, r1]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r5
|
|
movs r0, 0x3
|
|
ldrb r2, [r6, 0x12]
|
|
ands r2, r0
|
|
lsls r2, 2
|
|
ldrb r4, [r1, 0x5]
|
|
movs r3, 0xD
|
|
negs r3, r3
|
|
adds r0, r3, 0
|
|
ands r0, r4
|
|
orrs r0, r2
|
|
strb r0, [r1, 0x5]
|
|
movs r2, 0x10
|
|
ldrsh r1, [r6, r2]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
ldrb r1, [r0, 0x1]
|
|
ands r3, r1
|
|
strb r3, [r0, 0x1]
|
|
movs r0, 0x1
|
|
movs r1, 0x4
|
|
movs r2, 0x1
|
|
bl SetAnimBgAttribute
|
|
movs r0, 0x2
|
|
movs r1, 0x4
|
|
movs r2, 0x1
|
|
bl SetAnimBgAttribute
|
|
movs r0, 0x50
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x52
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
adds r0, r7, 0
|
|
bl DestroyAnimVisualTask
|
|
_080B7148:
|
|
ldrh r0, [r6, 0x26]
|
|
adds r0, 0x1
|
|
strh r0, [r6, 0x26]
|
|
_080B714E:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B7154: .4byte gSprites
|
|
thumb_func_end sub_80B6FC4
|
|
|
|
thumb_func_start sub_80B7158
|
|
sub_80B7158: @ 80B7158
|
|
adds r3, r0, 0
|
|
adds r3, 0x3E
|
|
ldrb r1, [r3]
|
|
movs r2, 0x4
|
|
orrs r1, r2
|
|
strb r1, [r3]
|
|
ldr r2, _080B719C @ =gUnknown_2023D44
|
|
ldr r1, _080B71A0 @ =gUnknown_2037F1A
|
|
ldrb r1, [r1]
|
|
adds r1, r2
|
|
ldrb r1, [r1]
|
|
strh r1, [r0, 0x38]
|
|
movs r1, 0x80
|
|
strh r1, [r0, 0x2E]
|
|
movs r1, 0xA
|
|
strh r1, [r0, 0x30]
|
|
ldr r2, _080B71A4 @ =gUnknown_2037F02
|
|
ldrh r1, [r2]
|
|
strh r1, [r0, 0x32]
|
|
ldrh r1, [r2, 0x2]
|
|
strh r1, [r0, 0x34]
|
|
ldr r1, _080B71A8 @ =sub_80B71B0
|
|
str r1, [r0, 0x1C]
|
|
ldr r2, _080B71AC @ =gSprites
|
|
movs r3, 0x38
|
|
ldrsh r1, [r0, r3]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrh r1, [r0, 0x22]
|
|
adds r1, 0x8
|
|
strh r1, [r0, 0x22]
|
|
bx lr
|
|
.align 2, 0
|
|
_080B719C: .4byte gUnknown_2023D44
|
|
_080B71A0: .4byte gUnknown_2037F1A
|
|
_080B71A4: .4byte gUnknown_2037F02
|
|
_080B71A8: .4byte sub_80B71B0
|
|
_080B71AC: .4byte gSprites
|
|
thumb_func_end sub_80B7158
|
|
|
|
thumb_func_start sub_80B71B0
|
|
sub_80B71B0: @ 80B71B0
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
ldrh r0, [r5, 0x34]
|
|
movs r1, 0x34
|
|
ldrsh r3, [r5, r1]
|
|
cmp r3, 0
|
|
beq _080B7218
|
|
subs r0, 0x1
|
|
strh r0, [r5, 0x34]
|
|
movs r2, 0x2E
|
|
ldrsh r0, [r5, r2]
|
|
movs r2, 0x30
|
|
ldrsh r1, [r5, r2]
|
|
bl Sin
|
|
ldr r4, _080B7210 @ =gSprites
|
|
movs r1, 0x38
|
|
ldrsh r2, [r5, r1]
|
|
lsls r1, r2, 4
|
|
adds r1, r2
|
|
lsls r1, 2
|
|
adds r1, r4
|
|
strh r0, [r1, 0x24]
|
|
movs r2, 0x2E
|
|
ldrsh r0, [r5, r2]
|
|
movs r2, 0x30
|
|
ldrsh r1, [r5, r2]
|
|
bl Cos
|
|
movs r1, 0x38
|
|
ldrsh r2, [r5, r1]
|
|
lsls r1, r2, 4
|
|
adds r1, r2
|
|
lsls r1, 2
|
|
adds r1, r4
|
|
strh r0, [r1, 0x26]
|
|
ldrh r0, [r5, 0x32]
|
|
ldrh r2, [r5, 0x2E]
|
|
adds r1, r0, r2
|
|
strh r1, [r5, 0x2E]
|
|
lsls r0, r1, 16
|
|
asrs r0, 16
|
|
cmp r0, 0xFF
|
|
ble _080B724C
|
|
ldr r2, _080B7214 @ =0xffffff00
|
|
adds r0, r1, r2
|
|
strh r0, [r5, 0x2E]
|
|
b _080B724C
|
|
.align 2, 0
|
|
_080B7210: .4byte gSprites
|
|
_080B7214: .4byte 0xffffff00
|
|
_080B7218:
|
|
ldr r2, _080B7254 @ =gSprites
|
|
movs r0, 0x38
|
|
ldrsh r1, [r5, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
strh r3, [r0, 0x24]
|
|
movs r0, 0x38
|
|
ldrsh r1, [r5, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
strh r3, [r0, 0x26]
|
|
movs r0, 0x38
|
|
ldrsh r1, [r5, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrh r1, [r0, 0x22]
|
|
subs r1, 0x8
|
|
strh r1, [r0, 0x22]
|
|
ldr r0, _080B7258 @ =move_anim_8074EE0
|
|
str r0, [r5, 0x1C]
|
|
_080B724C:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B7254: .4byte gSprites
|
|
_080B7258: .4byte move_anim_8074EE0
|
|
thumb_func_end sub_80B71B0
|
|
|
|
thumb_func_start sub_80B725C
|
|
sub_80B725C: @ 80B725C
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
ldr r4, _080B72A4 @ =gUnknown_2037F1A
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x20]
|
|
ldrb r0, [r4]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x22]
|
|
ldrb r0, [r4]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080B72AC
|
|
ldr r2, _080B72A8 @ =gUnknown_2037F02
|
|
ldrh r0, [r5, 0x20]
|
|
ldrh r1, [r2]
|
|
subs r0, r1
|
|
strh r0, [r5, 0x20]
|
|
ldrh r0, [r2, 0x6]
|
|
negs r0, r0
|
|
strh r0, [r2, 0x6]
|
|
ldrh r0, [r2, 0x8]
|
|
negs r0, r0
|
|
strh r0, [r2, 0x8]
|
|
adds r1, r2, 0
|
|
b _080B72B6
|
|
.align 2, 0
|
|
_080B72A4: .4byte gUnknown_2037F1A
|
|
_080B72A8: .4byte gUnknown_2037F02
|
|
_080B72AC:
|
|
ldr r1, _080B72EC @ =gUnknown_2037F02
|
|
ldrh r0, [r1]
|
|
ldrh r2, [r5, 0x20]
|
|
adds r0, r2
|
|
strh r0, [r5, 0x20]
|
|
_080B72B6:
|
|
ldrh r0, [r1, 0x2]
|
|
ldrh r2, [r5, 0x22]
|
|
adds r0, r2
|
|
strh r0, [r5, 0x22]
|
|
ldrh r0, [r1, 0x4]
|
|
strh r0, [r5, 0x2E]
|
|
ldrh r0, [r1, 0x6]
|
|
strh r0, [r5, 0x30]
|
|
ldrh r0, [r1, 0x8]
|
|
strh r0, [r5, 0x34]
|
|
ldrh r0, [r1, 0xA]
|
|
strh r0, [r5, 0x38]
|
|
adds r2, r5, 0
|
|
adds r2, 0x3E
|
|
ldrb r0, [r2]
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r1, _080B72F0 @ =move_anim_8074EE0
|
|
adds r0, r5, 0
|
|
bl StoreSpriteCallbackInData6
|
|
ldr r0, _080B72F4 @ =sub_8074E70
|
|
str r0, [r5, 0x1C]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B72EC: .4byte gUnknown_2037F02
|
|
_080B72F0: .4byte move_anim_8074EE0
|
|
_080B72F4: .4byte sub_8074E70
|
|
thumb_func_end sub_80B725C
|
|
|
|
thumb_func_start sub_80B72F8
|
|
sub_80B72F8: @ 80B72F8
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
bl sub_8074FCC
|
|
ldr r4, _080B7350 @ =gUnknown_2037F1B
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x32]
|
|
ldrb r0, [r4]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x36]
|
|
ldr r0, _080B7354 @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080B735C
|
|
ldr r2, _080B7358 @ =gUnknown_2037F02
|
|
ldrh r0, [r5, 0x20]
|
|
ldrh r1, [r2, 0x2]
|
|
subs r0, r1
|
|
strh r0, [r5, 0x20]
|
|
ldrh r0, [r5, 0x22]
|
|
adds r1, r0
|
|
strh r1, [r5, 0x22]
|
|
ldrh r0, [r5, 0x32]
|
|
ldrh r1, [r2, 0x4]
|
|
subs r0, r1
|
|
strh r0, [r5, 0x32]
|
|
ldrh r0, [r2, 0x6]
|
|
ldrh r1, [r5, 0x36]
|
|
adds r0, r1
|
|
strh r0, [r5, 0x36]
|
|
b _080B7386
|
|
.align 2, 0
|
|
_080B7350: .4byte gUnknown_2037F1B
|
|
_080B7354: .4byte gUnknown_2037F1A
|
|
_080B7358: .4byte gUnknown_2037F02
|
|
_080B735C:
|
|
ldr r1, _080B73A0 @ =gUnknown_2037F02
|
|
ldrh r0, [r1]
|
|
ldrh r2, [r5, 0x20]
|
|
adds r0, r2
|
|
strh r0, [r5, 0x20]
|
|
ldrh r0, [r1, 0x2]
|
|
ldrh r2, [r5, 0x22]
|
|
adds r0, r2
|
|
strh r0, [r5, 0x22]
|
|
ldrh r0, [r1, 0x4]
|
|
ldrh r2, [r5, 0x32]
|
|
adds r0, r2
|
|
strh r0, [r5, 0x32]
|
|
ldrh r0, [r1, 0x6]
|
|
ldrh r1, [r5, 0x36]
|
|
adds r0, r1
|
|
strh r0, [r5, 0x36]
|
|
adds r0, r5, 0
|
|
movs r1, 0x1
|
|
bl StartSpriteAnim
|
|
_080B7386:
|
|
ldr r0, _080B73A0 @ =gUnknown_2037F02
|
|
ldrh r0, [r0, 0x8]
|
|
strh r0, [r5, 0x2E]
|
|
ldr r0, _080B73A4 @ =sub_8075590
|
|
str r0, [r5, 0x1C]
|
|
ldr r1, _080B73A8 @ =move_anim_8074EE0
|
|
adds r0, r5, 0
|
|
bl StoreSpriteCallbackInData6
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B73A0: .4byte gUnknown_2037F02
|
|
_080B73A4: .4byte sub_8075590
|
|
_080B73A8: .4byte move_anim_8074EE0
|
|
thumb_func_end sub_80B72F8
|
|
|
|
thumb_func_start sub_80B73AC
|
|
sub_80B73AC: @ 80B73AC
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
ldr r0, _080B73C0 @ =gUnknown_2037F02
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0
|
|
bne _080B73C8
|
|
ldr r4, _080B73C4 @ =gUnknown_2037F1A
|
|
b _080B73CA
|
|
.align 2, 0
|
|
_080B73C0: .4byte gUnknown_2037F02
|
|
_080B73C4: .4byte gUnknown_2037F1A
|
|
_080B73C8:
|
|
ldr r4, _080B740C @ =gUnknown_2037F1B
|
|
_080B73CA:
|
|
ldrb r0, [r4]
|
|
movs r1, 0
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x20]
|
|
ldrb r0, [r4]
|
|
movs r1, 0x1
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x22]
|
|
ldr r4, _080B7410 @ =gUnknown_2037F02
|
|
movs r0, 0x2
|
|
ldrsh r1, [r4, r0]
|
|
adds r0, r5, 0
|
|
bl sub_8074FF8
|
|
ldrh r0, [r4, 0x4]
|
|
ldrh r1, [r5, 0x22]
|
|
adds r0, r1
|
|
strh r0, [r5, 0x22]
|
|
ldr r0, _080B7414 @ =sub_8074F6C
|
|
str r0, [r5, 0x1C]
|
|
ldr r1, _080B7418 @ =move_anim_8074EE0
|
|
adds r0, r5, 0
|
|
bl StoreSpriteCallbackInData6
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B740C: .4byte gUnknown_2037F1B
|
|
_080B7410: .4byte gUnknown_2037F02
|
|
_080B7414: .4byte sub_8074F6C
|
|
_080B7418: .4byte move_anim_8074EE0
|
|
thumb_func_end sub_80B73AC
|
|
|
|
thumb_func_start sub_80B741C
|
|
sub_80B741C: @ 80B741C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldr r0, _080B7444 @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080B7436
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl StartSpriteAffineAnim
|
|
_080B7436:
|
|
adds r0, r4, 0
|
|
bl sub_80B72F8
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B7444: .4byte gUnknown_2037F1A
|
|
thumb_func_end sub_80B741C
|
|
|
|
thumb_func_start sub_80B7448
|
|
sub_80B7448: @ 80B7448
|
|
push {r4-r7,lr}
|
|
adds r6, r0, 0
|
|
ldr r4, _080B749C @ =gUnknown_2037F1A
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r5, 0
|
|
strh r0, [r6, 0x20]
|
|
ldrb r0, [r4]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r6, 0x22]
|
|
strh r5, [r6, 0x36]
|
|
movs r0, 0x1
|
|
strh r0, [r6, 0x38]
|
|
ldr r0, _080B74A0 @ =gUnknown_2037F02
|
|
ldrh r0, [r0]
|
|
strh r0, [r6, 0x3A]
|
|
ldr r4, _080B74A4 @ =sBattler_AI
|
|
ldrb r0, [r4]
|
|
movs r1, 0
|
|
bl sub_8076B2C
|
|
lsls r7, r0, 16
|
|
lsrs r5, r7, 16
|
|
ldrb r0, [r4]
|
|
movs r1, 0x1
|
|
bl sub_8076B2C
|
|
lsls r1, r0, 16
|
|
lsrs r0, r1, 16
|
|
cmp r5, r0
|
|
bls _080B74A8
|
|
lsrs r0, r7, 17
|
|
b _080B74AA
|
|
.align 2, 0
|
|
_080B749C: .4byte gUnknown_2037F1A
|
|
_080B74A0: .4byte gUnknown_2037F02
|
|
_080B74A4: .4byte sBattler_AI
|
|
_080B74A8:
|
|
lsrs r0, r1, 17
|
|
_080B74AA:
|
|
strh r0, [r6, 0x3C]
|
|
movs r1, 0x3A
|
|
ldrsh r0, [r6, r1]
|
|
movs r2, 0x3C
|
|
ldrsh r1, [r6, r2]
|
|
bl Cos
|
|
strh r0, [r6, 0x24]
|
|
movs r1, 0x3A
|
|
ldrsh r0, [r6, r1]
|
|
movs r2, 0x3C
|
|
ldrsh r1, [r6, r2]
|
|
bl Sin
|
|
strh r0, [r6, 0x26]
|
|
ldr r0, _080B74D4 @ =sub_80B74D8
|
|
str r0, [r6, 0x1C]
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B74D4: .4byte sub_80B74D8
|
|
thumb_func_end sub_80B7448
|
|
|
|
thumb_func_start sub_80B74D8
|
|
sub_80B74D8: @ 80B74D8
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x2E
|
|
ldrsh r5, [r4, r0]
|
|
cmp r5, 0
|
|
beq _080B74EA
|
|
cmp r5, 0x1
|
|
beq _080B7556
|
|
b _080B75DA
|
|
_080B74EA:
|
|
ldrh r0, [r4, 0x3A]
|
|
ldrh r1, [r4, 0x38]
|
|
subs r0, r1
|
|
movs r1, 0xFF
|
|
ands r0, r1
|
|
strh r0, [r4, 0x3A]
|
|
movs r1, 0x3A
|
|
ldrsh r0, [r4, r1]
|
|
movs r2, 0x3C
|
|
ldrsh r1, [r4, r2]
|
|
bl Cos
|
|
strh r0, [r4, 0x24]
|
|
movs r1, 0x3A
|
|
ldrsh r0, [r4, r1]
|
|
movs r2, 0x3C
|
|
ldrsh r1, [r4, r2]
|
|
bl Sin
|
|
strh r0, [r4, 0x26]
|
|
ldrh r0, [r4, 0x36]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x36]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x5
|
|
ble _080B753C
|
|
strh r5, [r4, 0x36]
|
|
ldrh r1, [r4, 0x38]
|
|
movs r2, 0x38
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0xF
|
|
bgt _080B753C
|
|
adds r0, r1, 0x1
|
|
strh r0, [r4, 0x38]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0xF
|
|
ble _080B753C
|
|
movs r0, 0x10
|
|
strh r0, [r4, 0x38]
|
|
_080B753C:
|
|
ldrh r0, [r4, 0x34]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x34]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x3C
|
|
ble _080B75DA
|
|
movs r0, 0
|
|
strh r0, [r4, 0x34]
|
|
ldrh r0, [r4, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
b _080B75DA
|
|
_080B7556:
|
|
ldrh r0, [r4, 0x3A]
|
|
ldrh r1, [r4, 0x38]
|
|
subs r0, r1
|
|
movs r1, 0xFF
|
|
ands r0, r1
|
|
strh r0, [r4, 0x3A]
|
|
ldrh r1, [r4, 0x3C]
|
|
movs r2, 0x3C
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0x95
|
|
bgt _080B757E
|
|
adds r0, r1, 0
|
|
adds r0, 0x8
|
|
strh r0, [r4, 0x3C]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x95
|
|
ble _080B757E
|
|
movs r0, 0x96
|
|
strh r0, [r4, 0x3C]
|
|
_080B757E:
|
|
movs r1, 0x3A
|
|
ldrsh r0, [r4, r1]
|
|
movs r2, 0x3C
|
|
ldrsh r1, [r4, r2]
|
|
bl Cos
|
|
strh r0, [r4, 0x24]
|
|
movs r1, 0x3A
|
|
ldrsh r0, [r4, r1]
|
|
movs r2, 0x3C
|
|
ldrsh r1, [r4, r2]
|
|
bl Sin
|
|
strh r0, [r4, 0x26]
|
|
ldrh r0, [r4, 0x36]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x36]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x5
|
|
ble _080B75C6
|
|
movs r0, 0
|
|
strh r0, [r4, 0x36]
|
|
ldrh r1, [r4, 0x38]
|
|
movs r2, 0x38
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0xF
|
|
bgt _080B75C6
|
|
adds r0, r1, 0x1
|
|
strh r0, [r4, 0x38]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0xF
|
|
ble _080B75C6
|
|
movs r0, 0x10
|
|
strh r0, [r4, 0x38]
|
|
_080B75C6:
|
|
ldrh r0, [r4, 0x34]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x34]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x14
|
|
ble _080B75DA
|
|
adds r0, r4, 0
|
|
bl DestroyAnimSprite
|
|
_080B75DA:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80B74D8
|
|
|
|
thumb_func_start sub_80B75E0
|
|
sub_80B75E0: @ 80B75E0
|
|
push {r4-r6,lr}
|
|
sub sp, 0xC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
ldr r0, _080B760C @ =gTasks
|
|
adds r4, r1, r0
|
|
ldr r0, _080B7610 @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl sub_80768B0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _080B761C
|
|
ldr r0, _080B7614 @ =0x04000014
|
|
str r0, [sp]
|
|
ldr r0, _080B7618 @ =gUnknown_2022978
|
|
b _080B7622
|
|
.align 2, 0
|
|
_080B760C: .4byte gTasks
|
|
_080B7610: .4byte gUnknown_2037F1A
|
|
_080B7614: .4byte 0x04000014
|
|
_080B7618: .4byte gUnknown_2022978
|
|
_080B761C:
|
|
ldr r0, _080B7698 @ =0x04000018
|
|
str r0, [sp]
|
|
ldr r0, _080B769C @ =gUnknown_202297C
|
|
_080B7622:
|
|
ldrh r0, [r0]
|
|
strh r0, [r4, 0xC]
|
|
ldr r0, _080B76A0 @ =0xa2600001
|
|
str r0, [sp, 0x4]
|
|
mov r1, sp
|
|
movs r5, 0
|
|
movs r0, 0x1
|
|
strb r0, [r1, 0x8]
|
|
mov r0, sp
|
|
strb r5, [r0, 0x9]
|
|
ldr r0, _080B76A4 @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl sub_807492C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r1, r0, 0
|
|
subs r1, 0x20
|
|
strh r1, [r4, 0xE]
|
|
adds r0, 0x20
|
|
strh r0, [r4, 0x10]
|
|
cmp r1, 0
|
|
bge _080B7652
|
|
strh r5, [r4, 0xE]
|
|
_080B7652:
|
|
ldrh r3, [r4, 0xE]
|
|
movs r1, 0x10
|
|
ldrsh r0, [r4, r1]
|
|
cmp r3, r0
|
|
bgt _080B7680
|
|
ldr r5, _080B76A8 @ =gUnknown_2038700
|
|
movs r0, 0xF0
|
|
lsls r0, 3
|
|
adds r6, r5, r0
|
|
_080B7664:
|
|
lsls r1, r3, 1
|
|
adds r2, r1, r5
|
|
ldrh r0, [r4, 0xC]
|
|
strh r0, [r2]
|
|
adds r1, r6
|
|
ldrh r0, [r4, 0xC]
|
|
strh r0, [r1]
|
|
adds r0, r3, 0x1
|
|
lsls r0, 16
|
|
lsrs r3, r0, 16
|
|
movs r1, 0x10
|
|
ldrsh r0, [r4, r1]
|
|
cmp r3, r0
|
|
ble _080B7664
|
|
_080B7680:
|
|
ldr r0, [sp]
|
|
ldr r1, [sp, 0x4]
|
|
ldr r2, [sp, 0x8]
|
|
bl sub_8087EE4
|
|
ldr r0, _080B76AC @ =sub_80B76B0
|
|
str r0, [r4]
|
|
add sp, 0xC
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B7698: .4byte 0x04000018
|
|
_080B769C: .4byte gUnknown_202297C
|
|
_080B76A0: .4byte 0xa2600001
|
|
_080B76A4: .4byte gUnknown_2037F1A
|
|
_080B76A8: .4byte gUnknown_2038700
|
|
_080B76AC: .4byte sub_80B76B0
|
|
thumb_func_end sub_80B75E0
|
|
|
|
thumb_func_start sub_80B76B0
|
|
sub_80B76B0: @ 80B76B0
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
lsls r0, r3, 2
|
|
adds r0, r3
|
|
lsls r0, 3
|
|
ldr r1, _080B76D4 @ =gTasks
|
|
adds r2, r0, r1
|
|
movs r1, 0x8
|
|
ldrsh r0, [r2, r1]
|
|
cmp r0, 0x4
|
|
bhi _080B7766
|
|
lsls r0, 2
|
|
ldr r1, _080B76D8 @ =_080B76DC
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080B76D4: .4byte gTasks
|
|
_080B76D8: .4byte _080B76DC
|
|
.align 2, 0
|
|
_080B76DC:
|
|
.4byte _080B76F0
|
|
.4byte _080B7712
|
|
.4byte _080B7722
|
|
.4byte _080B774E
|
|
.4byte _080B7760
|
|
_080B76F0:
|
|
ldrh r0, [r2, 0x16]
|
|
adds r0, 0x1
|
|
strh r0, [r2, 0x16]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1
|
|
ble _080B7746
|
|
movs r0, 0
|
|
strh r0, [r2, 0x16]
|
|
ldrh r0, [r2, 0x14]
|
|
adds r0, 0x1
|
|
strh r0, [r2, 0x14]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x3
|
|
bne _080B7746
|
|
b _080B7740
|
|
_080B7712:
|
|
ldrh r0, [r2, 0xA]
|
|
adds r0, 0x1
|
|
strh r0, [r2, 0xA]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x3C
|
|
ble _080B7746
|
|
b _080B7740
|
|
_080B7722:
|
|
ldrh r0, [r2, 0x16]
|
|
adds r0, 0x1
|
|
strh r0, [r2, 0x16]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1
|
|
ble _080B7746
|
|
movs r0, 0
|
|
strh r0, [r2, 0x16]
|
|
ldrh r0, [r2, 0x14]
|
|
subs r0, 0x1
|
|
strh r0, [r2, 0x14]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bne _080B7746
|
|
_080B7740:
|
|
ldrh r0, [r2, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r2, 0x8]
|
|
_080B7746:
|
|
adds r0, r2, 0
|
|
bl sub_80B776C
|
|
b _080B7766
|
|
_080B774E:
|
|
ldr r1, _080B775C @ =gUnknown_2039600
|
|
movs r0, 0x3
|
|
strb r0, [r1, 0x15]
|
|
ldrh r0, [r2, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r2, 0x8]
|
|
b _080B7766
|
|
.align 2, 0
|
|
_080B775C: .4byte gUnknown_2039600
|
|
_080B7760:
|
|
adds r0, r3, 0
|
|
bl DestroyAnimVisualTask
|
|
_080B7766:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80B76B0
|
|
|
|
thumb_func_start sub_80B776C
|
|
sub_80B776C: @ 80B776C
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
adds r5, r0, 0
|
|
ldrh r3, [r5, 0x12]
|
|
ldrh r4, [r5, 0xE]
|
|
movs r1, 0x10
|
|
ldrsh r0, [r5, r1]
|
|
cmp r4, r0
|
|
bgt _080B77C2
|
|
ldr r7, _080B77D8 @ =gUnknown_2038700
|
|
mov r12, r7
|
|
ldr r0, _080B77DC @ =gUnknown_825E074
|
|
mov r8, r0
|
|
ldr r6, _080B77E0 @ =gUnknown_2039600
|
|
_080B778A:
|
|
lsls r2, r4, 1
|
|
ldrb r1, [r6, 0x14]
|
|
lsls r0, r1, 4
|
|
subs r0, r1
|
|
lsls r0, 7
|
|
adds r2, r0
|
|
add r2, r12
|
|
lsls r0, r3, 1
|
|
add r0, r8
|
|
movs r7, 0
|
|
ldrsh r1, [r0, r7]
|
|
movs r7, 0x14
|
|
ldrsh r0, [r5, r7]
|
|
muls r0, r1
|
|
asrs r0, 7
|
|
ldrh r1, [r5, 0xC]
|
|
adds r0, r1
|
|
strh r0, [r2]
|
|
adds r3, 0x8
|
|
movs r0, 0xFF
|
|
ands r3, r0
|
|
adds r0, r4, 0x1
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
movs r7, 0x10
|
|
ldrsh r0, [r5, r7]
|
|
cmp r4, r0
|
|
ble _080B778A
|
|
_080B77C2:
|
|
ldrh r0, [r5, 0x12]
|
|
adds r0, 0x9
|
|
movs r1, 0xFF
|
|
ands r0, r1
|
|
strh r0, [r5, 0x12]
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B77D8: .4byte gUnknown_2038700
|
|
_080B77DC: .4byte gUnknown_825E074
|
|
_080B77E0: .4byte gUnknown_2039600
|
|
thumb_func_end sub_80B776C
|
|
|
|
thumb_func_start sub_80B77E4
|
|
sub_80B77E4: @ 80B77E4
|
|
push {r4-r6,lr}
|
|
mov r6, r8
|
|
push {r6}
|
|
adds r4, r0, 0
|
|
ldr r5, _080B7884 @ =gUnknown_2037F02
|
|
movs r0, 0x4
|
|
ldrsh r1, [r5, r0]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
movs r1, 0x5
|
|
bl __divsi3
|
|
adds r6, r0, 0
|
|
ldr r1, _080B7888 @ =gUnknown_2037F1A
|
|
mov r8, r1
|
|
ldrb r0, [r1]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x20]
|
|
mov r2, r8
|
|
ldrb r0, [r2]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrh r3, [r5, 0x8]
|
|
adds r0, r3
|
|
strh r0, [r4, 0x22]
|
|
movs r1, 0x2
|
|
ldrsh r0, [r5, r1]
|
|
movs r2, 0x4
|
|
ldrsh r1, [r5, r2]
|
|
bl Cos
|
|
strh r0, [r4, 0x30]
|
|
movs r3, 0x2
|
|
ldrsh r0, [r5, r3]
|
|
lsls r6, 16
|
|
asrs r6, 16
|
|
adds r1, r6, 0
|
|
bl Sin
|
|
strh r0, [r4, 0x32]
|
|
ldrh r1, [r4, 0x30]
|
|
ldrh r2, [r5]
|
|
adds r3, r2, 0
|
|
muls r3, r1
|
|
adds r1, r3, 0
|
|
ldrh r3, [r4, 0x20]
|
|
adds r1, r3
|
|
strh r1, [r4, 0x20]
|
|
adds r1, r2, 0
|
|
muls r1, r0
|
|
adds r0, r1, 0
|
|
ldrh r2, [r4, 0x22]
|
|
adds r0, r2
|
|
strh r0, [r4, 0x22]
|
|
ldrh r0, [r5, 0x6]
|
|
strh r0, [r4, 0x34]
|
|
ldr r0, _080B788C @ =sub_80B7894
|
|
str r0, [r4, 0x1C]
|
|
adds r4, 0x2E
|
|
ldr r2, _080B7890 @ =gUnknown_20399A4
|
|
movs r1, 0x6
|
|
_080B786C:
|
|
ldrh r0, [r4]
|
|
strh r0, [r2]
|
|
adds r4, 0x2
|
|
adds r2, 0x2
|
|
subs r1, 0x1
|
|
cmp r1, 0
|
|
bge _080B786C
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B7884: .4byte gUnknown_2037F02
|
|
_080B7888: .4byte gUnknown_2037F1A
|
|
_080B788C: .4byte sub_80B7894
|
|
_080B7890: .4byte gUnknown_20399A4
|
|
thumb_func_end sub_80B77E4
|
|
|
|
thumb_func_start sub_80B7894
|
|
sub_80B7894: @ 80B7894
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrh r0, [r4, 0x30]
|
|
ldrh r1, [r4, 0x36]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x36]
|
|
ldrh r0, [r4, 0x32]
|
|
ldrh r2, [r4, 0x38]
|
|
adds r0, r2
|
|
strh r0, [r4, 0x38]
|
|
movs r1, 0x36
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0xA
|
|
bl __divsi3
|
|
strh r0, [r4, 0x24]
|
|
movs r2, 0x38
|
|
ldrsh r0, [r4, r2]
|
|
movs r1, 0xA
|
|
bl __divsi3
|
|
strh r0, [r4, 0x26]
|
|
ldrh r0, [r4, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r2, 0x34
|
|
ldrsh r1, [r4, r2]
|
|
cmp r0, r1
|
|
ble _080B78D8
|
|
adds r0, r4, 0
|
|
bl DestroyAnimSprite
|
|
_080B78D8:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80B7894
|
|
|
|
thumb_func_start sub_80B78E0
|
|
sub_80B78E0: @ 80B78E0
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r1, _080B791C @ =gTasks
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldr r1, _080B7920 @ =gUnknown_2037F02
|
|
ldrh r1, [r1]
|
|
strh r1, [r0, 0x8]
|
|
ldr r1, _080B7924 @ =gUnknown_2037F1A
|
|
ldrb r4, [r1]
|
|
movs r1, 0x10
|
|
strh r1, [r0, 0xA]
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
adds r0, r4, 0
|
|
bl sub_80768B0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _080B792C
|
|
ldr r1, _080B7928 @ =0x00003f42
|
|
movs r0, 0x50
|
|
bl SetGpuReg
|
|
b _080B7934
|
|
.align 2, 0
|
|
_080B791C: .4byte gTasks
|
|
_080B7920: .4byte gUnknown_2037F02
|
|
_080B7924: .4byte gUnknown_2037F1A
|
|
_080B7928: .4byte 0x00003f42
|
|
_080B792C:
|
|
ldr r1, _080B7948 @ =0x00003f44
|
|
movs r0, 0x50
|
|
bl SetGpuReg
|
|
_080B7934:
|
|
ldr r0, _080B794C @ =gTasks
|
|
lsls r1, r5, 2
|
|
adds r1, r5
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldr r0, _080B7950 @ =sub_80B7954
|
|
str r0, [r1]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B7948: .4byte 0x00003f44
|
|
_080B794C: .4byte gTasks
|
|
_080B7950: .4byte sub_80B7954
|
|
thumb_func_end sub_80B78E0
|
|
|
|
thumb_func_start sub_80B7954
|
|
sub_80B7954: @ 80B7954
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
ldr r1, _080B79C0 @ =gTasks
|
|
lsls r0, r7, 2
|
|
adds r0, r7
|
|
lsls r0, 3
|
|
adds r6, r0, r1
|
|
ldrh r0, [r6, 0xA]
|
|
lsrs r4, r0, 8
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
movs r2, 0xC
|
|
ldrsh r0, [r6, r2]
|
|
ldrb r2, [r6, 0x8]
|
|
cmp r0, r2
|
|
bne _080B79D0
|
|
adds r4, 0x1
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
subs r0, r1, 0x1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r4, 8
|
|
orrs r1, r0
|
|
movs r5, 0
|
|
strh r1, [r6, 0xA]
|
|
ldrh r1, [r6, 0xA]
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
strh r5, [r6, 0xC]
|
|
cmp r4, 0x10
|
|
bne _080B79D6
|
|
ldr r2, _080B79C4 @ =gSprites
|
|
ldr r1, _080B79C8 @ =gUnknown_2023D44
|
|
ldr r0, _080B79CC @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
adds r0, 0x3E
|
|
ldrb r1, [r0]
|
|
movs r2, 0x4
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
adds r0, r7, 0
|
|
bl DestroyAnimVisualTask
|
|
b _080B79D6
|
|
.align 2, 0
|
|
_080B79C0: .4byte gTasks
|
|
_080B79C4: .4byte gSprites
|
|
_080B79C8: .4byte gUnknown_2023D44
|
|
_080B79CC: .4byte gUnknown_2037F1A
|
|
_080B79D0:
|
|
ldrh r0, [r6, 0xC]
|
|
adds r0, 0x1
|
|
strh r0, [r6, 0xC]
|
|
_080B79D6:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80B7954
|
|
|
|
thumb_func_start sub_80B79DC
|
|
sub_80B79DC: @ 80B79DC
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _080B7A08 @ =gTasks
|
|
lsls r2, r0, 2
|
|
adds r2, r0
|
|
lsls r2, 3
|
|
adds r2, r1
|
|
ldr r0, _080B7A0C @ =gUnknown_2037F02
|
|
ldrh r0, [r0]
|
|
strh r0, [r2, 0x8]
|
|
movs r1, 0x80
|
|
lsls r1, 5
|
|
strh r1, [r2, 0xA]
|
|
ldr r0, _080B7A10 @ =sub_80B7A14
|
|
str r0, [r2]
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B7A08: .4byte gTasks
|
|
_080B7A0C: .4byte gUnknown_2037F02
|
|
_080B7A10: .4byte sub_80B7A14
|
|
thumb_func_end sub_80B79DC
|
|
|
|
thumb_func_start sub_80B7A14
|
|
sub_80B7A14: @ 80B7A14
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
ldr r1, _080B7A70 @ =gTasks
|
|
lsls r0, r7, 2
|
|
adds r0, r7
|
|
lsls r0, 3
|
|
adds r6, r0, r1
|
|
ldrh r0, [r6, 0xA]
|
|
lsrs r4, r0, 8
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
movs r2, 0xC
|
|
ldrsh r0, [r6, r2]
|
|
ldrb r2, [r6, 0x8]
|
|
cmp r0, r2
|
|
bne _080B7A74
|
|
subs r4, 0x1
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
adds r0, r1, 0x1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r4, 8
|
|
orrs r1, r0
|
|
movs r5, 0
|
|
strh r1, [r6, 0xA]
|
|
ldrh r1, [r6, 0xA]
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
strh r5, [r6, 0xC]
|
|
cmp r4, 0
|
|
bne _080B7A7A
|
|
movs r0, 0x50
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x52
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
adds r0, r7, 0
|
|
bl DestroyAnimVisualTask
|
|
b _080B7A7A
|
|
.align 2, 0
|
|
_080B7A70: .4byte gTasks
|
|
_080B7A74:
|
|
ldrh r0, [r6, 0xC]
|
|
adds r0, 0x1
|
|
strh r0, [r6, 0xC]
|
|
_080B7A7A:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80B7A14
|
|
|
|
thumb_func_start sub_80B7A80
|
|
sub_80B7A80: @ 80B7A80
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
movs r1, 0x80
|
|
lsls r1, 5
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
ldr r0, _080B7AAC @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl sub_80768B0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _080B7AB4
|
|
ldr r1, _080B7AB0 @ =0x00003f42
|
|
movs r0, 0x50
|
|
bl SetGpuReg
|
|
b _080B7ABC
|
|
.align 2, 0
|
|
_080B7AAC: .4byte gUnknown_2037F1A
|
|
_080B7AB0: .4byte 0x00003f42
|
|
_080B7AB4:
|
|
ldr r1, _080B7AC8 @ =0x00003f44
|
|
movs r0, 0x50
|
|
bl SetGpuReg
|
|
_080B7ABC:
|
|
adds r0, r4, 0
|
|
bl DestroyAnimVisualTask
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B7AC8: .4byte 0x00003f44
|
|
thumb_func_end sub_80B7A80
|
|
|
|
thumb_func_start sub_80B7ACC
|
|
sub_80B7ACC: @ 80B7ACC
|
|
push {r4-r6,lr}
|
|
adds r4, r0, 0
|
|
ldr r6, _080B7B38 @ =gUnknown_2037F1B
|
|
ldrb r0, [r6]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x30]
|
|
ldr r5, _080B7B3C @ =gUnknown_2037F1A
|
|
ldrb r0, [r5]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x32]
|
|
ldrb r0, [r6]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x34]
|
|
ldrb r0, [r5]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x36]
|
|
movs r0, 0x7E
|
|
strh r0, [r4, 0x2E]
|
|
adds r0, r4, 0
|
|
bl sub_80754B8
|
|
ldrh r0, [r4, 0x30]
|
|
negs r0, r0
|
|
strh r0, [r4, 0x34]
|
|
ldrh r0, [r4, 0x32]
|
|
negs r0, r0
|
|
strh r0, [r4, 0x36]
|
|
ldr r0, _080B7B40 @ =0x0000ffd8
|
|
strh r0, [r4, 0x3A]
|
|
ldr r1, _080B7B44 @ =sub_80B7B48
|
|
str r1, [r4, 0x1C]
|
|
adds r0, r4, 0
|
|
bl _call_via_r1
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B7B38: .4byte gUnknown_2037F1B
|
|
_080B7B3C: .4byte gUnknown_2037F1A
|
|
_080B7B40: .4byte 0x0000ffd8
|
|
_080B7B44: .4byte sub_80B7B48
|
|
thumb_func_end sub_80B7ACC
|
|
|
|
thumb_func_start sub_80B7B48
|
|
sub_80B7B48: @ 80B7B48
|
|
push {r4-r6,lr}
|
|
adds r4, r0, 0
|
|
ldrh r5, [r4, 0x30]
|
|
ldrh r0, [r4, 0x34]
|
|
adds r2, r5, r0
|
|
strh r2, [r4, 0x34]
|
|
ldrh r3, [r4, 0x32]
|
|
ldrh r6, [r4, 0x36]
|
|
adds r1, r3, r6
|
|
strh r1, [r4, 0x36]
|
|
lsls r0, r2, 16
|
|
asrs r0, 24
|
|
strh r0, [r4, 0x24]
|
|
lsls r0, r1, 16
|
|
asrs r0, 24
|
|
strh r0, [r4, 0x26]
|
|
movs r6, 0x3C
|
|
ldrsh r0, [r4, r6]
|
|
cmp r0, 0
|
|
bne _080B7B8A
|
|
adds r0, r2, r5
|
|
strh r0, [r4, 0x34]
|
|
adds r1, r3
|
|
strh r1, [r4, 0x36]
|
|
lsls r0, 16
|
|
asrs r0, 24
|
|
strh r0, [r4, 0x24]
|
|
lsls r1, 16
|
|
asrs r1, 24
|
|
strh r1, [r4, 0x26]
|
|
ldrh r0, [r4, 0x2E]
|
|
subs r0, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
_080B7B8A:
|
|
movs r1, 0x38
|
|
ldrsh r0, [r4, r1]
|
|
movs r2, 0x3A
|
|
ldrsh r1, [r4, r2]
|
|
bl Sin
|
|
ldrh r6, [r4, 0x26]
|
|
adds r0, r6
|
|
strh r0, [r4, 0x26]
|
|
ldrh r0, [r4, 0x38]
|
|
adds r0, 0x3
|
|
movs r1, 0xFF
|
|
ands r0, r1
|
|
strh r0, [r4, 0x38]
|
|
cmp r0, 0x7F
|
|
ble _080B7BBA
|
|
movs r0, 0
|
|
strh r0, [r4, 0x38]
|
|
ldrh r0, [r4, 0x3A]
|
|
adds r0, 0x14
|
|
strh r0, [r4, 0x3A]
|
|
ldrh r0, [r4, 0x3C]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x3C]
|
|
_080B7BBA:
|
|
ldrh r0, [r4, 0x2E]
|
|
subs r0, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bne _080B7BCC
|
|
adds r0, r4, 0
|
|
bl DestroyAnimSprite
|
|
_080B7BCC:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80B7B48
|
|
|
|
thumb_func_start sub_80B7BD4
|
|
sub_80B7BD4: @ 80B7BD4
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
ldr r5, _080B7C08 @ =gUnknown_2037F02
|
|
ldrh r0, [r5]
|
|
ldrh r1, [r4, 0x20]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x20]
|
|
ldrh r0, [r5, 0x2]
|
|
ldrh r1, [r4, 0x22]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x22]
|
|
ldrb r1, [r5, 0x4]
|
|
adds r0, r4, 0
|
|
bl StartSpriteAffineAnim
|
|
ldrh r0, [r5, 0x6]
|
|
strh r0, [r4, 0x2E]
|
|
ldrh r0, [r5, 0x8]
|
|
strh r0, [r4, 0x30]
|
|
ldrh r0, [r5, 0xA]
|
|
strh r0, [r4, 0x32]
|
|
ldr r0, _080B7C0C @ =sub_80B7C10
|
|
str r0, [r4, 0x1C]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B7C08: .4byte gUnknown_2037F02
|
|
_080B7C0C: .4byte sub_80B7C10
|
|
thumb_func_end sub_80B7BD4
|
|
|
|
thumb_func_start sub_80B7C10
|
|
sub_80B7C10: @ 80B7C10
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
ldrh r0, [r2, 0x2E]
|
|
ldrh r1, [r2, 0x36]
|
|
adds r0, r1
|
|
strh r0, [r2, 0x36]
|
|
ldrh r1, [r2, 0x30]
|
|
ldrh r3, [r2, 0x38]
|
|
adds r1, r3
|
|
strh r1, [r2, 0x38]
|
|
lsls r0, 16
|
|
asrs r0, 24
|
|
strh r0, [r2, 0x24]
|
|
lsls r1, 16
|
|
asrs r1, 24
|
|
strh r1, [r2, 0x26]
|
|
ldrh r0, [r2, 0x34]
|
|
adds r0, 0x1
|
|
strh r0, [r2, 0x34]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r3, 0x32
|
|
ldrsh r1, [r2, r3]
|
|
cmp r0, r1
|
|
bne _080B7C46
|
|
ldr r0, _080B7C4C @ =sub_80B7C50
|
|
str r0, [r2, 0x1C]
|
|
_080B7C46:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B7C4C: .4byte sub_80B7C50
|
|
thumb_func_end sub_80B7C10
|
|
|
|
thumb_func_start sub_80B7C50
|
|
sub_80B7C50: @ 80B7C50
|
|
push {lr}
|
|
adds r3, r0, 0
|
|
ldrh r1, [r3, 0x36]
|
|
ldrh r0, [r3, 0x2E]
|
|
subs r1, r0
|
|
strh r1, [r3, 0x36]
|
|
ldrh r0, [r3, 0x38]
|
|
ldrh r2, [r3, 0x30]
|
|
subs r0, r2
|
|
strh r0, [r3, 0x38]
|
|
lsls r1, 16
|
|
asrs r1, 24
|
|
strh r1, [r3, 0x24]
|
|
lsls r0, 16
|
|
asrs r0, 24
|
|
strh r0, [r3, 0x26]
|
|
ldrh r0, [r3, 0x34]
|
|
subs r0, 0x1
|
|
strh r0, [r3, 0x34]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bne _080B7C82
|
|
adds r0, r3, 0
|
|
bl move_anim_8074EE0
|
|
_080B7C82:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80B7C50
|
|
|
|
thumb_func_start sub_80B7C88
|
|
sub_80B7C88: @ 80B7C88
|
|
push {r4-r7,lr}
|
|
adds r4, r0, 0
|
|
ldr r0, _080B7C9C @ =gUnknown_2037F02
|
|
movs r2, 0
|
|
ldrsh r1, [r0, r2]
|
|
adds r3, r0, 0
|
|
cmp r1, 0
|
|
bne _080B7CA4
|
|
ldr r0, _080B7CA0 @ =gUnknown_2037F1A
|
|
b _080B7CA6
|
|
.align 2, 0
|
|
_080B7C9C: .4byte gUnknown_2037F02
|
|
_080B7CA0: .4byte gUnknown_2037F1A
|
|
_080B7CA4:
|
|
ldr r0, _080B7CD4 @ =gUnknown_2037F1B
|
|
_080B7CA6:
|
|
ldrb r5, [r0]
|
|
movs r6, 0x14
|
|
ldrh r2, [r4, 0x4]
|
|
lsls r1, r2, 22
|
|
lsrs r1, 22
|
|
adds r1, 0x4
|
|
ldr r7, _080B7CD8 @ =0x000003ff
|
|
adds r0, r7, 0
|
|
ands r1, r0
|
|
ldr r0, _080B7CDC @ =0xfffffc00
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strh r0, [r4, 0x4]
|
|
movs r1, 0x2
|
|
ldrsh r0, [r3, r1]
|
|
cmp r0, 0x1
|
|
beq _080B7D04
|
|
cmp r0, 0x1
|
|
bgt _080B7CE0
|
|
cmp r0, 0
|
|
beq _080B7CEA
|
|
b _080B7D58
|
|
.align 2, 0
|
|
_080B7CD4: .4byte gUnknown_2037F1B
|
|
_080B7CD8: .4byte 0x000003ff
|
|
_080B7CDC: .4byte 0xfffffc00
|
|
_080B7CE0:
|
|
cmp r0, 0x2
|
|
beq _080B7D1E
|
|
cmp r0, 0x3
|
|
beq _080B7D36
|
|
b _080B7D58
|
|
_080B7CEA:
|
|
adds r0, r5, 0
|
|
movs r1, 0x5
|
|
bl sub_8076B2C
|
|
subs r0, 0x8
|
|
strh r0, [r4, 0x20]
|
|
adds r0, r5, 0
|
|
movs r1, 0x2
|
|
bl sub_8076B2C
|
|
adds r0, 0x8
|
|
strh r0, [r4, 0x22]
|
|
b _080B7D58
|
|
_080B7D04:
|
|
adds r0, r5, 0
|
|
movs r1, 0x5
|
|
bl sub_8076B2C
|
|
subs r0, 0xE
|
|
strh r0, [r4, 0x20]
|
|
adds r0, r5, 0
|
|
movs r1, 0x2
|
|
bl sub_8076B2C
|
|
adds r0, 0x10
|
|
strh r0, [r4, 0x22]
|
|
b _080B7D58
|
|
_080B7D1E:
|
|
adds r0, r5, 0
|
|
movs r1, 0x4
|
|
bl sub_8076B2C
|
|
adds r0, 0x8
|
|
strh r0, [r4, 0x20]
|
|
adds r0, r5, 0
|
|
movs r1, 0x2
|
|
bl sub_8076B2C
|
|
adds r0, 0x8
|
|
b _080B7D4C
|
|
_080B7D36:
|
|
adds r0, r5, 0
|
|
movs r1, 0x4
|
|
bl sub_8076B2C
|
|
adds r0, 0xE
|
|
strh r0, [r4, 0x20]
|
|
adds r0, r5, 0
|
|
movs r1, 0x2
|
|
bl sub_8076B2C
|
|
adds r0, 0x10
|
|
_080B7D4C:
|
|
strh r0, [r4, 0x22]
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl StartSpriteAffineAnim
|
|
movs r6, 0xEC
|
|
_080B7D58:
|
|
movs r0, 0x20
|
|
strh r0, [r4, 0x2E]
|
|
lsls r0, r6, 24
|
|
asrs r0, 24
|
|
ldrh r2, [r4, 0x20]
|
|
adds r0, r2
|
|
strh r0, [r4, 0x32]
|
|
ldrh r0, [r4, 0x22]
|
|
adds r0, 0xC
|
|
strh r0, [r4, 0x36]
|
|
ldr r0, _080B7D80 @ =0x0000fff4
|
|
strh r0, [r4, 0x38]
|
|
adds r0, r4, 0
|
|
bl sub_8075068
|
|
ldr r0, _080B7D84 @ =sub_80B7D88
|
|
str r0, [r4, 0x1C]
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B7D80: .4byte 0x0000fff4
|
|
_080B7D84: .4byte sub_80B7D88
|
|
thumb_func_end sub_80B7C88
|
|
|
|
thumb_func_start sub_80B7D88
|
|
sub_80B7D88: @ 80B7D88
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl AnimateBallThrow
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080B7D9C
|
|
adds r0, r4, 0
|
|
bl move_anim_8074EE0
|
|
_080B7D9C:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80B7D88
|
|
|
|
thumb_func_start sub_80B7DA4
|
|
sub_80B7DA4: @ 80B7DA4
|
|
push {r4-r7,lr}
|
|
sub sp, 0x1C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
ldr r0, _080B7E08 @ =gTasks
|
|
adds r5, r1, r0
|
|
ldr r4, _080B7E0C @ =gUnknown_2037F1A
|
|
ldrb r0, [r4]
|
|
movs r1, 0x1
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r0, 0x1F
|
|
movs r6, 0
|
|
strh r0, [r5, 0x16]
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
bl sub_8076B2C
|
|
subs r0, 0x7
|
|
strh r0, [r5, 0x14]
|
|
ldrh r1, [r5, 0x16]
|
|
strh r1, [r5, 0x12]
|
|
strh r0, [r5, 0x10]
|
|
subs r1, r0
|
|
lsls r1, 8
|
|
strh r1, [r5, 0x22]
|
|
ldrb r0, [r4]
|
|
movs r1, 0
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r1, r0, 0
|
|
subs r1, 0x20
|
|
strh r1, [r5, 0x24]
|
|
adds r0, 0x20
|
|
strh r0, [r5, 0x26]
|
|
ldrb r0, [r4]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080B7E14
|
|
ldr r0, _080B7E10 @ =0x0000fff4
|
|
b _080B7E16
|
|
.align 2, 0
|
|
_080B7E08: .4byte gTasks
|
|
_080B7E0C: .4byte gUnknown_2037F1A
|
|
_080B7E10: .4byte 0x0000fff4
|
|
_080B7E14:
|
|
ldr r0, _080B7E60 @ =0x0000ffc0
|
|
_080B7E16:
|
|
strh r0, [r5, 0x18]
|
|
ldr r0, _080B7E64 @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl sub_80768B0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0xE]
|
|
cmp r0, 0x1
|
|
bne _080B7E78
|
|
add r4, sp, 0xC
|
|
adds r0, r4, 0
|
|
bl sub_80752A0
|
|
ldr r0, _080B7E68 @ =gUnknown_202297A
|
|
ldrh r0, [r0]
|
|
strh r0, [r5, 0x1C]
|
|
ldr r1, _080B7E6C @ =0x00003f42
|
|
movs r0, 0x50
|
|
bl SetGpuReg
|
|
ldrb r1, [r4, 0x8]
|
|
lsls r1, 4
|
|
movs r0, 0
|
|
movs r2, 0x20
|
|
bl FillPalette
|
|
ldr r0, _080B7E70 @ =0x04000016
|
|
str r0, [sp]
|
|
movs r7, 0x2
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080B7EA8
|
|
ldr r1, _080B7E74 @ =gUnknown_202297C
|
|
b _080B7EA2
|
|
.align 2, 0
|
|
_080B7E60: .4byte 0x0000ffc0
|
|
_080B7E64: .4byte gUnknown_2037F1A
|
|
_080B7E68: .4byte gUnknown_202297A
|
|
_080B7E6C: .4byte 0x00003f42
|
|
_080B7E70: .4byte 0x04000016
|
|
_080B7E74: .4byte gUnknown_202297C
|
|
_080B7E78:
|
|
ldr r0, _080B7F30 @ =gUnknown_202297E
|
|
ldrh r0, [r0]
|
|
strh r0, [r5, 0x1C]
|
|
ldr r1, _080B7F34 @ =0x00003f44
|
|
movs r0, 0x50
|
|
bl SetGpuReg
|
|
movs r0, 0
|
|
movs r1, 0x90
|
|
movs r2, 0x20
|
|
bl FillPalette
|
|
ldr r0, _080B7F38 @ =0x0400001a
|
|
str r0, [sp]
|
|
movs r7, 0x4
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080B7EA8
|
|
ldr r1, _080B7F3C @ =gUnknown_2022978
|
|
_080B7EA2:
|
|
ldrh r0, [r1]
|
|
adds r0, 0xF0
|
|
strh r0, [r1]
|
|
_080B7EA8:
|
|
ldr r0, _080B7F40 @ =0xa2600001
|
|
str r0, [sp, 0x4]
|
|
mov r2, sp
|
|
movs r1, 0
|
|
movs r0, 0x1
|
|
strb r0, [r2, 0x8]
|
|
mov r0, sp
|
|
strb r1, [r0, 0x9]
|
|
strh r1, [r5, 0x1E]
|
|
movs r0, 0x10
|
|
strh r0, [r5, 0x20]
|
|
strh r1, [r5, 0x8]
|
|
strh r1, [r5, 0xA]
|
|
strh r1, [r5, 0xC]
|
|
movs r0, 0x3
|
|
bl sub_80B856C
|
|
movs r3, 0
|
|
ldr r4, _080B7F44 @ =gUnknown_2038700
|
|
movs r0, 0xF0
|
|
lsls r0, 3
|
|
adds r6, r4, r0
|
|
_080B7ED4:
|
|
lsls r1, r3, 1
|
|
adds r2, r1, r4
|
|
ldrh r0, [r5, 0x1C]
|
|
strh r0, [r2]
|
|
adds r1, r6
|
|
ldrh r0, [r5, 0x1C]
|
|
strh r0, [r1]
|
|
adds r0, r3, 0x1
|
|
lsls r0, 16
|
|
lsrs r3, r0, 16
|
|
cmp r3, 0x6F
|
|
bls _080B7ED4
|
|
ldr r0, [sp]
|
|
ldr r1, [sp, 0x4]
|
|
ldr r2, [sp, 0x8]
|
|
bl sub_8087EE4
|
|
movs r0, 0x3F
|
|
eors r7, r0
|
|
movs r1, 0xFC
|
|
lsls r1, 6
|
|
adds r0, r1, 0
|
|
orrs r7, r0
|
|
movs r0, 0x4A
|
|
adds r1, r7, 0
|
|
bl SetGpuReg
|
|
ldr r1, _080B7F48 @ =0x00003f3f
|
|
movs r0, 0x48
|
|
bl SetGpuReg
|
|
ldr r2, _080B7F4C @ =gUnknown_2022984
|
|
ldrh r0, [r5, 0x24]
|
|
lsls r0, 8
|
|
ldrh r1, [r5, 0x26]
|
|
orrs r0, r1
|
|
strh r0, [r2]
|
|
ldr r1, _080B7F50 @ =gUnknown_2022986
|
|
movs r0, 0xA0
|
|
strh r0, [r1]
|
|
ldr r0, _080B7F54 @ =sub_80B7F58
|
|
str r0, [r5]
|
|
add sp, 0x1C
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B7F30: .4byte gUnknown_202297E
|
|
_080B7F34: .4byte 0x00003f44
|
|
_080B7F38: .4byte 0x0400001a
|
|
_080B7F3C: .4byte gUnknown_2022978
|
|
_080B7F40: .4byte 0xa2600001
|
|
_080B7F44: .4byte gUnknown_2038700
|
|
_080B7F48: .4byte 0x00003f3f
|
|
_080B7F4C: .4byte gUnknown_2022984
|
|
_080B7F50: .4byte gUnknown_2022986
|
|
_080B7F54: .4byte sub_80B7F58
|
|
thumb_func_end sub_80B7DA4
|
|
|
|
thumb_func_start sub_80B7F58
|
|
sub_80B7F58: @ 80B7F58
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
lsls r0, r2, 2
|
|
adds r0, r2
|
|
lsls r0, 3
|
|
ldr r1, _080B7F7C @ =gTasks
|
|
adds r4, r0, r1
|
|
movs r1, 0x8
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x4
|
|
bls _080B7F72
|
|
b _080B806A
|
|
_080B7F72:
|
|
lsls r0, 2
|
|
ldr r1, _080B7F80 @ =_080B7F84
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080B7F7C: .4byte gTasks
|
|
_080B7F80: .4byte _080B7F84
|
|
.align 2, 0
|
|
_080B7F84:
|
|
.4byte _080B7F98
|
|
.4byte _080B7FFA
|
|
.4byte _080B8014
|
|
.4byte _080B8050
|
|
.4byte _080B8064
|
|
_080B7F98:
|
|
ldrh r0, [r4, 0xA]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0xA]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1
|
|
ble _080B806A
|
|
movs r0, 0
|
|
strh r0, [r4, 0xA]
|
|
ldrh r0, [r4, 0xC]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0xC]
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080B7FC8
|
|
ldrh r1, [r4, 0x1E]
|
|
movs r2, 0x1E
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0xC
|
|
beq _080B7FD6
|
|
adds r0, r1, 0x1
|
|
strh r0, [r4, 0x1E]
|
|
b _080B7FD6
|
|
_080B7FC8:
|
|
ldrh r1, [r4, 0x20]
|
|
movs r2, 0x20
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0x8
|
|
beq _080B7FD6
|
|
subs r0, r1, 0x1
|
|
strh r0, [r4, 0x20]
|
|
_080B7FD6:
|
|
ldrh r1, [r4, 0x20]
|
|
lsls r1, 8
|
|
ldrh r0, [r4, 0x1E]
|
|
orrs r1, r0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
movs r1, 0x1E
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0xC
|
|
bne _080B806A
|
|
movs r2, 0x20
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0x8
|
|
bne _080B806A
|
|
b _080B8056
|
|
_080B7FFA:
|
|
ldrh r0, [r4, 0x10]
|
|
subs r0, 0x8
|
|
strh r0, [r4, 0x10]
|
|
adds r0, r4, 0
|
|
bl sub_80B843C
|
|
movs r0, 0x10
|
|
ldrsh r1, [r4, r0]
|
|
movs r2, 0x18
|
|
ldrsh r0, [r4, r2]
|
|
cmp r1, r0
|
|
bge _080B806A
|
|
b _080B8056
|
|
_080B8014:
|
|
ldrh r0, [r4, 0x10]
|
|
subs r0, 0x8
|
|
strh r0, [r4, 0x10]
|
|
adds r0, r4, 0
|
|
bl sub_80B843C
|
|
ldrh r1, [r4, 0x24]
|
|
adds r1, 0x4
|
|
strh r1, [r4, 0x24]
|
|
ldrh r0, [r4, 0x26]
|
|
subs r2, r0, 0x4
|
|
strh r2, [r4, 0x26]
|
|
lsls r1, 16
|
|
lsls r0, r2, 16
|
|
cmp r1, r0
|
|
blt _080B8036
|
|
strh r2, [r4, 0x24]
|
|
_080B8036:
|
|
ldr r3, _080B804C @ =gUnknown_2022984
|
|
ldrh r2, [r4, 0x24]
|
|
lsls r0, r2, 8
|
|
ldrh r1, [r4, 0x26]
|
|
orrs r0, r1
|
|
strh r0, [r3]
|
|
lsls r2, 16
|
|
lsls r1, 16
|
|
cmp r2, r1
|
|
bne _080B806A
|
|
b _080B8056
|
|
.align 2, 0
|
|
_080B804C: .4byte gUnknown_2022984
|
|
_080B8050:
|
|
ldr r1, _080B8060 @ =gUnknown_2039600
|
|
movs r0, 0x3
|
|
strb r0, [r1, 0x15]
|
|
_080B8056:
|
|
ldrh r0, [r4, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x8]
|
|
b _080B806A
|
|
.align 2, 0
|
|
_080B8060: .4byte gUnknown_2039600
|
|
_080B8064:
|
|
adds r0, r2, 0
|
|
bl DestroyAnimVisualTask
|
|
_080B806A:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80B7F58
|
|
|
|
thumb_func_start sub_80B8070
|
|
sub_80B8070: @ 80B8070
|
|
push {r4-r7,lr}
|
|
sub sp, 0x1C
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
lsls r0, r6, 2
|
|
adds r0, r6
|
|
lsls r0, 3
|
|
ldr r1, _080B8098 @ =gTasks
|
|
adds r5, r0, r1
|
|
movs r1, 0x8
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0x4
|
|
bls _080B808C
|
|
b _080B829E
|
|
_080B808C:
|
|
lsls r0, 2
|
|
ldr r1, _080B809C @ =_080B80A0
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080B8098: .4byte gTasks
|
|
_080B809C: .4byte _080B80A0
|
|
.align 2, 0
|
|
_080B80A0:
|
|
.4byte _080B80B4
|
|
.4byte _080B8138
|
|
.4byte _080B817C
|
|
.4byte _080B81E8
|
|
.4byte _080B8250
|
|
_080B80B4:
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _080B80F0
|
|
ldr r0, _080B80E4 @ =gUnknown_2022984
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
ldr r0, _080B80E8 @ =gUnknown_2022986
|
|
strh r1, [r0]
|
|
ldr r4, _080B80EC @ =0x00003f3f
|
|
movs r0, 0x48
|
|
adds r1, r4, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x4A
|
|
adds r1, r4, 0
|
|
bl SetGpuReg
|
|
adds r0, r6, 0
|
|
bl DestroyAnimVisualTask
|
|
b _080B829E
|
|
.align 2, 0
|
|
_080B80E4: .4byte gUnknown_2022984
|
|
_080B80E8: .4byte gUnknown_2022986
|
|
_080B80EC: .4byte 0x00003f3f
|
|
_080B80F0:
|
|
ldr r0, _080B8110 @ =gUnknown_2037F1B
|
|
ldrb r0, [r0]
|
|
bl sub_80768B0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0xE]
|
|
cmp r0, 0x1
|
|
bne _080B811C
|
|
ldr r1, _080B8114 @ =0x00003f42
|
|
movs r0, 0x50
|
|
bl SetGpuReg
|
|
ldr r1, _080B8118 @ =gUnknown_202297C
|
|
b _080B8126
|
|
.align 2, 0
|
|
_080B8110: .4byte gUnknown_2037F1B
|
|
_080B8114: .4byte 0x00003f42
|
|
_080B8118: .4byte gUnknown_202297C
|
|
_080B811C:
|
|
ldr r1, _080B8130 @ =0x00003f44
|
|
movs r0, 0x50
|
|
bl SetGpuReg
|
|
ldr r1, _080B8134 @ =gUnknown_2022978
|
|
_080B8126:
|
|
ldrh r0, [r1]
|
|
adds r0, 0xF0
|
|
strh r0, [r1]
|
|
b _080B823C
|
|
.align 2, 0
|
|
_080B8130: .4byte 0x00003f44
|
|
_080B8134: .4byte gUnknown_2022978
|
|
_080B8138:
|
|
movs r1, 0xE
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0x1
|
|
bne _080B8160
|
|
mov r0, sp
|
|
bl sub_80752A0
|
|
ldr r0, _080B815C @ =gUnknown_202297A
|
|
ldrh r0, [r0]
|
|
strh r0, [r5, 0x1C]
|
|
mov r0, sp
|
|
ldrb r1, [r0, 0x8]
|
|
lsls r1, 4
|
|
movs r0, 0
|
|
movs r2, 0x20
|
|
bl FillPalette
|
|
b _080B8170
|
|
.align 2, 0
|
|
_080B815C: .4byte gUnknown_202297A
|
|
_080B8160:
|
|
ldr r0, _080B8178 @ =gUnknown_202297E
|
|
ldrh r0, [r0]
|
|
strh r0, [r5, 0x1C]
|
|
movs r0, 0
|
|
movs r1, 0x90
|
|
movs r2, 0x20
|
|
bl FillPalette
|
|
_080B8170:
|
|
movs r0, 0x3
|
|
bl sub_80B856C
|
|
b _080B823C
|
|
.align 2, 0
|
|
_080B8178: .4byte gUnknown_202297E
|
|
_080B817C:
|
|
ldr r4, _080B81C8 @ =gUnknown_2037F1B
|
|
ldrb r0, [r4]
|
|
movs r1, 0x1
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r0, 0x1F
|
|
movs r6, 0
|
|
strh r0, [r5, 0x16]
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
bl sub_8076B2C
|
|
subs r0, 0x7
|
|
strh r0, [r5, 0x14]
|
|
ldrh r1, [r5, 0x16]
|
|
subs r1, r0
|
|
lsls r1, 8
|
|
strh r1, [r5, 0x22]
|
|
ldrb r0, [r4]
|
|
movs r1, 0
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
subs r1, r0, 0x4
|
|
strh r1, [r5, 0x24]
|
|
adds r0, 0x4
|
|
strh r0, [r5, 0x26]
|
|
ldrb r0, [r4]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080B81D0
|
|
ldr r0, _080B81CC @ =0x0000fff4
|
|
b _080B81D2
|
|
.align 2, 0
|
|
_080B81C8: .4byte gUnknown_2037F1B
|
|
_080B81CC: .4byte 0x0000fff4
|
|
_080B81D0:
|
|
ldr r0, _080B81E4 @ =0x0000ffc0
|
|
_080B81D2:
|
|
strh r0, [r5, 0x18]
|
|
ldrh r0, [r5, 0x18]
|
|
strh r0, [r5, 0x10]
|
|
strh r0, [r5, 0x12]
|
|
movs r0, 0xC
|
|
strh r0, [r5, 0x1E]
|
|
movs r0, 0x8
|
|
strh r0, [r5, 0x20]
|
|
b _080B823C
|
|
.align 2, 0
|
|
_080B81E4: .4byte 0x0000ffc0
|
|
_080B81E8:
|
|
movs r1, 0xE
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0x1
|
|
bne _080B81F8
|
|
ldr r0, _080B81F4 @ =0x04000016
|
|
b _080B81FA
|
|
.align 2, 0
|
|
_080B81F4: .4byte 0x04000016
|
|
_080B81F8:
|
|
ldr r0, _080B8244 @ =0x0400001a
|
|
_080B81FA:
|
|
str r0, [sp, 0x10]
|
|
movs r3, 0
|
|
add r4, sp, 0x10
|
|
ldr r6, _080B8248 @ =gUnknown_2038700
|
|
movs r0, 0xF0
|
|
lsls r0, 3
|
|
adds r7, r6, r0
|
|
_080B8208:
|
|
lsls r1, r3, 1
|
|
adds r2, r1, r6
|
|
ldrh r0, [r5, 0x1C]
|
|
adds r0, 0x9F
|
|
subs r0, r3
|
|
strh r0, [r2]
|
|
adds r1, r7
|
|
ldrh r0, [r5, 0x1C]
|
|
adds r0, 0x9F
|
|
subs r0, r3
|
|
strh r0, [r1]
|
|
adds r0, r3, 0x1
|
|
lsls r0, 16
|
|
lsrs r3, r0, 16
|
|
cmp r3, 0x6F
|
|
bls _080B8208
|
|
ldr r1, _080B824C @ =0xa2600001
|
|
str r1, [r4, 0x4]
|
|
movs r2, 0
|
|
movs r0, 0x1
|
|
strb r0, [r4, 0x8]
|
|
strb r2, [r4, 0x9]
|
|
ldr r0, [sp, 0x10]
|
|
ldr r2, [r4, 0x8]
|
|
bl sub_8087EE4
|
|
_080B823C:
|
|
ldrh r0, [r5, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x8]
|
|
b _080B829E
|
|
.align 2, 0
|
|
_080B8244: .4byte 0x0400001a
|
|
_080B8248: .4byte gUnknown_2038700
|
|
_080B824C: .4byte 0xa2600001
|
|
_080B8250:
|
|
movs r1, 0xE
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0x1
|
|
bne _080B8268
|
|
ldr r1, _080B8264 @ =0x00003f3d
|
|
movs r0, 0x4A
|
|
bl SetGpuReg
|
|
b _080B8270
|
|
.align 2, 0
|
|
_080B8264: .4byte 0x00003f3d
|
|
_080B8268:
|
|
ldr r1, _080B82A8 @ =0x00003f3b
|
|
movs r0, 0x4A
|
|
bl SetGpuReg
|
|
_080B8270:
|
|
ldr r1, _080B82AC @ =0x00003f3f
|
|
movs r0, 0x48
|
|
bl SetGpuReg
|
|
ldr r2, _080B82B0 @ =gUnknown_2022984
|
|
ldrh r0, [r5, 0x24]
|
|
lsls r0, 8
|
|
ldrh r1, [r5, 0x26]
|
|
orrs r0, r1
|
|
strh r0, [r2]
|
|
ldr r1, _080B82B4 @ =gUnknown_2022986
|
|
movs r0, 0xA0
|
|
strh r0, [r1]
|
|
movs r0, 0
|
|
strh r0, [r5, 0x8]
|
|
strh r0, [r5, 0xA]
|
|
strh r0, [r5, 0xC]
|
|
ldr r1, _080B82B8 @ =0x0000080c
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
ldr r0, _080B82BC @ =sub_80B82C0
|
|
str r0, [r5]
|
|
_080B829E:
|
|
add sp, 0x1C
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B82A8: .4byte 0x00003f3b
|
|
_080B82AC: .4byte 0x00003f3f
|
|
_080B82B0: .4byte gUnknown_2022984
|
|
_080B82B4: .4byte gUnknown_2022986
|
|
_080B82B8: .4byte 0x0000080c
|
|
_080B82BC: .4byte sub_80B82C0
|
|
thumb_func_end sub_80B8070
|
|
|
|
thumb_func_start sub_80B82C0
|
|
sub_80B82C0: @ 80B82C0
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
ldr r1, _080B82E4 @ =gTasks
|
|
adds r4, r0, r1
|
|
movs r1, 0x8
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x4
|
|
bls _080B82DA
|
|
b _080B842A
|
|
_080B82DA:
|
|
lsls r0, 2
|
|
ldr r1, _080B82E8 @ =_080B82EC
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080B82E4: .4byte gTasks
|
|
_080B82E8: .4byte _080B82EC
|
|
.align 2, 0
|
|
_080B82EC:
|
|
.4byte _080B8300
|
|
.4byte _080B832C
|
|
.4byte _080B8394
|
|
.4byte _080B83F6
|
|
.4byte _080B8408
|
|
_080B8300:
|
|
ldrh r0, [r4, 0x12]
|
|
adds r0, 0x8
|
|
strh r0, [r4, 0x12]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
ldrh r2, [r4, 0x16]
|
|
movs r3, 0x16
|
|
ldrsh r1, [r4, r3]
|
|
cmp r0, r1
|
|
blt _080B8316
|
|
strh r2, [r4, 0x12]
|
|
_080B8316:
|
|
adds r0, r4, 0
|
|
bl sub_80B843C
|
|
movs r0, 0x12
|
|
ldrsh r1, [r4, r0]
|
|
movs r2, 0x16
|
|
ldrsh r0, [r4, r2]
|
|
cmp r1, r0
|
|
beq _080B832A
|
|
b _080B842A
|
|
_080B832A:
|
|
b _080B83FC
|
|
_080B832C:
|
|
movs r3, 0x26
|
|
ldrsh r0, [r4, r3]
|
|
movs r2, 0x24
|
|
ldrsh r1, [r4, r2]
|
|
subs r0, r1
|
|
cmp r0, 0x3F
|
|
bgt _080B8348
|
|
ldrh r0, [r4, 0x24]
|
|
subs r0, 0x4
|
|
strh r0, [r4, 0x24]
|
|
ldrh r0, [r4, 0x26]
|
|
adds r0, 0x4
|
|
strh r0, [r4, 0x26]
|
|
b _080B834C
|
|
_080B8348:
|
|
movs r0, 0x1
|
|
strh r0, [r4, 0xA]
|
|
_080B834C:
|
|
ldr r2, _080B8390 @ =gUnknown_2022984
|
|
ldrh r0, [r4, 0x24]
|
|
lsls r0, 8
|
|
ldrh r1, [r4, 0x26]
|
|
orrs r0, r1
|
|
strh r0, [r2]
|
|
ldrh r0, [r4, 0x10]
|
|
adds r0, 0x8
|
|
strh r0, [r4, 0x10]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
ldrh r2, [r4, 0x14]
|
|
movs r3, 0x14
|
|
ldrsh r1, [r4, r3]
|
|
cmp r0, r1
|
|
blt _080B836E
|
|
strh r2, [r4, 0x10]
|
|
_080B836E:
|
|
adds r0, r4, 0
|
|
bl sub_80B843C
|
|
movs r0, 0x10
|
|
ldrsh r1, [r4, r0]
|
|
movs r2, 0x14
|
|
ldrsh r0, [r4, r2]
|
|
cmp r1, r0
|
|
bne _080B842A
|
|
movs r3, 0xA
|
|
ldrsh r0, [r4, r3]
|
|
cmp r0, 0
|
|
beq _080B842A
|
|
movs r0, 0
|
|
strh r0, [r4, 0xA]
|
|
b _080B83FC
|
|
.align 2, 0
|
|
_080B8390: .4byte gUnknown_2022984
|
|
_080B8394:
|
|
ldrh r0, [r4, 0xA]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0xA]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1
|
|
ble _080B842A
|
|
movs r0, 0
|
|
strh r0, [r4, 0xA]
|
|
ldrh r0, [r4, 0xC]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0xC]
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080B83C4
|
|
ldrh r1, [r4, 0x1E]
|
|
movs r2, 0x1E
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0
|
|
beq _080B83D2
|
|
subs r0, r1, 0x1
|
|
strh r0, [r4, 0x1E]
|
|
b _080B83D2
|
|
_080B83C4:
|
|
ldrh r1, [r4, 0x20]
|
|
movs r3, 0x20
|
|
ldrsh r0, [r4, r3]
|
|
cmp r0, 0xF
|
|
bgt _080B83D2
|
|
adds r0, r1, 0x1
|
|
strh r0, [r4, 0x20]
|
|
_080B83D2:
|
|
ldrh r1, [r4, 0x20]
|
|
lsls r1, 8
|
|
ldrh r0, [r4, 0x1E]
|
|
orrs r1, r0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
movs r1, 0x1E
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bne _080B842A
|
|
movs r2, 0x20
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0x10
|
|
bne _080B842A
|
|
b _080B83FC
|
|
_080B83F6:
|
|
ldr r1, _080B8404 @ =gUnknown_2039600
|
|
movs r0, 0x3
|
|
strb r0, [r1, 0x15]
|
|
_080B83FC:
|
|
ldrh r0, [r4, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x8]
|
|
b _080B842A
|
|
.align 2, 0
|
|
_080B8404: .4byte gUnknown_2039600
|
|
_080B8408:
|
|
ldr r0, _080B8430 @ =gUnknown_2022984
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
ldr r0, _080B8434 @ =gUnknown_2022986
|
|
strh r1, [r0]
|
|
ldr r4, _080B8438 @ =0x00003f3f
|
|
movs r0, 0x48
|
|
adds r1, r4, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x4A
|
|
adds r1, r4, 0
|
|
bl SetGpuReg
|
|
adds r0, r5, 0
|
|
bl DestroyAnimVisualTask
|
|
_080B842A:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B8430: .4byte gUnknown_2022984
|
|
_080B8434: .4byte gUnknown_2022986
|
|
_080B8438: .4byte 0x00003f3f
|
|
thumb_func_end sub_80B82C0
|
|
|
|
thumb_func_start sub_80B843C
|
|
sub_80B843C: @ 80B843C
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
adds r6, r0, 0
|
|
ldrh r0, [r6, 0x12]
|
|
ldrh r4, [r6, 0x10]
|
|
subs r0, r4
|
|
lsls r0, 16
|
|
asrs r1, r0, 16
|
|
cmp r1, 0
|
|
beq _080B8530
|
|
movs r2, 0x22
|
|
ldrsh r0, [r6, r2]
|
|
bl __divsi3
|
|
mov r8, r0
|
|
movs r3, 0x14
|
|
ldrsh r0, [r6, r3]
|
|
lsls r5, r0, 8
|
|
lsls r0, r4, 16
|
|
movs r4, 0
|
|
cmp r0, 0
|
|
ble _080B849C
|
|
ldr r0, _080B8528 @ =gUnknown_2038700
|
|
mov r12, r0
|
|
ldr r7, _080B852C @ =gUnknown_2039600
|
|
_080B8470:
|
|
lsls r2, r4, 16
|
|
asrs r2, 16
|
|
lsls r3, r2, 1
|
|
ldrb r1, [r7, 0x14]
|
|
lsls r0, r1, 4
|
|
subs r0, r1
|
|
lsls r0, 7
|
|
adds r3, r0
|
|
add r3, r12
|
|
adds r1, r2, 0
|
|
subs r1, 0x9F
|
|
ldrh r0, [r6, 0x1C]
|
|
subs r0, r1
|
|
strh r0, [r3]
|
|
adds r2, 0x1
|
|
lsls r2, 16
|
|
lsrs r4, r2, 16
|
|
asrs r2, 16
|
|
movs r1, 0x10
|
|
ldrsh r0, [r6, r1]
|
|
cmp r2, r0
|
|
blt _080B8470
|
|
_080B849C:
|
|
ldrh r4, [r6, 0x10]
|
|
lsls r3, r4, 16
|
|
asrs r1, r3, 16
|
|
movs r2, 0x12
|
|
ldrsh r0, [r6, r2]
|
|
cmp r1, r0
|
|
bgt _080B84E6
|
|
ldr r0, _080B8528 @ =gUnknown_2038700
|
|
mov r12, r0
|
|
ldr r7, _080B852C @ =gUnknown_2039600
|
|
_080B84B0:
|
|
asrs r4, r3, 16
|
|
cmp r4, 0
|
|
blt _080B84D2
|
|
asrs r1, r5, 8
|
|
subs r1, r4
|
|
lsls r3, r4, 1
|
|
ldrb r2, [r7, 0x14]
|
|
lsls r0, r2, 4
|
|
subs r0, r2
|
|
lsls r0, 7
|
|
adds r3, r0
|
|
add r3, r12
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
ldrh r2, [r6, 0x1C]
|
|
adds r1, r2
|
|
strh r1, [r3]
|
|
_080B84D2:
|
|
add r5, r8
|
|
adds r0, r4, 0x1
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
lsls r3, r4, 16
|
|
asrs r1, r3, 16
|
|
movs r2, 0x12
|
|
ldrsh r0, [r6, r2]
|
|
cmp r1, r0
|
|
ble _080B84B0
|
|
_080B84E6:
|
|
movs r3, 0x1C
|
|
ldrsh r0, [r6, r3]
|
|
adds r0, 0x9F
|
|
lsls r2, r4, 16
|
|
asrs r1, r2, 16
|
|
subs r5, r0, r1
|
|
movs r3, 0x16
|
|
ldrsh r0, [r6, r3]
|
|
cmp r1, r0
|
|
bge _080B855E
|
|
ldr r7, _080B8528 @ =gUnknown_2038700
|
|
ldr r4, _080B852C @ =gUnknown_2039600
|
|
_080B84FE:
|
|
asrs r3, r2, 16
|
|
cmp r3, 0
|
|
blt _080B8516
|
|
lsls r2, r3, 1
|
|
ldrb r1, [r4, 0x14]
|
|
lsls r0, r1, 4
|
|
subs r0, r1
|
|
lsls r0, 7
|
|
adds r2, r0
|
|
adds r2, r7
|
|
strh r5, [r2]
|
|
subs r5, 0x1
|
|
_080B8516:
|
|
adds r0, r3, 0x1
|
|
lsls r2, r0, 16
|
|
asrs r1, r2, 16
|
|
movs r3, 0x16
|
|
ldrsh r0, [r6, r3]
|
|
cmp r1, r0
|
|
blt _080B84FE
|
|
b _080B855E
|
|
.align 2, 0
|
|
_080B8528: .4byte gUnknown_2038700
|
|
_080B852C: .4byte gUnknown_2039600
|
|
_080B8530:
|
|
movs r1, 0x1C
|
|
ldrsh r0, [r6, r1]
|
|
adds r5, r0, 0
|
|
adds r5, 0x9F
|
|
movs r4, 0
|
|
ldr r3, _080B8568 @ =gUnknown_2038700
|
|
movs r2, 0xF0
|
|
lsls r2, 3
|
|
adds r6, r3, r2
|
|
_080B8542:
|
|
lsls r0, r4, 16
|
|
asrs r0, 16
|
|
lsls r2, r0, 1
|
|
adds r1, r2, r3
|
|
strh r5, [r1]
|
|
adds r2, r6
|
|
strh r5, [r2]
|
|
subs r5, 0x1
|
|
adds r0, 0x1
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x6F
|
|
ble _080B8542
|
|
_080B855E:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B8568: .4byte gUnknown_2038700
|
|
thumb_func_end sub_80B843C
|
|
|
|
thumb_func_start sub_80B856C
|
|
sub_80B856C: @ 80B856C
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r4, 0
|
|
ldr r7, _080B85B4 @ =gSprites
|
|
movs r1, 0x3
|
|
ands r0, r1
|
|
lsls r5, r0, 2
|
|
movs r0, 0xD
|
|
negs r0, r0
|
|
adds r6, r0, 0
|
|
_080B8582:
|
|
lsls r0, r4, 24
|
|
lsrs r0, 24
|
|
bl GetAnimBankSpriteId
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0xFF
|
|
beq _080B85A2
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r7
|
|
ldrb r0, [r1, 0x5]
|
|
ands r0, r6
|
|
orrs r0, r5
|
|
strb r0, [r1, 0x5]
|
|
_080B85A2:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
cmp r4, 0x3
|
|
bls _080B8582
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B85B4: .4byte gSprites
|
|
thumb_func_end sub_80B856C
|
|
|
|
thumb_func_start sub_80B85B8
|
|
sub_80B85B8: @ 80B85B8
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r10, r0
|
|
ldr r6, _080B8658 @ =gUnknown_2037F1A
|
|
ldrb r0, [r6]
|
|
bl sub_80768B0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0x1
|
|
eors r0, r1
|
|
negs r1, r0
|
|
orrs r1, r0
|
|
lsrs r4, r1, 31
|
|
ldrb r0, [r6]
|
|
adds r1, r4, 0
|
|
bl sub_8072E48
|
|
ldr r0, _080B865C @ =gSprites
|
|
mov r9, r0
|
|
ldr r0, _080B8660 @ =gUnknown_2023D44
|
|
mov r8, r0
|
|
ldrb r0, [r6]
|
|
add r0, r8
|
|
ldrb r0, [r0]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
add r1, r9
|
|
adds r1, 0x3E
|
|
ldrb r2, [r1]
|
|
movs r7, 0x5
|
|
negs r7, r7
|
|
adds r0, r7, 0
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
ldrb r0, [r6]
|
|
movs r5, 0x2
|
|
eors r0, r5
|
|
bl sub_8072DF0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080B8642
|
|
ldrb r0, [r6]
|
|
eors r0, r5
|
|
movs r1, 0x1
|
|
eors r4, r1
|
|
adds r1, r4, 0
|
|
bl sub_8072E48
|
|
ldrb r0, [r6]
|
|
eors r0, r5
|
|
add r0, r8
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
add r0, r9
|
|
adds r0, 0x3E
|
|
ldrb r2, [r0]
|
|
adds r1, r7, 0
|
|
ands r1, r2
|
|
strb r1, [r0]
|
|
_080B8642:
|
|
mov r0, r10
|
|
bl DestroyAnimVisualTask
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B8658: .4byte gUnknown_2037F1A
|
|
_080B865C: .4byte gSprites
|
|
_080B8660: .4byte gUnknown_2023D44
|
|
thumb_func_end sub_80B85B8
|
|
|
|
thumb_func_start sub_80B8664
|
|
sub_80B8664: @ 80B8664
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
ldr r4, _080B86AC @ =gUnknown_2037F1A
|
|
ldrb r0, [r4]
|
|
bl sub_80768B0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0x1
|
|
eors r0, r1
|
|
negs r1, r0
|
|
orrs r1, r0
|
|
lsrs r5, r1, 31
|
|
adds r0, r5, 0
|
|
bl sub_8073128
|
|
ldrb r1, [r4]
|
|
movs r0, 0x2
|
|
eors r0, r1
|
|
bl sub_8072DF0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080B86A0
|
|
movs r0, 0x1
|
|
eors r5, r0
|
|
adds r0, r5, 0
|
|
bl sub_8073128
|
|
_080B86A0:
|
|
adds r0, r6, 0
|
|
bl DestroyAnimVisualTask
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B86AC: .4byte gUnknown_2037F1A
|
|
thumb_func_end sub_80B8664
|
|
|
|
thumb_func_start sub_80B86B0
|
|
sub_80B86B0: @ 80B86B0
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldr r1, _080B86E0 @ =gUnknown_2037F02
|
|
ldrh r0, [r1]
|
|
ldrh r2, [r4, 0x20]
|
|
adds r0, r2
|
|
strh r0, [r4, 0x20]
|
|
ldrh r0, [r1, 0x2]
|
|
ldrh r2, [r4, 0x22]
|
|
adds r0, r2
|
|
strh r0, [r4, 0x22]
|
|
ldrb r1, [r1, 0x4]
|
|
adds r0, r4, 0
|
|
bl StartSpriteAnim
|
|
ldr r0, _080B86E4 @ =sub_8074F6C
|
|
str r0, [r4, 0x1C]
|
|
ldr r1, _080B86E8 @ =DestroyAnimSprite
|
|
adds r0, r4, 0
|
|
bl StoreSpriteCallbackInData6
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B86E0: .4byte gUnknown_2037F02
|
|
_080B86E4: .4byte sub_8074F6C
|
|
_080B86E8: .4byte DestroyAnimSprite
|
|
thumb_func_end sub_80B86B0
|
|
|
|
thumb_func_start sub_80B86EC
|
|
sub_80B86EC: @ 80B86EC
|
|
push {r4-r7,lr}
|
|
sub sp, 0x10
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
movs r6, 0
|
|
ldr r0, _080B87EC @ =gUnknown_2022984
|
|
strh r6, [r0]
|
|
ldr r0, _080B87F0 @ =gUnknown_2022986
|
|
strh r6, [r0]
|
|
ldr r1, _080B87F4 @ =0x00003f3f
|
|
movs r0, 0x48
|
|
bl SetGpuReg
|
|
ldr r1, _080B87F8 @ =0x00003f3d
|
|
movs r0, 0x4A
|
|
bl SetGpuReg
|
|
movs r1, 0x80
|
|
lsls r1, 8
|
|
movs r0, 0
|
|
bl SetGpuRegBits
|
|
ldr r1, _080B87FC @ =0x00003f42
|
|
movs r0, 0x50
|
|
bl SetGpuReg
|
|
ldr r1, _080B8800 @ =0x00000c08
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
movs r0, 0x1
|
|
movs r1, 0x4
|
|
movs r2, 0
|
|
bl SetAnimBgAttribute
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl SetAnimBgAttribute
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080B8750
|
|
movs r0, 0x1
|
|
movs r1, 0x3
|
|
movs r2, 0x1
|
|
bl SetAnimBgAttribute
|
|
_080B8750:
|
|
bl sub_8075290
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080B87CA
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080B87CA
|
|
ldr r4, _080B8804 @ =gUnknown_2037F1A
|
|
ldrb r0, [r4]
|
|
bl GetBattlerPosition
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x3
|
|
beq _080B8780
|
|
ldrb r0, [r4]
|
|
bl GetBattlerPosition
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080B87CA
|
|
_080B8780:
|
|
ldrb r0, [r4]
|
|
movs r5, 0x2
|
|
eors r0, r5
|
|
bl sub_8072DF0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _080B87CA
|
|
ldr r3, _080B8808 @ =gSprites
|
|
ldr r1, _080B880C @ =gUnknown_2023D44
|
|
ldrb r0, [r4]
|
|
eors r0, r5
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
lsls r2, r0, 4
|
|
adds r2, r0
|
|
lsls r2, 2
|
|
adds r2, r3
|
|
ldrb r3, [r2, 0x5]
|
|
lsls r1, r3, 28
|
|
lsrs r1, 30
|
|
subs r1, 0x1
|
|
movs r0, 0x3
|
|
ands r1, r0
|
|
lsls r1, 2
|
|
movs r0, 0xD
|
|
negs r0, r0
|
|
ands r0, r3
|
|
orrs r0, r1
|
|
strb r0, [r2, 0x5]
|
|
movs r0, 0x1
|
|
movs r1, 0x4
|
|
movs r2, 0x1
|
|
bl SetAnimBgAttribute
|
|
movs r6, 0x1
|
|
_080B87CA:
|
|
ldr r4, _080B8804 @ =gUnknown_2037F1A
|
|
ldrb r0, [r4]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080B8818
|
|
ldr r1, _080B8810 @ =gBattlerPartyIndexes
|
|
ldrb r0, [r4]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, _080B8814 @ =gEnemyParty
|
|
b _080B8828
|
|
.align 2, 0
|
|
_080B87EC: .4byte gUnknown_2022984
|
|
_080B87F0: .4byte gUnknown_2022986
|
|
_080B87F4: .4byte 0x00003f3f
|
|
_080B87F8: .4byte 0x00003f3d
|
|
_080B87FC: .4byte 0x00003f42
|
|
_080B8800: .4byte 0x00000c08
|
|
_080B8804: .4byte gUnknown_2037F1A
|
|
_080B8808: .4byte gSprites
|
|
_080B880C: .4byte gUnknown_2023D44
|
|
_080B8810: .4byte gBattlerPartyIndexes
|
|
_080B8814: .4byte gEnemyParty
|
|
_080B8818:
|
|
ldr r1, _080B88B8 @ =gBattlerPartyIndexes
|
|
ldrb r0, [r4]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, _080B88BC @ =gPlayerParty
|
|
_080B8828:
|
|
adds r0, r1
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
movs r0, 0
|
|
bl GetAnimBankSpriteId
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
ldr r0, _080B88C0 @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
adds r1, r4, 0
|
|
adds r2, r5, 0
|
|
bl sub_8076E34
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
mov r0, sp
|
|
bl sub_80752A0
|
|
mov r0, sp
|
|
ldrb r0, [r0, 0x9]
|
|
ldr r1, _080B88C4 @ =gFile_graphics_battle_anims_masks_metal_shine_tilemap
|
|
bl sub_807543C
|
|
mov r0, sp
|
|
ldrb r0, [r0, 0x9]
|
|
ldr r1, _080B88C8 @ =gFile_graphics_battle_anims_masks_metal_shine_sheet
|
|
mov r2, sp
|
|
ldrh r2, [r2, 0xA]
|
|
bl sub_80753B4
|
|
ldr r0, _080B88CC @ =gFile_graphics_battle_anims_masks_metal_shine_palette
|
|
mov r1, sp
|
|
ldrb r1, [r1, 0x8]
|
|
lsls r1, 4
|
|
movs r2, 0x20
|
|
bl LoadCompressedPalette
|
|
ldr r2, _080B88D0 @ =gUnknown_2022978
|
|
ldr r0, _080B88D4 @ =gSprites
|
|
lsls r1, r4, 4
|
|
adds r1, r4
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrh r0, [r1, 0x20]
|
|
negs r0, r0
|
|
adds r0, 0x60
|
|
strh r0, [r2]
|
|
ldr r2, _080B88D8 @ =gUnknown_202297A
|
|
ldrh r0, [r1, 0x22]
|
|
negs r0, r0
|
|
adds r0, 0x20
|
|
strh r0, [r2]
|
|
ldrb r0, [r1, 0x5]
|
|
lsrs r0, 4
|
|
adds r0, 0x10
|
|
adds r1, r0, 0
|
|
ldr r2, _080B88DC @ =gUnknown_2037F02
|
|
movs r3, 0x2
|
|
ldrsh r0, [r2, r3]
|
|
cmp r0, 0
|
|
bne _080B88E0
|
|
adds r0, r1, 0
|
|
movs r1, 0
|
|
bl sub_8075B48
|
|
b _080B88EC
|
|
.align 2, 0
|
|
_080B88B8: .4byte gBattlerPartyIndexes
|
|
_080B88BC: .4byte gPlayerParty
|
|
_080B88C0: .4byte gUnknown_2037F1A
|
|
_080B88C4: .4byte gFile_graphics_battle_anims_masks_metal_shine_tilemap
|
|
_080B88C8: .4byte gFile_graphics_battle_anims_masks_metal_shine_sheet
|
|
_080B88CC: .4byte gFile_graphics_battle_anims_masks_metal_shine_palette
|
|
_080B88D0: .4byte gUnknown_2022978
|
|
_080B88D4: .4byte gSprites
|
|
_080B88D8: .4byte gUnknown_202297A
|
|
_080B88DC: .4byte gUnknown_2037F02
|
|
_080B88E0:
|
|
lsls r0, r1, 4
|
|
ldrh r3, [r2, 0x4]
|
|
movs r1, 0x10
|
|
movs r2, 0xB
|
|
bl BlendPalette
|
|
_080B88EC:
|
|
ldr r1, _080B8914 @ =gTasks
|
|
lsls r0, r7, 2
|
|
adds r0, r7
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
strh r5, [r0, 0x8]
|
|
ldr r2, _080B8918 @ =gUnknown_2037F02
|
|
ldrh r1, [r2]
|
|
strh r1, [r0, 0xA]
|
|
ldrh r1, [r2, 0x2]
|
|
strh r1, [r0, 0xC]
|
|
ldrh r1, [r2, 0x4]
|
|
strh r1, [r0, 0xE]
|
|
strh r6, [r0, 0x14]
|
|
ldr r1, _080B891C @ =sub_80B8920
|
|
str r1, [r0]
|
|
add sp, 0x10
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B8914: .4byte gTasks
|
|
_080B8918: .4byte gUnknown_2037F02
|
|
_080B891C: .4byte sub_80B8920
|
|
thumb_func_end sub_80B86EC
|
|
|
|
thumb_func_start sub_80B8920
|
|
sub_80B8920: @ 80B8920
|
|
push {r4-r6,lr}
|
|
sub sp, 0x10
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r6, r0, 0
|
|
ldr r1, _080B89E8 @ =gTasks
|
|
lsls r0, r6, 2
|
|
adds r0, r6
|
|
lsls r0, 3
|
|
adds r4, r0, r1
|
|
ldrh r0, [r4, 0x1C]
|
|
adds r0, 0x4
|
|
movs r5, 0
|
|
strh r0, [r4, 0x1C]
|
|
ldr r2, _080B89EC @ =gUnknown_2022978
|
|
ldrh r3, [r2]
|
|
subs r1, r3, 0x4
|
|
strh r1, [r2]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x80
|
|
beq _080B894E
|
|
b _080B8A5E
|
|
_080B894E:
|
|
strh r5, [r4, 0x1C]
|
|
adds r0, r3, 0
|
|
adds r0, 0x7C
|
|
strh r0, [r2]
|
|
ldrh r0, [r4, 0x1E]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x1E]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x2
|
|
bne _080B89FC
|
|
movs r0, 0
|
|
bl GetAnimBankSpriteId
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r5, _080B89F0 @ =gSprites
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r5
|
|
ldrb r0, [r1, 0x5]
|
|
lsrs r0, 4
|
|
adds r0, 0x10
|
|
adds r1, r0, 0
|
|
movs r2, 0xA
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0
|
|
bne _080B8990
|
|
adds r0, r1, 0
|
|
movs r1, 0x1
|
|
bl sub_8075B48
|
|
_080B8990:
|
|
movs r0, 0x8
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
bl DestroySprite
|
|
mov r0, sp
|
|
bl sub_80752A0
|
|
mov r0, sp
|
|
ldrb r0, [r0, 0x9]
|
|
bl sub_8075358
|
|
movs r1, 0x14
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x1
|
|
bne _080B8A5E
|
|
ldr r2, _080B89F4 @ =gUnknown_2023D44
|
|
ldr r0, _080B89F8 @ =gUnknown_2037F1A
|
|
ldrb r1, [r0]
|
|
movs r0, 0x2
|
|
eors r0, r1
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
lsls r2, r0, 4
|
|
adds r2, r0
|
|
lsls r2, 2
|
|
adds r2, r5
|
|
ldrb r3, [r2, 0x5]
|
|
lsls r1, r3, 28
|
|
lsrs r1, 30
|
|
adds r1, 0x1
|
|
movs r0, 0x3
|
|
ands r1, r0
|
|
lsls r1, 2
|
|
movs r0, 0xD
|
|
negs r0, r0
|
|
ands r0, r3
|
|
orrs r0, r1
|
|
strb r0, [r2, 0x5]
|
|
b _080B8A5E
|
|
.align 2, 0
|
|
_080B89E8: .4byte gTasks
|
|
_080B89EC: .4byte gUnknown_2022978
|
|
_080B89F0: .4byte gSprites
|
|
_080B89F4: .4byte gUnknown_2023D44
|
|
_080B89F8: .4byte gUnknown_2037F1A
|
|
_080B89FC:
|
|
cmp r0, 0x3
|
|
bne _080B8A5E
|
|
ldr r0, _080B8A68 @ =gUnknown_2022984
|
|
strh r5, [r0]
|
|
ldr r0, _080B8A6C @ =gUnknown_2022986
|
|
strh r5, [r0]
|
|
ldr r4, _080B8A70 @ =0x00003f3f
|
|
movs r0, 0x48
|
|
adds r1, r4, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x4A
|
|
adds r1, r4, 0
|
|
bl SetGpuReg
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080B8A2E
|
|
movs r0, 0x1
|
|
movs r1, 0x3
|
|
movs r2, 0
|
|
bl SetAnimBgAttribute
|
|
_080B8A2E:
|
|
movs r0, 0
|
|
bl GetGpuReg
|
|
adds r1, r0, 0
|
|
movs r2, 0x80
|
|
lsls r2, 8
|
|
adds r0, r2, 0
|
|
eors r1, r0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
movs r0, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x50
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x52
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
adds r0, r6, 0
|
|
bl DestroyAnimVisualTask
|
|
_080B8A5E:
|
|
add sp, 0x10
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B8A68: .4byte gUnknown_2022984
|
|
_080B8A6C: .4byte gUnknown_2022986
|
|
_080B8A70: .4byte 0x00003f3f
|
|
thumb_func_end sub_80B8920
|
|
|
|
thumb_func_start sub_80B8A74
|
|
sub_80B8A74: @ 80B8A74
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
movs r4, 0
|
|
ldr r0, _080B8A94 @ =gUnknown_2037F02
|
|
movs r2, 0
|
|
ldrsh r1, [r0, r2]
|
|
adds r2, r0, 0
|
|
cmp r1, 0x7
|
|
bhi _080B8AD8
|
|
lsls r0, r1, 2
|
|
ldr r1, _080B8A98 @ =_080B8A9C
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080B8A94: .4byte gUnknown_2037F02
|
|
_080B8A98: .4byte _080B8A9C
|
|
.align 2, 0
|
|
_080B8A9C:
|
|
.4byte _080B8ABC
|
|
.4byte _080B8ABC
|
|
.4byte _080B8ABC
|
|
.4byte _080B8ABC
|
|
.4byte _080B8AC8
|
|
.4byte _080B8ACC
|
|
.4byte _080B8AD0
|
|
.4byte _080B8AD4
|
|
_080B8ABC:
|
|
ldrb r0, [r2]
|
|
bl GetAnimBankSpriteId
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
b _080B8ADA
|
|
_080B8AC8:
|
|
movs r4, 0
|
|
b _080B8AE0
|
|
_080B8ACC:
|
|
movs r4, 0x2
|
|
b _080B8AE0
|
|
_080B8AD0:
|
|
movs r4, 0x1
|
|
b _080B8AE0
|
|
_080B8AD4:
|
|
movs r4, 0x3
|
|
b _080B8AE0
|
|
_080B8AD8:
|
|
movs r2, 0xFF
|
|
_080B8ADA:
|
|
movs r0, 0
|
|
cmp r0, 0
|
|
beq _080B8B06
|
|
_080B8AE0:
|
|
adds r0, r4, 0
|
|
bl GetBattlerAtPosition
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
adds r0, r4, 0
|
|
bl sub_8072DF0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080B8B04
|
|
ldr r0, _080B8B00 @ =gUnknown_2023D44
|
|
adds r0, r4, r0
|
|
ldrb r2, [r0]
|
|
b _080B8B06
|
|
.align 2, 0
|
|
_080B8B00: .4byte gUnknown_2023D44
|
|
_080B8B04:
|
|
movs r2, 0xFF
|
|
_080B8B06:
|
|
cmp r2, 0xFF
|
|
beq _080B8B22
|
|
ldr r1, _080B8B30 @ =gSprites
|
|
lsls r0, r2, 4
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r0, [r0, 0x5]
|
|
lsrs r0, 4
|
|
adds r0, 0x10
|
|
ldr r1, _080B8B34 @ =gUnknown_2037F02
|
|
ldrb r1, [r1, 0x2]
|
|
bl sub_8075B48
|
|
_080B8B22:
|
|
adds r0, r5, 0
|
|
bl DestroyAnimVisualTask
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B8B30: .4byte gSprites
|
|
_080B8B34: .4byte gUnknown_2037F02
|
|
thumb_func_end sub_80B8A74
|
|
|
|
thumb_func_start sub_80B8B38
|
|
sub_80B8B38: @ 80B8B38
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
ldr r2, _080B8B64 @ =gUnknown_2037F16
|
|
ldrb r0, [r2]
|
|
cmp r0, 0x1
|
|
bhi _080B8B4C
|
|
ldr r1, _080B8B68 @ =gUnknown_2037F02
|
|
movs r0, 0
|
|
strh r0, [r1, 0xE]
|
|
_080B8B4C:
|
|
ldrb r0, [r2]
|
|
cmp r0, 0x2
|
|
bne _080B8B58
|
|
ldr r1, _080B8B68 @ =gUnknown_2037F02
|
|
movs r0, 0x1
|
|
strh r0, [r1, 0xE]
|
|
_080B8B58:
|
|
adds r0, r3, 0
|
|
bl DestroyAnimVisualTask
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B8B64: .4byte gUnknown_2037F16
|
|
_080B8B68: .4byte gUnknown_2037F02
|
|
thumb_func_end sub_80B8B38
|
|
|
|
thumb_func_start sub_80B8B6C
|
|
sub_80B8B6C: @ 80B8B6C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
ldr r5, _080B8BC4 @ =gUnknown_2037F1A
|
|
ldrb r0, [r5]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x20]
|
|
ldrb r0, [r5]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x22]
|
|
movs r0, 0x14
|
|
strh r0, [r4, 0x2E]
|
|
ldr r5, _080B8BC8 @ =gUnknown_2037F1B
|
|
ldrb r0, [r5]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x32]
|
|
ldrb r0, [r5]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x36]
|
|
ldr r0, _080B8BCC @ =0x0000ffd8
|
|
strh r0, [r4, 0x38]
|
|
adds r0, r4, 0
|
|
bl sub_8075068
|
|
ldr r0, _080B8BD0 @ =sub_80B8BD4
|
|
str r0, [r4, 0x1C]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B8BC4: .4byte gUnknown_2037F1A
|
|
_080B8BC8: .4byte gUnknown_2037F1B
|
|
_080B8BCC: .4byte 0x0000ffd8
|
|
_080B8BD0: .4byte sub_80B8BD4
|
|
thumb_func_end sub_80B8B6C
|
|
|
|
thumb_func_start sub_80B8BD4
|
|
sub_80B8BD4: @ 80B8BD4
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
bl AnimateBallThrow
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080B8C28
|
|
ldrh r0, [r5, 0x24]
|
|
ldrh r1, [r5, 0x20]
|
|
adds r0, r1
|
|
movs r1, 0
|
|
strh r0, [r5, 0x20]
|
|
ldrh r0, [r5, 0x26]
|
|
ldrh r2, [r5, 0x22]
|
|
adds r0, r2
|
|
strh r0, [r5, 0x22]
|
|
strh r1, [r5, 0x26]
|
|
strh r1, [r5, 0x24]
|
|
movs r0, 0x14
|
|
strh r0, [r5, 0x2E]
|
|
ldr r4, _080B8C30 @ =gUnknown_2037F1A
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x32]
|
|
ldrb r0, [r4]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0x36]
|
|
movs r0, 0x28
|
|
strh r0, [r5, 0x38]
|
|
adds r0, r5, 0
|
|
bl sub_8075068
|
|
ldr r0, _080B8C34 @ =sub_80B8C38
|
|
str r0, [r5, 0x1C]
|
|
_080B8C28:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B8C30: .4byte gUnknown_2037F1A
|
|
_080B8C34: .4byte sub_80B8C38
|
|
thumb_func_end sub_80B8BD4
|
|
|
|
thumb_func_start sub_80B8C38
|
|
sub_80B8C38: @ 80B8C38
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl AnimateBallThrow
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080B8C4C
|
|
adds r0, r4, 0
|
|
bl DestroyAnimSprite
|
|
_080B8C4C:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80B8C38
|
|
|
|
thumb_func_start sub_80B8C54
|
|
sub_80B8C54: @ 80B8C54
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
movs r1, 0x1
|
|
bl sub_8075114
|
|
ldr r0, _080B8CB4 @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080B8C74
|
|
ldr r1, _080B8CB8 @ =gUnknown_2037F02
|
|
ldrh r0, [r1, 0x4]
|
|
negs r0, r0
|
|
strh r0, [r1, 0x4]
|
|
_080B8C74:
|
|
ldr r4, _080B8CB8 @ =gUnknown_2037F02
|
|
ldrh r0, [r4, 0x8]
|
|
strh r0, [r6, 0x2E]
|
|
ldr r5, _080B8CBC @ =gUnknown_2037F1B
|
|
ldrb r0, [r5]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrh r1, [r4, 0x4]
|
|
adds r0, r1
|
|
strh r0, [r6, 0x32]
|
|
ldrb r0, [r5]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrh r4, [r4, 0x6]
|
|
adds r0, r4
|
|
strh r0, [r6, 0x36]
|
|
ldr r0, _080B8CC0 @ =sub_8075590
|
|
str r0, [r6, 0x1C]
|
|
ldr r1, _080B8CC4 @ =DestroyAnimSprite
|
|
adds r0, r6, 0
|
|
bl StoreSpriteCallbackInData6
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B8CB4: .4byte gUnknown_2037F1A
|
|
_080B8CB8: .4byte gUnknown_2037F02
|
|
_080B8CBC: .4byte gUnknown_2037F1B
|
|
_080B8CC0: .4byte sub_8075590
|
|
_080B8CC4: .4byte DestroyAnimSprite
|
|
thumb_func_end sub_80B8C54
|
|
|
|
thumb_func_start sub_80B8CC8
|
|
sub_80B8CC8: @ 80B8CC8
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
adds r6, r0, 0
|
|
movs r1, 0x1
|
|
bl sub_8075160
|
|
ldr r4, _080B8D48 @ =gUnknown_2037F1B
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
bl sub_8074844
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
ldrb r0, [r4]
|
|
movs r1, 0x3
|
|
bl sub_8074844
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
bl Random
|
|
movs r4, 0x1F
|
|
adds r5, r4, 0
|
|
ands r5, r0
|
|
bl Random
|
|
ands r4, r0
|
|
adds r1, r5, 0
|
|
cmp r1, 0x10
|
|
ble _080B8D10
|
|
movs r0, 0x10
|
|
subs r0, r1
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
_080B8D10:
|
|
lsls r0, r4, 16
|
|
asrs r1, r0, 16
|
|
cmp r1, 0x10
|
|
ble _080B8D20
|
|
movs r0, 0x10
|
|
subs r0, r1
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
_080B8D20:
|
|
ldr r0, _080B8D4C @ =gUnknown_2037F02
|
|
ldrh r0, [r0, 0x4]
|
|
strh r0, [r6, 0x2E]
|
|
mov r1, r8
|
|
adds r0, r1, r5
|
|
strh r0, [r6, 0x32]
|
|
adds r0, r7, r4
|
|
strh r0, [r6, 0x36]
|
|
ldr r0, _080B8D50 @ =sub_8075590
|
|
str r0, [r6, 0x1C]
|
|
ldr r1, _080B8D54 @ =move_anim_8074EE0
|
|
adds r0, r6, 0
|
|
bl StoreSpriteCallbackInData6
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B8D48: .4byte gUnknown_2037F1B
|
|
_080B8D4C: .4byte gUnknown_2037F02
|
|
_080B8D50: .4byte sub_8075590
|
|
_080B8D54: .4byte move_anim_8074EE0
|
|
thumb_func_end sub_80B8CC8
|
|
|
|
thumb_func_start sub_80B8D58
|
|
sub_80B8D58: @ 80B8D58
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
ldrh r2, [r5, 0x4]
|
|
lsls r1, r2, 22
|
|
lsrs r1, 22
|
|
adds r1, 0x1
|
|
ldr r3, _080B8DB8 @ =0x000003ff
|
|
adds r0, r3, 0
|
|
ands r1, r0
|
|
ldr r0, _080B8DBC @ =0xfffffc00
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strh r0, [r5, 0x4]
|
|
ldr r6, _080B8DC0 @ =gUnknown_2037F02
|
|
movs r1, 0
|
|
ldrsh r0, [r6, r1]
|
|
cmp r0, 0
|
|
bne _080B8DCC
|
|
ldr r4, _080B8DC4 @ =gUnknown_2037F1A
|
|
ldrb r0, [r4]
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrh r2, [r6, 0x2]
|
|
adds r0, r2
|
|
strh r0, [r5, 0x20]
|
|
ldrb r0, [r4]
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrh r3, [r6, 0x4]
|
|
adds r0, r3
|
|
strh r0, [r5, 0x22]
|
|
movs r1, 0x2
|
|
ldrsh r0, [r6, r1]
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
adds r1, r2, 0
|
|
cmp r0, 0
|
|
ble _080B8DB2
|
|
movs r1, 0x1
|
|
_080B8DB2:
|
|
strh r1, [r5, 0x2E]
|
|
ldr r0, _080B8DC8 @ =sub_80B8DE8
|
|
b _080B8DDA
|
|
.align 2, 0
|
|
_080B8DB8: .4byte 0x000003ff
|
|
_080B8DBC: .4byte 0xfffffc00
|
|
_080B8DC0: .4byte gUnknown_2037F02
|
|
_080B8DC4: .4byte gUnknown_2037F1A
|
|
_080B8DC8: .4byte sub_80B8DE8
|
|
_080B8DCC:
|
|
ldrh r0, [r6, 0x2]
|
|
strh r0, [r5, 0x20]
|
|
ldrh r0, [r6, 0x4]
|
|
strh r0, [r5, 0x22]
|
|
negs r0, r0
|
|
strh r0, [r5, 0x26]
|
|
ldr r0, _080B8DE4 @ =sub_80B8E24
|
|
_080B8DDA:
|
|
str r0, [r5, 0x1C]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B8DE4: .4byte sub_80B8E24
|
|
thumb_func_end sub_80B8D58
|
|
|
|
thumb_func_start sub_80B8DE8
|
|
sub_80B8DE8: @ 80B8DE8
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
ldrh r0, [r2, 0x30]
|
|
adds r0, 0x1
|
|
strh r0, [r2, 0x30]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1
|
|
ble _080B8E06
|
|
movs r0, 0
|
|
strh r0, [r2, 0x30]
|
|
ldrh r0, [r2, 0x2E]
|
|
ldrh r1, [r2, 0x20]
|
|
adds r0, r1
|
|
strh r0, [r2, 0x20]
|
|
_080B8E06:
|
|
ldrh r0, [r2, 0x22]
|
|
subs r0, 0x4
|
|
strh r0, [r2, 0x22]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r1, 0x4
|
|
negs r1, r1
|
|
cmp r0, r1
|
|
bge _080B8E1E
|
|
adds r0, r2, 0
|
|
bl DestroyAnimSprite
|
|
_080B8E1E:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80B8DE8
|
|
|
|
thumb_func_start sub_80B8E24
|
|
sub_80B8E24: @ 80B8E24
|
|
push {lr}
|
|
adds r3, r0, 0
|
|
movs r0, 0x2E
|
|
ldrsh r1, [r3, r0]
|
|
cmp r1, 0
|
|
beq _080B8E36
|
|
cmp r1, 0x1
|
|
beq _080B8E4C
|
|
b _080B8E8E
|
|
_080B8E36:
|
|
ldrh r0, [r3, 0x26]
|
|
adds r0, 0x4
|
|
strh r0, [r3, 0x26]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
blt _080B8E8E
|
|
strh r1, [r3, 0x26]
|
|
ldrh r0, [r3, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r3, 0x2E]
|
|
b _080B8E8E
|
|
_080B8E4C:
|
|
ldrh r0, [r3, 0x30]
|
|
adds r0, 0x1
|
|
strh r0, [r3, 0x30]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
ble _080B8E8E
|
|
movs r0, 0
|
|
strh r0, [r3, 0x30]
|
|
movs r1, 0x3E
|
|
adds r1, r3
|
|
mov r12, r1
|
|
ldrb r2, [r1]
|
|
lsls r0, r2, 29
|
|
lsrs r0, 31
|
|
movs r1, 0x1
|
|
eors r1, r0
|
|
lsls r1, 2
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
mov r1, r12
|
|
strb r0, [r1]
|
|
ldrh r0, [r3, 0x32]
|
|
adds r0, 0x1
|
|
strh r0, [r3, 0x32]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0xA
|
|
bne _080B8E8E
|
|
adds r0, r3, 0
|
|
bl DestroyAnimSprite
|
|
_080B8E8E:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80B8E24
|
|
|
|
thumb_func_start sub_80B8E94
|
|
sub_80B8E94: @ 80B8E94
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
lsls r0, r2, 2
|
|
adds r0, r2
|
|
lsls r0, 3
|
|
ldr r1, _080B8EB4 @ =gTasks
|
|
adds r1, r0, r1
|
|
ldr r0, _080B8EB8 @ =gUnknown_2037F02
|
|
movs r3, 0
|
|
ldrsh r0, [r0, r3]
|
|
cmp r0, 0
|
|
bne _080B8EC0
|
|
ldr r0, _080B8EBC @ =sub_80B8ED4
|
|
b _080B8EC2
|
|
.align 2, 0
|
|
_080B8EB4: .4byte gTasks
|
|
_080B8EB8: .4byte gUnknown_2037F02
|
|
_080B8EBC: .4byte sub_80B8ED4
|
|
_080B8EC0:
|
|
ldr r0, _080B8ED0 @ =sub_80B908C
|
|
_080B8EC2:
|
|
str r0, [r1]
|
|
ldr r1, [r1]
|
|
adds r0, r2, 0
|
|
bl _call_via_r1
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B8ED0: .4byte sub_80B908C
|
|
thumb_func_end sub_80B8E94
|
|
|
|
thumb_func_start sub_80B8ED4
|
|
sub_80B8ED4: @ 80B8ED4
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
lsls r0, r2, 2
|
|
adds r0, r2
|
|
lsls r0, 3
|
|
ldr r1, _080B8EF8 @ =gTasks
|
|
adds r4, r0, r1
|
|
movs r1, 0x8
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x4
|
|
bls _080B8EEE
|
|
b _080B9082
|
|
_080B8EEE:
|
|
lsls r0, 2
|
|
ldr r1, _080B8EFC @ =_080B8F00
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080B8EF8: .4byte gTasks
|
|
_080B8EFC: .4byte _080B8F00
|
|
.align 2, 0
|
|
_080B8F00:
|
|
.4byte _080B8F14
|
|
.4byte _080B8F9C
|
|
.4byte _080B8FAC
|
|
.4byte _080B9050
|
|
.4byte _080B9064
|
|
_080B8F14:
|
|
movs r0, 0
|
|
bl GetAnimBankSpriteId
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x1C]
|
|
ldr r0, _080B8F3C @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl sub_80768B0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x1E]
|
|
cmp r0, 0x1
|
|
bne _080B8F48
|
|
ldr r0, _080B8F40 @ =gUnknown_2022978
|
|
ldrh r0, [r0]
|
|
strh r0, [r4, 0x20]
|
|
ldr r0, _080B8F44 @ =gUnknown_202297A
|
|
b _080B8F50
|
|
.align 2, 0
|
|
_080B8F3C: .4byte gUnknown_2037F1A
|
|
_080B8F40: .4byte gUnknown_2022978
|
|
_080B8F44: .4byte gUnknown_202297A
|
|
_080B8F48:
|
|
ldr r0, _080B8F8C @ =gUnknown_202297C
|
|
ldrh r0, [r0]
|
|
strh r0, [r4, 0x20]
|
|
ldr r0, _080B8F90 @ =gUnknown_202297E
|
|
_080B8F50:
|
|
ldrh r0, [r0]
|
|
strh r0, [r4, 0x22]
|
|
ldr r0, _080B8F94 @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl sub_807492C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r1, r0, 0
|
|
subs r1, 0x20
|
|
strh r1, [r4, 0x24]
|
|
adds r0, 0x20
|
|
strh r0, [r4, 0x26]
|
|
cmp r1, 0
|
|
bge _080B8F72
|
|
movs r0, 0
|
|
strh r0, [r4, 0x24]
|
|
_080B8F72:
|
|
ldr r2, _080B8F98 @ =gSprites
|
|
movs r3, 0x1C
|
|
ldrsh r1, [r4, r3]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
adds r0, 0x3E
|
|
ldrb r1, [r0]
|
|
movs r2, 0x4
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
b _080B9056
|
|
.align 2, 0
|
|
_080B8F8C: .4byte gUnknown_202297C
|
|
_080B8F90: .4byte gUnknown_202297E
|
|
_080B8F94: .4byte gUnknown_2037F1A
|
|
_080B8F98: .4byte gSprites
|
|
_080B8F9C:
|
|
ldrb r0, [r4, 0x1E]
|
|
movs r2, 0x24
|
|
ldrsh r1, [r4, r2]
|
|
movs r3, 0x26
|
|
ldrsh r2, [r4, r3]
|
|
bl sub_80B92B8
|
|
b _080B9056
|
|
_080B8FAC:
|
|
ldrh r0, [r4, 0xC]
|
|
adds r0, 0x6
|
|
movs r1, 0x7F
|
|
ands r0, r1
|
|
strh r0, [r4, 0xC]
|
|
ldrh r0, [r4, 0x10]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x10]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x2
|
|
ble _080B8FCE
|
|
movs r0, 0
|
|
strh r0, [r4, 0x10]
|
|
ldrh r0, [r4, 0xE]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0xE]
|
|
_080B8FCE:
|
|
ldr r1, _080B8FF0 @ =gUnknown_825E074
|
|
movs r2, 0xC
|
|
ldrsh r0, [r4, r2]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
lsls r0, 16
|
|
asrs r0, 20
|
|
ldrh r3, [r4, 0xE]
|
|
adds r2, r0, r3
|
|
strh r2, [r4, 0x12]
|
|
movs r1, 0x1E
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x1
|
|
bne _080B8FF8
|
|
ldr r1, _080B8FF4 @ =gUnknown_202297A
|
|
b _080B8FFA
|
|
.align 2, 0
|
|
_080B8FF0: .4byte gUnknown_825E074
|
|
_080B8FF4: .4byte gUnknown_202297A
|
|
_080B8FF8:
|
|
ldr r1, _080B901C @ =gUnknown_202297E
|
|
_080B8FFA:
|
|
ldrh r0, [r4, 0x22]
|
|
subs r0, r2
|
|
strh r0, [r1]
|
|
movs r2, 0x12
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0x3F
|
|
ble _080B9082
|
|
ldrh r0, [r4, 0x24]
|
|
movs r1, 0x78
|
|
subs r2, r1, r0
|
|
strh r2, [r4, 0x12]
|
|
movs r3, 0x1E
|
|
ldrsh r0, [r4, r3]
|
|
cmp r0, 0x1
|
|
bne _080B9024
|
|
ldr r1, _080B9020 @ =gUnknown_202297A
|
|
b _080B9026
|
|
.align 2, 0
|
|
_080B901C: .4byte gUnknown_202297E
|
|
_080B9020: .4byte gUnknown_202297A
|
|
_080B9024:
|
|
ldr r1, _080B9048 @ =gUnknown_202297E
|
|
_080B9026:
|
|
ldrh r0, [r4, 0x22]
|
|
subs r0, r2
|
|
strh r0, [r1]
|
|
ldr r2, _080B904C @ =gSprites
|
|
movs r1, 0x1C
|
|
ldrsh r0, [r4, r1]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
ldrh r2, [r1, 0x20]
|
|
movs r3, 0x88
|
|
lsls r3, 1
|
|
adds r0, r3, 0
|
|
subs r0, r2
|
|
strh r0, [r1, 0x24]
|
|
b _080B9056
|
|
.align 2, 0
|
|
_080B9048: .4byte gUnknown_202297E
|
|
_080B904C: .4byte gSprites
|
|
_080B9050:
|
|
ldr r1, _080B9060 @ =gUnknown_2039600
|
|
movs r0, 0x3
|
|
strb r0, [r1, 0x15]
|
|
_080B9056:
|
|
ldrh r0, [r4, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x8]
|
|
b _080B9082
|
|
.align 2, 0
|
|
_080B9060: .4byte gUnknown_2039600
|
|
_080B9064:
|
|
adds r0, r2, 0
|
|
bl DestroyAnimVisualTask
|
|
ldr r2, _080B9088 @ =gSprites
|
|
movs r0, 0x1C
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
adds r0, 0x3E
|
|
ldrb r1, [r0]
|
|
movs r2, 0x4
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
_080B9082:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B9088: .4byte gSprites
|
|
thumb_func_end sub_80B8ED4
|
|
|
|
thumb_func_start sub_80B908C
|
|
sub_80B908C: @ 80B908C
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
movs r0, 0
|
|
bl GetAnimBankSpriteId
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, _080B90CC @ =gSprites
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
adds r3, r1, 0
|
|
adds r3, 0x3E
|
|
ldrb r0, [r3]
|
|
movs r2, 0x4
|
|
orrs r0, r2
|
|
strb r0, [r3]
|
|
movs r4, 0
|
|
strh r4, [r1, 0x24]
|
|
strh r4, [r1, 0x26]
|
|
ldr r0, _080B90D0 @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl sub_80768B0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _080B90D8
|
|
ldr r0, _080B90D4 @ =gUnknown_202297A
|
|
b _080B90DA
|
|
.align 2, 0
|
|
_080B90CC: .4byte gSprites
|
|
_080B90D0: .4byte gUnknown_2037F1A
|
|
_080B90D4: .4byte gUnknown_202297A
|
|
_080B90D8:
|
|
ldr r0, _080B90E8 @ =gUnknown_202297E
|
|
_080B90DA:
|
|
strh r4, [r0]
|
|
adds r0, r5, 0
|
|
bl DestroyAnimVisualTask
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B90E8: .4byte gUnknown_202297E
|
|
thumb_func_end sub_80B908C
|
|
|
|
thumb_func_start sub_80B90EC
|
|
sub_80B90EC: @ 80B90EC
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
lsls r0, r2, 2
|
|
adds r0, r2
|
|
lsls r0, 3
|
|
ldr r1, _080B910C @ =gTasks
|
|
adds r1, r0, r1
|
|
ldr r0, _080B9110 @ =gUnknown_2037F02
|
|
movs r3, 0
|
|
ldrsh r0, [r0, r3]
|
|
cmp r0, 0
|
|
bne _080B9118
|
|
ldr r0, _080B9114 @ =sub_80B912C
|
|
b _080B911A
|
|
.align 2, 0
|
|
_080B910C: .4byte gTasks
|
|
_080B9110: .4byte gUnknown_2037F02
|
|
_080B9114: .4byte sub_80B912C
|
|
_080B9118:
|
|
ldr r0, _080B9128 @ =sub_80B91B0
|
|
_080B911A:
|
|
str r0, [r1]
|
|
ldr r1, [r1]
|
|
adds r0, r2, 0
|
|
bl _call_via_r1
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B9128: .4byte sub_80B91B0
|
|
thumb_func_end sub_80B90EC
|
|
|
|
thumb_func_start sub_80B912C
|
|
sub_80B912C: @ 80B912C
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
lsls r0, r2, 2
|
|
adds r0, r2
|
|
lsls r0, 3
|
|
ldr r1, _080B914C @ =gTasks
|
|
adds r4, r0, r1
|
|
movs r0, 0x8
|
|
ldrsh r5, [r4, r0]
|
|
cmp r5, 0
|
|
beq _080B9150
|
|
cmp r5, 0x1
|
|
beq _080B91A4
|
|
b _080B91AA
|
|
.align 2, 0
|
|
_080B914C: .4byte gTasks
|
|
_080B9150:
|
|
movs r0, 0
|
|
bl GetAnimBankSpriteId
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x1C]
|
|
ldr r3, _080B91A0 @ =gSprites
|
|
movs r0, 0x1C
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
adds r0, 0x3E
|
|
ldrb r2, [r0]
|
|
movs r1, 0x5
|
|
negs r1, r1
|
|
ands r1, r2
|
|
strb r1, [r0]
|
|
movs r0, 0x1C
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
strh r5, [r0, 0x24]
|
|
movs r1, 0x1C
|
|
ldrsh r0, [r4, r1]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r3
|
|
ldrh r2, [r1, 0x22]
|
|
movs r0, 0xA0
|
|
subs r0, r2
|
|
strh r0, [r1, 0x26]
|
|
ldrh r0, [r4, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x8]
|
|
b _080B91AA
|
|
.align 2, 0
|
|
_080B91A0: .4byte gSprites
|
|
_080B91A4:
|
|
adds r0, r2, 0
|
|
bl DestroyAnimVisualTask
|
|
_080B91AA:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80B912C
|
|
|
|
thumb_func_start sub_80B91B0
|
|
sub_80B91B0: @ 80B91B0
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
lsls r0, r2, 2
|
|
adds r0, r2
|
|
lsls r0, 3
|
|
ldr r1, _080B91D4 @ =gTasks
|
|
adds r4, r0, r1
|
|
movs r1, 0x8
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x4
|
|
bhi _080B92B2
|
|
lsls r0, 2
|
|
ldr r1, _080B91D8 @ =_080B91DC
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080B91D4: .4byte gTasks
|
|
_080B91D8: .4byte _080B91DC
|
|
.align 2, 0
|
|
_080B91DC:
|
|
.4byte _080B91F0
|
|
.4byte _080B9244
|
|
.4byte _080B9252
|
|
.4byte _080B926C
|
|
.4byte _080B92AC
|
|
_080B91F0:
|
|
movs r0, 0
|
|
bl GetAnimBankSpriteId
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x1C]
|
|
ldr r0, _080B9214 @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl sub_80768B0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x1E]
|
|
cmp r0, 0x1
|
|
bne _080B921C
|
|
ldr r0, _080B9218 @ =gUnknown_2022978
|
|
b _080B921E
|
|
.align 2, 0
|
|
_080B9214: .4byte gUnknown_2037F1A
|
|
_080B9218: .4byte gUnknown_2022978
|
|
_080B921C:
|
|
ldr r0, _080B923C @ =gUnknown_202297C
|
|
_080B921E:
|
|
ldrh r0, [r0]
|
|
strh r0, [r4, 0x20]
|
|
ldr r0, _080B9240 @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl sub_807492C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r1, r0, 0
|
|
subs r1, 0x20
|
|
strh r1, [r4, 0x24]
|
|
adds r0, 0x20
|
|
strh r0, [r4, 0x26]
|
|
b _080B929A
|
|
.align 2, 0
|
|
_080B923C: .4byte gUnknown_202297C
|
|
_080B9240: .4byte gUnknown_2037F1A
|
|
_080B9244:
|
|
ldrb r0, [r4, 0x1E]
|
|
movs r1, 0x26
|
|
ldrsh r2, [r4, r1]
|
|
movs r1, 0
|
|
bl sub_80B92B8
|
|
b _080B929A
|
|
_080B9252:
|
|
ldr r2, _080B9268 @ =gSprites
|
|
movs r0, 0x1C
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
movs r1, 0x60
|
|
strh r1, [r0, 0x26]
|
|
b _080B929A
|
|
.align 2, 0
|
|
_080B9268: .4byte gSprites
|
|
_080B926C:
|
|
ldr r2, _080B92A4 @ =gSprites
|
|
movs r0, 0x1C
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrh r1, [r0, 0x26]
|
|
subs r1, 0x8
|
|
strh r1, [r0, 0x26]
|
|
movs r0, 0x1C
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
movs r1, 0x26
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0
|
|
bne _080B92B2
|
|
ldr r1, _080B92A8 @ =gUnknown_2039600
|
|
movs r0, 0x3
|
|
strb r0, [r1, 0x15]
|
|
_080B929A:
|
|
ldrh r0, [r4, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x8]
|
|
b _080B92B2
|
|
.align 2, 0
|
|
_080B92A4: .4byte gSprites
|
|
_080B92A8: .4byte gUnknown_2039600
|
|
_080B92AC:
|
|
adds r0, r2, 0
|
|
bl DestroyAnimVisualTask
|
|
_080B92B2:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80B91B0
|
|
|
|
thumb_func_start sub_80B92B8
|
|
sub_80B92B8: @ 80B92B8
|
|
push {r4-r6,lr}
|
|
sub sp, 0xC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
lsls r2, 16
|
|
lsrs r4, r2, 16
|
|
cmp r0, 0x1
|
|
bne _080B92DC
|
|
ldr r0, _080B92D4 @ =gUnknown_2022978
|
|
ldrh r3, [r0]
|
|
ldr r0, _080B92D8 @ =0x04000014
|
|
b _080B92E2
|
|
.align 2, 0
|
|
_080B92D4: .4byte gUnknown_2022978
|
|
_080B92D8: .4byte 0x04000014
|
|
_080B92DC:
|
|
ldr r0, _080B9368 @ =gUnknown_202297C
|
|
ldrh r3, [r0]
|
|
ldr r0, _080B936C @ =0x04000018
|
|
_080B92E2:
|
|
str r0, [sp]
|
|
lsls r0, r1, 16
|
|
cmp r0, 0
|
|
bge _080B92EC
|
|
movs r1, 0
|
|
_080B92EC:
|
|
lsls r2, r1, 16
|
|
lsls r0, r4, 16
|
|
asrs r4, r0, 16
|
|
cmp r2, r0
|
|
bge _080B9318
|
|
ldr r5, _080B9370 @ =gUnknown_2038700
|
|
movs r0, 0xF0
|
|
lsls r0, 3
|
|
adds r6, r5, r0
|
|
_080B92FE:
|
|
asrs r2, 16
|
|
lsls r1, r2, 1
|
|
adds r0, r1, r5
|
|
strh r3, [r0]
|
|
adds r1, r6
|
|
strh r3, [r1]
|
|
adds r2, 0x1
|
|
lsls r2, 16
|
|
lsrs r1, r2, 16
|
|
lsls r2, r1, 16
|
|
asrs r0, r2, 16
|
|
cmp r0, r4
|
|
blt _080B92FE
|
|
_080B9318:
|
|
lsls r1, 16
|
|
asrs r0, r1, 16
|
|
cmp r0, 0x9F
|
|
bgt _080B9346
|
|
ldr r4, _080B9370 @ =gUnknown_2038700
|
|
lsls r0, r3, 16
|
|
asrs r0, 16
|
|
adds r3, r0, 0
|
|
adds r3, 0xF0
|
|
movs r0, 0xF0
|
|
lsls r0, 3
|
|
adds r5, r4, r0
|
|
_080B9330:
|
|
asrs r2, r1, 16
|
|
lsls r1, r2, 1
|
|
adds r0, r1, r4
|
|
strh r3, [r0]
|
|
adds r1, r5
|
|
strh r3, [r1]
|
|
adds r2, 0x1
|
|
lsls r1, r2, 16
|
|
asrs r0, r1, 16
|
|
cmp r0, 0x9F
|
|
ble _080B9330
|
|
_080B9346:
|
|
ldr r0, _080B9374 @ =0xa2600001
|
|
str r0, [sp, 0x4]
|
|
mov r1, sp
|
|
movs r2, 0
|
|
movs r0, 0x1
|
|
strb r0, [r1, 0x8]
|
|
mov r0, sp
|
|
strb r2, [r0, 0x9]
|
|
ldr r0, [sp]
|
|
ldr r1, [sp, 0x4]
|
|
ldr r2, [sp, 0x8]
|
|
bl sub_8087EE4
|
|
add sp, 0xC
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B9368: .4byte gUnknown_202297C
|
|
_080B936C: .4byte 0x04000018
|
|
_080B9370: .4byte gUnknown_2038700
|
|
_080B9374: .4byte 0xa2600001
|
|
thumb_func_end sub_80B92B8
|
|
|
|
thumb_func_start sub_80B9378
|
|
sub_80B9378: @ 80B9378
|
|
push {r4-r7,lr}
|
|
adds r5, r0, 0
|
|
ldr r0, _080B938C @ =gUnknown_2037F02
|
|
movs r2, 0
|
|
ldrsh r1, [r0, r2]
|
|
adds r7, r0, 0
|
|
cmp r1, 0
|
|
bne _080B9394
|
|
ldr r0, _080B9390 @ =gUnknown_2037F1A
|
|
b _080B9396
|
|
.align 2, 0
|
|
_080B938C: .4byte gUnknown_2037F02
|
|
_080B9390: .4byte gUnknown_2037F1A
|
|
_080B9394:
|
|
ldr r0, _080B93F8 @ =gUnknown_2037F1B
|
|
_080B9396:
|
|
ldrb r4, [r0]
|
|
movs r6, 0x18
|
|
adds r1, r7, 0
|
|
movs r2, 0x2
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, 0x1
|
|
bne _080B93B2
|
|
negs r0, r6
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
movs r2, 0x4
|
|
ldrsh r0, [r1, r2]
|
|
negs r0, r0
|
|
strh r0, [r1, 0x4]
|
|
_080B93B2:
|
|
adds r0, r4, 0
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r0, r6
|
|
strh r0, [r5, 0x20]
|
|
adds r0, r4, 0
|
|
bl sub_807492C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r0, 0x1E
|
|
strh r0, [r5, 0x22]
|
|
ldrh r1, [r7, 0xA]
|
|
strh r1, [r5, 0x2E]
|
|
ldrh r1, [r7, 0x4]
|
|
ldrh r2, [r5, 0x20]
|
|
adds r1, r2
|
|
strh r1, [r5, 0x32]
|
|
ldrh r1, [r7, 0x6]
|
|
adds r0, r1
|
|
strh r0, [r5, 0x36]
|
|
ldrh r0, [r7, 0x8]
|
|
strh r0, [r5, 0x38]
|
|
adds r0, r5, 0
|
|
bl sub_8075068
|
|
ldr r0, _080B93FC @ =sub_80B9400
|
|
str r0, [r5, 0x1C]
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B93F8: .4byte gUnknown_2037F1B
|
|
_080B93FC: .4byte sub_80B9400
|
|
thumb_func_end sub_80B9378
|
|
|
|
thumb_func_start sub_80B9400
|
|
sub_80B9400: @ 80B9400
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl AnimateBallThrow
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080B9414
|
|
adds r0, r4, 0
|
|
bl DestroyAnimSprite
|
|
_080B9414:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80B9400
|
|
|
|
thumb_func_start sub_80B941C
|
|
sub_80B941C: @ 80B941C
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
ldr r0, _080B9430 @ =gUnknown_2037F02
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0
|
|
bne _080B9438
|
|
ldr r0, _080B9434 @ =gUnknown_2037F1A
|
|
b _080B943A
|
|
.align 2, 0
|
|
_080B9430: .4byte gUnknown_2037F02
|
|
_080B9434: .4byte gUnknown_2037F1A
|
|
_080B9438:
|
|
ldr r0, _080B9498 @ =gUnknown_2037F1B
|
|
_080B943A:
|
|
ldrb r5, [r0]
|
|
adds r0, r5, 0
|
|
movs r1, 0
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, _080B949C @ =0x0000fff0
|
|
adds r0, r2
|
|
ldr r4, _080B94A0 @ =gUnknown_2037F02
|
|
movs r3, 0x2
|
|
ldrsh r1, [r4, r3]
|
|
lsls r1, 5
|
|
adds r0, r1
|
|
strh r0, [r6, 0x20]
|
|
adds r0, r5, 0
|
|
bl sub_807492C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r0, 0x20
|
|
strh r0, [r6, 0x22]
|
|
ldrh r2, [r6, 0x4]
|
|
lsls r1, r2, 22
|
|
lsrs r1, 22
|
|
movs r3, 0x2
|
|
ldrsh r0, [r4, r3]
|
|
lsls r0, 3
|
|
adds r1, r0
|
|
ldr r3, _080B94A4 @ =0x000003ff
|
|
adds r0, r3, 0
|
|
ands r1, r0
|
|
ldr r0, _080B94A8 @ =0xfffffc00
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strh r0, [r6, 0x4]
|
|
ldr r1, _080B94AC @ =DestroyAnimSprite
|
|
adds r0, r6, 0
|
|
bl StoreSpriteCallbackInData6
|
|
ldrh r0, [r4, 0x4]
|
|
strh r0, [r6, 0x2E]
|
|
ldr r0, _080B94B0 @ =sub_8074C44
|
|
str r0, [r6, 0x1C]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B9498: .4byte gUnknown_2037F1B
|
|
_080B949C: .4byte 0x0000fff0
|
|
_080B94A0: .4byte gUnknown_2037F02
|
|
_080B94A4: .4byte 0x000003ff
|
|
_080B94A8: .4byte 0xfffffc00
|
|
_080B94AC: .4byte DestroyAnimSprite
|
|
_080B94B0: .4byte sub_8074C44
|
|
thumb_func_end sub_80B941C
|
|
|
|
thumb_func_start sub_80B94B4
|
|
sub_80B94B4: @ 80B94B4
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
ldr r1, _080B94D8 @ =gTasks
|
|
adds r4, r0, r1
|
|
ldr r0, _080B94DC @ =gUnknown_2037F02
|
|
ldrh r2, [r0, 0x2]
|
|
movs r3, 0x2
|
|
ldrsh r1, [r0, r3]
|
|
adds r6, r0, 0
|
|
cmp r1, 0
|
|
beq _080B94E0
|
|
adds r0, r2, 0x3
|
|
b _080B94EC
|
|
.align 2, 0
|
|
_080B94D8: .4byte gTasks
|
|
_080B94DC: .4byte gUnknown_2037F02
|
|
_080B94E0:
|
|
ldr r0, _080B950C @ =gUnknown_2037EEC
|
|
ldrh r0, [r0]
|
|
movs r1, 0xA
|
|
bl __udivsi3
|
|
adds r0, 0x3
|
|
_080B94EC:
|
|
strh r0, [r4, 0x26]
|
|
strh r0, [r4, 0x24]
|
|
adds r1, r6, 0
|
|
ldrh r0, [r1, 0x4]
|
|
strh r0, [r4, 0xE]
|
|
movs r2, 0
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, 0x4
|
|
beq _080B9518
|
|
cmp r0, 0x5
|
|
bne _080B9558
|
|
ldr r0, _080B9510 @ =gUnknown_2022980
|
|
ldrh r0, [r0]
|
|
strh r0, [r4, 0x22]
|
|
ldr r0, _080B9514 @ =sub_80B9584
|
|
b _080B9576
|
|
.align 2, 0
|
|
_080B950C: .4byte gUnknown_2037EEC
|
|
_080B9510: .4byte gUnknown_2022980
|
|
_080B9514: .4byte sub_80B9584
|
|
_080B9518:
|
|
movs r0, 0
|
|
strh r0, [r4, 0x22]
|
|
movs r5, 0
|
|
_080B951E:
|
|
lsls r0, r5, 24
|
|
lsrs r0, 24
|
|
bl sub_8072DF0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080B9548
|
|
movs r3, 0x22
|
|
ldrsh r0, [r4, r3]
|
|
adds r0, 0x9
|
|
lsls r0, 1
|
|
adds r1, r4, 0
|
|
adds r1, 0x8
|
|
adds r1, r0
|
|
ldr r0, _080B9554 @ =gUnknown_2023D44
|
|
adds r0, r5, r0
|
|
ldrb r0, [r0]
|
|
strh r0, [r1]
|
|
ldrh r0, [r4, 0x22]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x22]
|
|
_080B9548:
|
|
adds r0, r5, 0x1
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
cmp r5, 0x3
|
|
bls _080B951E
|
|
b _080B9574
|
|
.align 2, 0
|
|
_080B9554: .4byte gUnknown_2023D44
|
|
_080B9558:
|
|
ldrb r0, [r6]
|
|
bl GetAnimBankSpriteId
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x1A]
|
|
cmp r0, 0xFF
|
|
bne _080B9570
|
|
adds r0, r5, 0
|
|
bl DestroyAnimVisualTask
|
|
b _080B9578
|
|
_080B9570:
|
|
movs r0, 0x1
|
|
strh r0, [r4, 0x22]
|
|
_080B9574:
|
|
ldr r0, _080B9580 @ =sub_80B967C
|
|
_080B9576:
|
|
str r0, [r4]
|
|
_080B9578:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B9580: .4byte sub_80B967C
|
|
thumb_func_end sub_80B94B4
|
|
|
|
thumb_func_start sub_80B9584
|
|
sub_80B9584: @ 80B9584
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
lsls r0, r2, 2
|
|
adds r0, r2
|
|
lsls r0, 3
|
|
ldr r1, _080B95A8 @ =gTasks
|
|
adds r3, r0, r1
|
|
movs r0, 0x8
|
|
ldrsh r1, [r3, r0]
|
|
cmp r1, 0x1
|
|
beq _080B9608
|
|
cmp r1, 0x1
|
|
bgt _080B95AC
|
|
cmp r1, 0
|
|
beq _080B95B2
|
|
b _080B9674
|
|
.align 2, 0
|
|
_080B95A8: .4byte gTasks
|
|
_080B95AC:
|
|
cmp r1, 0x2
|
|
beq _080B9668
|
|
b _080B9674
|
|
_080B95B2:
|
|
ldrh r0, [r3, 0xA]
|
|
adds r0, 0x1
|
|
strh r0, [r3, 0xA]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1
|
|
ble _080B9674
|
|
strh r1, [r3, 0xA]
|
|
ldrh r1, [r3, 0xC]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080B95DC
|
|
ldr r1, _080B95D8 @ =gUnknown_2022980
|
|
ldrh r0, [r3, 0x26]
|
|
ldrh r2, [r3, 0x22]
|
|
adds r0, r2
|
|
strh r0, [r1]
|
|
b _080B95E6
|
|
.align 2, 0
|
|
_080B95D8: .4byte gUnknown_2022980
|
|
_080B95DC:
|
|
ldr r0, _080B9604 @ =gUnknown_2022980
|
|
ldrh r1, [r3, 0x22]
|
|
ldrh r2, [r3, 0x26]
|
|
subs r1, r2
|
|
strh r1, [r0]
|
|
_080B95E6:
|
|
ldrh r0, [r3, 0xC]
|
|
adds r0, 0x1
|
|
strh r0, [r3, 0xC]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r2, 0xE
|
|
ldrsh r1, [r3, r2]
|
|
cmp r0, r1
|
|
bne _080B9674
|
|
movs r0, 0
|
|
strh r0, [r3, 0xC]
|
|
ldrh r0, [r3, 0x24]
|
|
subs r0, 0x1
|
|
strh r0, [r3, 0x24]
|
|
b _080B965C
|
|
.align 2, 0
|
|
_080B9604: .4byte gUnknown_2022980
|
|
_080B9608:
|
|
ldrh r0, [r3, 0xA]
|
|
adds r0, 0x1
|
|
strh r0, [r3, 0xA]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1
|
|
ble _080B9674
|
|
movs r0, 0
|
|
strh r0, [r3, 0xA]
|
|
ldrh r0, [r3, 0xC]
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
bne _080B9634
|
|
ldr r1, _080B9630 @ =gUnknown_2022980
|
|
ldrh r0, [r3, 0x24]
|
|
ldrh r2, [r3, 0x22]
|
|
adds r0, r2
|
|
strh r0, [r1]
|
|
b _080B963E
|
|
.align 2, 0
|
|
_080B9630: .4byte gUnknown_2022980
|
|
_080B9634:
|
|
ldr r0, _080B9664 @ =gUnknown_2022980
|
|
ldrh r1, [r3, 0x22]
|
|
ldrh r2, [r3, 0x24]
|
|
subs r1, r2
|
|
strh r1, [r0]
|
|
_080B963E:
|
|
ldrh r0, [r3, 0xC]
|
|
adds r0, 0x1
|
|
strh r0, [r3, 0xC]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x4
|
|
bne _080B9674
|
|
movs r0, 0
|
|
strh r0, [r3, 0xC]
|
|
ldrh r0, [r3, 0x24]
|
|
subs r0, 0x1
|
|
strh r0, [r3, 0x24]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bne _080B9674
|
|
_080B965C:
|
|
ldrh r0, [r3, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r3, 0x8]
|
|
b _080B9674
|
|
.align 2, 0
|
|
_080B9664: .4byte gUnknown_2022980
|
|
_080B9668:
|
|
ldr r1, _080B9678 @ =gUnknown_2022980
|
|
ldrh r0, [r3, 0x22]
|
|
strh r0, [r1]
|
|
adds r0, r2, 0
|
|
bl DestroyAnimVisualTask
|
|
_080B9674:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B9678: .4byte gUnknown_2022980
|
|
thumb_func_end sub_80B9584
|
|
|
|
thumb_func_start sub_80B967C
|
|
sub_80B967C: @ 80B967C
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
lsls r0, r3, 2
|
|
adds r0, r3
|
|
lsls r0, 3
|
|
ldr r1, _080B96A0 @ =gTasks
|
|
adds r4, r0, r1
|
|
movs r0, 0x8
|
|
ldrsh r5, [r4, r0]
|
|
cmp r5, 0x1
|
|
beq _080B96DC
|
|
cmp r5, 0x1
|
|
bgt _080B96A4
|
|
cmp r5, 0
|
|
beq _080B96AA
|
|
b _080B9756
|
|
.align 2, 0
|
|
_080B96A0: .4byte gTasks
|
|
_080B96A4:
|
|
cmp r5, 0x2
|
|
beq _080B9718
|
|
b _080B9756
|
|
_080B96AA:
|
|
ldrh r0, [r4, 0xA]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0xA]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1
|
|
ble _080B9756
|
|
strh r5, [r4, 0xA]
|
|
adds r0, r4, 0
|
|
bl sub_80B9760
|
|
ldrh r0, [r4, 0xC]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0xC]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r2, 0xE
|
|
ldrsh r1, [r4, r2]
|
|
cmp r0, r1
|
|
bne _080B9756
|
|
strh r5, [r4, 0xC]
|
|
ldrh r0, [r4, 0x24]
|
|
subs r0, 0x1
|
|
strh r0, [r4, 0x24]
|
|
b _080B9710
|
|
_080B96DC:
|
|
ldrh r0, [r4, 0xA]
|
|
adds r0, 0x1
|
|
movs r5, 0
|
|
strh r0, [r4, 0xA]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1
|
|
ble _080B9756
|
|
strh r5, [r4, 0xA]
|
|
adds r0, r4, 0
|
|
bl sub_80B9760
|
|
ldrh r0, [r4, 0xC]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0xC]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x4
|
|
bne _080B9756
|
|
strh r5, [r4, 0xC]
|
|
ldrh r0, [r4, 0x24]
|
|
subs r0, 0x1
|
|
strh r0, [r4, 0x24]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bne _080B9756
|
|
_080B9710:
|
|
ldrh r0, [r4, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x8]
|
|
b _080B9756
|
|
_080B9718:
|
|
movs r2, 0
|
|
movs r7, 0x22
|
|
ldrsh r0, [r4, r7]
|
|
cmp r2, r0
|
|
bge _080B9750
|
|
ldr r0, _080B975C @ =gSprites
|
|
mov r12, r0
|
|
adds r5, r4, 0
|
|
adds r5, 0x8
|
|
movs r6, 0
|
|
_080B972C:
|
|
adds r0, r2, 0
|
|
adds r0, 0x9
|
|
lsls r0, 1
|
|
adds r0, r5, r0
|
|
movs r7, 0
|
|
ldrsh r1, [r0, r7]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
add r0, r12
|
|
strh r6, [r0, 0x24]
|
|
adds r0, r2, 0x1
|
|
lsls r0, 16
|
|
lsrs r2, r0, 16
|
|
movs r1, 0x22
|
|
ldrsh r0, [r4, r1]
|
|
cmp r2, r0
|
|
blt _080B972C
|
|
_080B9750:
|
|
adds r0, r3, 0
|
|
bl DestroyAnimVisualTask
|
|
_080B9756:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B975C: .4byte gSprites
|
|
thumb_func_end sub_80B967C
|
|
|
|
thumb_func_start sub_80B9760
|
|
sub_80B9760: @ 80B9760
|
|
push {r4-r7,lr}
|
|
adds r3, r0, 0
|
|
ldrh r1, [r3, 0xC]
|
|
movs r4, 0x1
|
|
adds r0, r4, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080B9788
|
|
movs r0, 0x24
|
|
ldrsh r1, [r3, r0]
|
|
lsrs r0, r1, 31
|
|
adds r1, r0
|
|
asrs r1, 1
|
|
ldrh r2, [r3, 0x24]
|
|
adds r0, r4, 0
|
|
ands r0, r2
|
|
adds r1, r0
|
|
lsls r1, 16
|
|
lsrs r4, r1, 16
|
|
b _080B9798
|
|
_080B9788:
|
|
movs r1, 0x24
|
|
ldrsh r0, [r3, r1]
|
|
lsrs r1, r0, 31
|
|
adds r0, r1
|
|
asrs r0, 1
|
|
negs r0, r0
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
_080B9798:
|
|
movs r2, 0
|
|
movs r7, 0x22
|
|
ldrsh r0, [r3, r7]
|
|
cmp r2, r0
|
|
bge _080B97CC
|
|
ldr r6, _080B97D4 @ =gSprites
|
|
adds r5, r3, 0
|
|
adds r5, 0x8
|
|
_080B97A8:
|
|
adds r0, r2, 0
|
|
adds r0, 0x9
|
|
lsls r0, 1
|
|
adds r0, r5, r0
|
|
movs r7, 0
|
|
ldrsh r1, [r0, r7]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
strh r4, [r0, 0x24]
|
|
adds r0, r2, 0x1
|
|
lsls r0, 16
|
|
lsrs r2, r0, 16
|
|
movs r1, 0x22
|
|
ldrsh r0, [r3, r1]
|
|
cmp r2, r0
|
|
blt _080B97A8
|
|
_080B97CC:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B97D4: .4byte gSprites
|
|
thumb_func_end sub_80B9760
|
|
|
|
thumb_func_start sub_80B97D8
|
|
sub_80B97D8: @ 80B97D8
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
ldr r3, _080B97F8 @ =gUnknown_2037F02
|
|
movs r2, 0
|
|
ldr r0, _080B97FC @ =gUnknown_2037EEC
|
|
ldrh r0, [r0]
|
|
cmp r0, 0x63
|
|
bls _080B97EC
|
|
movs r2, 0x1
|
|
_080B97EC:
|
|
strh r2, [r3, 0x1E]
|
|
adds r0, r1, 0
|
|
bl DestroyAnimVisualTask
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B97F8: .4byte gUnknown_2037F02
|
|
_080B97FC: .4byte gUnknown_2037EEC
|
|
thumb_func_end sub_80B97D8
|
|
|
|
thumb_func_start sub_80B9800
|
|
sub_80B9800: @ 80B9800
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
ldr r2, _080B9818 @ =gUnknown_2037F02
|
|
ldrh r1, [r2]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
adds r6, r2, 0
|
|
cmp r0, 0
|
|
beq _080B9820
|
|
ldr r0, _080B981C @ =gUnknown_2037F1B
|
|
b _080B9822
|
|
.align 2, 0
|
|
_080B9818: .4byte gUnknown_2037F02
|
|
_080B981C: .4byte gUnknown_2037F1B
|
|
_080B9820:
|
|
ldr r0, _080B9890 @ =gUnknown_2037F1A
|
|
_080B9822:
|
|
ldrb r0, [r0]
|
|
adds r5, r0, 0
|
|
movs r1, 0
|
|
ldrsh r0, [r6, r1]
|
|
cmp r0, 0x1
|
|
ble _080B9832
|
|
movs r0, 0x2
|
|
eors r5, r0
|
|
_080B9832:
|
|
ldr r0, _080B9894 @ =sub_80B98A8
|
|
ldrb r1, [r6, 0x2]
|
|
bl CreateTask
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r4, r0, 2
|
|
adds r4, r0
|
|
lsls r4, 3
|
|
ldr r0, _080B9898 @ =gTasks
|
|
adds r4, r0
|
|
adds r0, r5, 0
|
|
movs r1, 0x2
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0x20
|
|
subs r1, r0
|
|
ldr r2, _080B989C @ =0x000001ff
|
|
adds r0, r2, 0
|
|
ands r1, r0
|
|
strh r1, [r4, 0xA]
|
|
adds r0, r5, 0
|
|
movs r1, 0x3
|
|
bl sub_8074480
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0x40
|
|
subs r1, r0
|
|
movs r0, 0xFF
|
|
ands r1, r0
|
|
strh r1, [r4, 0xC]
|
|
ldr r2, _080B98A0 @ =gUnknown_2022980
|
|
ldrh r0, [r4, 0xA]
|
|
strh r0, [r2]
|
|
ldr r0, _080B98A4 @ =gUnknown_2022982
|
|
strh r1, [r0]
|
|
ldrh r0, [r6, 0x4]
|
|
strh r0, [r4, 0xE]
|
|
adds r0, r7, 0
|
|
bl DestroyAnimVisualTask
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B9890: .4byte gUnknown_2037F1A
|
|
_080B9894: .4byte sub_80B98A8
|
|
_080B9898: .4byte gTasks
|
|
_080B989C: .4byte 0x000001ff
|
|
_080B98A0: .4byte gUnknown_2022980
|
|
_080B98A4: .4byte gUnknown_2022982
|
|
thumb_func_end sub_80B9800
|
|
|
|
thumb_func_start sub_80B98A8
|
|
sub_80B98A8: @ 80B98A8
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
lsls r0, r3, 2
|
|
adds r0, r3
|
|
lsls r0, 3
|
|
ldr r1, _080B98D8 @ =gTasks
|
|
adds r2, r0, r1
|
|
ldr r0, _080B98DC @ =gUnknown_2037F02
|
|
movs r4, 0xE
|
|
ldrsh r1, [r0, r4]
|
|
movs r4, 0xE
|
|
ldrsh r0, [r2, r4]
|
|
cmp r1, r0
|
|
bne _080B98E8
|
|
ldr r0, _080B98E0 @ =gUnknown_2022980
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
ldr r0, _080B98E4 @ =gUnknown_2022982
|
|
strh r1, [r0]
|
|
adds r0, r3, 0
|
|
bl DestroyTask
|
|
b _080B98F4
|
|
.align 2, 0
|
|
_080B98D8: .4byte gTasks
|
|
_080B98DC: .4byte gUnknown_2037F02
|
|
_080B98E0: .4byte gUnknown_2022980
|
|
_080B98E4: .4byte gUnknown_2022982
|
|
_080B98E8:
|
|
ldr r1, _080B98FC @ =gUnknown_2022980
|
|
ldrh r0, [r2, 0xA]
|
|
strh r0, [r1]
|
|
ldr r1, _080B9900 @ =gUnknown_2022982
|
|
ldrh r0, [r2, 0xC]
|
|
strh r0, [r1]
|
|
_080B98F4:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B98FC: .4byte gUnknown_2022980
|
|
_080B9900: .4byte gUnknown_2022982
|
|
thumb_func_end sub_80B98A8
|
|
|
|
thumb_func_start sub_80B9904
|
|
sub_80B9904: @ 80B9904
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
ldr r5, _080B993C @ =gUnknown_2037F02
|
|
ldrh r0, [r5]
|
|
ldrh r1, [r4, 0x20]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x20]
|
|
ldrh r0, [r5, 0x2]
|
|
ldrh r1, [r4, 0x22]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x22]
|
|
ldrh r0, [r5, 0x4]
|
|
strh r0, [r4, 0x2E]
|
|
ldr r0, _080B9940 @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0
|
|
beq _080B9944
|
|
ldrh r0, [r5, 0x6]
|
|
negs r0, r0
|
|
strh r0, [r4, 0x30]
|
|
movs r0, 0x1
|
|
strh r0, [r4, 0x36]
|
|
b _080B9952
|
|
.align 2, 0
|
|
_080B993C: .4byte gUnknown_2037F02
|
|
_080B9940: .4byte gUnknown_2037F1A
|
|
_080B9944:
|
|
ldrh r0, [r5, 0x6]
|
|
strh r0, [r4, 0x30]
|
|
strh r1, [r4, 0x36]
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl StartSpriteAnim
|
|
_080B9952:
|
|
ldr r0, _080B9968 @ =gUnknown_2037F02
|
|
ldrh r0, [r0, 0x8]
|
|
strh r0, [r4, 0x34]
|
|
ldr r1, _080B996C @ =sub_80B9970
|
|
str r1, [r4, 0x1C]
|
|
adds r0, r4, 0
|
|
bl _call_via_r1
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B9968: .4byte gUnknown_2037F02
|
|
_080B996C: .4byte sub_80B9970
|
|
thumb_func_end sub_80B9904
|
|
|
|
thumb_func_start sub_80B9970
|
|
sub_80B9970: @ 80B9970
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0x1E
|
|
bl Cos
|
|
strh r0, [r4, 0x24]
|
|
movs r2, 0x2E
|
|
ldrsh r0, [r4, r2]
|
|
movs r1, 0xA
|
|
bl Sin
|
|
strh r0, [r4, 0x26]
|
|
ldrh r0, [r4, 0x2E]
|
|
cmp r0, 0x7F
|
|
bhi _080B99A2
|
|
ldrb r0, [r4, 0x5]
|
|
movs r1, 0xD
|
|
negs r1, r1
|
|
ands r1, r0
|
|
movs r0, 0x4
|
|
orrs r1, r0
|
|
strb r1, [r4, 0x5]
|
|
b _080B99AA
|
|
_080B99A2:
|
|
ldrb r0, [r4, 0x5]
|
|
movs r1, 0xC
|
|
orrs r0, r1
|
|
strb r0, [r4, 0x5]
|
|
_080B99AA:
|
|
ldrh r0, [r4, 0x30]
|
|
ldrh r1, [r4, 0x2E]
|
|
adds r0, r1
|
|
movs r1, 0xFF
|
|
ands r0, r1
|
|
strh r0, [r4, 0x2E]
|
|
ldrh r0, [r4, 0x32]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x32]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r2, 0x34
|
|
ldrsh r1, [r4, r2]
|
|
cmp r0, r1
|
|
bne _080B99CE
|
|
adds r0, r4, 0
|
|
bl DestroyAnimSprite
|
|
_080B99CE:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80B9970
|
|
|
|
thumb_func_start sub_80B99D4
|
|
sub_80B99D4: @ 80B99D4
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
ldr r4, _080B9A0C @ =gUnknown_2037F02
|
|
movs r1, 0
|
|
ldrsh r0, [r4, r1]
|
|
bl sub_80B9A14
|
|
movs r1, 0x2
|
|
ldrsb r1, [r4, r1]
|
|
ldrb r2, [r4, 0x4]
|
|
ldrb r3, [r4, 0x6]
|
|
ldrh r4, [r4, 0x8]
|
|
str r4, [sp]
|
|
bl BeginNormalPaletteFade
|
|
adds r2, r5, 0
|
|
adds r2, 0x3E
|
|
ldrb r0, [r2]
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r0, _080B9A10 @ =sub_80B9A5C
|
|
str r0, [r5, 0x1C]
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B9A0C: .4byte gUnknown_2037F02
|
|
_080B9A10: .4byte sub_80B9A5C
|
|
thumb_func_end sub_80B99D4
|
|
|
|
thumb_func_start sub_80B9A14
|
|
sub_80B9A14: @ 80B9A14
|
|
push {r4-r6,lr}
|
|
mov r6, r8
|
|
push {r6}
|
|
sub sp, 0xC
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r4, 0x1
|
|
mov r8, r0
|
|
mov r1, r8
|
|
ands r1, r4
|
|
mov r8, r1
|
|
lsls r0, 16
|
|
asrs r1, r0, 17
|
|
ands r1, r4
|
|
asrs r2, r0, 18
|
|
ands r2, r4
|
|
asrs r3, r0, 19
|
|
ands r3, r4
|
|
asrs r6, r0, 20
|
|
ands r6, r4
|
|
asrs r5, r0, 21
|
|
ands r5, r4
|
|
asrs r0, 22
|
|
ands r0, r4
|
|
str r6, [sp]
|
|
str r5, [sp, 0x4]
|
|
str r0, [sp, 0x8]
|
|
mov r0, r8
|
|
bl sub_8075BE8
|
|
add sp, 0xC
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80B9A14
|
|
|
|
thumb_func_start sub_80B9A5C
|
|
sub_80B9A5C: @ 80B9A5C
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
ldr r0, _080B9A78 @ =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080B9A72
|
|
adds r0, r2, 0
|
|
bl DestroyAnimSprite
|
|
_080B9A72:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B9A78: .4byte gPaletteFade
|
|
thumb_func_end sub_80B9A5C
|
|
|
|
thumb_func_start sub_80B9A7C
|
|
sub_80B9A7C: @ 80B9A7C
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
ldr r4, _080B9AC8 @ =gUnknown_2037F02
|
|
ldrh r0, [r4, 0x2]
|
|
strh r0, [r5, 0x2E]
|
|
strh r0, [r5, 0x30]
|
|
ldrh r0, [r4, 0x4]
|
|
strh r0, [r5, 0x32]
|
|
ldrh r0, [r4, 0x6]
|
|
strh r0, [r5, 0x34]
|
|
ldrh r0, [r4, 0x8]
|
|
strh r0, [r5, 0x36]
|
|
ldrh r0, [r4, 0xA]
|
|
strh r0, [r5, 0x38]
|
|
ldrh r0, [r4, 0xC]
|
|
strh r0, [r5, 0x3A]
|
|
ldrh r0, [r4]
|
|
strh r0, [r5, 0x3C]
|
|
movs r1, 0x3C
|
|
ldrsh r0, [r5, r1]
|
|
bl sub_80B9A14
|
|
ldrb r1, [r4, 0x8]
|
|
ldrh r2, [r4, 0x6]
|
|
bl BlendPalettes
|
|
adds r2, r5, 0
|
|
adds r2, 0x3E
|
|
ldrb r0, [r2]
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r0, _080B9ACC @ =sub_80B9AD0
|
|
str r0, [r5, 0x1C]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B9AC8: .4byte gUnknown_2037F02
|
|
_080B9ACC: .4byte sub_80B9AD0
|
|
thumb_func_end sub_80B9A7C
|
|
|
|
thumb_func_start sub_80B9AD0
|
|
sub_80B9AD0: @ 80B9AD0
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrh r1, [r4, 0x2E]
|
|
movs r2, 0x2E
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0
|
|
ble _080B9AE4
|
|
subs r0, r1, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
b _080B9B54
|
|
_080B9AE4:
|
|
ldr r0, _080B9B00 @ =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080B9B54
|
|
movs r1, 0x32
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bne _080B9B08
|
|
ldr r0, _080B9B04 @ =sub_80B9B5C
|
|
str r0, [r4, 0x1C]
|
|
b _080B9B54
|
|
.align 2, 0
|
|
_080B9B00: .4byte gPaletteFade
|
|
_080B9B04: .4byte sub_80B9B5C
|
|
_080B9B08:
|
|
movs r2, 0x3C
|
|
ldrsh r0, [r4, r2]
|
|
bl sub_80B9A14
|
|
adds r3, r0, 0
|
|
ldrh r1, [r4, 0x30]
|
|
movs r0, 0x80
|
|
lsls r0, 1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080B9B2E
|
|
ldrh r1, [r4, 0x36]
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
ldrh r2, [r4, 0x34]
|
|
adds r0, r3, 0
|
|
bl BlendPalettes
|
|
b _080B9B3C
|
|
_080B9B2E:
|
|
ldrh r1, [r4, 0x3A]
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
ldrh r2, [r4, 0x38]
|
|
adds r0, r3, 0
|
|
bl BlendPalettes
|
|
_080B9B3C:
|
|
ldrh r0, [r4, 0x30]
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r1, r2, 0
|
|
eors r0, r1
|
|
strh r0, [r4, 0x30]
|
|
movs r1, 0xFF
|
|
ands r0, r1
|
|
strh r0, [r4, 0x2E]
|
|
ldrh r0, [r4, 0x32]
|
|
subs r0, 0x1
|
|
strh r0, [r4, 0x32]
|
|
_080B9B54:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80B9AD0
|
|
|
|
thumb_func_start sub_80B9B5C
|
|
sub_80B9B5C: @ 80B9B5C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldr r0, _080B9B88 @ =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080B9B82
|
|
movs r1, 0x3C
|
|
ldrsh r0, [r4, r1]
|
|
bl sub_80B9A14
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl BlendPalettes
|
|
adds r0, r4, 0
|
|
bl DestroyAnimSprite
|
|
_080B9B82:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B9B88: .4byte gPaletteFade
|
|
thumb_func_end sub_80B9B5C
|
|
|
|
thumb_func_start sub_80B9B8C
|
|
sub_80B9B8C: @ 80B9B8C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldr r1, _080B9BD0 @ =gUnknown_2037F02
|
|
ldrh r0, [r1]
|
|
ldrh r2, [r4, 0x20]
|
|
adds r0, r2
|
|
movs r2, 0
|
|
strh r0, [r4, 0x20]
|
|
ldrh r0, [r1, 0x2]
|
|
ldrh r1, [r4, 0x22]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x22]
|
|
strh r2, [r4, 0x2E]
|
|
movs r0, 0xA
|
|
strh r0, [r4, 0x30]
|
|
movs r0, 0x8
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x28
|
|
strh r0, [r4, 0x34]
|
|
movs r0, 0x70
|
|
strh r0, [r4, 0x36]
|
|
strh r2, [r4, 0x38]
|
|
ldr r1, _080B9BD4 @ =move_anim_8074EE0
|
|
adds r0, r4, 0
|
|
bl StoreSpriteCallbackInData6
|
|
ldr r1, _080B9BD8 @ =sub_8074AE0
|
|
str r1, [r4, 0x1C]
|
|
adds r0, r4, 0
|
|
bl _call_via_r1
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B9BD0: .4byte gUnknown_2037F02
|
|
_080B9BD4: .4byte move_anim_8074EE0
|
|
_080B9BD8: .4byte sub_8074AE0
|
|
thumb_func_end sub_80B9B8C
|
|
|
|
thumb_func_start sub_80B9BDC
|
|
sub_80B9BDC: @ 80B9BDC
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _080B9C20 @ =gTasks
|
|
lsls r4, r0, 2
|
|
adds r4, r0
|
|
lsls r4, 3
|
|
adds r4, r1
|
|
ldr r3, _080B9C24 @ =gUnknown_2037F02
|
|
ldrh r1, [r3]
|
|
movs r5, 0
|
|
strh r1, [r4, 0x8]
|
|
ldrh r1, [r3, 0x2]
|
|
strh r1, [r4, 0xA]
|
|
ldrh r1, [r3, 0x4]
|
|
strh r1, [r4, 0xC]
|
|
ldrh r1, [r3, 0x6]
|
|
strh r1, [r4, 0xE]
|
|
ldrh r2, [r3, 0x8]
|
|
strh r2, [r4, 0x10]
|
|
ldrh r1, [r3, 0xA]
|
|
strh r1, [r4, 0x12]
|
|
strh r5, [r4, 0x18]
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
movs r1, 0
|
|
bl sub_80B9C2C
|
|
ldr r0, _080B9C28 @ =sub_80B9C7C
|
|
str r0, [r4]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B9C20: .4byte gTasks
|
|
_080B9C24: .4byte gUnknown_2037F02
|
|
_080B9C28: .4byte sub_80B9C7C
|
|
thumb_func_end sub_80B9BDC
|
|
|
|
thumb_func_start sub_80B9C2C
|
|
sub_80B9C2C: @ 80B9C2C
|
|
push {r4-r6,lr}
|
|
sub sp, 0x4
|
|
adds r5, r1, 0
|
|
adds r6, r2, 0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
lsls r6, 24
|
|
lsrs r6, 24
|
|
ldr r1, _080B9C78 @ =gTasks
|
|
lsls r4, r0, 2
|
|
adds r4, r0
|
|
lsls r4, 3
|
|
adds r4, r1
|
|
movs r1, 0x8
|
|
ldrsh r0, [r4, r1]
|
|
bl sub_80B9A14
|
|
movs r1, 0xA
|
|
ldrsb r1, [r4, r1]
|
|
ldrh r2, [r4, 0x12]
|
|
str r2, [sp]
|
|
adds r2, r5, 0
|
|
adds r3, r6, 0
|
|
bl BeginNormalPaletteFade
|
|
ldrh r0, [r4, 0xC]
|
|
subs r0, 0x1
|
|
strh r0, [r4, 0xC]
|
|
ldrh r0, [r4, 0x18]
|
|
movs r1, 0x1
|
|
eors r0, r1
|
|
strh r0, [r4, 0x18]
|
|
add sp, 0x4
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B9C78: .4byte gTasks
|
|
thumb_func_end sub_80B9C2C
|
|
|
|
thumb_func_start sub_80B9C7C
|
|
sub_80B9C7C: @ 80B9C7C
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
adds r4, r3, 0
|
|
ldr r0, _080B9CB4 @ =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080B9CDE
|
|
ldr r1, _080B9CB8 @ =gTasks
|
|
lsls r2, r3, 2
|
|
adds r0, r2, r3
|
|
lsls r0, 3
|
|
adds r3, r0, r1
|
|
movs r5, 0xC
|
|
ldrsh r0, [r3, r5]
|
|
adds r6, r1, 0
|
|
adds r5, r2, 0
|
|
cmp r0, 0
|
|
ble _080B9CD8
|
|
movs r1, 0x18
|
|
ldrsh r0, [r3, r1]
|
|
cmp r0, 0
|
|
bne _080B9CBC
|
|
ldrb r1, [r3, 0xE]
|
|
ldrb r2, [r3, 0x10]
|
|
b _080B9CC0
|
|
.align 2, 0
|
|
_080B9CB4: .4byte gPaletteFade
|
|
_080B9CB8: .4byte gTasks
|
|
_080B9CBC:
|
|
ldrb r1, [r3, 0x10]
|
|
ldrb r2, [r3, 0xE]
|
|
_080B9CC0:
|
|
adds r0, r5, r4
|
|
lsls r0, 3
|
|
adds r0, r6
|
|
movs r3, 0xC
|
|
ldrsh r0, [r0, r3]
|
|
cmp r0, 0x1
|
|
bne _080B9CD0
|
|
movs r2, 0
|
|
_080B9CD0:
|
|
adds r0, r4, 0
|
|
bl sub_80B9C2C
|
|
b _080B9CDE
|
|
_080B9CD8:
|
|
adds r0, r4, 0
|
|
bl DestroyAnimVisualTask
|
|
_080B9CDE:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80B9C7C
|
|
|
|
thumb_func_start sub_80B9CE4
|
|
sub_80B9CE4: @ 80B9CE4
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
movs r5, 0
|
|
ldr r3, _080B9D88 @ =gTasks
|
|
lsls r0, r6, 2
|
|
adds r0, r6
|
|
lsls r0, 3
|
|
adds r0, r3
|
|
ldr r2, _080B9D8C @ =gUnknown_2037F02
|
|
ldrh r1, [r2]
|
|
strh r1, [r0, 0x8]
|
|
ldrh r1, [r2, 0x2]
|
|
strh r1, [r0, 0xA]
|
|
ldrh r1, [r2, 0x4]
|
|
strh r1, [r0, 0xC]
|
|
ldrh r1, [r2, 0x6]
|
|
strh r1, [r0, 0xE]
|
|
ldrh r1, [r2, 0x8]
|
|
strh r1, [r0, 0x10]
|
|
ldrh r1, [r2, 0xA]
|
|
strh r1, [r0, 0x12]
|
|
strh r5, [r0, 0x18]
|
|
movs r4, 0
|
|
ldr r0, _080B9D90 @ =gBattlersCount
|
|
ldrb r1, [r0]
|
|
mov r9, r3
|
|
mov r8, r2
|
|
cmp r5, r1
|
|
bge _080B9D4C
|
|
ldr r0, _080B9D94 @ =gUnknown_2037F1A
|
|
ldrb r3, [r0]
|
|
ldr r7, _080B9D98 @ =gUnknown_2037F1B
|
|
movs r0, 0x1
|
|
mov r12, r0
|
|
adds r2, r1, 0
|
|
_080B9D32:
|
|
cmp r4, r3
|
|
beq _080B9D46
|
|
ldrb r1, [r7]
|
|
cmp r4, r1
|
|
beq _080B9D46
|
|
adds r1, r4, 0
|
|
adds r1, 0x10
|
|
mov r0, r12
|
|
lsls r0, r1
|
|
orrs r5, r0
|
|
_080B9D46:
|
|
adds r4, 0x1
|
|
cmp r4, r2
|
|
blt _080B9D32
|
|
_080B9D4C:
|
|
mov r2, r8
|
|
movs r1, 0
|
|
ldrsh r0, [r2, r1]
|
|
cmp r0, 0x1
|
|
bne _080B9D5A
|
|
movs r0, 0xE
|
|
orrs r5, r0
|
|
_080B9D5A:
|
|
lsls r4, r6, 2
|
|
adds r4, r6
|
|
lsls r4, 3
|
|
add r4, r9
|
|
lsrs r0, r5, 16
|
|
strh r0, [r4, 0x1A]
|
|
movs r0, 0xFF
|
|
ands r5, r0
|
|
strh r5, [r4, 0x1C]
|
|
ldrb r2, [r4, 0x10]
|
|
adds r0, r6, 0
|
|
movs r1, 0
|
|
bl sub_80B9DA0
|
|
ldr r0, _080B9D9C @ =sub_80B9DF0
|
|
str r0, [r4]
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B9D88: .4byte gTasks
|
|
_080B9D8C: .4byte gUnknown_2037F02
|
|
_080B9D90: .4byte gBattlersCount
|
|
_080B9D94: .4byte gUnknown_2037F1A
|
|
_080B9D98: .4byte gUnknown_2037F1B
|
|
_080B9D9C: .4byte sub_80B9DF0
|
|
thumb_func_end sub_80B9CE4
|
|
|
|
thumb_func_start sub_80B9DA0
|
|
sub_80B9DA0: @ 80B9DA0
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r5, r1, 0
|
|
adds r3, r2, 0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
ldr r1, _080B9DEC @ =gTasks
|
|
lsls r4, r0, 2
|
|
adds r4, r0
|
|
lsls r4, 3
|
|
adds r4, r1
|
|
ldrh r0, [r4, 0x1A]
|
|
lsls r0, 16
|
|
ldrh r1, [r4, 0x1C]
|
|
orrs r0, r1
|
|
movs r1, 0xA
|
|
ldrsb r1, [r4, r1]
|
|
ldrh r2, [r4, 0x12]
|
|
str r2, [sp]
|
|
adds r2, r5, 0
|
|
bl BeginNormalPaletteFade
|
|
ldrh r0, [r4, 0xC]
|
|
subs r0, 0x1
|
|
strh r0, [r4, 0xC]
|
|
ldrh r0, [r4, 0x18]
|
|
movs r1, 0x1
|
|
eors r0, r1
|
|
strh r0, [r4, 0x18]
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B9DEC: .4byte gTasks
|
|
thumb_func_end sub_80B9DA0
|
|
|
|
thumb_func_start sub_80B9DF0
|
|
sub_80B9DF0: @ 80B9DF0
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
adds r4, r3, 0
|
|
ldr r0, _080B9E28 @ =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080B9E52
|
|
ldr r1, _080B9E2C @ =gTasks
|
|
lsls r2, r3, 2
|
|
adds r0, r2, r3
|
|
lsls r0, 3
|
|
adds r3, r0, r1
|
|
movs r5, 0xC
|
|
ldrsh r0, [r3, r5]
|
|
adds r6, r1, 0
|
|
adds r5, r2, 0
|
|
cmp r0, 0
|
|
ble _080B9E4C
|
|
movs r1, 0x18
|
|
ldrsh r0, [r3, r1]
|
|
cmp r0, 0
|
|
bne _080B9E30
|
|
ldrb r1, [r3, 0xE]
|
|
ldrb r2, [r3, 0x10]
|
|
b _080B9E34
|
|
.align 2, 0
|
|
_080B9E28: .4byte gPaletteFade
|
|
_080B9E2C: .4byte gTasks
|
|
_080B9E30:
|
|
ldrb r1, [r3, 0x10]
|
|
ldrb r2, [r3, 0xE]
|
|
_080B9E34:
|
|
adds r0, r5, r4
|
|
lsls r0, 3
|
|
adds r0, r6
|
|
movs r3, 0xC
|
|
ldrsh r0, [r0, r3]
|
|
cmp r0, 0x1
|
|
bne _080B9E44
|
|
movs r2, 0
|
|
_080B9E44:
|
|
adds r0, r4, 0
|
|
bl sub_80B9DA0
|
|
b _080B9E52
|
|
_080B9E4C:
|
|
adds r0, r4, 0
|
|
bl DestroyAnimVisualTask
|
|
_080B9E52:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80B9DF0
|
|
|
|
thumb_func_start sub_80B9E58
|
|
sub_80B9E58: @ 80B9E58
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _080B9E9C @ =gTasks
|
|
lsls r4, r0, 2
|
|
adds r4, r0
|
|
lsls r4, 3
|
|
adds r4, r1
|
|
ldr r3, _080B9EA0 @ =gUnknown_2037F02
|
|
ldrh r1, [r3]
|
|
movs r5, 0
|
|
strh r1, [r4, 0x8]
|
|
ldrh r1, [r3, 0x2]
|
|
strh r1, [r4, 0xA]
|
|
ldrh r1, [r3, 0x4]
|
|
strh r1, [r4, 0xC]
|
|
ldrh r1, [r3, 0x6]
|
|
strh r1, [r4, 0xE]
|
|
ldrh r2, [r3, 0x8]
|
|
strh r2, [r4, 0x10]
|
|
ldrh r1, [r3, 0xA]
|
|
strh r1, [r4, 0x12]
|
|
strh r5, [r4, 0x18]
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
movs r1, 0
|
|
bl sub_80B9EA8
|
|
ldr r0, _080B9EA4 @ =sub_80B9F04
|
|
str r0, [r4]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B9E9C: .4byte gTasks
|
|
_080B9EA0: .4byte gUnknown_2037F02
|
|
_080B9EA4: .4byte sub_80B9F04
|
|
thumb_func_end sub_80B9E58
|
|
|
|
thumb_func_start sub_80B9EA8
|
|
sub_80B9EA8: @ 80B9EA8
|
|
push {r4-r6,lr}
|
|
sub sp, 0x4
|
|
adds r5, r1, 0
|
|
adds r6, r2, 0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
lsls r6, 24
|
|
lsrs r6, 24
|
|
ldr r1, _080B9F00 @ =gTasks
|
|
lsls r4, r0, 2
|
|
adds r4, r0
|
|
lsls r4, 3
|
|
adds r4, r1
|
|
ldrh r0, [r4, 0x8]
|
|
bl IndexOfSpritePaletteTag
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r0, 0x10
|
|
movs r2, 0x1
|
|
lsls r2, r0
|
|
movs r1, 0xA
|
|
ldrsb r1, [r4, r1]
|
|
ldrh r0, [r4, 0x12]
|
|
str r0, [sp]
|
|
adds r0, r2, 0
|
|
adds r2, r5, 0
|
|
adds r3, r6, 0
|
|
bl BeginNormalPaletteFade
|
|
ldrh r0, [r4, 0xC]
|
|
subs r0, 0x1
|
|
strh r0, [r4, 0xC]
|
|
ldrh r0, [r4, 0x18]
|
|
movs r1, 0x1
|
|
eors r0, r1
|
|
strh r0, [r4, 0x18]
|
|
add sp, 0x4
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B9F00: .4byte gTasks
|
|
thumb_func_end sub_80B9EA8
|
|
|
|
thumb_func_start sub_80B9F04
|
|
sub_80B9F04: @ 80B9F04
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
adds r4, r3, 0
|
|
ldr r0, _080B9F3C @ =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080B9F66
|
|
ldr r1, _080B9F40 @ =gTasks
|
|
lsls r2, r3, 2
|
|
adds r0, r2, r3
|
|
lsls r0, 3
|
|
adds r3, r0, r1
|
|
movs r5, 0xC
|
|
ldrsh r0, [r3, r5]
|
|
adds r6, r1, 0
|
|
adds r5, r2, 0
|
|
cmp r0, 0
|
|
ble _080B9F60
|
|
movs r1, 0x18
|
|
ldrsh r0, [r3, r1]
|
|
cmp r0, 0
|
|
bne _080B9F44
|
|
ldrb r1, [r3, 0xE]
|
|
ldrb r2, [r3, 0x10]
|
|
b _080B9F48
|
|
.align 2, 0
|
|
_080B9F3C: .4byte gPaletteFade
|
|
_080B9F40: .4byte gTasks
|
|
_080B9F44:
|
|
ldrb r1, [r3, 0x10]
|
|
ldrb r2, [r3, 0xE]
|
|
_080B9F48:
|
|
adds r0, r5, r4
|
|
lsls r0, 3
|
|
adds r0, r6
|
|
movs r3, 0xC
|
|
ldrsh r0, [r0, r3]
|
|
cmp r0, 0x1
|
|
bne _080B9F58
|
|
movs r2, 0
|
|
_080B9F58:
|
|
adds r0, r4, 0
|
|
bl sub_80B9EA8
|
|
b _080B9F66
|
|
_080B9F60:
|
|
adds r0, r4, 0
|
|
bl DestroyAnimVisualTask
|
|
_080B9F66:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80B9F04
|
|
|
|
thumb_func_start sub_80B9F6C
|
|
sub_80B9F6C: @ 80B9F6C
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _080B9FCC @ =gTasks
|
|
lsls r4, r0, 2
|
|
adds r4, r0
|
|
lsls r4, 3
|
|
adds r4, r1
|
|
ldr r5, _080B9FD0 @ =gUnknown_2037F02
|
|
ldrh r0, [r5, 0x2]
|
|
strh r0, [r4, 0x8]
|
|
ldrh r0, [r5, 0x2]
|
|
strh r0, [r4, 0xA]
|
|
ldrh r0, [r5, 0x4]
|
|
strh r0, [r4, 0xC]
|
|
ldrh r0, [r5, 0x6]
|
|
strh r0, [r4, 0xE]
|
|
ldrh r0, [r5, 0x8]
|
|
strh r0, [r4, 0x10]
|
|
ldrh r0, [r5, 0xA]
|
|
strh r0, [r4, 0x12]
|
|
ldrh r0, [r5, 0xC]
|
|
strh r0, [r4, 0x14]
|
|
ldrh r0, [r5]
|
|
strh r0, [r4, 0x16]
|
|
ldrh r0, [r5]
|
|
bl IndexOfSpritePaletteTag
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r0, 0x10
|
|
movs r1, 0x1
|
|
lsls r1, r0
|
|
ldrb r3, [r5, 0x8]
|
|
ldrh r0, [r5, 0x6]
|
|
str r0, [sp]
|
|
adds r0, r1, 0
|
|
movs r1, 0
|
|
adds r2, r3, 0
|
|
bl BeginNormalPaletteFade
|
|
ldr r0, _080B9FD4 @ =sub_80B9FD8
|
|
str r0, [r4]
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080B9FCC: .4byte gTasks
|
|
_080B9FD0: .4byte gUnknown_2037F02
|
|
_080B9FD4: .4byte sub_80B9FD8
|
|
thumb_func_end sub_80B9F6C
|
|
|
|
thumb_func_start sub_80B9FD8
|
|
sub_80B9FD8: @ 80B9FD8
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r1, _080B9FFC @ =gTasks
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
adds r4, r0, r1
|
|
ldrh r1, [r4, 0x8]
|
|
movs r2, 0x8
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0
|
|
ble _080BA000
|
|
subs r0, r1, 0x1
|
|
strh r0, [r4, 0x8]
|
|
b _080BA084
|
|
.align 2, 0
|
|
_080B9FFC: .4byte gTasks
|
|
_080BA000:
|
|
ldr r0, _080BA01C @ =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080BA084
|
|
movs r3, 0xC
|
|
ldrsh r0, [r4, r3]
|
|
cmp r0, 0
|
|
bne _080BA024
|
|
ldr r0, _080BA020 @ =sub_80BA090
|
|
str r0, [r4]
|
|
b _080BA084
|
|
.align 2, 0
|
|
_080BA01C: .4byte gPaletteFade
|
|
_080BA020: .4byte sub_80BA090
|
|
_080BA024:
|
|
ldrh r0, [r4, 0x16]
|
|
bl IndexOfSpritePaletteTag
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r0, 0x10
|
|
movs r2, 0x1
|
|
lsls r2, r0
|
|
ldrh r1, [r4, 0xA]
|
|
movs r0, 0x80
|
|
lsls r0, 1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080BA052
|
|
ldrb r3, [r4, 0x10]
|
|
ldrh r0, [r4, 0xE]
|
|
str r0, [sp]
|
|
adds r0, r2, 0
|
|
movs r1, 0
|
|
adds r2, r3, 0
|
|
bl BeginNormalPaletteFade
|
|
b _080BA062
|
|
_080BA052:
|
|
ldrb r3, [r4, 0x14]
|
|
ldrh r0, [r4, 0x12]
|
|
str r0, [sp]
|
|
adds r0, r2, 0
|
|
movs r1, 0
|
|
adds r2, r3, 0
|
|
bl BeginNormalPaletteFade
|
|
_080BA062:
|
|
ldr r0, _080BA08C @ =gTasks
|
|
lsls r1, r5, 2
|
|
adds r1, r5
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldrh r0, [r1, 0xA]
|
|
movs r3, 0x80
|
|
lsls r3, 1
|
|
adds r2, r3, 0
|
|
eors r0, r2
|
|
strh r0, [r1, 0xA]
|
|
movs r2, 0xFF
|
|
ands r0, r2
|
|
strh r0, [r1, 0x8]
|
|
ldrh r0, [r1, 0xC]
|
|
subs r0, 0x1
|
|
strh r0, [r1, 0xC]
|
|
_080BA084:
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BA08C: .4byte gTasks
|
|
thumb_func_end sub_80B9FD8
|
|
|
|
thumb_func_start sub_80BA090
|
|
sub_80BA090: @ 80BA090
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r0, _080BA0E0 @ =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0
|
|
bne _080BA0D6
|
|
ldr r1, _080BA0E4 @ =gTasks
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldrh r0, [r0, 0x16]
|
|
bl IndexOfSpritePaletteTag
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r0, 0x10
|
|
movs r1, 0x1
|
|
lsls r1, r0
|
|
str r5, [sp]
|
|
adds r0, r1, 0
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl BeginNormalPaletteFade
|
|
adds r0, r4, 0
|
|
bl DestroyAnimVisualTask
|
|
_080BA0D6:
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BA0E0: .4byte gPaletteFade
|
|
_080BA0E4: .4byte gTasks
|
|
thumb_func_end sub_80BA090
|
|
|
|
thumb_func_start sub_80BA0E8
|
|
sub_80BA0E8: @ 80BA0E8
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0xC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
movs r2, 0
|
|
ldr r0, _080BA160 @ =gUnknown_2037F1A
|
|
ldrb r6, [r0]
|
|
ldr r0, _080BA164 @ =gUnknown_2037F1B
|
|
ldrb r7, [r0]
|
|
ldr r4, _080BA168 @ =gUnknown_2037F02
|
|
ldrh r1, [r4]
|
|
movs r5, 0x80
|
|
lsls r5, 1
|
|
adds r0, r5, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080BA122
|
|
str r2, [sp]
|
|
str r2, [sp, 0x4]
|
|
str r2, [sp, 0x8]
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
movs r3, 0
|
|
bl sub_8075BE8
|
|
adds r2, r0, 0
|
|
_080BA122:
|
|
ldrh r1, [r4, 0x2]
|
|
adds r0, r5, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080BA134
|
|
movs r0, 0x80
|
|
lsls r0, 9
|
|
lsls r0, r6
|
|
orrs r2, r0
|
|
_080BA134:
|
|
ldrh r1, [r4, 0x4]
|
|
adds r0, r5, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080BA146
|
|
movs r0, 0x80
|
|
lsls r0, 9
|
|
lsls r0, r7
|
|
orrs r2, r0
|
|
_080BA146:
|
|
adds r0, r2, 0
|
|
bl InvertPlttBuffer
|
|
mov r0, r8
|
|
bl DestroyAnimVisualTask
|
|
add sp, 0xC
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BA160: .4byte gUnknown_2037F1A
|
|
_080BA164: .4byte gUnknown_2037F1B
|
|
_080BA168: .4byte gUnknown_2037F02
|
|
thumb_func_end sub_80BA0E8
|
|
|
|
thumb_func_start sub_80BA16C
|
|
sub_80BA16C: @ 80BA16C
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
movs r5, 0
|
|
ldr r1, _080BA260 @ =gTasks
|
|
lsls r0, 2
|
|
add r0, r8
|
|
lsls r0, 3
|
|
adds r4, r0, r1
|
|
movs r1, 0x8
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bne _080BA1AE
|
|
ldr r1, _080BA264 @ =gUnknown_2037F02
|
|
ldrh r0, [r1]
|
|
strh r0, [r4, 0xC]
|
|
ldrh r0, [r1, 0x2]
|
|
strh r0, [r4, 0xE]
|
|
ldrh r0, [r1, 0x4]
|
|
strh r0, [r4, 0x10]
|
|
ldrh r0, [r1, 0x6]
|
|
strh r0, [r4, 0xA]
|
|
ldrh r0, [r1, 0x8]
|
|
strh r0, [r4, 0x12]
|
|
ldrh r0, [r1, 0xA]
|
|
strh r0, [r4, 0x14]
|
|
ldrh r0, [r1, 0xC]
|
|
strh r0, [r4, 0x16]
|
|
_080BA1AE:
|
|
ldrh r0, [r4, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x8]
|
|
ldr r0, _080BA268 @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
mov r9, r0
|
|
ldr r0, _080BA26C @ =gUnknown_2037F1B
|
|
ldrb r0, [r0]
|
|
mov r10, r0
|
|
ldrh r1, [r4, 0xC]
|
|
movs r7, 0x80
|
|
lsls r7, 1
|
|
adds r0, r7, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080BA1D0
|
|
ldr r5, _080BA270 @ =0x0000ffff
|
|
_080BA1D0:
|
|
movs r6, 0x1
|
|
adds r0, r6, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080BA200
|
|
ldr r2, _080BA274 @ =gSprites
|
|
ldr r0, _080BA278 @ =gUnknown_3004FF0
|
|
add r0, r9
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r2, 0x14
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
ldrh r0, [r0, 0x2]
|
|
bl IndexOfSpritePaletteTag
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r1, r6, 0
|
|
lsls r1, r0
|
|
lsls r1, 16
|
|
orrs r5, r1
|
|
_080BA200:
|
|
ldrh r1, [r4, 0xE]
|
|
adds r0, r7, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080BA214
|
|
adds r0, r6, 0
|
|
mov r2, r9
|
|
lsls r0, r2
|
|
lsls r0, 16
|
|
orrs r5, r0
|
|
_080BA214:
|
|
ldrh r1, [r4, 0x10]
|
|
adds r0, r7, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080BA228
|
|
adds r0, r6, 0
|
|
mov r1, r10
|
|
lsls r0, r1
|
|
lsls r0, 16
|
|
orrs r5, r0
|
|
_080BA228:
|
|
movs r1, 0x12
|
|
ldrsb r1, [r4, r1]
|
|
movs r2, 0x14
|
|
ldrsb r2, [r4, r2]
|
|
movs r3, 0x16
|
|
ldrsb r3, [r4, r3]
|
|
adds r0, r5, 0
|
|
bl TintPlttBuffer
|
|
movs r2, 0x8
|
|
ldrsh r1, [r4, r2]
|
|
movs r2, 0xA
|
|
ldrsh r0, [r4, r2]
|
|
cmp r1, r0
|
|
bne _080BA252
|
|
adds r0, r5, 0
|
|
bl UnfadePlttBuffer
|
|
mov r0, r8
|
|
bl DestroyAnimVisualTask
|
|
_080BA252:
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BA260: .4byte gTasks
|
|
_080BA264: .4byte gUnknown_2037F02
|
|
_080BA268: .4byte gUnknown_2037F1A
|
|
_080BA26C: .4byte gUnknown_2037F1B
|
|
_080BA270: .4byte 0x0000ffff
|
|
_080BA274: .4byte gSprites
|
|
_080BA278: .4byte gUnknown_3004FF0
|
|
thumb_func_end sub_80BA16C
|
|
|
|
thumb_func_start sub_80BA27C
|
|
sub_80BA27C: @ 80BA27C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
adds r2, r4, 0
|
|
adds r2, 0x3E
|
|
ldrb r0, [r2]
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r1, _080BA2B0 @ =gUnknown_2037F02
|
|
ldrh r0, [r1]
|
|
negs r0, r0
|
|
strh r0, [r4, 0x2E]
|
|
ldrh r0, [r1, 0x2]
|
|
strh r0, [r4, 0x30]
|
|
strh r0, [r4, 0x32]
|
|
ldrh r0, [r1, 0x4]
|
|
strh r0, [r4, 0x34]
|
|
movs r2, 0x6
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, 0x1
|
|
beq _080BA2C4
|
|
cmp r0, 0x1
|
|
bgt _080BA2B4
|
|
cmp r0, 0
|
|
beq _080BA2BA
|
|
b _080BA2DC
|
|
.align 2, 0
|
|
_080BA2B0: .4byte gUnknown_2037F02
|
|
_080BA2B4:
|
|
cmp r0, 0x2
|
|
beq _080BA2CC
|
|
b _080BA2DC
|
|
_080BA2BA:
|
|
ldr r1, _080BA2C0 @ =gUnknown_2022980
|
|
b _080BA2CE
|
|
.align 2, 0
|
|
_080BA2C0: .4byte gUnknown_2022980
|
|
_080BA2C4:
|
|
ldr r1, _080BA2C8 @ =gUnknown_2022982
|
|
b _080BA2CE
|
|
.align 2, 0
|
|
_080BA2C8: .4byte gUnknown_2022982
|
|
_080BA2CC:
|
|
ldr r1, _080BA2D8 @ =gSpriteCoordOffsetX
|
|
_080BA2CE:
|
|
adds r0, r4, 0
|
|
bl StoreSpriteCallbackInData6
|
|
b _080BA2E4
|
|
.align 2, 0
|
|
_080BA2D8: .4byte gSpriteCoordOffsetX
|
|
_080BA2DC:
|
|
ldr r1, _080BA314 @ =gSpriteCoordOffsetY
|
|
adds r0, r4, 0
|
|
bl StoreSpriteCallbackInData6
|
|
_080BA2E4:
|
|
movs r0, 0x3A
|
|
ldrsh r1, [r4, r0]
|
|
movs r2, 0x3C
|
|
ldrsh r0, [r4, r2]
|
|
lsls r0, 16
|
|
orrs r1, r0
|
|
ldrh r0, [r1]
|
|
strh r0, [r4, 0x36]
|
|
ldr r0, _080BA318 @ =gUnknown_2037F02
|
|
ldrh r0, [r0, 0x6]
|
|
strh r0, [r4, 0x38]
|
|
subs r0, 0x2
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x1
|
|
bhi _080BA308
|
|
bl sub_80BA3CC
|
|
_080BA308:
|
|
ldr r0, _080BA31C @ =sub_80BA320
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BA314: .4byte gSpriteCoordOffsetY
|
|
_080BA318: .4byte gUnknown_2037F02
|
|
_080BA31C: .4byte sub_80BA320
|
|
thumb_func_end sub_80BA27C
|
|
|
|
thumb_func_start sub_80BA320
|
|
sub_80BA320: @ 80BA320
|
|
push {r4-r7,lr}
|
|
adds r3, r0, 0
|
|
ldrh r1, [r3, 0x34]
|
|
movs r2, 0x34
|
|
ldrsh r0, [r3, r2]
|
|
cmp r0, 0
|
|
ble _080BA362
|
|
subs r0, r1, 0x1
|
|
strh r0, [r3, 0x34]
|
|
ldrh r1, [r3, 0x30]
|
|
movs r2, 0x30
|
|
ldrsh r0, [r3, r2]
|
|
cmp r0, 0
|
|
ble _080BA342
|
|
subs r0, r1, 0x1
|
|
strh r0, [r3, 0x30]
|
|
b _080BA3BA
|
|
_080BA342:
|
|
ldrh r0, [r3, 0x32]
|
|
strh r0, [r3, 0x30]
|
|
movs r0, 0x3A
|
|
ldrsh r1, [r3, r0]
|
|
movs r2, 0x3C
|
|
ldrsh r0, [r3, r2]
|
|
lsls r0, 16
|
|
orrs r1, r0
|
|
ldrh r0, [r3, 0x2E]
|
|
ldrh r2, [r1]
|
|
adds r0, r2
|
|
strh r0, [r1]
|
|
ldrh r0, [r3, 0x2E]
|
|
negs r0, r0
|
|
strh r0, [r3, 0x2E]
|
|
b _080BA3BA
|
|
_080BA362:
|
|
movs r0, 0x3A
|
|
ldrsh r1, [r3, r0]
|
|
movs r2, 0x3C
|
|
ldrsh r0, [r3, r2]
|
|
lsls r0, 16
|
|
orrs r1, r0
|
|
ldrh r0, [r3, 0x36]
|
|
strh r0, [r1]
|
|
ldrh r0, [r3, 0x38]
|
|
subs r0, 0x2
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x1
|
|
bhi _080BA3B4
|
|
movs r4, 0
|
|
ldr r5, _080BA3C0 @ =gBattlersCount
|
|
ldrb r0, [r5]
|
|
cmp r4, r0
|
|
bcs _080BA3B4
|
|
ldr r2, _080BA3C4 @ =gSprites
|
|
mov r12, r2
|
|
ldr r6, _080BA3C8 @ =gUnknown_2023D44
|
|
movs r7, 0x3
|
|
negs r7, r7
|
|
_080BA392:
|
|
adds r0, r4, r6
|
|
ldrb r0, [r0]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
add r1, r12
|
|
adds r1, 0x3E
|
|
ldrb r2, [r1]
|
|
adds r0, r7, 0
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldrb r0, [r5]
|
|
cmp r4, r0
|
|
bcc _080BA392
|
|
_080BA3B4:
|
|
adds r0, r3, 0
|
|
bl DestroyAnimSprite
|
|
_080BA3BA:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BA3C0: .4byte gBattlersCount
|
|
_080BA3C4: .4byte gSprites
|
|
_080BA3C8: .4byte gUnknown_2023D44
|
|
thumb_func_end sub_80BA320
|
|
|
|
thumb_func_start sub_80BA3CC
|
|
sub_80BA3CC: @ 80BA3CC
|
|
push {r4-r6,lr}
|
|
ldr r6, _080BA440 @ =gSprites
|
|
ldr r4, _080BA444 @ =gUnknown_2023D44
|
|
ldr r5, _080BA448 @ =gUnknown_2037F1A
|
|
ldrb r0, [r5]
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r6
|
|
adds r1, 0x3E
|
|
ldrb r3, [r1]
|
|
movs r2, 0x3
|
|
negs r2, r2
|
|
adds r0, r2, 0
|
|
ands r0, r3
|
|
strb r0, [r1]
|
|
ldr r3, _080BA44C @ =gUnknown_2037F1B
|
|
ldrb r0, [r3]
|
|
adds r0, r4
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
adds r0, 0x3E
|
|
ldrb r1, [r0]
|
|
ands r2, r1
|
|
strb r2, [r0]
|
|
ldr r0, _080BA450 @ =gUnknown_2037F02
|
|
movs r1, 0x8
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0x2
|
|
bne _080BA454
|
|
ldrb r0, [r5]
|
|
adds r0, r4
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
adds r0, 0x3E
|
|
ldrb r1, [r0]
|
|
movs r2, 0x2
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
ldrb r0, [r3]
|
|
adds r0, r4
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
adds r0, 0x3E
|
|
ldrb r1, [r0]
|
|
b _080BA470
|
|
.align 2, 0
|
|
_080BA440: .4byte gSprites
|
|
_080BA444: .4byte gUnknown_2023D44
|
|
_080BA448: .4byte gUnknown_2037F1A
|
|
_080BA44C: .4byte gUnknown_2037F1B
|
|
_080BA450: .4byte gUnknown_2037F02
|
|
_080BA454:
|
|
cmp r0, 0
|
|
bne _080BA45C
|
|
ldrb r0, [r5]
|
|
b _080BA45E
|
|
_080BA45C:
|
|
ldrb r0, [r3]
|
|
_080BA45E:
|
|
adds r0, r4
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
adds r0, 0x3E
|
|
ldrb r1, [r0]
|
|
movs r2, 0x2
|
|
_080BA470:
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80BA3CC
|
|
|
|
thumb_func_start sub_80BA47C
|
|
sub_80BA47C: @ 80BA47C
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _080BA4BC @ =gTasks
|
|
lsls r2, r0, 2
|
|
adds r2, r0
|
|
lsls r2, 3
|
|
adds r2, r1
|
|
ldr r3, _080BA4C0 @ =gUnknown_2037F02
|
|
ldrh r1, [r3]
|
|
strh r1, [r2, 0x8]
|
|
ldrh r1, [r3, 0x2]
|
|
strh r1, [r2, 0xA]
|
|
ldrh r1, [r3, 0x4]
|
|
strh r1, [r2, 0xC]
|
|
ldrh r1, [r3, 0x6]
|
|
strh r1, [r2, 0xE]
|
|
ldrh r1, [r3, 0x6]
|
|
strh r1, [r2, 0x18]
|
|
ldr r4, _080BA4C4 @ =gUnknown_2022980
|
|
ldrh r1, [r3]
|
|
strh r1, [r4]
|
|
ldr r4, _080BA4C8 @ =gUnknown_2022982
|
|
ldrh r1, [r3, 0x2]
|
|
strh r1, [r4]
|
|
ldr r1, _080BA4CC @ =sub_80BA4D0
|
|
str r1, [r2]
|
|
bl _call_via_r1
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BA4BC: .4byte gTasks
|
|
_080BA4C0: .4byte gUnknown_2037F02
|
|
_080BA4C4: .4byte gUnknown_2022980
|
|
_080BA4C8: .4byte gUnknown_2022982
|
|
_080BA4CC: .4byte sub_80BA4D0
|
|
thumb_func_end sub_80BA47C
|
|
|
|
thumb_func_start sub_80BA4D0
|
|
sub_80BA4D0: @ 80BA4D0
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r1, _080BA500 @ =gTasks
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
adds r3, r0, r1
|
|
ldrh r2, [r3, 0xE]
|
|
movs r4, 0xE
|
|
ldrsh r0, [r3, r4]
|
|
mov r12, r1
|
|
cmp r0, 0
|
|
bne _080BA556
|
|
ldr r0, _080BA504 @ =gUnknown_2022980
|
|
ldrh r2, [r0]
|
|
movs r7, 0x8
|
|
ldrsh r1, [r3, r7]
|
|
adds r6, r0, 0
|
|
cmp r2, r1
|
|
bne _080BA508
|
|
ldrh r0, [r3, 0x8]
|
|
negs r0, r0
|
|
b _080BA50A
|
|
.align 2, 0
|
|
_080BA500: .4byte gTasks
|
|
_080BA504: .4byte gUnknown_2022980
|
|
_080BA508:
|
|
ldrh r0, [r3, 0x8]
|
|
_080BA50A:
|
|
strh r0, [r6]
|
|
ldr r2, _080BA528 @ =gUnknown_2022982
|
|
ldrh r3, [r2]
|
|
lsls r1, r5, 2
|
|
adds r0, r1, r5
|
|
lsls r0, 3
|
|
mov r7, r12
|
|
adds r4, r0, r7
|
|
movs r7, 0xA
|
|
ldrsh r0, [r4, r7]
|
|
cmn r3, r0
|
|
bne _080BA52C
|
|
movs r0, 0
|
|
b _080BA530
|
|
.align 2, 0
|
|
_080BA528: .4byte gUnknown_2022982
|
|
_080BA52C:
|
|
ldrh r0, [r4, 0xA]
|
|
negs r0, r0
|
|
_080BA530:
|
|
strh r0, [r2]
|
|
adds r0, r1, r5
|
|
lsls r0, 3
|
|
add r0, r12
|
|
ldrh r1, [r0, 0x18]
|
|
strh r1, [r0, 0xE]
|
|
ldrh r1, [r0, 0xC]
|
|
subs r1, 0x1
|
|
strh r1, [r0, 0xC]
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
cmp r1, 0
|
|
bne _080BA55A
|
|
strh r1, [r6]
|
|
strh r1, [r2]
|
|
adds r0, r5, 0
|
|
bl DestroyAnimVisualTask
|
|
b _080BA55A
|
|
_080BA556:
|
|
subs r0, r2, 0x1
|
|
strh r0, [r3, 0xE]
|
|
_080BA55A:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80BA4D0
|
|
|
|
thumb_func_start sub_80BA560
|
|
sub_80BA560: @ 80BA560
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
ldr r4, _080BA580 @ =gUnknown_2037F02
|
|
ldrb r1, [r4, 0x6]
|
|
bl StartSpriteAffineAnim
|
|
movs r1, 0x4
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bne _080BA584
|
|
adds r0, r5, 0
|
|
movs r1, 0x1
|
|
bl sub_8075160
|
|
b _080BA58C
|
|
.align 2, 0
|
|
_080BA580: .4byte gUnknown_2037F02
|
|
_080BA584:
|
|
adds r0, r5, 0
|
|
movs r1, 0x1
|
|
bl sub_8075114
|
|
_080BA58C:
|
|
ldr r0, _080BA5A0 @ =sub_8074F50
|
|
str r0, [r5, 0x1C]
|
|
ldr r1, _080BA5A4 @ =DestroyAnimSprite
|
|
adds r0, r5, 0
|
|
bl StoreSpriteCallbackInData6
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BA5A0: .4byte sub_8074F50
|
|
_080BA5A4: .4byte DestroyAnimSprite
|
|
thumb_func_end sub_80BA560
|
|
|
|
thumb_func_start sub_80BA5A8
|
|
sub_80BA5A8: @ 80BA5A8
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
ldr r4, _080BA5C8 @ =gUnknown_2037F02
|
|
ldrb r1, [r4, 0x6]
|
|
bl StartSpriteAffineAnim
|
|
movs r1, 0x4
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bne _080BA5CC
|
|
adds r0, r5, 0
|
|
movs r1, 0x1
|
|
bl sub_8075160
|
|
b _080BA5D4
|
|
.align 2, 0
|
|
_080BA5C8: .4byte gUnknown_2037F02
|
|
_080BA5CC:
|
|
adds r0, r5, 0
|
|
movs r1, 0x1
|
|
bl sub_8075114
|
|
_080BA5D4:
|
|
ldr r0, _080BA5EC @ =gUnknown_2037F02
|
|
ldrh r0, [r0, 0x8]
|
|
strh r0, [r5, 0x2E]
|
|
ldr r0, _080BA5F0 @ =sub_8074F50
|
|
str r0, [r5, 0x1C]
|
|
ldr r1, _080BA5F4 @ =sub_80B1D3C
|
|
adds r0, r5, 0
|
|
bl StoreSpriteCallbackInData6
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BA5EC: .4byte gUnknown_2037F02
|
|
_080BA5F0: .4byte sub_8074F50
|
|
_080BA5F4: .4byte sub_80B1D3C
|
|
thumb_func_end sub_80BA5A8
|
|
|
|
thumb_func_start sub_80BA5F8
|
|
sub_80BA5F8: @ 80BA5F8
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldr r0, _080BA628 @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080BA61C
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080BA61C
|
|
ldr r1, _080BA62C @ =gUnknown_2037F02
|
|
ldrh r0, [r1, 0x2]
|
|
negs r0, r0
|
|
strh r0, [r1, 0x2]
|
|
_080BA61C:
|
|
adds r0, r4, 0
|
|
bl sub_80BA560
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BA628: .4byte gUnknown_2037F1A
|
|
_080BA62C: .4byte gUnknown_2037F02
|
|
thumb_func_end sub_80BA5F8
|
|
|
|
thumb_func_start sub_80BA630
|
|
sub_80BA630: @ 80BA630
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
ldr r5, _080BA668 @ =gUnknown_2037F02
|
|
movs r0, 0x2
|
|
ldrsh r1, [r5, r0]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
bne _080BA64C
|
|
bl Random
|
|
movs r1, 0x3
|
|
ands r1, r0
|
|
strh r1, [r5, 0x2]
|
|
_080BA64C:
|
|
ldrb r1, [r5, 0x2]
|
|
adds r0, r4, 0
|
|
bl StartSpriteAffineAnim
|
|
movs r1, 0
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0
|
|
bne _080BA66C
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl sub_8075160
|
|
b _080BA674
|
|
.align 2, 0
|
|
_080BA668: .4byte gUnknown_2037F02
|
|
_080BA66C:
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl sub_8075114
|
|
_080BA674:
|
|
bl Random
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x30
|
|
bl __umodsi3
|
|
ldr r1, _080BA6B8 @ =0x0000ffe8
|
|
adds r0, r1
|
|
ldrh r1, [r4, 0x24]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x24]
|
|
bl Random
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x18
|
|
bl __umodsi3
|
|
ldr r1, _080BA6BC @ =0x0000fff4
|
|
adds r0, r1
|
|
ldrh r1, [r4, 0x26]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x26]
|
|
ldr r1, _080BA6C0 @ =move_anim_8074EE0
|
|
adds r0, r4, 0
|
|
bl StoreSpriteCallbackInData6
|
|
ldr r0, _080BA6C4 @ =sub_8074F50
|
|
str r0, [r4, 0x1C]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BA6B8: .4byte 0x0000ffe8
|
|
_080BA6BC: .4byte 0x0000fff4
|
|
_080BA6C0: .4byte move_anim_8074EE0
|
|
_080BA6C4: .4byte sub_8074F50
|
|
thumb_func_end sub_80BA630
|
|
|
|
thumb_func_start sub_80BA6C8
|
|
sub_80BA6C8: @ 80BA6C8
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
ldr r5, _080BA728 @ =gUnknown_2037F02
|
|
ldrb r0, [r5]
|
|
bl GetAnimBankSpriteId
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x2E]
|
|
ldr r2, _080BA72C @ =gSprites
|
|
movs r0, 0x2E
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrh r1, [r0, 0x24]
|
|
ldrh r0, [r0, 0x20]
|
|
adds r1, r0
|
|
strh r1, [r4, 0x20]
|
|
movs r0, 0x2E
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrh r1, [r0, 0x26]
|
|
ldrh r0, [r0, 0x22]
|
|
adds r1, r0
|
|
strh r1, [r4, 0x22]
|
|
ldrh r0, [r5, 0x2]
|
|
strh r0, [r4, 0x24]
|
|
ldrh r0, [r5, 0x4]
|
|
strh r0, [r4, 0x26]
|
|
ldrb r1, [r5, 0x6]
|
|
adds r0, r4, 0
|
|
bl StartSpriteAffineAnim
|
|
ldr r1, _080BA730 @ =move_anim_8074EE0
|
|
adds r0, r4, 0
|
|
bl StoreSpriteCallbackInData6
|
|
ldr r0, _080BA734 @ =sub_8074F50
|
|
str r0, [r4, 0x1C]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BA728: .4byte gUnknown_2037F02
|
|
_080BA72C: .4byte gSprites
|
|
_080BA730: .4byte move_anim_8074EE0
|
|
_080BA734: .4byte sub_8074F50
|
|
thumb_func_end sub_80BA6C8
|
|
|
|
thumb_func_start sub_80BA738
|
|
sub_80BA738: @ 80BA738
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldr r0, _080BA750 @ =gUnknown_2037F02
|
|
movs r1, 0x4
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0
|
|
bne _080BA754
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl sub_8075160
|
|
b _080BA75C
|
|
.align 2, 0
|
|
_080BA750: .4byte gUnknown_2037F02
|
|
_080BA754:
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl sub_8075114
|
|
_080BA75C:
|
|
ldr r0, _080BA774 @ =gUnknown_2037F02
|
|
ldrh r0, [r0, 0x6]
|
|
strh r0, [r4, 0x2E]
|
|
ldr r1, _080BA778 @ =DestroyAnimSprite
|
|
adds r0, r4, 0
|
|
bl StoreSpriteCallbackInData6
|
|
ldr r0, _080BA77C @ =sub_8074C44
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BA774: .4byte gUnknown_2037F02
|
|
_080BA778: .4byte DestroyAnimSprite
|
|
_080BA77C: .4byte sub_8074C44
|
|
thumb_func_end sub_80BA738
|
|
|
|
thumb_func_start sub_80BA780
|
|
sub_80BA780: @ 80BA780
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
ldr r4, _080BA7A0 @ =gUnknown_2037F02
|
|
ldrb r1, [r4, 0x6]
|
|
bl StartSpriteAffineAnim
|
|
movs r1, 0x4
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bne _080BA7A4
|
|
adds r0, r5, 0
|
|
movs r1, 0x1
|
|
bl sub_8075160
|
|
b _080BA7AC
|
|
.align 2, 0
|
|
_080BA7A0: .4byte gUnknown_2037F02
|
|
_080BA7A4:
|
|
adds r0, r5, 0
|
|
movs r1, 0x1
|
|
bl sub_8075114
|
|
_080BA7AC:
|
|
ldr r0, _080BA7B8 @ =sub_80BA7BC
|
|
str r0, [r5, 0x1C]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BA7B8: .4byte sub_80BA7BC
|
|
thumb_func_end sub_80BA780
|
|
|
|
thumb_func_start sub_80BA7BC
|
|
sub_80BA7BC: @ 80BA7BC
|
|
push {lr}
|
|
adds r3, r0, 0
|
|
movs r0, 0x3E
|
|
adds r0, r3
|
|
mov r12, r0
|
|
ldrb r2, [r0]
|
|
lsls r0, r2, 29
|
|
lsrs r0, 31
|
|
movs r1, 0x1
|
|
eors r1, r0
|
|
lsls r1, 2
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
mov r1, r12
|
|
strb r0, [r1]
|
|
ldrh r0, [r3, 0x2E]
|
|
adds r1, r0, 0x1
|
|
strh r1, [r3, 0x2E]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0xC
|
|
ble _080BA7F2
|
|
adds r0, r3, 0
|
|
bl DestroyAnimSprite
|
|
_080BA7F2:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80BA7BC
|
|
|
|
thumb_func_start sub_80BA7F8
|
|
sub_80BA7F8: @ 80BA7F8
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
ldr r4, _080BA838 @ =gUnknown_2037F02
|
|
movs r1, 0
|
|
ldrsh r0, [r4, r1]
|
|
bl sub_80B9A14
|
|
adds r6, r0, 0
|
|
ldrh r3, [r4]
|
|
lsls r3, 16
|
|
asrs r0, r3, 23
|
|
movs r4, 0x1
|
|
ands r0, r4
|
|
asrs r1, r3, 24
|
|
ands r1, r4
|
|
asrs r2, r3, 25
|
|
ands r2, r4
|
|
asrs r3, 26
|
|
ands r3, r4
|
|
bl sub_8075CB8
|
|
orrs r6, r0
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
bl sub_80BAA4C
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BA838: .4byte gUnknown_2037F02
|
|
thumb_func_end sub_80BA7F8
|
|
|
|
thumb_func_start sub_80BA83C
|
|
sub_80BA83C: @ 80BA83C
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
mov r1, sp
|
|
movs r0, 0xFF
|
|
strb r0, [r1, 0x1]
|
|
movs r0, 0x1
|
|
bl sub_80B9A14
|
|
adds r5, r0, 0
|
|
ldr r0, _080BA868 @ =gUnknown_2037F02
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0x7
|
|
bhi _080BA8E6
|
|
lsls r0, 2
|
|
ldr r1, _080BA86C @ =_080BA870
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080BA868: .4byte gUnknown_2037F02
|
|
_080BA86C: .4byte _080BA870
|
|
.align 2, 0
|
|
_080BA870:
|
|
.4byte _080BA892
|
|
.4byte _080BA89E
|
|
.4byte _080BA890
|
|
.4byte _080BA89C
|
|
.4byte _080BA8AC
|
|
.4byte _080BA8C4
|
|
.4byte _080BA8CC
|
|
.4byte _080BA8D8
|
|
_080BA890:
|
|
movs r5, 0
|
|
_080BA892:
|
|
mov r0, sp
|
|
ldr r1, _080BA898 @ =gUnknown_2037F1A
|
|
b _080BA8A2
|
|
.align 2, 0
|
|
_080BA898: .4byte gUnknown_2037F1A
|
|
_080BA89C:
|
|
movs r5, 0
|
|
_080BA89E:
|
|
mov r0, sp
|
|
ldr r1, _080BA8A8 @ =gUnknown_2037F1B
|
|
_080BA8A2:
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
b _080BA8E6
|
|
.align 2, 0
|
|
_080BA8A8: .4byte gUnknown_2037F1B
|
|
_080BA8AC:
|
|
mov r1, sp
|
|
ldr r0, _080BA8BC @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
ldr r0, _080BA8C0 @ =gUnknown_2037F1B
|
|
ldrb r0, [r0]
|
|
strb r0, [r1, 0x1]
|
|
b _080BA8E6
|
|
.align 2, 0
|
|
_080BA8BC: .4byte gUnknown_2037F1A
|
|
_080BA8C0: .4byte gUnknown_2037F1B
|
|
_080BA8C4:
|
|
mov r1, sp
|
|
movs r0, 0xFF
|
|
strb r0, [r1]
|
|
b _080BA8E6
|
|
_080BA8CC:
|
|
movs r5, 0
|
|
mov r2, sp
|
|
ldr r0, _080BA8D4 @ =gUnknown_2037F1A
|
|
b _080BA8DE
|
|
.align 2, 0
|
|
_080BA8D4: .4byte gUnknown_2037F1A
|
|
_080BA8D8:
|
|
movs r5, 0
|
|
mov r2, sp
|
|
ldr r0, _080BA930 @ =gUnknown_2037F1B
|
|
_080BA8DE:
|
|
ldrb r0, [r0]
|
|
movs r1, 0x2
|
|
eors r0, r1
|
|
strb r0, [r2]
|
|
_080BA8E6:
|
|
movs r4, 0
|
|
mov r6, sp
|
|
_080BA8EA:
|
|
ldrb r0, [r6]
|
|
cmp r4, r0
|
|
beq _080BA914
|
|
ldrb r0, [r6, 0x1]
|
|
cmp r4, r0
|
|
beq _080BA914
|
|
adds r0, r4, 0
|
|
bl sub_8072DF0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080BA914
|
|
adds r0, r4, 0
|
|
bl sub_8075D80
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0x80
|
|
lsls r1, 9
|
|
lsls r1, r0
|
|
orrs r5, r1
|
|
_080BA914:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0x3
|
|
bls _080BA8EA
|
|
adds r0, r7, 0
|
|
adds r1, r5, 0
|
|
bl sub_80BAA4C
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BA930: .4byte gUnknown_2037F1B
|
|
thumb_func_end sub_80BA83C
|
|
|
|
thumb_func_start sub_80BA934
|
|
sub_80BA934: @ 80BA934
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r0, _080BA958 @ =gUnknown_2037F02
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
bl sub_80B9A14
|
|
adds r2, r0, 0
|
|
ldr r0, _080BA95C @ =gUnknown_2022B50
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x9
|
|
bhi _080BAA0A
|
|
lsls r0, 2
|
|
ldr r1, _080BA960 @ =_080BA964
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080BA958: .4byte gUnknown_2037F02
|
|
_080BA95C: .4byte gUnknown_2022B50
|
|
_080BA960: .4byte _080BA964
|
|
.align 2, 0
|
|
_080BA964:
|
|
.4byte _080BA98C
|
|
.4byte _080BA99C
|
|
.4byte _080BA9A8
|
|
.4byte _080BA9B8
|
|
.4byte _080BA9C4
|
|
.4byte _080BA9D4
|
|
.4byte _080BA9E4
|
|
.4byte _080BA9F4
|
|
.4byte _080BAA04
|
|
.4byte _080BAA04
|
|
_080BA98C:
|
|
ldr r1, _080BA994 @ =gUnknown_2037F02
|
|
ldr r0, _080BA998 @ =0x00000b0c
|
|
b _080BAA08
|
|
.align 2, 0
|
|
_080BA994: .4byte gUnknown_2037F02
|
|
_080BA998: .4byte 0x00000b0c
|
|
_080BA99C:
|
|
ldr r1, _080BA9A4 @ =gUnknown_2037F02
|
|
movs r0, 0x9E
|
|
lsls r0, 4
|
|
b _080BAA08
|
|
.align 2, 0
|
|
_080BA9A4: .4byte gUnknown_2037F02
|
|
_080BA9A8:
|
|
ldr r1, _080BA9B0 @ =gUnknown_2037F02
|
|
ldr r0, _080BA9B4 @ =0x00002f1e
|
|
b _080BAA08
|
|
.align 2, 0
|
|
_080BA9B0: .4byte gUnknown_2037F02
|
|
_080BA9B4: .4byte 0x00002f1e
|
|
_080BA9B8:
|
|
ldr r1, _080BA9C0 @ =gUnknown_2037F02
|
|
movs r0, 0x90
|
|
lsls r0, 7
|
|
b _080BAA08
|
|
.align 2, 0
|
|
_080BA9C0: .4byte gUnknown_2037F02
|
|
_080BA9C4:
|
|
ldr r1, _080BA9CC @ =gUnknown_2037F02
|
|
ldr r0, _080BA9D0 @ =0x00007ecb
|
|
b _080BAA08
|
|
.align 2, 0
|
|
_080BA9CC: .4byte gUnknown_2037F02
|
|
_080BA9D0: .4byte 0x00007ecb
|
|
_080BA9D4:
|
|
ldr r1, _080BA9DC @ =gUnknown_2037F02
|
|
ldr r0, _080BA9E0 @ =0x00007ecb
|
|
b _080BAA08
|
|
.align 2, 0
|
|
_080BA9DC: .4byte gUnknown_2037F02
|
|
_080BA9E0: .4byte 0x00007ecb
|
|
_080BA9E4:
|
|
ldr r1, _080BA9EC @ =gUnknown_2037F02
|
|
ldr r0, _080BA9F0 @ =0x00002a16
|
|
b _080BAA08
|
|
.align 2, 0
|
|
_080BA9EC: .4byte gUnknown_2037F02
|
|
_080BA9F0: .4byte 0x00002a16
|
|
_080BA9F4:
|
|
ldr r1, _080BA9FC @ =gUnknown_2037F02
|
|
ldr r0, _080BAA00 @ =0x00000d2e
|
|
b _080BAA08
|
|
.align 2, 0
|
|
_080BA9FC: .4byte gUnknown_2037F02
|
|
_080BAA00: .4byte 0x00000d2e
|
|
_080BAA04:
|
|
ldr r1, _080BAA18 @ =gUnknown_2037F02
|
|
ldr r0, _080BAA1C @ =0x00007fff
|
|
_080BAA08:
|
|
strh r0, [r1, 0x8]
|
|
_080BAA0A:
|
|
adds r0, r4, 0
|
|
adds r1, r2, 0
|
|
bl sub_80BAA4C
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BAA18: .4byte gUnknown_2037F02
|
|
_080BAA1C: .4byte 0x00007fff
|
|
thumb_func_end sub_80BA934
|
|
|
|
thumb_func_start sub_80BAA20
|
|
sub_80BAA20: @ 80BAA20
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
ldr r0, _080BAA48 @ =gUnknown_2037F02
|
|
ldrh r0, [r0]
|
|
bl IndexOfSpritePaletteTag
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r0, 0x10
|
|
movs r1, 0x1
|
|
lsls r1, r0
|
|
adds r0, r4, 0
|
|
bl sub_80BAA4C
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BAA48: .4byte gUnknown_2037F02
|
|
thumb_func_end sub_80BAA20
|
|
|
|
thumb_func_start sub_80BAA4C
|
|
sub_80BAA4C: @ 80BAA4C
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r3, _080BAA84 @ =gTasks
|
|
lsls r2, r0, 2
|
|
adds r2, r0
|
|
lsls r2, 3
|
|
adds r2, r3
|
|
strh r1, [r2, 0x8]
|
|
lsrs r1, 16
|
|
strh r1, [r2, 0xA]
|
|
ldr r3, _080BAA88 @ =gUnknown_2037F02
|
|
ldrh r1, [r3, 0x2]
|
|
strh r1, [r2, 0xC]
|
|
ldrh r1, [r3, 0x4]
|
|
strh r1, [r2, 0xE]
|
|
ldrh r1, [r3, 0x6]
|
|
strh r1, [r2, 0x10]
|
|
ldrh r1, [r3, 0x8]
|
|
strh r1, [r2, 0x12]
|
|
ldrh r1, [r3, 0x4]
|
|
strh r1, [r2, 0x1C]
|
|
ldr r1, _080BAA8C @ =sub_80BAA90
|
|
str r1, [r2]
|
|
bl _call_via_r1
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BAA84: .4byte gTasks
|
|
_080BAA88: .4byte gUnknown_2037F02
|
|
_080BAA8C: .4byte sub_80BAA90
|
|
thumb_func_end sub_80BAA4C
|
|
|
|
thumb_func_start sub_80BAA90
|
|
sub_80BAA90: @ 80BAA90
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
movs r6, 0
|
|
ldr r2, _080BAB10 @ =gTasks
|
|
lsls r5, r7, 2
|
|
adds r0, r5, r7
|
|
lsls r0, 3
|
|
adds r3, r0, r2
|
|
ldrh r0, [r3, 0x1A]
|
|
mov r8, r0
|
|
movs r4, 0x1A
|
|
ldrsh r1, [r3, r4]
|
|
movs r4, 0xC
|
|
ldrsh r0, [r3, r4]
|
|
mov r9, r2
|
|
cmp r1, r0
|
|
bne _080BAB26
|
|
strh r6, [r3, 0x1A]
|
|
movs r0, 0x8
|
|
ldrsh r4, [r3, r0]
|
|
movs r1, 0xA
|
|
ldrsh r0, [r3, r1]
|
|
lsls r0, 16
|
|
orrs r4, r0
|
|
mov r8, r5
|
|
cmp r4, 0
|
|
beq _080BAAF2
|
|
adds r5, r3, 0
|
|
_080BAAD0:
|
|
movs r0, 0x1
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
beq _080BAAE4
|
|
ldrb r2, [r5, 0x1C]
|
|
ldrh r3, [r5, 0x12]
|
|
adds r0, r6, 0
|
|
movs r1, 0x10
|
|
bl BlendPalette
|
|
_080BAAE4:
|
|
adds r0, r6, 0
|
|
adds r0, 0x10
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
lsrs r4, 1
|
|
cmp r4, 0
|
|
bne _080BAAD0
|
|
_080BAAF2:
|
|
mov r4, r8
|
|
adds r0, r4, r7
|
|
lsls r0, 3
|
|
mov r1, r9
|
|
adds r2, r0, r1
|
|
ldrh r0, [r2, 0x1C]
|
|
movs r4, 0x1C
|
|
ldrsh r3, [r2, r4]
|
|
movs r4, 0x10
|
|
ldrsh r1, [r2, r4]
|
|
cmp r3, r1
|
|
bge _080BAB14
|
|
adds r0, 0x1
|
|
strh r0, [r2, 0x1C]
|
|
b _080BAB2C
|
|
.align 2, 0
|
|
_080BAB10: .4byte gTasks
|
|
_080BAB14:
|
|
cmp r3, r1
|
|
ble _080BAB1E
|
|
subs r0, 0x1
|
|
strh r0, [r2, 0x1C]
|
|
b _080BAB2C
|
|
_080BAB1E:
|
|
adds r0, r7, 0
|
|
bl DestroyAnimVisualTask
|
|
b _080BAB2C
|
|
_080BAB26:
|
|
mov r0, r8
|
|
adds r0, 0x1
|
|
strh r0, [r3, 0x1A]
|
|
_080BAB2C:
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80BAA90
|
|
|
|
thumb_func_start sub_80BAB38
|
|
sub_80BAB38: @ 80BAB38
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
ldr r4, _080BAB6C @ =gUnknown_2037F02
|
|
ldrb r0, [r4]
|
|
ldrb r1, [r4, 0x2]
|
|
ldrb r2, [r4, 0x4]
|
|
ldrb r3, [r4, 0x6]
|
|
ldrb r4, [r4, 0x8]
|
|
str r4, [sp]
|
|
bl BeginHardwarePaletteFade
|
|
ldr r1, _080BAB70 @ =gTasks
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldr r1, _080BAB74 @ =sub_80BAB78
|
|
str r1, [r0]
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BAB6C: .4byte gUnknown_2037F02
|
|
_080BAB70: .4byte gTasks
|
|
_080BAB74: .4byte sub_80BAB78
|
|
thumb_func_end sub_80BAB38
|
|
|
|
thumb_func_start sub_80BAB78
|
|
sub_80BAB78: @ 80BAB78
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
ldr r0, _080BAB94 @ =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080BAB90
|
|
adds r0, r2, 0
|
|
bl DestroyAnimVisualTask
|
|
_080BAB90:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BAB94: .4byte gPaletteFade
|
|
thumb_func_end sub_80BAB78
|
|
|
|
thumb_func_start sub_80BAB98
|
|
sub_80BAB98: @ 80BAB98
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
ldr r0, _080BABC4 @ =gTasks
|
|
adds r1, r0
|
|
ldr r2, _080BABC8 @ =gUnknown_2037F02
|
|
ldrh r0, [r2]
|
|
movs r3, 0
|
|
strh r0, [r1, 0x8]
|
|
strh r3, [r1, 0xA]
|
|
ldrh r0, [r2, 0x2]
|
|
strh r0, [r1, 0xC]
|
|
ldrh r0, [r2, 0x4]
|
|
strh r0, [r1, 0xE]
|
|
ldrh r0, [r2, 0x6]
|
|
strh r0, [r1, 0x10]
|
|
strh r3, [r1, 0x12]
|
|
ldr r0, _080BABCC @ =sub_80BABD0
|
|
str r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_080BABC4: .4byte gTasks
|
|
_080BABC8: .4byte gUnknown_2037F02
|
|
_080BABCC: .4byte sub_80BABD0
|
|
thumb_func_end sub_80BAB98
|
|
|
|
thumb_func_start sub_80BABD0
|
|
sub_80BABD0: @ 80BABD0
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
adds r2, r5, 0
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
ldr r1, _080BABFC @ =gTasks
|
|
adds r4, r0, r1
|
|
movs r1, 0x10
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
beq _080BAC94
|
|
ldrh r1, [r4, 0xA]
|
|
movs r2, 0xA
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0
|
|
beq _080BAC00
|
|
subs r0, r1, 0x1
|
|
strh r0, [r4, 0xA]
|
|
b _080BACA2
|
|
.align 2, 0
|
|
_080BABFC: .4byte gTasks
|
|
_080BAC00:
|
|
ldrb r0, [r4, 0x8]
|
|
bl duplicate_obj_of_side_rel2move_in_transparent_mode
|
|
strh r0, [r4, 0x14]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
blt _080BAC7E
|
|
ldr r6, _080BAC8C @ =gSprites
|
|
movs r1, 0x14
|
|
ldrsh r0, [r4, r1]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r3, r1, r6
|
|
movs r2, 0x8
|
|
ldrsh r0, [r4, r2]
|
|
movs r2, 0x2
|
|
cmp r0, 0
|
|
beq _080BAC28
|
|
movs r2, 0x1
|
|
_080BAC28:
|
|
lsls r2, 2
|
|
ldrb r1, [r3, 0x5]
|
|
movs r0, 0xD
|
|
negs r0, r0
|
|
ands r0, r1
|
|
orrs r0, r2
|
|
strb r0, [r3, 0x5]
|
|
movs r0, 0x14
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
ldrh r1, [r4, 0xE]
|
|
strh r1, [r0, 0x2E]
|
|
movs r2, 0x14
|
|
ldrsh r1, [r4, r2]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
strh r5, [r0, 0x30]
|
|
movs r0, 0x14
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
movs r1, 0x5
|
|
strh r1, [r0, 0x32]
|
|
movs r2, 0x14
|
|
ldrsh r1, [r4, r2]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r1, r6, 0
|
|
adds r1, 0x1C
|
|
adds r0, r1
|
|
ldr r1, _080BAC90 @ =sub_80BACA8
|
|
str r1, [r0]
|
|
ldrh r0, [r4, 0x12]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x12]
|
|
_080BAC7E:
|
|
ldrh r0, [r4, 0x10]
|
|
subs r0, 0x1
|
|
strh r0, [r4, 0x10]
|
|
ldrh r0, [r4, 0xC]
|
|
strh r0, [r4, 0xA]
|
|
b _080BACA2
|
|
.align 2, 0
|
|
_080BAC8C: .4byte gSprites
|
|
_080BAC90: .4byte sub_80BACA8
|
|
_080BAC94:
|
|
movs r1, 0x12
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bne _080BACA2
|
|
adds r0, r2, 0
|
|
bl DestroyAnimVisualTask
|
|
_080BACA2:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80BABD0
|
|
|
|
thumb_func_start sub_80BACA8
|
|
sub_80BACA8: @ 80BACA8
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrh r1, [r4, 0x2E]
|
|
movs r2, 0x2E
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0
|
|
beq _080BACBC
|
|
subs r0, r1, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
b _080BACE0
|
|
_080BACBC:
|
|
ldr r3, _080BACE8 @ =gTasks
|
|
movs r0, 0x32
|
|
ldrsh r1, [r4, r0]
|
|
lsls r1, 1
|
|
movs r0, 0x30
|
|
ldrsh r2, [r4, r0]
|
|
lsls r0, r2, 2
|
|
adds r0, r2
|
|
lsls r0, 3
|
|
adds r1, r0
|
|
adds r3, 0x8
|
|
adds r1, r3
|
|
ldrh r0, [r1]
|
|
subs r0, 0x1
|
|
strh r0, [r1]
|
|
adds r0, r4, 0
|
|
bl obj_delete_but_dont_free_vram
|
|
_080BACE0:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BACE8: .4byte gTasks
|
|
thumb_func_end sub_80BACA8
|
|
|
|
thumb_func_start sub_80BACEC
|
|
sub_80BACEC: @ 80BACEC
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x14
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
movs r7, 0
|
|
ldr r0, _080BAE20 @ =gUnknown_2022984
|
|
strh r7, [r0]
|
|
ldr r0, _080BAE24 @ =gUnknown_2022986
|
|
strh r7, [r0]
|
|
ldr r1, _080BAE28 @ =0x00003f3f
|
|
movs r0, 0x48
|
|
bl SetGpuReg
|
|
ldr r1, _080BAE2C @ =0x00003f3d
|
|
movs r0, 0x4A
|
|
bl SetGpuReg
|
|
movs r1, 0x80
|
|
lsls r1, 8
|
|
movs r0, 0
|
|
bl SetGpuRegBits
|
|
ldr r1, _080BAE30 @ =0x00003f42
|
|
movs r0, 0x50
|
|
bl SetGpuReg
|
|
ldr r1, _080BAE34 @ =0x00000c08
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
movs r0, 0xA
|
|
bl GetGpuReg
|
|
add r4, sp, 0x10
|
|
strh r0, [r4]
|
|
ldrb r1, [r4]
|
|
movs r0, 0x4
|
|
negs r0, r0
|
|
mov r8, r0
|
|
ands r0, r1
|
|
strb r0, [r4]
|
|
mov r2, sp
|
|
adds r2, 0x11
|
|
ldrb r1, [r2]
|
|
movs r0, 0x3F
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
ldrh r1, [r4]
|
|
movs r0, 0xA
|
|
bl SetGpuReg
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080BAD7A
|
|
ldrb r1, [r4]
|
|
movs r0, 0xD
|
|
negs r0, r0
|
|
ands r0, r1
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
strb r0, [r4]
|
|
ldrh r1, [r4]
|
|
movs r0, 0xA
|
|
bl SetGpuReg
|
|
_080BAD7A:
|
|
bl sub_8075290
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080BADFE
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080BADFE
|
|
ldr r5, _080BAE38 @ =gUnknown_2037F1A
|
|
ldrb r0, [r5]
|
|
bl GetBattlerPosition
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x3
|
|
beq _080BADAA
|
|
ldrb r0, [r5]
|
|
bl GetBattlerPosition
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080BADFE
|
|
_080BADAA:
|
|
ldrb r0, [r5]
|
|
movs r6, 0x2
|
|
eors r0, r6
|
|
bl sub_8072DF0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _080BADFE
|
|
ldr r3, _080BAE3C @ =gSprites
|
|
ldr r1, _080BAE40 @ =gUnknown_2023D44
|
|
ldrb r0, [r5]
|
|
eors r0, r6
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
lsls r2, r0, 4
|
|
adds r2, r0
|
|
lsls r2, 2
|
|
adds r2, r3
|
|
ldrb r3, [r2, 0x5]
|
|
lsls r1, r3, 28
|
|
lsrs r1, 30
|
|
subs r1, 0x1
|
|
movs r0, 0x3
|
|
ands r1, r0
|
|
lsls r1, 2
|
|
movs r0, 0xD
|
|
negs r0, r0
|
|
ands r0, r3
|
|
orrs r0, r1
|
|
strb r0, [r2, 0x5]
|
|
ldrb r1, [r4]
|
|
mov r0, r8
|
|
ands r0, r1
|
|
movs r1, 0x1
|
|
orrs r0, r1
|
|
strb r0, [r4]
|
|
ldrh r1, [r4]
|
|
movs r0, 0xA
|
|
bl SetGpuReg
|
|
movs r7, 0x1
|
|
_080BADFE:
|
|
ldr r4, _080BAE38 @ =gUnknown_2037F1A
|
|
ldrb r0, [r4]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080BAE4C
|
|
ldr r1, _080BAE44 @ =gBattlerPartyIndexes
|
|
ldrb r0, [r4]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, _080BAE48 @ =gEnemyParty
|
|
b _080BAE5C
|
|
.align 2, 0
|
|
_080BAE20: .4byte gUnknown_2022984
|
|
_080BAE24: .4byte gUnknown_2022986
|
|
_080BAE28: .4byte 0x00003f3f
|
|
_080BAE2C: .4byte 0x00003f3d
|
|
_080BAE30: .4byte 0x00003f42
|
|
_080BAE34: .4byte 0x00000c08
|
|
_080BAE38: .4byte gUnknown_2037F1A
|
|
_080BAE3C: .4byte gSprites
|
|
_080BAE40: .4byte gUnknown_2023D44
|
|
_080BAE44: .4byte gBattlerPartyIndexes
|
|
_080BAE48: .4byte gEnemyParty
|
|
_080BAE4C:
|
|
ldr r1, _080BAF0C @ =gBattlerPartyIndexes
|
|
ldrb r0, [r4]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, _080BAF10 @ =gPlayerParty
|
|
_080BAE5C:
|
|
adds r0, r1
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
movs r0, 0
|
|
bl GetAnimBankSpriteId
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r5, r0, 0
|
|
ldr r0, _080BAF14 @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
adds r1, r5, 0
|
|
adds r2, r4, 0
|
|
bl sub_8076E34
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
mov r0, sp
|
|
bl sub_80752A0
|
|
mov r0, sp
|
|
ldrb r0, [r0, 0x9]
|
|
ldr r1, _080BAF18 @ =gFile_graphics_battle_anims_masks_curse_tilemap
|
|
bl sub_807543C
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080BAEAC
|
|
mov r0, sp
|
|
ldrb r0, [r0, 0x8]
|
|
ldr r1, [sp, 0x4]
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl sub_80730C0
|
|
_080BAEAC:
|
|
mov r0, sp
|
|
ldrb r0, [r0, 0x9]
|
|
ldr r1, _080BAF1C @ =gFile_graphics_battle_anims_masks_curse_sheet
|
|
mov r2, sp
|
|
ldrh r2, [r2, 0xA]
|
|
bl sub_80753B4
|
|
ldr r0, _080BAF20 @ =gUnknown_83E7CC8
|
|
mov r1, sp
|
|
ldrb r1, [r1, 0x8]
|
|
lsls r1, 4
|
|
adds r1, 0x1
|
|
movs r2, 0x2
|
|
bl LoadPalette
|
|
ldr r2, _080BAF24 @ =gUnknown_2022978
|
|
ldr r0, _080BAF28 @ =gSprites
|
|
lsls r1, r5, 4
|
|
adds r1, r5
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrh r0, [r1, 0x20]
|
|
negs r0, r0
|
|
adds r0, 0x20
|
|
strh r0, [r2]
|
|
ldr r2, _080BAF2C @ =gUnknown_202297A
|
|
ldrh r0, [r1, 0x22]
|
|
negs r0, r0
|
|
adds r0, 0x20
|
|
strh r0, [r2]
|
|
ldr r1, _080BAF30 @ =gTasks
|
|
mov r2, r9
|
|
lsls r0, r2, 2
|
|
add r0, r9
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
strh r4, [r0, 0x8]
|
|
strh r7, [r0, 0x14]
|
|
ldr r1, _080BAF34 @ =sub_80BAF38
|
|
str r1, [r0]
|
|
add sp, 0x14
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BAF0C: .4byte gBattlerPartyIndexes
|
|
_080BAF10: .4byte gPlayerParty
|
|
_080BAF14: .4byte gUnknown_2037F1A
|
|
_080BAF18: .4byte gFile_graphics_battle_anims_masks_curse_tilemap
|
|
_080BAF1C: .4byte gFile_graphics_battle_anims_masks_curse_sheet
|
|
_080BAF20: .4byte gUnknown_83E7CC8
|
|
_080BAF24: .4byte gUnknown_2022978
|
|
_080BAF28: .4byte gSprites
|
|
_080BAF2C: .4byte gUnknown_202297A
|
|
_080BAF30: .4byte gTasks
|
|
_080BAF34: .4byte sub_80BAF38
|
|
thumb_func_end sub_80BACEC
|
|
|
|
thumb_func_start sub_80BAF38
|
|
sub_80BAF38: @ 80BAF38
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x14
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r6, r0, 0
|
|
ldr r1, _080BB068 @ =gTasks
|
|
lsls r0, r6, 2
|
|
adds r0, r6
|
|
lsls r0, 3
|
|
adds r5, r0, r1
|
|
ldrh r0, [r5, 0x1C]
|
|
adds r0, 0x4
|
|
movs r1, 0
|
|
mov r8, r1
|
|
strh r0, [r5, 0x1C]
|
|
ldr r7, _080BB06C @ =gUnknown_202297A
|
|
ldrh r2, [r7]
|
|
subs r1, r2, 0x4
|
|
strh r1, [r7]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x40
|
|
bne _080BB05A
|
|
mov r0, r8
|
|
strh r0, [r5, 0x1C]
|
|
adds r0, r2, 0
|
|
adds r0, 0x3C
|
|
strh r0, [r7]
|
|
ldrh r0, [r5, 0x1E]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x1E]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x4
|
|
bne _080BB05A
|
|
movs r0, 0
|
|
bl sub_8073128
|
|
ldr r0, _080BB070 @ =gUnknown_2022984
|
|
mov r1, r8
|
|
strh r1, [r0]
|
|
ldr r0, _080BB074 @ =gUnknown_2022986
|
|
strh r1, [r0]
|
|
ldr r4, _080BB078 @ =0x00003f3f
|
|
movs r0, 0x48
|
|
adds r1, r4, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x4A
|
|
adds r1, r4, 0
|
|
bl SetGpuReg
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080BAFCA
|
|
movs r0, 0xA
|
|
bl GetGpuReg
|
|
add r1, sp, 0x10
|
|
strh r0, [r1]
|
|
ldrb r2, [r1]
|
|
movs r0, 0xD
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
ldrh r1, [r1]
|
|
movs r0, 0xA
|
|
bl SetGpuReg
|
|
_080BAFCA:
|
|
movs r0, 0
|
|
bl GetGpuReg
|
|
adds r1, r0, 0
|
|
movs r2, 0x80
|
|
lsls r2, 8
|
|
adds r0, r2, 0
|
|
eors r1, r0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
movs r0, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x50
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x52
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0
|
|
bl GetAnimBankSpriteId
|
|
ldr r4, _080BB07C @ =gSprites
|
|
movs r0, 0x8
|
|
ldrsh r1, [r5, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
bl DestroySprite
|
|
mov r0, sp
|
|
bl sub_80752A0
|
|
mov r0, sp
|
|
ldrb r0, [r0, 0x9]
|
|
bl sub_8075358
|
|
movs r1, 0x14
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0x1
|
|
bne _080BB050
|
|
ldr r2, _080BB080 @ =gUnknown_2023D44
|
|
ldr r0, _080BB084 @ =gUnknown_2037F1A
|
|
ldrb r1, [r0]
|
|
movs r0, 0x2
|
|
eors r0, r1
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
lsls r2, r0, 4
|
|
adds r2, r0
|
|
lsls r2, 2
|
|
adds r2, r4
|
|
ldrb r3, [r2, 0x5]
|
|
lsls r1, r3, 28
|
|
lsrs r1, 30
|
|
adds r1, 0x1
|
|
movs r0, 0x3
|
|
ands r1, r0
|
|
lsls r1, 2
|
|
movs r0, 0xD
|
|
negs r0, r0
|
|
ands r0, r3
|
|
orrs r0, r1
|
|
strb r0, [r2, 0x5]
|
|
_080BB050:
|
|
mov r2, r8
|
|
strh r2, [r7]
|
|
adds r0, r6, 0
|
|
bl DestroyAnimVisualTask
|
|
_080BB05A:
|
|
add sp, 0x14
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BB068: .4byte gTasks
|
|
_080BB06C: .4byte gUnknown_202297A
|
|
_080BB070: .4byte gUnknown_2022984
|
|
_080BB074: .4byte gUnknown_2022986
|
|
_080BB078: .4byte 0x00003f3f
|
|
_080BB07C: .4byte gSprites
|
|
_080BB080: .4byte gUnknown_2023D44
|
|
_080BB084: .4byte gUnknown_2037F1A
|
|
thumb_func_end sub_80BAF38
|
|
|
|
thumb_func_start sub_80BB088
|
|
sub_80BB088: @ 80BB088
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r4, _080BB0C8 @ =gUnknown_20399B4
|
|
movs r0, 0x18
|
|
bl AllocZeroed
|
|
str r0, [r4]
|
|
movs r2, 0
|
|
ldr r3, _080BB0CC @ =gUnknown_2037F02
|
|
_080BB09C:
|
|
ldr r1, [r4]
|
|
lsls r0, r2, 1
|
|
adds r1, 0x4
|
|
adds r1, r0
|
|
adds r0, r3
|
|
ldrh r0, [r0]
|
|
strh r0, [r1]
|
|
adds r0, r2, 0x1
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0x7
|
|
bls _080BB09C
|
|
ldr r0, _080BB0D0 @ =gTasks
|
|
lsls r1, r5, 2
|
|
adds r1, r5
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldr r0, _080BB0D4 @ =sub_80BB0D8
|
|
str r0, [r1]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BB0C8: .4byte gUnknown_20399B4
|
|
_080BB0CC: .4byte gUnknown_2037F02
|
|
_080BB0D0: .4byte gTasks
|
|
_080BB0D4: .4byte sub_80BB0D8
|
|
thumb_func_end sub_80BB088
|
|
|
|
thumb_func_start sub_80BB0D8
|
|
sub_80BB0D8: @ 80BB0D8
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
ldr r0, _080BB0F0 @ =gUnknown_20399B4
|
|
ldr r1, [r0]
|
|
movs r2, 0x8
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, 0
|
|
bne _080BB0F8
|
|
ldr r0, _080BB0F4 @ =gUnknown_2037F1A
|
|
b _080BB0FA
|
|
.align 2, 0
|
|
_080BB0F0: .4byte gUnknown_20399B4
|
|
_080BB0F4: .4byte gUnknown_2037F1A
|
|
_080BB0F8:
|
|
ldr r0, _080BB230 @ =gUnknown_2037F1B
|
|
_080BB0FA:
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
ldr r4, _080BB234 @ =gUnknown_20399B4
|
|
ldr r2, [r4]
|
|
ldrb r0, [r2]
|
|
movs r1, 0x2
|
|
eors r0, r1
|
|
strb r0, [r2, 0x1]
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080BB12A
|
|
ldr r1, [r4]
|
|
movs r2, 0xA
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, 0
|
|
beq _080BB130
|
|
ldrb r0, [r1, 0x1]
|
|
bl sub_8072DF0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080BB130
|
|
_080BB12A:
|
|
ldr r1, [r4]
|
|
movs r0, 0
|
|
strh r0, [r1, 0xA]
|
|
_080BB130:
|
|
ldr r0, _080BB238 @ =gUnknown_2022984
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
ldr r0, _080BB23C @ =gUnknown_2022986
|
|
strh r1, [r0]
|
|
ldr r1, _080BB240 @ =0x00003f3f
|
|
movs r0, 0x48
|
|
bl SetGpuReg
|
|
ldr r1, _080BB244 @ =0x00003f3d
|
|
movs r0, 0x4A
|
|
bl SetGpuReg
|
|
movs r1, 0x80
|
|
lsls r1, 8
|
|
movs r0, 0
|
|
bl SetGpuRegBits
|
|
ldr r1, _080BB248 @ =0x00003f42
|
|
movs r0, 0x50
|
|
bl SetGpuReg
|
|
movs r1, 0x80
|
|
lsls r1, 5
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
movs r0, 0x1
|
|
movs r1, 0x4
|
|
movs r2, 0
|
|
bl SetAnimBgAttribute
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl SetAnimBgAttribute
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080BB18E
|
|
movs r0, 0x1
|
|
movs r1, 0x3
|
|
movs r2, 0x1
|
|
bl SetAnimBgAttribute
|
|
_080BB18E:
|
|
bl sub_8075290
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080BB20A
|
|
ldr r4, _080BB234 @ =gUnknown_20399B4
|
|
ldr r1, [r4]
|
|
movs r2, 0xA
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, 0
|
|
bne _080BB20A
|
|
ldrb r0, [r1]
|
|
bl GetBattlerPosition
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x3
|
|
beq _080BB1C0
|
|
ldr r0, [r4]
|
|
ldrb r0, [r0]
|
|
bl GetBattlerPosition
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080BB20A
|
|
_080BB1C0:
|
|
ldr r0, [r4]
|
|
ldrb r0, [r0, 0x1]
|
|
bl sub_8072DF0
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0x1
|
|
bne _080BB20A
|
|
ldr r3, _080BB24C @ =gSprites
|
|
ldr r1, _080BB250 @ =gUnknown_2023D44
|
|
ldr r0, [r4]
|
|
ldrb r0, [r0, 0x1]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
lsls r2, r0, 4
|
|
adds r2, r0
|
|
lsls r2, 2
|
|
adds r2, r3
|
|
ldrb r3, [r2, 0x5]
|
|
lsls r1, r3, 28
|
|
lsrs r1, 30
|
|
subs r1, 0x1
|
|
movs r0, 0x3
|
|
ands r1, r0
|
|
lsls r1, 2
|
|
movs r0, 0xD
|
|
negs r0, r0
|
|
ands r0, r3
|
|
orrs r0, r1
|
|
strb r0, [r2, 0x5]
|
|
movs r0, 0x1
|
|
movs r1, 0x4
|
|
movs r2, 0x1
|
|
bl SetAnimBgAttribute
|
|
ldr r0, [r4]
|
|
strb r5, [r0, 0x2]
|
|
_080BB20A:
|
|
ldr r4, _080BB234 @ =gUnknown_20399B4
|
|
ldr r0, [r4]
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080BB25C
|
|
ldr r1, _080BB254 @ =gBattlerPartyIndexes
|
|
ldr r0, [r4]
|
|
ldrb r0, [r0]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, _080BB258 @ =gEnemyParty
|
|
b _080BB26E
|
|
.align 2, 0
|
|
_080BB230: .4byte gUnknown_2037F1B
|
|
_080BB234: .4byte gUnknown_20399B4
|
|
_080BB238: .4byte gUnknown_2022984
|
|
_080BB23C: .4byte gUnknown_2022986
|
|
_080BB240: .4byte 0x00003f3f
|
|
_080BB244: .4byte 0x00003f3d
|
|
_080BB248: .4byte 0x00003f42
|
|
_080BB24C: .4byte gSprites
|
|
_080BB250: .4byte gUnknown_2023D44
|
|
_080BB254: .4byte gBattlerPartyIndexes
|
|
_080BB258: .4byte gEnemyParty
|
|
_080BB25C:
|
|
ldr r1, _080BB290 @ =gBattlerPartyIndexes
|
|
ldr r0, [r4]
|
|
ldrb r0, [r0]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, _080BB294 @ =gPlayerParty
|
|
_080BB26E:
|
|
adds r0, r1
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
ldr r1, [r4]
|
|
strh r0, [r1, 0x14]
|
|
ldr r0, _080BB298 @ =gTasks
|
|
lsls r1, r6, 2
|
|
adds r1, r6
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldr r0, _080BB29C @ =sub_80BB2A0
|
|
str r0, [r1]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BB290: .4byte gBattlerPartyIndexes
|
|
_080BB294: .4byte gPlayerParty
|
|
_080BB298: .4byte gTasks
|
|
_080BB29C: .4byte sub_80BB2A0
|
|
thumb_func_end sub_80BB0D8
|
|
|
|
thumb_func_start sub_80BB2A0
|
|
sub_80BB2A0: @ 80BB2A0
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x10
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
movs r0, 0
|
|
mov r8, r0
|
|
ldr r6, _080BB300 @ =gUnknown_2023D44
|
|
ldr r4, _080BB304 @ =gUnknown_20399B4
|
|
ldr r2, [r4]
|
|
ldrb r0, [r2]
|
|
adds r1, r0, r6
|
|
ldrb r1, [r1]
|
|
ldrh r2, [r2, 0x14]
|
|
bl sub_8076E34
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
ldr r2, [r4]
|
|
movs r1, 0xA
|
|
ldrsh r0, [r2, r1]
|
|
cmp r0, 0
|
|
beq _080BB2E2
|
|
ldrb r0, [r2, 0x1]
|
|
adds r1, r0, r6
|
|
ldrb r1, [r1]
|
|
ldrh r2, [r2, 0x14]
|
|
bl sub_8076E34
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
_080BB2E2:
|
|
mov r0, sp
|
|
bl sub_80752A0
|
|
ldr r0, [r4]
|
|
movs r4, 0x4
|
|
ldrsh r0, [r0, r4]
|
|
cmp r0, 0
|
|
bne _080BB30C
|
|
mov r0, sp
|
|
ldrb r0, [r0, 0x9]
|
|
ldr r1, _080BB308 @ =gFile_graphics_battle_anims_masks_stat_tilemap_1_tilemap
|
|
bl sub_807543C
|
|
b _080BB316
|
|
.align 2, 0
|
|
_080BB300: .4byte gUnknown_2023D44
|
|
_080BB304: .4byte gUnknown_20399B4
|
|
_080BB308: .4byte gFile_graphics_battle_anims_masks_stat_tilemap_1_tilemap
|
|
_080BB30C:
|
|
mov r0, sp
|
|
ldrb r0, [r0, 0x9]
|
|
ldr r1, _080BB354 @ =gFile_graphics_battle_anims_masks_stat_tilemap_2_tilemap
|
|
bl sub_807543C
|
|
_080BB316:
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080BB32E
|
|
mov r0, sp
|
|
ldrb r0, [r0, 0x8]
|
|
ldr r1, [sp, 0x4]
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl sub_80730C0
|
|
_080BB32E:
|
|
mov r0, sp
|
|
ldrb r0, [r0, 0x9]
|
|
ldr r1, _080BB358 @ =gFile_graphics_battle_anims_masks_stat_sheet
|
|
mov r2, sp
|
|
ldrh r2, [r2, 0xA]
|
|
bl sub_80753B4
|
|
ldr r0, _080BB35C @ =gUnknown_20399B4
|
|
ldr r0, [r0]
|
|
movs r1, 0x6
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0x6
|
|
bhi _080BB3C4
|
|
lsls r0, 2
|
|
ldr r1, _080BB360 @ =_080BB364
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080BB354: .4byte gFile_graphics_battle_anims_masks_stat_tilemap_2_tilemap
|
|
_080BB358: .4byte gFile_graphics_battle_anims_masks_stat_sheet
|
|
_080BB35C: .4byte gUnknown_20399B4
|
|
_080BB360: .4byte _080BB364
|
|
.align 2, 0
|
|
_080BB364:
|
|
.4byte _080BB380
|
|
.4byte _080BB388
|
|
.4byte _080BB390
|
|
.4byte _080BB398
|
|
.4byte _080BB3A0
|
|
.4byte _080BB3A8
|
|
.4byte _080BB3B0
|
|
_080BB380:
|
|
ldr r0, _080BB384 @ =gFile_graphics_battle_anims_masks_stat2_palette
|
|
b _080BB3B2
|
|
.align 2, 0
|
|
_080BB384: .4byte gFile_graphics_battle_anims_masks_stat2_palette
|
|
_080BB388:
|
|
ldr r0, _080BB38C @ =gFile_graphics_battle_anims_masks_stat1_palette
|
|
b _080BB3B2
|
|
.align 2, 0
|
|
_080BB38C: .4byte gFile_graphics_battle_anims_masks_stat1_palette
|
|
_080BB390:
|
|
ldr r0, _080BB394 @ =gFile_graphics_battle_anims_masks_stat3_palette
|
|
b _080BB3B2
|
|
.align 2, 0
|
|
_080BB394: .4byte gFile_graphics_battle_anims_masks_stat3_palette
|
|
_080BB398:
|
|
ldr r0, _080BB39C @ =gFile_graphics_battle_anims_masks_stat4_palette
|
|
b _080BB3B2
|
|
.align 2, 0
|
|
_080BB39C: .4byte gFile_graphics_battle_anims_masks_stat4_palette
|
|
_080BB3A0:
|
|
ldr r0, _080BB3A4 @ =gFile_graphics_battle_anims_masks_stat6_palette
|
|
b _080BB3B2
|
|
.align 2, 0
|
|
_080BB3A4: .4byte gFile_graphics_battle_anims_masks_stat6_palette
|
|
_080BB3A8:
|
|
ldr r0, _080BB3AC @ =gFile_graphics_battle_anims_masks_stat7_palette
|
|
b _080BB3B2
|
|
.align 2, 0
|
|
_080BB3AC: .4byte gFile_graphics_battle_anims_masks_stat7_palette
|
|
_080BB3B0:
|
|
ldr r0, _080BB3C0 @ =gFile_graphics_battle_anims_masks_stat8_palette
|
|
_080BB3B2:
|
|
mov r1, sp
|
|
ldrb r1, [r1, 0x8]
|
|
lsls r1, 4
|
|
movs r2, 0x20
|
|
bl LoadCompressedPalette
|
|
b _080BB3D2
|
|
.align 2, 0
|
|
_080BB3C0: .4byte gFile_graphics_battle_anims_masks_stat8_palette
|
|
_080BB3C4:
|
|
ldr r0, _080BB3FC @ =gFile_graphics_battle_anims_masks_stat5_palette
|
|
mov r1, sp
|
|
ldrb r1, [r1, 0x8]
|
|
lsls r1, 4
|
|
movs r2, 0x20
|
|
bl LoadCompressedPalette
|
|
_080BB3D2:
|
|
ldr r3, _080BB400 @ =gUnknown_2022978
|
|
movs r2, 0
|
|
strh r2, [r3]
|
|
ldr r0, _080BB404 @ =gUnknown_202297A
|
|
strh r2, [r0]
|
|
ldr r1, _080BB408 @ =gUnknown_20399B4
|
|
ldr r0, [r1]
|
|
movs r4, 0x4
|
|
ldrsh r0, [r0, r4]
|
|
adds r4, r1, 0
|
|
cmp r0, 0x1
|
|
bne _080BB414
|
|
movs r0, 0x40
|
|
strh r0, [r3]
|
|
ldr r2, _080BB40C @ =gTasks
|
|
lsls r3, r5, 2
|
|
adds r0, r3, r5
|
|
lsls r0, 3
|
|
adds r0, r2
|
|
ldr r1, _080BB410 @ =0x0000fffd
|
|
b _080BB420
|
|
.align 2, 0
|
|
_080BB3FC: .4byte gFile_graphics_battle_anims_masks_stat5_palette
|
|
_080BB400: .4byte gUnknown_2022978
|
|
_080BB404: .4byte gUnknown_202297A
|
|
_080BB408: .4byte gUnknown_20399B4
|
|
_080BB40C: .4byte gTasks
|
|
_080BB410: .4byte 0x0000fffd
|
|
_080BB414:
|
|
ldr r2, _080BB43C @ =gTasks
|
|
lsls r3, r5, 2
|
|
adds r0, r3, r5
|
|
lsls r0, 3
|
|
adds r0, r2
|
|
movs r1, 0x3
|
|
_080BB420:
|
|
strh r1, [r0, 0xA]
|
|
ldr r0, [r4]
|
|
movs r1, 0xC
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0
|
|
bne _080BB440
|
|
adds r0, r3, r5
|
|
lsls r0, 3
|
|
adds r0, r2
|
|
movs r1, 0xA
|
|
strh r1, [r0, 0x10]
|
|
movs r1, 0x14
|
|
b _080BB44C
|
|
.align 2, 0
|
|
_080BB43C: .4byte gTasks
|
|
_080BB440:
|
|
adds r0, r3, r5
|
|
lsls r0, 3
|
|
adds r0, r2
|
|
movs r1, 0xD
|
|
strh r1, [r0, 0x10]
|
|
movs r1, 0x1E
|
|
_080BB44C:
|
|
strh r1, [r0, 0x12]
|
|
adds r1, r3, r5
|
|
lsls r1, 3
|
|
adds r1, r2
|
|
strh r7, [r1, 0x8]
|
|
ldr r3, [r4]
|
|
ldrh r0, [r3, 0xA]
|
|
strh r0, [r1, 0xC]
|
|
mov r4, r8
|
|
strh r4, [r1, 0xE]
|
|
ldrb r0, [r3, 0x2]
|
|
strh r0, [r1, 0x14]
|
|
ldr r2, _080BB490 @ =gUnknown_2023D44
|
|
ldrb r0, [r3, 0x1]
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
strh r0, [r1, 0x16]
|
|
ldr r0, _080BB494 @ =sub_80BB4B8
|
|
str r0, [r1]
|
|
movs r1, 0x4
|
|
ldrsh r0, [r3, r1]
|
|
cmp r0, 0
|
|
bne _080BB498
|
|
movs r0, 0x40
|
|
negs r0, r0
|
|
bl sub_8073B08
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
asrs r1, 24
|
|
movs r0, 0xE8
|
|
bl PlaySE12WithPanning
|
|
b _080BB4AC
|
|
.align 2, 0
|
|
_080BB490: .4byte gUnknown_2023D44
|
|
_080BB494: .4byte sub_80BB4B8
|
|
_080BB498:
|
|
movs r0, 0x40
|
|
negs r0, r0
|
|
bl sub_8073B08
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
asrs r1, 24
|
|
movs r0, 0xEE
|
|
bl PlaySE12WithPanning
|
|
_080BB4AC:
|
|
add sp, 0x10
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80BB2A0
|
|
|
|
thumb_func_start sub_80BB4B8
|
|
sub_80BB4B8: @ 80BB4B8
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
ldr r2, _080BB4E4 @ =gUnknown_202297A
|
|
ldr r1, _080BB4E8 @ =gTasks
|
|
lsls r0, r6, 2
|
|
adds r0, r6
|
|
lsls r0, 3
|
|
adds r5, r0, r1
|
|
ldrh r0, [r5, 0xA]
|
|
ldrh r1, [r2]
|
|
adds r0, r1
|
|
strh r0, [r2]
|
|
movs r0, 0x26
|
|
ldrsh r2, [r5, r0]
|
|
cmp r2, 0x1
|
|
beq _080BB52E
|
|
cmp r2, 0x1
|
|
bgt _080BB4EC
|
|
cmp r2, 0
|
|
beq _080BB4F6
|
|
b _080BB644
|
|
.align 2, 0
|
|
_080BB4E4: .4byte gUnknown_202297A
|
|
_080BB4E8: .4byte gTasks
|
|
_080BB4EC:
|
|
cmp r2, 0x2
|
|
beq _080BB544
|
|
cmp r2, 0x3
|
|
beq _080BB582
|
|
b _080BB644
|
|
_080BB4F6:
|
|
ldrh r0, [r5, 0x1E]
|
|
adds r1, r0, 0x1
|
|
strh r1, [r5, 0x1E]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bgt _080BB504
|
|
b _080BB644
|
|
_080BB504:
|
|
strh r2, [r5, 0x1E]
|
|
ldrh r1, [r5, 0x20]
|
|
adds r1, 0x1
|
|
strh r1, [r5, 0x20]
|
|
movs r0, 0x10
|
|
subs r0, r1
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
movs r2, 0x20
|
|
ldrsh r1, [r5, r2]
|
|
movs r2, 0x10
|
|
ldrsh r0, [r5, r2]
|
|
cmp r1, r0
|
|
beq _080BB52C
|
|
b _080BB644
|
|
_080BB52C:
|
|
b _080BB57A
|
|
_080BB52E:
|
|
ldrh r0, [r5, 0x1C]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x1C]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r2, 0x12
|
|
ldrsh r1, [r5, r2]
|
|
cmp r0, r1
|
|
beq _080BB542
|
|
b _080BB644
|
|
_080BB542:
|
|
b _080BB57A
|
|
_080BB544:
|
|
ldrh r0, [r5, 0x1E]
|
|
adds r1, r0, 0x1
|
|
strh r1, [r5, 0x1E]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
ble _080BB644
|
|
movs r0, 0
|
|
strh r0, [r5, 0x1E]
|
|
ldrh r1, [r5, 0x20]
|
|
subs r1, 0x1
|
|
strh r1, [r5, 0x20]
|
|
movs r0, 0x10
|
|
subs r0, r1
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
movs r1, 0x20
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0
|
|
bne _080BB644
|
|
movs r0, 0
|
|
bl sub_8073128
|
|
_080BB57A:
|
|
ldrh r0, [r5, 0x26]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x26]
|
|
b _080BB644
|
|
_080BB582:
|
|
ldr r0, _080BB64C @ =gUnknown_2022984
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
ldr r0, _080BB650 @ =gUnknown_2022986
|
|
strh r1, [r0]
|
|
ldr r4, _080BB654 @ =0x00003f3f
|
|
movs r0, 0x48
|
|
adds r1, r4, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x4A
|
|
adds r1, r4, 0
|
|
bl SetGpuReg
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080BB5B2
|
|
movs r0, 0x1
|
|
movs r1, 0x3
|
|
movs r2, 0
|
|
bl SetAnimBgAttribute
|
|
_080BB5B2:
|
|
movs r0, 0
|
|
bl GetGpuReg
|
|
adds r1, r0, 0
|
|
movs r2, 0x80
|
|
lsls r2, 8
|
|
adds r0, r2, 0
|
|
eors r1, r0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
movs r0, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x50
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x52
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x8
|
|
ldrsh r1, [r5, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r4, _080BB658 @ =gSprites
|
|
adds r0, r4
|
|
bl DestroySprite
|
|
movs r1, 0xC
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0
|
|
beq _080BB606
|
|
movs r2, 0xE
|
|
ldrsh r1, [r5, r2]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
bl DestroySprite
|
|
_080BB606:
|
|
movs r1, 0x14
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0x1
|
|
bne _080BB632
|
|
movs r2, 0x16
|
|
ldrsh r0, [r5, r2]
|
|
lsls r2, r0, 4
|
|
adds r2, r0
|
|
lsls r2, 2
|
|
adds r2, r4
|
|
ldrb r3, [r2, 0x5]
|
|
lsls r1, r3, 28
|
|
lsrs r1, 30
|
|
adds r1, 0x1
|
|
movs r0, 0x3
|
|
ands r1, r0
|
|
lsls r1, 2
|
|
movs r0, 0xD
|
|
negs r0, r0
|
|
ands r0, r3
|
|
orrs r0, r1
|
|
strb r0, [r2, 0x5]
|
|
_080BB632:
|
|
ldr r4, _080BB65C @ =gUnknown_20399B4
|
|
ldr r0, [r4]
|
|
bl Free
|
|
movs r0, 0
|
|
str r0, [r4]
|
|
adds r0, r6, 0
|
|
bl DestroyAnimVisualTask
|
|
_080BB644:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BB64C: .4byte gUnknown_2022984
|
|
_080BB650: .4byte gUnknown_2022986
|
|
_080BB654: .4byte 0x00003f3f
|
|
_080BB658: .4byte gSprites
|
|
_080BB65C: .4byte gUnknown_20399B4
|
|
thumb_func_end sub_80BB4B8
|
|
|
|
thumb_func_start sub_80BB660
|
|
sub_80BB660: @ 80BB660
|
|
push {r4-r6,lr}
|
|
sub sp, 0xC
|
|
adds r5, r0, 0
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
movs r0, 0x1
|
|
movs r1, 0x1
|
|
movs r2, 0x1
|
|
movs r3, 0x1
|
|
bl sub_8075CB8
|
|
adds r6, r0, 0
|
|
movs r1, 0
|
|
bl sub_80BB790
|
|
ldr r0, _080BB6C0 @ =gTasks
|
|
lsls r4, r5, 2
|
|
adds r4, r5
|
|
lsls r4, 3
|
|
adds r4, r0
|
|
lsrs r0, r6, 16
|
|
movs r5, 0
|
|
strh r0, [r4, 0x24]
|
|
str r5, [sp]
|
|
str r5, [sp, 0x4]
|
|
str r5, [sp, 0x8]
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl sub_8075BE8
|
|
adds r6, r0, 0
|
|
ldr r1, _080BB6C4 @ =0x0000ffff
|
|
ands r6, r1
|
|
adds r0, r6, 0
|
|
bl sub_80BB790
|
|
strh r6, [r4, 0x26]
|
|
strh r5, [r4, 0x8]
|
|
strh r5, [r4, 0xA]
|
|
ldr r0, _080BB6C8 @ =sub_80BB6CC
|
|
str r0, [r4]
|
|
add sp, 0xC
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BB6C0: .4byte gTasks
|
|
_080BB6C4: .4byte 0x0000ffff
|
|
_080BB6C8: .4byte sub_80BB6CC
|
|
thumb_func_end sub_80BB660
|
|
|
|
thumb_func_start sub_80BB6CC
|
|
sub_80BB6CC: @ 80BB6CC
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
lsls r0, r2, 2
|
|
adds r0, r2
|
|
lsls r0, 3
|
|
ldr r1, _080BB6F0 @ =gTasks
|
|
adds r4, r0, r1
|
|
movs r0, 0x8
|
|
ldrsh r1, [r4, r0]
|
|
cmp r1, 0x1
|
|
beq _080BB710
|
|
cmp r1, 0x1
|
|
bgt _080BB6F4
|
|
cmp r1, 0
|
|
beq _080BB6FA
|
|
b _080BB78A
|
|
.align 2, 0
|
|
_080BB6F0: .4byte gTasks
|
|
_080BB6F4:
|
|
cmp r1, 0x2
|
|
beq _080BB784
|
|
b _080BB78A
|
|
_080BB6FA:
|
|
ldrh r0, [r4, 0xA]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0xA]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x6
|
|
ble _080BB78A
|
|
strh r1, [r4, 0xA]
|
|
movs r0, 0x10
|
|
strh r0, [r4, 0xC]
|
|
b _080BB778
|
|
_080BB710:
|
|
ldrh r0, [r4, 0xA]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0xA]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1
|
|
ble _080BB78A
|
|
movs r0, 0
|
|
strh r0, [r4, 0xA]
|
|
ldrh r0, [r4, 0xC]
|
|
subs r0, 0x1
|
|
strh r0, [r4, 0xC]
|
|
movs r5, 0
|
|
movs r6, 0x1
|
|
_080BB72C:
|
|
movs r1, 0x26
|
|
ldrsh r0, [r4, r1]
|
|
asrs r0, r5
|
|
ands r0, r6
|
|
cmp r0, 0
|
|
beq _080BB746
|
|
lsls r0, r5, 20
|
|
lsrs r0, 16
|
|
ldrb r2, [r4, 0xC]
|
|
movs r1, 0x10
|
|
ldr r3, _080BB780 @ =0x0000ffff
|
|
bl BlendPalette
|
|
_080BB746:
|
|
movs r1, 0x24
|
|
ldrsh r0, [r4, r1]
|
|
asrs r0, r5
|
|
ands r0, r6
|
|
cmp r0, 0
|
|
beq _080BB766
|
|
lsls r0, r5, 20
|
|
movs r1, 0x80
|
|
lsls r1, 17
|
|
adds r0, r1
|
|
lsrs r0, 16
|
|
ldrb r2, [r4, 0xC]
|
|
movs r1, 0x10
|
|
movs r3, 0
|
|
bl BlendPalette
|
|
_080BB766:
|
|
adds r0, r5, 0x1
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
cmp r5, 0xF
|
|
bls _080BB72C
|
|
movs r1, 0xC
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bne _080BB78A
|
|
_080BB778:
|
|
ldrh r0, [r4, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x8]
|
|
b _080BB78A
|
|
.align 2, 0
|
|
_080BB780: .4byte 0x0000ffff
|
|
_080BB784:
|
|
adds r0, r2, 0
|
|
bl DestroyAnimVisualTask
|
|
_080BB78A:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80BB6CC
|
|
|
|
thumb_func_start sub_80BB790
|
|
sub_80BB790: @ 80BB790
|
|
push {r4-r6,lr}
|
|
adds r3, r0, 0
|
|
lsls r1, 16
|
|
lsrs r6, r1, 16
|
|
movs r2, 0
|
|
_080BB79A:
|
|
movs r0, 0x1
|
|
ands r0, r3
|
|
lsrs r4, r3, 1
|
|
adds r5, r2, 0x1
|
|
cmp r0, 0
|
|
beq _080BB7C6
|
|
lsls r0, r2, 20
|
|
lsrs r2, r0, 16
|
|
adds r0, r2, 0
|
|
adds r0, 0x10
|
|
cmp r2, r0
|
|
bge _080BB7C6
|
|
ldr r1, _080BB7D8 @ =gPlttBufferFaded
|
|
adds r3, r0, 0
|
|
_080BB7B6:
|
|
lsls r0, r2, 1
|
|
adds r0, r1
|
|
strh r6, [r0]
|
|
adds r0, r2, 0x1
|
|
lsls r0, 16
|
|
lsrs r2, r0, 16
|
|
cmp r2, r3
|
|
blt _080BB7B6
|
|
_080BB7C6:
|
|
adds r3, r4, 0
|
|
lsls r0, r5, 16
|
|
lsrs r2, r0, 16
|
|
cmp r2, 0x1F
|
|
bls _080BB79A
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BB7D8: .4byte gPlttBufferFaded
|
|
thumb_func_end sub_80BB790
|
|
|
|
thumb_func_start sub_80BB7DC
|
|
sub_80BB7DC: @ 80BB7DC
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
movs r4, 0
|
|
movs r2, 0
|
|
ldr r0, _080BB824 @ =gUnknown_2037F1A
|
|
ldrb r3, [r0]
|
|
movs r5, 0x1
|
|
_080BB7EC:
|
|
cmp r3, r2
|
|
beq _080BB7FA
|
|
adds r1, r2, 0
|
|
adds r1, 0x10
|
|
adds r0, r5, 0
|
|
lsls r0, r1
|
|
orrs r4, r0
|
|
_080BB7FA:
|
|
adds r2, 0x1
|
|
cmp r2, 0x3
|
|
bls _080BB7EC
|
|
movs r2, 0x5
|
|
ldr r0, _080BB828 @ =gUnknown_2037F02
|
|
adds r1, r0, 0
|
|
adds r1, 0x8
|
|
_080BB808:
|
|
ldrh r0, [r1]
|
|
strh r0, [r1, 0x2]
|
|
subs r1, 0x2
|
|
subs r2, 0x1
|
|
cmp r2, 0
|
|
bne _080BB808
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_80BAA4C
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BB824: .4byte gUnknown_2037F1A
|
|
_080BB828: .4byte gUnknown_2037F02
|
|
thumb_func_end sub_80BB7DC
|
|
|
|
thumb_func_start sub_80BB82C
|
|
sub_80BB82C: @ 80BB82C
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
movs r0, 0
|
|
bl sub_8075458
|
|
ldr r0, _080BB894 @ =sub_80BB8A4
|
|
movs r1, 0x5
|
|
bl CreateTask
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r4, _080BB898 @ =gUnknown_2037F02
|
|
movs r1, 0x4
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
beq _080BB868
|
|
ldr r0, _080BB89C @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080BB868
|
|
ldrh r0, [r4]
|
|
negs r0, r0
|
|
strh r0, [r4]
|
|
ldrh r0, [r4, 0x2]
|
|
negs r0, r0
|
|
strh r0, [r4, 0x2]
|
|
_080BB868:
|
|
ldr r0, _080BB8A0 @ =gTasks
|
|
lsls r1, r5, 2
|
|
adds r1, r5
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldr r2, _080BB898 @ =gUnknown_2037F02
|
|
ldrh r0, [r2]
|
|
strh r0, [r1, 0xA]
|
|
ldrh r0, [r2, 0x2]
|
|
strh r0, [r1, 0xC]
|
|
ldrh r0, [r2, 0x6]
|
|
strh r0, [r1, 0xE]
|
|
ldrh r0, [r1, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x8]
|
|
adds r0, r6, 0
|
|
bl DestroyAnimVisualTask
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BB894: .4byte sub_80BB8A4
|
|
_080BB898: .4byte gUnknown_2037F02
|
|
_080BB89C: .4byte gUnknown_2037F1A
|
|
_080BB8A0: .4byte gTasks
|
|
thumb_func_end sub_80BB82C
|
|
|
|
thumb_func_start sub_80BB8A4
|
|
sub_80BB8A4: @ 80BB8A4
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r0, _080BB910 @ =gTasks
|
|
lsls r1, r5, 2
|
|
adds r1, r5
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldrh r3, [r1, 0xA]
|
|
ldrh r0, [r1, 0x1C]
|
|
adds r3, r0
|
|
movs r4, 0
|
|
mov r12, r4
|
|
strh r3, [r1, 0x1C]
|
|
ldrh r2, [r1, 0xC]
|
|
ldrh r7, [r1, 0x1E]
|
|
adds r2, r7
|
|
strh r2, [r1, 0x1E]
|
|
ldr r6, _080BB914 @ =gUnknown_2022980
|
|
lsls r0, r3, 16
|
|
asrs r0, 24
|
|
ldrh r4, [r6]
|
|
adds r0, r4
|
|
strh r0, [r6]
|
|
ldr r4, _080BB918 @ =gUnknown_2022982
|
|
lsls r0, r2, 16
|
|
asrs r0, 24
|
|
ldrh r7, [r4]
|
|
adds r0, r7
|
|
strh r0, [r4]
|
|
movs r0, 0xFF
|
|
ands r3, r0
|
|
strh r3, [r1, 0x1C]
|
|
ands r2, r0
|
|
strh r2, [r1, 0x1E]
|
|
ldr r0, _080BB91C @ =gUnknown_2037F02
|
|
movs r3, 0xE
|
|
ldrsh r2, [r0, r3]
|
|
movs r7, 0xE
|
|
ldrsh r0, [r1, r7]
|
|
cmp r2, r0
|
|
bne _080BB90A
|
|
mov r0, r12
|
|
strh r0, [r6]
|
|
strh r0, [r4]
|
|
movs r0, 0x1
|
|
bl sub_8075458
|
|
adds r0, r5, 0
|
|
bl DestroyTask
|
|
_080BB90A:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BB910: .4byte gTasks
|
|
_080BB914: .4byte gUnknown_2022980
|
|
_080BB918: .4byte gUnknown_2022982
|
|
_080BB91C: .4byte gUnknown_2037F02
|
|
thumb_func_end sub_80BB8A4
|
|
|
|
thumb_func_start sub_80BB920
|
|
sub_80BB920: @ 80BB920
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
ldr r0, _080BB944 @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
ldr r1, _080BB948 @ =gUnknown_2037F02
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r1, 0xE]
|
|
adds r0, r4, 0
|
|
bl DestroyAnimVisualTask
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BB944: .4byte gUnknown_2037F1A
|
|
_080BB948: .4byte gUnknown_2037F02
|
|
thumb_func_end sub_80BB920
|
|
|
|
thumb_func_start sub_80BB94C
|
|
sub_80BB94C: @ 80BB94C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
ldr r0, _080BB970 @ =gUnknown_2037F1B
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
ldr r1, _080BB974 @ =gUnknown_2037F02
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r1, 0xE]
|
|
adds r0, r4, 0
|
|
bl DestroyAnimVisualTask
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BB970: .4byte gUnknown_2037F1B
|
|
_080BB974: .4byte gUnknown_2037F02
|
|
thumb_func_end sub_80BB94C
|
|
|
|
thumb_func_start sub_80BB978
|
|
sub_80BB978: @ 80BB978
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
ldr r5, _080BB9A4 @ =gUnknown_2037F02
|
|
movs r4, 0
|
|
ldr r0, _080BB9A8 @ =gUnknown_2037F1A
|
|
ldrb r2, [r0]
|
|
movs r0, 0x2
|
|
ldr r1, _080BB9AC @ =gUnknown_2037F1B
|
|
eors r0, r2
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bne _080BB994
|
|
movs r4, 0x1
|
|
_080BB994:
|
|
strh r4, [r5, 0xE]
|
|
adds r0, r3, 0
|
|
bl DestroyAnimVisualTask
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BB9A4: .4byte gUnknown_2037F02
|
|
_080BB9A8: .4byte gUnknown_2037F1A
|
|
_080BB9AC: .4byte gUnknown_2037F1B
|
|
thumb_func_end sub_80BB978
|
|
|
|
thumb_func_start sub_80BB9B0
|
|
sub_80BB9B0: @ 80BB9B0
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
movs r4, 0
|
|
ldr r6, _080BBA10 @ =gSprites
|
|
_080BB9BA:
|
|
ldr r0, _080BBA14 @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
cmp r4, r0
|
|
beq _080BB9F8
|
|
lsls r0, r4, 24
|
|
lsrs r0, 24
|
|
bl sub_8072DF0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080BB9F8
|
|
ldr r0, _080BBA18 @ =gUnknown_2023D44
|
|
adds r0, r4, r0
|
|
ldrb r0, [r0]
|
|
lsls r2, r0, 4
|
|
adds r2, r0
|
|
lsls r2, 2
|
|
adds r2, r6
|
|
ldr r1, _080BBA1C @ =gUnknown_2037F02
|
|
adds r2, 0x3E
|
|
movs r0, 0x1
|
|
ldrb r3, [r1]
|
|
ands r3, r0
|
|
lsls r3, 2
|
|
ldrb r0, [r2]
|
|
movs r7, 0x5
|
|
negs r7, r7
|
|
adds r1, r7, 0
|
|
ands r0, r1
|
|
orrs r0, r3
|
|
strb r0, [r2]
|
|
_080BB9F8:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
cmp r4, 0x3
|
|
bls _080BB9BA
|
|
adds r0, r5, 0
|
|
bl DestroyAnimVisualTask
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BBA10: .4byte gSprites
|
|
_080BBA14: .4byte gUnknown_2037F1A
|
|
_080BBA18: .4byte gUnknown_2023D44
|
|
_080BBA1C: .4byte gUnknown_2037F02
|
|
thumb_func_end sub_80BB9B0
|
|
|
|
thumb_func_start sub_80BBA20
|
|
sub_80BBA20: @ 80BBA20
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x24
|
|
ldr r1, [sp, 0x44]
|
|
ldr r4, [sp, 0x48]
|
|
ldr r5, [sp, 0x4C]
|
|
ldr r6, [sp, 0x50]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
lsls r2, 16
|
|
lsrs r2, 16
|
|
str r2, [sp, 0x14]
|
|
lsls r3, 24
|
|
lsrs r7, r3, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
mov r8, r1
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
str r4, [sp, 0x18]
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
str r5, [sp, 0x1C]
|
|
lsls r6, 24
|
|
lsrs r6, 24
|
|
mov r10, r6
|
|
movs r0, 0
|
|
str r0, [sp, 0x20]
|
|
movs r0, 0x2
|
|
adds r6, r7, 0
|
|
eors r6, r0
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080BBA82
|
|
mov r1, r8
|
|
cmp r1, 0
|
|
beq _080BBA86
|
|
adds r0, r6, 0
|
|
bl sub_8072DF0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080BBA86
|
|
_080BBA82:
|
|
movs r2, 0
|
|
mov r8, r2
|
|
_080BBA86:
|
|
ldr r0, _080BBB20 @ =gUnknown_2022984
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
ldr r0, _080BBB24 @ =gUnknown_2022986
|
|
strh r1, [r0]
|
|
ldr r1, _080BBB28 @ =0x00003f3f
|
|
movs r0, 0x48
|
|
bl SetGpuReg
|
|
ldr r1, _080BBB2C @ =0x00003f3d
|
|
movs r0, 0x4A
|
|
bl SetGpuReg
|
|
movs r1, 0x80
|
|
lsls r1, 8
|
|
movs r0, 0
|
|
bl SetGpuRegBits
|
|
ldr r1, _080BBB30 @ =0x00003f42
|
|
movs r0, 0x50
|
|
bl SetGpuReg
|
|
movs r1, 0x80
|
|
lsls r1, 5
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
movs r0, 0xA
|
|
bl GetGpuReg
|
|
add r4, sp, 0x10
|
|
strh r0, [r4]
|
|
ldrb r1, [r4]
|
|
movs r0, 0x4
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r4]
|
|
mov r2, sp
|
|
adds r2, 0x11
|
|
ldrb r1, [r2]
|
|
movs r0, 0x3F
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
ldrb r0, [r2]
|
|
movs r1, 0x20
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080BBAFC
|
|
ldrb r0, [r4]
|
|
movs r1, 0xD
|
|
negs r1, r1
|
|
ands r1, r0
|
|
movs r0, 0x4
|
|
orrs r1, r0
|
|
strb r1, [r4]
|
|
_080BBAFC:
|
|
ldrh r1, [r4]
|
|
movs r0, 0xA
|
|
bl SetGpuReg
|
|
adds r0, r7, 0
|
|
bl GetBattlerSide
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080BBB3C
|
|
ldr r1, _080BBB34 @ =gBattlerPartyIndexes
|
|
lsls r0, r7, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, _080BBB38 @ =gEnemyParty
|
|
b _080BBB4A
|
|
.align 2, 0
|
|
_080BBB20: .4byte gUnknown_2022984
|
|
_080BBB24: .4byte gUnknown_2022986
|
|
_080BBB28: .4byte 0x00003f3f
|
|
_080BBB2C: .4byte 0x00003f3d
|
|
_080BBB30: .4byte 0x00003f42
|
|
_080BBB34: .4byte gBattlerPartyIndexes
|
|
_080BBB38: .4byte gEnemyParty
|
|
_080BBB3C:
|
|
ldr r1, _080BBC10 @ =gBattlerPartyIndexes
|
|
lsls r0, r7, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, _080BBC14 @ =gPlayerParty
|
|
_080BBB4A:
|
|
adds r0, r1
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
ldr r5, _080BBC18 @ =gUnknown_2023D44
|
|
adds r0, r7, r5
|
|
ldrb r1, [r0]
|
|
adds r0, r7, 0
|
|
adds r2, r4, 0
|
|
bl sub_8076E34
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
mov r0, r8
|
|
cmp r0, 0
|
|
beq _080BBB80
|
|
adds r0, r6, r5
|
|
ldrb r1, [r0]
|
|
adds r0, r6, 0
|
|
adds r2, r4, 0
|
|
bl sub_8076E34
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
str r0, [sp, 0x20]
|
|
_080BBB80:
|
|
mov r0, sp
|
|
bl sub_80752A0
|
|
mov r0, sp
|
|
ldrb r0, [r0, 0x9]
|
|
ldr r1, [sp, 0x58]
|
|
bl sub_807543C
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080BBBA8
|
|
mov r0, sp
|
|
ldrb r0, [r0, 0x8]
|
|
ldr r1, [sp, 0x4]
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl sub_80730C0
|
|
_080BBBA8:
|
|
mov r0, sp
|
|
ldrb r0, [r0, 0x9]
|
|
mov r1, sp
|
|
ldrh r2, [r1, 0xA]
|
|
ldr r1, [sp, 0x54]
|
|
bl sub_80753B4
|
|
mov r0, sp
|
|
ldrb r1, [r0, 0x8]
|
|
lsls r1, 4
|
|
ldr r0, [sp, 0x5C]
|
|
movs r2, 0x20
|
|
bl LoadCompressedPalette
|
|
ldr r0, _080BBC1C @ =gUnknown_2022978
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
ldr r0, _080BBC20 @ =gUnknown_202297A
|
|
strh r1, [r0]
|
|
ldr r1, _080BBC24 @ =gTasks
|
|
mov r2, r9
|
|
lsls r0, r2, 2
|
|
add r0, r9
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
mov r1, sp
|
|
ldrh r1, [r1, 0x14]
|
|
strh r1, [r0, 0xA]
|
|
mov r2, sp
|
|
ldrh r2, [r2, 0x18]
|
|
strh r2, [r0, 0x10]
|
|
mov r1, r10
|
|
strh r1, [r0, 0x12]
|
|
mov r2, sp
|
|
ldrh r2, [r2, 0x1C]
|
|
strh r2, [r0, 0x14]
|
|
strh r7, [r0, 0x8]
|
|
mov r1, r8
|
|
strh r1, [r0, 0xC]
|
|
mov r2, sp
|
|
ldrh r2, [r2, 0x20]
|
|
strh r2, [r0, 0xE]
|
|
ldr r1, _080BBC28 @ =sub_80BBC2C
|
|
str r1, [r0]
|
|
add sp, 0x24
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BBC10: .4byte gBattlerPartyIndexes
|
|
_080BBC14: .4byte gPlayerParty
|
|
_080BBC18: .4byte gUnknown_2023D44
|
|
_080BBC1C: .4byte gUnknown_2022978
|
|
_080BBC20: .4byte gUnknown_202297A
|
|
_080BBC24: .4byte gTasks
|
|
_080BBC28: .4byte sub_80BBC2C
|
|
thumb_func_end sub_80BBA20
|
|
|
|
thumb_func_start sub_80BBC2C
|
|
sub_80BBC2C: @ 80BBC2C
|
|
push {r4-r6,lr}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
ldr r1, _080BBC68 @ =gTasks
|
|
lsls r0, r6, 2
|
|
adds r0, r6
|
|
lsls r0, 3
|
|
adds r3, r0, r1
|
|
movs r0, 0xA
|
|
ldrsh r2, [r3, r0]
|
|
adds r5, r1, 0
|
|
cmp r2, 0
|
|
bge _080BBC4A
|
|
negs r2, r2
|
|
_080BBC4A:
|
|
ldrh r0, [r3, 0x22]
|
|
adds r4, r0, r2
|
|
strh r4, [r3, 0x22]
|
|
movs r1, 0xA
|
|
ldrsh r0, [r3, r1]
|
|
cmp r0, 0
|
|
bge _080BBC70
|
|
ldr r2, _080BBC6C @ =gUnknown_202297A
|
|
lsls r1, r4, 16
|
|
asrs r1, 24
|
|
ldrh r0, [r2]
|
|
subs r0, r1
|
|
strh r0, [r2]
|
|
b _080BBC7C
|
|
.align 2, 0
|
|
_080BBC68: .4byte gTasks
|
|
_080BBC6C: .4byte gUnknown_202297A
|
|
_080BBC70:
|
|
ldr r1, _080BBCA0 @ =gUnknown_202297A
|
|
lsls r0, r4, 16
|
|
asrs r0, 24
|
|
ldrh r2, [r1]
|
|
adds r0, r2
|
|
strh r0, [r1]
|
|
_080BBC7C:
|
|
lsls r0, r6, 2
|
|
adds r0, r6
|
|
lsls r0, 3
|
|
adds r5, r0, r5
|
|
ldrh r1, [r5, 0x22]
|
|
movs r0, 0xFF
|
|
ands r0, r1
|
|
movs r2, 0
|
|
strh r0, [r5, 0x22]
|
|
movs r3, 0x26
|
|
ldrsh r0, [r5, r3]
|
|
cmp r0, 0x1
|
|
beq _080BBCE6
|
|
cmp r0, 0x1
|
|
bgt _080BBCA4
|
|
cmp r0, 0
|
|
beq _080BBCAA
|
|
b _080BBDD8
|
|
.align 2, 0
|
|
_080BBCA0: .4byte gUnknown_202297A
|
|
_080BBCA4:
|
|
cmp r0, 0x2
|
|
beq _080BBD00
|
|
b _080BBDD8
|
|
_080BBCAA:
|
|
ldrh r0, [r5, 0x1E]
|
|
adds r1, r0, 0x1
|
|
strh r1, [r5, 0x1E]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r3, 0x14
|
|
ldrsh r1, [r5, r3]
|
|
cmp r0, r1
|
|
bge _080BBCBE
|
|
b _080BBDD8
|
|
_080BBCBE:
|
|
strh r2, [r5, 0x1E]
|
|
ldrh r1, [r5, 0x20]
|
|
adds r1, 0x1
|
|
strh r1, [r5, 0x20]
|
|
movs r0, 0x10
|
|
subs r0, r1
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
movs r0, 0x20
|
|
ldrsh r1, [r5, r0]
|
|
movs r2, 0x10
|
|
ldrsh r0, [r5, r2]
|
|
cmp r1, r0
|
|
bne _080BBDD8
|
|
b _080BBCF8
|
|
_080BBCE6:
|
|
ldrh r0, [r5, 0x1C]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x1C]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r3, 0x12
|
|
ldrsh r1, [r5, r3]
|
|
cmp r0, r1
|
|
bne _080BBDD8
|
|
_080BBCF8:
|
|
ldrh r0, [r5, 0x26]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x26]
|
|
b _080BBDD8
|
|
_080BBD00:
|
|
ldrh r0, [r5, 0x1E]
|
|
adds r1, r0, 0x1
|
|
strh r1, [r5, 0x1E]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r3, 0x14
|
|
ldrsh r1, [r5, r3]
|
|
cmp r0, r1
|
|
blt _080BBDD8
|
|
strh r2, [r5, 0x1E]
|
|
ldrh r1, [r5, 0x20]
|
|
subs r1, 0x1
|
|
strh r1, [r5, 0x20]
|
|
movs r0, 0x10
|
|
subs r0, r1
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
movs r0, 0x20
|
|
ldrsh r4, [r5, r0]
|
|
cmp r4, 0
|
|
bne _080BBDD8
|
|
movs r0, 0
|
|
bl sub_8073128
|
|
ldr r0, _080BBDE0 @ =gUnknown_2022984
|
|
strh r4, [r0]
|
|
ldr r0, _080BBDE4 @ =gUnknown_2022986
|
|
strh r4, [r0]
|
|
ldr r4, _080BBDE8 @ =0x00003f3f
|
|
movs r0, 0x48
|
|
adds r1, r4, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x4A
|
|
adds r1, r4, 0
|
|
bl SetGpuReg
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080BBD7E
|
|
movs r0, 0xA
|
|
bl GetGpuReg
|
|
mov r1, sp
|
|
strh r0, [r1]
|
|
mov r2, sp
|
|
ldrb r1, [r2]
|
|
movs r0, 0xD
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
mov r0, sp
|
|
ldrh r1, [r0]
|
|
movs r0, 0xA
|
|
bl SetGpuReg
|
|
_080BBD7E:
|
|
movs r0, 0
|
|
bl GetGpuReg
|
|
adds r1, r0, 0
|
|
movs r2, 0x80
|
|
lsls r2, 8
|
|
adds r0, r2, 0
|
|
eors r1, r0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
movs r0, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x50
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x52
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r3, 0x8
|
|
ldrsh r1, [r5, r3]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r4, _080BBDEC @ =gSprites
|
|
adds r0, r4
|
|
bl DestroySprite
|
|
movs r1, 0xC
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0
|
|
beq _080BBDD2
|
|
movs r2, 0xE
|
|
ldrsh r1, [r5, r2]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
bl DestroySprite
|
|
_080BBDD2:
|
|
adds r0, r6, 0
|
|
bl DestroyAnimVisualTask
|
|
_080BBDD8:
|
|
add sp, 0x4
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BBDE0: .4byte gUnknown_2022984
|
|
_080BBDE4: .4byte gUnknown_2022986
|
|
_080BBDE8: .4byte 0x00003f3f
|
|
_080BBDEC: .4byte gSprites
|
|
thumb_func_end sub_80BBC2C
|
|
|
|
thumb_func_start sub_80BBDF0
|
|
sub_80BBDF0: @ 80BBDF0
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, _080BBE08 @ =gUnknown_2037F02
|
|
ldr r1, _080BBE0C @ =gUnknown_2022B50
|
|
ldrb r1, [r1]
|
|
strh r1, [r2]
|
|
bl DestroyAnimVisualTask
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BBE08: .4byte gUnknown_2037F02
|
|
_080BBE0C: .4byte gUnknown_2022B50
|
|
thumb_func_end sub_80BBDF0
|
|
|
|
thumb_func_start sub_80BBE10
|
|
sub_80BBE10: @ 80BBE10
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
movs r0, 0x80
|
|
lsls r0, 6
|
|
bl AllocZeroed
|
|
ldr r1, _080BBE38 @ =gMonSpritesGfxPtr
|
|
ldr r1, [r1]
|
|
movs r2, 0xBE
|
|
lsls r2, 1
|
|
adds r1, r2
|
|
str r0, [r1]
|
|
adds r0, r4, 0
|
|
bl DestroyAnimVisualTask
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BBE38: .4byte gMonSpritesGfxPtr
|
|
thumb_func_end sub_80BBE10
|
|
|
|
thumb_func_start sub_80BBE3C
|
|
sub_80BBE3C: @ 80BBE3C
|
|
push {r4-r6,lr}
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
ldr r6, _080BBE68 @ =gMonSpritesGfxPtr
|
|
ldr r0, [r6]
|
|
movs r5, 0xBE
|
|
lsls r5, 1
|
|
adds r0, r5
|
|
ldr r0, [r0]
|
|
bl Free
|
|
ldr r0, [r6]
|
|
adds r0, r5
|
|
movs r1, 0
|
|
str r1, [r0]
|
|
adds r0, r4, 0
|
|
bl DestroyAnimVisualTask
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BBE68: .4byte gMonSpritesGfxPtr
|
|
thumb_func_end sub_80BBE3C
|
|
|
|
thumb_func_start sub_80BBE6C
|
|
sub_80BBE6C: @ 80BBE6C
|
|
push {r4,r5,lr}
|
|
sub sp, 0xC
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
movs r4, 0
|
|
ldr r0, _080BBEAC @ =gUnknown_2037F02
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0
|
|
bne _080BBEB0
|
|
str r4, [sp]
|
|
str r4, [sp, 0x4]
|
|
str r4, [sp, 0x8]
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl sub_8075BE8
|
|
adds r1, r0, 0
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080BBEC8
|
|
movs r2, 0x1
|
|
_080BBE9E:
|
|
lsrs r1, 1
|
|
adds r4, 0x1
|
|
adds r0, r1, 0
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _080BBE9E
|
|
b _080BBEC8
|
|
.align 2, 0
|
|
_080BBEAC: .4byte gUnknown_2037F02
|
|
_080BBEB0:
|
|
cmp r0, 0x1
|
|
bne _080BBEBC
|
|
ldr r0, _080BBEB8 @ =gUnknown_2037F1A
|
|
b _080BBEC2
|
|
.align 2, 0
|
|
_080BBEB8: .4byte gUnknown_2037F1A
|
|
_080BBEBC:
|
|
cmp r0, 0x2
|
|
bne _080BBEC8
|
|
ldr r0, _080BBEF8 @ =gUnknown_2037F1B
|
|
_080BBEC2:
|
|
ldrb r0, [r0]
|
|
adds r4, r0, 0
|
|
adds r4, 0x10
|
|
_080BBEC8:
|
|
ldr r0, _080BBEFC @ =gMonSpritesGfxPtr
|
|
ldr r1, [r0]
|
|
ldr r0, _080BBF00 @ =gUnknown_2037F02
|
|
movs r2, 0x2
|
|
ldrsh r0, [r0, r2]
|
|
movs r2, 0xBE
|
|
lsls r2, 1
|
|
adds r1, r2
|
|
ldr r1, [r1]
|
|
lsls r0, 5
|
|
adds r0, r1
|
|
lsls r1, r4, 5
|
|
ldr r2, _080BBF04 @ =gPlttBufferUnfaded
|
|
adds r1, r2
|
|
movs r2, 0x20
|
|
bl memcpy
|
|
adds r0, r5, 0
|
|
bl DestroyAnimVisualTask
|
|
add sp, 0xC
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BBEF8: .4byte gUnknown_2037F1B
|
|
_080BBEFC: .4byte gMonSpritesGfxPtr
|
|
_080BBF00: .4byte gUnknown_2037F02
|
|
_080BBF04: .4byte gPlttBufferUnfaded
|
|
thumb_func_end sub_80BBE6C
|
|
|
|
thumb_func_start sub_80BBF08
|
|
sub_80BBF08: @ 80BBF08
|
|
push {r4,r5,lr}
|
|
sub sp, 0xC
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
movs r4, 0
|
|
ldr r0, _080BBF48 @ =gUnknown_2037F02
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0
|
|
bne _080BBF4C
|
|
str r4, [sp]
|
|
str r4, [sp, 0x4]
|
|
str r4, [sp, 0x8]
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl sub_8075BE8
|
|
adds r1, r0, 0
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080BBF64
|
|
movs r2, 0x1
|
|
_080BBF3A:
|
|
lsrs r1, 1
|
|
adds r4, 0x1
|
|
adds r0, r1, 0
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _080BBF3A
|
|
b _080BBF64
|
|
.align 2, 0
|
|
_080BBF48: .4byte gUnknown_2037F02
|
|
_080BBF4C:
|
|
cmp r0, 0x1
|
|
bne _080BBF58
|
|
ldr r0, _080BBF54 @ =gUnknown_2037F1A
|
|
b _080BBF5E
|
|
.align 2, 0
|
|
_080BBF54: .4byte gUnknown_2037F1A
|
|
_080BBF58:
|
|
cmp r0, 0x2
|
|
bne _080BBF64
|
|
ldr r0, _080BBF94 @ =gUnknown_2037F1B
|
|
_080BBF5E:
|
|
ldrb r0, [r0]
|
|
adds r4, r0, 0
|
|
adds r4, 0x10
|
|
_080BBF64:
|
|
lsls r0, r4, 5
|
|
ldr r1, _080BBF98 @ =gPlttBufferUnfaded
|
|
adds r0, r1
|
|
ldr r1, _080BBF9C @ =gMonSpritesGfxPtr
|
|
ldr r2, [r1]
|
|
ldr r1, _080BBFA0 @ =gUnknown_2037F02
|
|
movs r3, 0x2
|
|
ldrsh r1, [r1, r3]
|
|
movs r3, 0xBE
|
|
lsls r3, 1
|
|
adds r2, r3
|
|
ldr r2, [r2]
|
|
lsls r1, 5
|
|
adds r1, r2
|
|
movs r2, 0x20
|
|
bl memcpy
|
|
adds r0, r5, 0
|
|
bl DestroyAnimVisualTask
|
|
add sp, 0xC
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BBF94: .4byte gUnknown_2037F1B
|
|
_080BBF98: .4byte gPlttBufferUnfaded
|
|
_080BBF9C: .4byte gMonSpritesGfxPtr
|
|
_080BBFA0: .4byte gUnknown_2037F02
|
|
thumb_func_end sub_80BBF08
|
|
|
|
thumb_func_start sub_80BBFA4
|
|
sub_80BBFA4: @ 80BBFA4
|
|
push {r4,r5,lr}
|
|
sub sp, 0xC
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
movs r4, 0
|
|
ldr r0, _080BBFE4 @ =gUnknown_2037F02
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0
|
|
bne _080BBFE8
|
|
str r4, [sp]
|
|
str r4, [sp, 0x4]
|
|
str r4, [sp, 0x8]
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl sub_8075BE8
|
|
adds r1, r0, 0
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080BC000
|
|
movs r2, 0x1
|
|
_080BBFD6:
|
|
lsrs r1, 1
|
|
adds r4, 0x1
|
|
adds r0, r1, 0
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _080BBFD6
|
|
b _080BC000
|
|
.align 2, 0
|
|
_080BBFE4: .4byte gUnknown_2037F02
|
|
_080BBFE8:
|
|
cmp r0, 0x1
|
|
bne _080BBFF4
|
|
ldr r0, _080BBFF0 @ =gUnknown_2037F1A
|
|
b _080BBFFA
|
|
.align 2, 0
|
|
_080BBFF0: .4byte gUnknown_2037F1A
|
|
_080BBFF4:
|
|
cmp r0, 0x2
|
|
bne _080BC000
|
|
ldr r0, _080BC020 @ =gUnknown_2037F1B
|
|
_080BBFFA:
|
|
ldrb r0, [r0]
|
|
adds r4, r0, 0
|
|
adds r4, 0x10
|
|
_080BC000:
|
|
lsls r1, r4, 5
|
|
ldr r0, _080BC024 @ =gPlttBufferUnfaded
|
|
adds r0, r1, r0
|
|
ldr r2, _080BC028 @ =gPlttBufferFaded
|
|
adds r1, r2
|
|
movs r2, 0x20
|
|
bl memcpy
|
|
adds r0, r5, 0
|
|
bl DestroyAnimVisualTask
|
|
add sp, 0xC
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BC020: .4byte gUnknown_2037F1B
|
|
_080BC024: .4byte gPlttBufferUnfaded
|
|
_080BC028: .4byte gPlttBufferFaded
|
|
thumb_func_end sub_80BBFA4
|
|
|
|
thumb_func_start sub_80BC02C
|
|
sub_80BC02C: @ 80BC02C
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0
|
|
beq _080BC04C
|
|
ldr r1, _080BC048 @ =gUnknown_2037F02
|
|
movs r0, 0x1
|
|
strh r0, [r1, 0xE]
|
|
b _080BC050
|
|
.align 2, 0
|
|
_080BC048: .4byte gUnknown_2037F02
|
|
_080BC04C:
|
|
ldr r0, _080BC05C @ =gUnknown_2037F02
|
|
strh r1, [r0, 0xE]
|
|
_080BC050:
|
|
adds r0, r4, 0
|
|
bl DestroyAnimVisualTask
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BC05C: .4byte gUnknown_2037F02
|
|
thumb_func_end sub_80BC02C
|
|
|
|
thumb_func_start sub_80BC060
|
|
sub_80BC060: @ 80BC060
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, _080BC080 @ =gUnknown_2037F1A
|
|
ldr r1, _080BC084 @ =gBattlerTarget
|
|
ldrb r1, [r1]
|
|
strb r1, [r2]
|
|
ldr r2, _080BC088 @ =gUnknown_2037F1B
|
|
ldr r1, _080BC08C @ =gUnknown_2023D6E
|
|
ldrb r1, [r1]
|
|
strb r1, [r2]
|
|
bl DestroyAnimVisualTask
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BC080: .4byte gUnknown_2037F1A
|
|
_080BC084: .4byte gBattlerTarget
|
|
_080BC088: .4byte gUnknown_2037F1B
|
|
_080BC08C: .4byte gUnknown_2023D6E
|
|
thumb_func_end sub_80BC060
|
|
|
|
thumb_func_start sub_80BC090
|
|
sub_80BC090: @ 80BC090
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r0, _080BC0B8 @ =gUnknown_2037F1A
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
adds r4, r0, 0
|
|
ldr r0, _080BC0BC @ =gUnknown_2037F1B
|
|
ldrb r0, [r0]
|
|
bl GetBattlerSide
|
|
lsls r4, 24
|
|
lsls r0, 24
|
|
cmp r4, r0
|
|
bne _080BC0C4
|
|
ldr r1, _080BC0C0 @ =gUnknown_2037F02
|
|
movs r0, 0x1
|
|
b _080BC0C8
|
|
.align 2, 0
|
|
_080BC0B8: .4byte gUnknown_2037F1A
|
|
_080BC0BC: .4byte gUnknown_2037F1B
|
|
_080BC0C0: .4byte gUnknown_2037F02
|
|
_080BC0C4:
|
|
ldr r1, _080BC0D8 @ =gUnknown_2037F02
|
|
movs r0, 0
|
|
_080BC0C8:
|
|
strh r0, [r1, 0xE]
|
|
adds r0, r5, 0
|
|
bl DestroyAnimVisualTask
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BC0D8: .4byte gUnknown_2037F02
|
|
thumb_func_end sub_80BC090
|
|
|
|
thumb_func_start sub_80BC0DC
|
|
sub_80BC0DC: @ 80BC0DC
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, _080BC0F4 @ =gUnknown_2037F1B
|
|
ldr r1, _080BC0F8 @ =gBattlerTarget
|
|
ldrb r1, [r1]
|
|
strb r1, [r2]
|
|
bl DestroyAnimVisualTask
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BC0F4: .4byte gUnknown_2037F1B
|
|
_080BC0F8: .4byte gBattlerTarget
|
|
thumb_func_end sub_80BC0DC
|
|
|
|
thumb_func_start sub_80BC0FC
|
|
sub_80BC0FC: @ 80BC0FC
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, _080BC11C @ =gUnknown_2037F1A
|
|
ldr r1, _080BC120 @ =sBattler_AI
|
|
ldrb r1, [r1]
|
|
strb r1, [r2]
|
|
ldr r2, _080BC124 @ =gUnknown_2037F1B
|
|
ldr r1, _080BC128 @ =gUnknown_2023D6E
|
|
ldrb r1, [r1]
|
|
strb r1, [r2]
|
|
bl DestroyAnimVisualTask
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BC11C: .4byte gUnknown_2037F1A
|
|
_080BC120: .4byte sBattler_AI
|
|
_080BC124: .4byte gUnknown_2037F1B
|
|
_080BC128: .4byte gUnknown_2023D6E
|
|
thumb_func_end sub_80BC0FC
|
|
|
|
thumb_func_start sub_80BC12C
|
|
sub_80BC12C: @ 80BC12C
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
bl sub_8073788
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080BC144
|
|
adds r0, r4, 0
|
|
bl DestroyAnimVisualTask
|
|
b _080BC180
|
|
_080BC144:
|
|
ldr r0, _080BC188 @ =gTasks
|
|
lsls r3, r4, 2
|
|
adds r3, r4
|
|
lsls r3, 3
|
|
adds r3, r0
|
|
ldr r0, _080BC18C @ =gUnknown_2024018
|
|
ldr r4, [r0]
|
|
ldr r2, _080BC190 @ =gUnknown_2037F1A
|
|
ldrb r0, [r2]
|
|
ldr r1, [r4]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
lsls r0, 31
|
|
lsrs r0, 31
|
|
strh r0, [r3, 0x8]
|
|
ldrb r1, [r2]
|
|
ldr r0, [r4]
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
movs r2, 0x1
|
|
orrs r0, r2
|
|
strb r0, [r1]
|
|
ldr r0, _080BC194 @ =sub_80BC19C
|
|
str r0, [r3]
|
|
ldr r1, _080BC198 @ =gUnknown_2037EE2
|
|
ldrb r0, [r1]
|
|
subs r0, 0x1
|
|
strb r0, [r1]
|
|
_080BC180:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BC188: .4byte gTasks
|
|
_080BC18C: .4byte gUnknown_2024018
|
|
_080BC190: .4byte gUnknown_2037F1A
|
|
_080BC194: .4byte sub_80BC19C
|
|
_080BC198: .4byte gUnknown_2037EE2
|
|
thumb_func_end sub_80BC12C
|
|
|
|
thumb_func_start sub_80BC19C
|
|
sub_80BC19C: @ 80BC19C
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r0, _080BC1E8 @ =gUnknown_2037F02
|
|
movs r2, 0xE
|
|
ldrsh r1, [r0, r2]
|
|
movs r0, 0x80
|
|
lsls r0, 5
|
|
cmp r1, r0
|
|
bne _080BC1E0
|
|
ldr r0, _080BC1EC @ =gUnknown_2024018
|
|
ldr r1, [r0]
|
|
ldr r0, _080BC1F0 @ =gUnknown_2037F1A
|
|
ldrb r3, [r0]
|
|
ldr r0, [r1]
|
|
lsls r3, 2
|
|
adds r3, r0
|
|
ldr r1, _080BC1F4 @ =gTasks
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldrb r0, [r0, 0x8]
|
|
movs r1, 0x1
|
|
ands r1, r0
|
|
ldrb r2, [r3]
|
|
movs r0, 0x2
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r3]
|
|
adds r0, r4, 0
|
|
bl DestroyTask
|
|
_080BC1E0:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BC1E8: .4byte gUnknown_2037F02
|
|
_080BC1EC: .4byte gUnknown_2024018
|
|
_080BC1F0: .4byte gUnknown_2037F1A
|
|
_080BC1F4: .4byte gTasks
|
|
thumb_func_end sub_80BC19C
|
|
|
|
thumb_func_start SetAnimBgAttribute
|
|
SetAnimBgAttribute: @ 80BC1F8
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
lsls r1, 24
|
|
lsrs r5, r1, 24
|
|
lsls r2, 24
|
|
lsrs r4, r2, 24
|
|
cmp r6, 0x3
|
|
bls _080BC20C
|
|
b _080BC2FE
|
|
_080BC20C:
|
|
ldr r0, _080BC228 @ =gUnknown_83E7CCA
|
|
adds r0, r6, r0
|
|
ldrb r0, [r0]
|
|
bl GetGpuReg
|
|
ldr r1, _080BC22C @ =gUnknown_20399B8
|
|
strh r0, [r1]
|
|
cmp r5, 0x6
|
|
bhi _080BC2F0
|
|
lsls r0, r5, 2
|
|
ldr r1, _080BC230 @ =_080BC234
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080BC228: .4byte gUnknown_83E7CCA
|
|
_080BC22C: .4byte gUnknown_20399B8
|
|
_080BC230: .4byte _080BC234
|
|
.align 2, 0
|
|
_080BC234:
|
|
.4byte _080BC250
|
|
.4byte _080BC264
|
|
.4byte _080BC27C
|
|
.4byte _080BC294
|
|
.4byte _080BC2AC
|
|
.4byte _080BC2C8
|
|
.4byte _080BC2DC
|
|
_080BC250:
|
|
ldr r2, _080BC260 @ =gUnknown_20399B8
|
|
lsls r3, r4, 6
|
|
ldrb r1, [r2, 0x1]
|
|
movs r0, 0x3F
|
|
ands r0, r1
|
|
orrs r0, r3
|
|
strb r0, [r2, 0x1]
|
|
b _080BC2F0
|
|
.align 2, 0
|
|
_080BC260: .4byte gUnknown_20399B8
|
|
_080BC264:
|
|
ldr r3, _080BC278 @ =gUnknown_20399B8
|
|
movs r0, 0x1
|
|
adds r1, r4, 0
|
|
ands r1, r0
|
|
lsls r1, 5
|
|
ldrb r2, [r3, 0x1]
|
|
movs r0, 0x21
|
|
negs r0, r0
|
|
b _080BC2EA
|
|
.align 2, 0
|
|
_080BC278: .4byte gUnknown_20399B8
|
|
_080BC27C:
|
|
ldr r3, _080BC290 @ =gUnknown_20399B8
|
|
movs r0, 0x1
|
|
adds r1, r4, 0
|
|
ands r1, r0
|
|
lsls r1, 6
|
|
ldrb r2, [r3]
|
|
movs r0, 0x41
|
|
negs r0, r0
|
|
b _080BC2BA
|
|
.align 2, 0
|
|
_080BC290: .4byte gUnknown_20399B8
|
|
_080BC294:
|
|
ldr r3, _080BC2A8 @ =gUnknown_20399B8
|
|
movs r0, 0x3
|
|
adds r1, r4, 0
|
|
ands r1, r0
|
|
lsls r1, 2
|
|
ldrb r2, [r3]
|
|
movs r0, 0xD
|
|
negs r0, r0
|
|
b _080BC2BA
|
|
.align 2, 0
|
|
_080BC2A8: .4byte gUnknown_20399B8
|
|
_080BC2AC:
|
|
ldr r3, _080BC2C4 @ =gUnknown_20399B8
|
|
movs r0, 0x3
|
|
adds r1, r4, 0
|
|
ands r1, r0
|
|
ldrb r2, [r3]
|
|
movs r0, 0x4
|
|
negs r0, r0
|
|
_080BC2BA:
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r3]
|
|
b _080BC2F0
|
|
.align 2, 0
|
|
_080BC2C4: .4byte gUnknown_20399B8
|
|
_080BC2C8:
|
|
ldr r2, _080BC2D8 @ =gUnknown_20399B8
|
|
lsls r3, r4, 7
|
|
ldrb r1, [r2]
|
|
movs r0, 0x7F
|
|
ands r0, r1
|
|
orrs r0, r3
|
|
strb r0, [r2]
|
|
b _080BC2F0
|
|
.align 2, 0
|
|
_080BC2D8: .4byte gUnknown_20399B8
|
|
_080BC2DC:
|
|
ldr r3, _080BC304 @ =gUnknown_20399B8
|
|
movs r0, 0x1F
|
|
adds r1, r4, 0
|
|
ands r1, r0
|
|
ldrb r2, [r3, 0x1]
|
|
movs r0, 0x20
|
|
negs r0, r0
|
|
_080BC2EA:
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r3, 0x1]
|
|
_080BC2F0:
|
|
ldr r0, _080BC308 @ =gUnknown_83E7CCA
|
|
adds r0, r6, r0
|
|
ldrb r0, [r0]
|
|
ldr r1, _080BC304 @ =gUnknown_20399B8
|
|
ldrh r1, [r1]
|
|
bl SetGpuReg
|
|
_080BC2FE:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BC304: .4byte gUnknown_20399B8
|
|
_080BC308: .4byte gUnknown_83E7CCA
|
|
thumb_func_end SetAnimBgAttribute
|
|
|
|
thumb_func_start sub_80BC30C
|
|
sub_80BC30C: @ 80BC30C
|
|
push {r4,lr}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
lsls r1, 24
|
|
lsrs r4, r1, 24
|
|
cmp r2, 0x3
|
|
bhi _080BC394
|
|
ldr r0, _080BC338 @ =gUnknown_83E7CCE
|
|
adds r0, r2, r0
|
|
ldrb r0, [r0]
|
|
bl GetGpuReg
|
|
mov r1, sp
|
|
strh r0, [r1]
|
|
cmp r4, 0x6
|
|
bhi _080BC394
|
|
lsls r0, r4, 2
|
|
ldr r1, _080BC33C @ =_080BC340
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080BC338: .4byte gUnknown_83E7CCE
|
|
_080BC33C: .4byte _080BC340
|
|
.align 2, 0
|
|
_080BC340:
|
|
.4byte _080BC35C
|
|
.4byte _080BC364
|
|
.4byte _080BC36C
|
|
.4byte _080BC374
|
|
.4byte _080BC37C
|
|
.4byte _080BC384
|
|
.4byte _080BC38C
|
|
_080BC35C:
|
|
ldr r0, [sp]
|
|
lsls r0, 16
|
|
lsrs r0, 30
|
|
b _080BC396
|
|
_080BC364:
|
|
ldr r0, [sp]
|
|
lsls r0, 18
|
|
lsrs r0, 31
|
|
b _080BC396
|
|
_080BC36C:
|
|
ldr r0, [sp]
|
|
lsls r0, 25
|
|
lsrs r0, 31
|
|
b _080BC396
|
|
_080BC374:
|
|
ldr r0, [sp]
|
|
lsls r0, 28
|
|
lsrs r0, 30
|
|
b _080BC396
|
|
_080BC37C:
|
|
ldr r0, [sp]
|
|
lsls r0, 30
|
|
lsrs r0, 30
|
|
b _080BC396
|
|
_080BC384:
|
|
ldr r0, [sp]
|
|
lsls r0, 24
|
|
lsrs r0, 31
|
|
b _080BC396
|
|
_080BC38C:
|
|
ldr r0, [sp]
|
|
lsls r0, 19
|
|
lsrs r0, 27
|
|
b _080BC396
|
|
_080BC394:
|
|
movs r0, 0
|
|
_080BC396:
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80BC30C
|
|
|
|
thumb_func_start sub_80BC3A0
|
|
sub_80BC3A0: @ 80BC3A0
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r0, _080BC3B8 @ =gBattleTypeFlags
|
|
ldr r1, [r0]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080BC3C0
|
|
ldr r0, _080BC3BC @ =sub_80BCC4C
|
|
b _080BC3E8
|
|
.align 2, 0
|
|
_080BC3B8: .4byte gBattleTypeFlags
|
|
_080BC3BC: .4byte sub_80BCC4C
|
|
_080BC3C0:
|
|
movs r0, 0x80
|
|
lsls r0, 5
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _080BC3E0
|
|
ldr r0, _080BC3D8 @ =gGameVersion
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x2
|
|
beq _080BC3E0
|
|
movs r4, 0x3
|
|
ldr r0, _080BC3DC @ =task00_battle_intro_80BC6C8
|
|
b _080BC3E8
|
|
.align 2, 0
|
|
_080BC3D8: .4byte gGameVersion
|
|
_080BC3DC: .4byte task00_battle_intro_80BC6C8
|
|
_080BC3E0:
|
|
ldr r1, _080BC414 @ =gUnknown_83E7CD4
|
|
lsls r0, r4, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
_080BC3E8:
|
|
movs r1, 0
|
|
bl CreateTask
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
ldr r0, _080BC418 @ =gTasks
|
|
lsls r1, r2, 2
|
|
adds r1, r2
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
movs r0, 0
|
|
strh r0, [r1, 0x8]
|
|
strh r4, [r1, 0xA]
|
|
strh r0, [r1, 0xC]
|
|
strh r0, [r1, 0xE]
|
|
strh r0, [r1, 0x10]
|
|
strh r0, [r1, 0x12]
|
|
strh r0, [r1, 0x14]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BC414: .4byte gUnknown_83E7CD4
|
|
_080BC418: .4byte gTasks
|
|
thumb_func_end sub_80BC3A0
|
|
|
|
thumb_func_start sub_80BC41C
|
|
sub_80BC41C: @ 80BC41C
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl DestroyTask
|
|
ldr r0, _080BC468 @ =gUnknown_2022978
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
ldr r0, _080BC46C @ =gUnknown_202297A
|
|
strh r1, [r0]
|
|
ldr r0, _080BC470 @ =gUnknown_202297C
|
|
strh r1, [r0]
|
|
ldr r0, _080BC474 @ =gUnknown_202297E
|
|
strh r1, [r0]
|
|
movs r0, 0x50
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x52
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x54
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
ldr r4, _080BC478 @ =0x00003f3f
|
|
movs r0, 0x48
|
|
adds r1, r4, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x4A
|
|
adds r1, r4, 0
|
|
bl SetGpuReg
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BC468: .4byte gUnknown_2022978
|
|
_080BC46C: .4byte gUnknown_202297A
|
|
_080BC470: .4byte gUnknown_202297C
|
|
_080BC474: .4byte gUnknown_202297E
|
|
_080BC478: .4byte 0x00003f3f
|
|
thumb_func_end sub_80BC41C
|
|
|
|
thumb_func_start task_battle_intro_80BC47C
|
|
task_battle_intro_80BC47C: @ 80BC47C
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r1, _080BC4B4 @ =gUnknown_2022978
|
|
ldrh r0, [r1]
|
|
adds r0, 0x6
|
|
strh r0, [r1]
|
|
ldr r1, _080BC4B8 @ =gTasks
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
movs r2, 0x8
|
|
ldrsh r0, [r0, r2]
|
|
mov r8, r1
|
|
cmp r0, 0x4
|
|
bls _080BC4A8
|
|
b _080BC6BA
|
|
_080BC4A8:
|
|
lsls r0, 2
|
|
ldr r1, _080BC4BC @ =_080BC4C0
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080BC4B4: .4byte gUnknown_2022978
|
|
_080BC4B8: .4byte gTasks
|
|
_080BC4BC: .4byte _080BC4C0
|
|
.align 2, 0
|
|
_080BC4C0:
|
|
.4byte _080BC4D4
|
|
.4byte _080BC504
|
|
.4byte _080BC52C
|
|
.4byte _080BC574
|
|
.4byte _080BC6B4
|
|
_080BC4D4:
|
|
ldr r0, _080BC4EC @ =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080BC4F0
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
add r0, r8
|
|
movs r1, 0x10
|
|
b _080BC4FA
|
|
.align 2, 0
|
|
_080BC4EC: .4byte gBattleTypeFlags
|
|
_080BC4F0:
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
add r0, r8
|
|
movs r1, 0x1
|
|
_080BC4FA:
|
|
strh r1, [r0, 0xC]
|
|
ldrh r1, [r0, 0x8]
|
|
adds r1, 0x1
|
|
strh r1, [r0, 0x8]
|
|
b _080BC6BA
|
|
_080BC504:
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
mov r3, r8
|
|
adds r1, r0, r3
|
|
ldrh r0, [r1, 0xC]
|
|
subs r0, 0x1
|
|
strh r0, [r1, 0xC]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
beq _080BC51C
|
|
b _080BC6BA
|
|
_080BC51C:
|
|
ldrh r0, [r1, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x8]
|
|
movs r0, 0x48
|
|
movs r1, 0x3F
|
|
bl SetGpuReg
|
|
b _080BC6BA
|
|
_080BC52C:
|
|
ldr r1, _080BC568 @ =gUnknown_2022986
|
|
ldrh r0, [r1]
|
|
subs r0, 0xFF
|
|
strh r0, [r1]
|
|
movs r1, 0xFF
|
|
lsls r1, 8
|
|
ands r0, r1
|
|
movs r1, 0xC0
|
|
lsls r1, 6
|
|
cmp r0, r1
|
|
beq _080BC544
|
|
b _080BC6BA
|
|
_080BC544:
|
|
lsls r1, r4, 2
|
|
adds r1, r4
|
|
lsls r1, 3
|
|
add r1, r8
|
|
ldrh r0, [r1, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x8]
|
|
movs r0, 0xF0
|
|
strh r0, [r1, 0xC]
|
|
movs r0, 0x20
|
|
strh r0, [r1, 0xE]
|
|
ldr r2, _080BC56C @ =gUnknown_2023F4C
|
|
ldrh r1, [r2]
|
|
ldr r0, _080BC570 @ =0x0000fffe
|
|
ands r0, r1
|
|
strh r0, [r2]
|
|
b _080BC6BA
|
|
.align 2, 0
|
|
_080BC568: .4byte gUnknown_2022986
|
|
_080BC56C: .4byte gUnknown_2023F4C
|
|
_080BC570: .4byte 0x0000fffe
|
|
_080BC574:
|
|
lsls r0, r4, 2
|
|
adds r1, r0, r4
|
|
lsls r1, 3
|
|
mov r5, r8
|
|
adds r2, r1, r5
|
|
ldrh r3, [r2, 0xE]
|
|
movs r5, 0xE
|
|
ldrsh r1, [r2, r5]
|
|
mov r12, r0
|
|
cmp r1, 0
|
|
beq _080BC590
|
|
subs r0, r3, 0x1
|
|
strh r0, [r2, 0xE]
|
|
b _080BC5BE
|
|
_080BC590:
|
|
movs r1, 0xA
|
|
ldrsh r0, [r2, r1]
|
|
cmp r0, 0x1
|
|
bne _080BC5B0
|
|
ldr r2, _080BC5A8 @ =gUnknown_202297A
|
|
ldrh r1, [r2]
|
|
ldr r0, _080BC5AC @ =0x0000ffb0
|
|
cmp r1, r0
|
|
beq _080BC5BE
|
|
subs r0, r1, 0x2
|
|
b _080BC5BC
|
|
.align 2, 0
|
|
_080BC5A8: .4byte gUnknown_202297A
|
|
_080BC5AC: .4byte 0x0000ffb0
|
|
_080BC5B0:
|
|
ldr r2, _080BC690 @ =gUnknown_202297A
|
|
ldrh r1, [r2]
|
|
ldr r0, _080BC694 @ =0x0000ffc8
|
|
cmp r1, r0
|
|
beq _080BC5BE
|
|
subs r0, r1, 0x1
|
|
_080BC5BC:
|
|
strh r0, [r2]
|
|
_080BC5BE:
|
|
ldr r2, _080BC698 @ =gUnknown_2022986
|
|
ldrh r1, [r2]
|
|
movs r0, 0xFF
|
|
lsls r0, 8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080BC5D2
|
|
ldr r3, _080BC69C @ =0xfffffc04
|
|
adds r0, r1, r3
|
|
strh r0, [r2]
|
|
_080BC5D2:
|
|
mov r5, r12
|
|
adds r0, r5, r4
|
|
lsls r0, 3
|
|
mov r2, r8
|
|
adds r1, r0, r2
|
|
ldrh r2, [r1, 0xC]
|
|
movs r3, 0xC
|
|
ldrsh r0, [r1, r3]
|
|
cmp r0, 0
|
|
beq _080BC5EA
|
|
subs r0, r2, 0x2
|
|
strh r0, [r1, 0xC]
|
|
_080BC5EA:
|
|
movs r3, 0
|
|
ldr r5, _080BC6A0 @ =gUnknown_2039600
|
|
mov r9, r5
|
|
ldr r7, _080BC6A4 @ =gUnknown_2038700
|
|
mov r6, r9
|
|
adds r5, r1, 0
|
|
_080BC5F6:
|
|
lsls r2, r3, 1
|
|
ldrb r1, [r6, 0x14]
|
|
lsls r0, r1, 4
|
|
subs r0, r1
|
|
lsls r0, 7
|
|
adds r2, r0
|
|
adds r2, r7
|
|
ldrh r0, [r5, 0xC]
|
|
strh r0, [r2]
|
|
adds r3, 0x1
|
|
cmp r3, 0x4F
|
|
ble _080BC5F6
|
|
cmp r3, 0x9F
|
|
bgt _080BC63A
|
|
ldr r7, _080BC6A4 @ =gUnknown_2038700
|
|
ldr r6, _080BC6A0 @ =gUnknown_2039600
|
|
ldr r1, _080BC6A8 @ =gTasks
|
|
mov r2, r12
|
|
adds r0, r2, r4
|
|
lsls r0, 3
|
|
adds r5, r0, r1
|
|
_080BC620:
|
|
lsls r2, r3, 1
|
|
ldrb r1, [r6, 0x14]
|
|
lsls r0, r1, 4
|
|
subs r0, r1
|
|
lsls r0, 7
|
|
adds r2, r0
|
|
adds r2, r7
|
|
ldrh r0, [r5, 0xC]
|
|
negs r0, r0
|
|
strh r0, [r2]
|
|
adds r3, 0x1
|
|
cmp r3, 0x9F
|
|
ble _080BC620
|
|
_080BC63A:
|
|
mov r3, r12
|
|
adds r0, r3, r4
|
|
lsls r0, 3
|
|
mov r5, r8
|
|
adds r1, r0, r5
|
|
movs r0, 0xC
|
|
ldrsh r2, [r1, r0]
|
|
cmp r2, 0
|
|
bne _080BC6BA
|
|
movs r0, 0x3
|
|
mov r3, r9
|
|
strb r0, [r3, 0x15]
|
|
ldrh r0, [r1, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x8]
|
|
str r2, [sp]
|
|
ldr r1, _080BC6AC @ =0x0600e000
|
|
ldr r2, _080BC6B0 @ =0x05000200
|
|
mov r0, sp
|
|
bl CpuSet
|
|
movs r0, 0x1
|
|
movs r1, 0x1
|
|
movs r2, 0
|
|
bl SetBgAttribute
|
|
movs r0, 0x2
|
|
movs r1, 0x1
|
|
movs r2, 0
|
|
bl SetBgAttribute
|
|
movs r1, 0x9C
|
|
lsls r1, 8
|
|
movs r0, 0xA
|
|
bl SetGpuReg
|
|
movs r1, 0xBC
|
|
lsls r1, 7
|
|
movs r0, 0xC
|
|
bl SetGpuReg
|
|
b _080BC6BA
|
|
.align 2, 0
|
|
_080BC690: .4byte gUnknown_202297A
|
|
_080BC694: .4byte 0x0000ffc8
|
|
_080BC698: .4byte gUnknown_2022986
|
|
_080BC69C: .4byte 0xfffffc04
|
|
_080BC6A0: .4byte gUnknown_2039600
|
|
_080BC6A4: .4byte gUnknown_2038700
|
|
_080BC6A8: .4byte gTasks
|
|
_080BC6AC: .4byte 0x0600e000
|
|
_080BC6B0: .4byte 0x05000200
|
|
_080BC6B4:
|
|
adds r0, r4, 0
|
|
bl sub_80BC41C
|
|
_080BC6BA:
|
|
add sp, 0x4
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end task_battle_intro_80BC47C
|
|
|
|
thumb_func_start task00_battle_intro_80BC6C8
|
|
task00_battle_intro_80BC6C8: @ 80BC6C8
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r1, _080BC6F4 @ =gTasks
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
movs r2, 0xA
|
|
ldrsh r0, [r0, r2]
|
|
adds r2, r1, 0
|
|
cmp r0, 0x3
|
|
beq _080BC708
|
|
cmp r0, 0x3
|
|
bgt _080BC6F8
|
|
cmp r0, 0x2
|
|
beq _080BC6FC
|
|
b _080BC710
|
|
.align 2, 0
|
|
_080BC6F4: .4byte gTasks
|
|
_080BC6F8:
|
|
cmp r0, 0x4
|
|
bne _080BC710
|
|
_080BC6FC:
|
|
ldr r1, _080BC704 @ =gUnknown_2022978
|
|
ldrh r0, [r1]
|
|
adds r0, 0x8
|
|
b _080BC70E
|
|
.align 2, 0
|
|
_080BC704: .4byte gUnknown_2022978
|
|
_080BC708:
|
|
ldr r1, _080BC74C @ =gUnknown_2022978
|
|
ldrh r0, [r1]
|
|
adds r0, 0x6
|
|
_080BC70E:
|
|
strh r0, [r1]
|
|
_080BC710:
|
|
lsls r0, r5, 2
|
|
adds r1, r0, r5
|
|
lsls r1, 3
|
|
adds r4, r1, r2
|
|
movs r3, 0xA
|
|
ldrsh r1, [r4, r3]
|
|
adds r6, r0, 0
|
|
cmp r1, 0x4
|
|
bne _080BC774
|
|
ldr r7, _080BC750 @ =gUnknown_202297A
|
|
ldrh r0, [r4, 0x14]
|
|
bl Cos2
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0
|
|
bge _080BC736
|
|
ldr r1, _080BC754 @ =0x000001ff
|
|
adds r0, r1
|
|
_080BC736:
|
|
asrs r0, 9
|
|
subs r0, 0x8
|
|
strh r0, [r7]
|
|
ldrh r1, [r4, 0x14]
|
|
movs r2, 0x14
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0xB3
|
|
bgt _080BC758
|
|
adds r0, r1, 0x4
|
|
b _080BC75A
|
|
.align 2, 0
|
|
_080BC74C: .4byte gUnknown_2022978
|
|
_080BC750: .4byte gUnknown_202297A
|
|
_080BC754: .4byte 0x000001ff
|
|
_080BC758:
|
|
adds r0, r1, 0x6
|
|
_080BC75A:
|
|
strh r0, [r4, 0x14]
|
|
ldr r2, _080BC790 @ =gTasks
|
|
adds r0, r6, r5
|
|
lsls r0, 3
|
|
adds r3, r0, r2
|
|
movs r0, 0x14
|
|
ldrsh r1, [r3, r0]
|
|
movs r0, 0xB4
|
|
lsls r0, 1
|
|
cmp r1, r0
|
|
bne _080BC774
|
|
movs r0, 0
|
|
strh r0, [r3, 0x14]
|
|
_080BC774:
|
|
adds r0, r6, r5
|
|
lsls r0, 3
|
|
adds r0, r2
|
|
movs r1, 0x8
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0x4
|
|
bls _080BC784
|
|
b _080BC9AA
|
|
_080BC784:
|
|
lsls r0, 2
|
|
ldr r1, _080BC794 @ =_080BC798
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080BC790: .4byte gTasks
|
|
_080BC794: .4byte _080BC798
|
|
.align 2, 0
|
|
_080BC798:
|
|
.4byte _080BC7AC
|
|
.4byte _080BC7DC
|
|
.4byte _080BC808
|
|
.4byte _080BC858
|
|
.4byte _080BC9A4
|
|
_080BC7AC:
|
|
ldr r1, _080BC7C8 @ =gTasks
|
|
adds r0, r6, r5
|
|
lsls r0, 3
|
|
adds r2, r0, r1
|
|
movs r3, 0x10
|
|
strh r3, [r2, 0x10]
|
|
ldr r0, _080BC7CC @ =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080BC7D0
|
|
strh r3, [r2, 0xC]
|
|
b _080BC7D4
|
|
.align 2, 0
|
|
_080BC7C8: .4byte gTasks
|
|
_080BC7CC: .4byte gBattleTypeFlags
|
|
_080BC7D0:
|
|
movs r0, 0x1
|
|
strh r0, [r2, 0xC]
|
|
_080BC7D4:
|
|
ldrh r0, [r2, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r2, 0x8]
|
|
b _080BC9AA
|
|
_080BC7DC:
|
|
ldr r0, _080BC804 @ =gTasks
|
|
adds r1, r6, r5
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldrh r0, [r1, 0xC]
|
|
subs r0, 0x1
|
|
strh r0, [r1, 0xC]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
beq _080BC7F2
|
|
b _080BC9AA
|
|
_080BC7F2:
|
|
ldrh r0, [r1, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x8]
|
|
movs r0, 0x48
|
|
movs r1, 0x3F
|
|
bl SetGpuReg
|
|
b _080BC9AA
|
|
.align 2, 0
|
|
_080BC804: .4byte gTasks
|
|
_080BC808:
|
|
ldr r1, _080BC848 @ =gUnknown_2022986
|
|
ldrh r0, [r1]
|
|
subs r0, 0xFF
|
|
strh r0, [r1]
|
|
movs r1, 0xFF
|
|
lsls r1, 8
|
|
ands r0, r1
|
|
movs r1, 0xC0
|
|
lsls r1, 6
|
|
cmp r0, r1
|
|
beq _080BC820
|
|
b _080BC9AA
|
|
_080BC820:
|
|
ldr r0, _080BC84C @ =gTasks
|
|
adds r1, r6, r5
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldrh r0, [r1, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x8]
|
|
movs r0, 0xF0
|
|
strh r0, [r1, 0xC]
|
|
movs r0, 0x20
|
|
strh r0, [r1, 0xE]
|
|
movs r0, 0x1
|
|
strh r0, [r1, 0x12]
|
|
ldr r2, _080BC850 @ =gUnknown_2023F4C
|
|
ldrh r1, [r2]
|
|
ldr r0, _080BC854 @ =0x0000fffe
|
|
ands r0, r1
|
|
strh r0, [r2]
|
|
b _080BC9AA
|
|
.align 2, 0
|
|
_080BC848: .4byte gUnknown_2022986
|
|
_080BC84C: .4byte gTasks
|
|
_080BC850: .4byte gUnknown_2023F4C
|
|
_080BC854: .4byte 0x0000fffe
|
|
_080BC858:
|
|
ldr r0, _080BC890 @ =gTasks
|
|
adds r1, r6, r5
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldrh r2, [r1, 0xE]
|
|
movs r3, 0xE
|
|
ldrsh r0, [r1, r3]
|
|
cmp r0, 0
|
|
beq _080BC898
|
|
subs r0, r2, 0x1
|
|
strh r0, [r1, 0xE]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bne _080BC8B8
|
|
ldr r1, _080BC894 @ =0x00001842
|
|
movs r0, 0x50
|
|
bl SetGpuReg
|
|
movs r0, 0x52
|
|
movs r1, 0xF
|
|
bl SetGpuReg
|
|
movs r0, 0x54
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
b _080BC8B8
|
|
.align 2, 0
|
|
_080BC890: .4byte gTasks
|
|
_080BC894: .4byte 0x00001842
|
|
_080BC898:
|
|
ldrh r2, [r1, 0x10]
|
|
movs r0, 0x1F
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _080BC8B8
|
|
ldrh r0, [r1, 0x12]
|
|
subs r0, 0x1
|
|
strh r0, [r1, 0x12]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bne _080BC8B8
|
|
adds r0, r2, 0
|
|
adds r0, 0xFF
|
|
strh r0, [r1, 0x10]
|
|
movs r0, 0x4
|
|
strh r0, [r1, 0x12]
|
|
_080BC8B8:
|
|
ldr r2, _080BC988 @ =gUnknown_2022986
|
|
ldrh r1, [r2]
|
|
movs r0, 0xFF
|
|
lsls r0, 8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080BC8CC
|
|
ldr r3, _080BC98C @ =0xfffffc04
|
|
adds r0, r1, r3
|
|
strh r0, [r2]
|
|
_080BC8CC:
|
|
ldr r0, _080BC990 @ =gTasks
|
|
adds r1, r6, r5
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldrh r2, [r1, 0xC]
|
|
movs r3, 0xC
|
|
ldrsh r0, [r1, r3]
|
|
cmp r0, 0
|
|
beq _080BC8E2
|
|
subs r0, r2, 0x2
|
|
strh r0, [r1, 0xC]
|
|
_080BC8E2:
|
|
movs r3, 0
|
|
ldr r0, _080BC994 @ =gUnknown_2039600
|
|
mov r8, r0
|
|
ldr r2, _080BC998 @ =gUnknown_2038700
|
|
mov r12, r2
|
|
mov r7, r8
|
|
adds r4, r1, 0
|
|
_080BC8F0:
|
|
lsls r2, r3, 1
|
|
ldrb r1, [r7, 0x14]
|
|
lsls r0, r1, 4
|
|
subs r0, r1
|
|
lsls r0, 7
|
|
adds r2, r0
|
|
add r2, r12
|
|
ldrh r0, [r4, 0xC]
|
|
strh r0, [r2]
|
|
adds r3, 0x1
|
|
cmp r3, 0x4F
|
|
ble _080BC8F0
|
|
cmp r3, 0x9F
|
|
bgt _080BC934
|
|
ldr r0, _080BC998 @ =gUnknown_2038700
|
|
mov r12, r0
|
|
ldr r7, _080BC994 @ =gUnknown_2039600
|
|
ldr r1, _080BC990 @ =gTasks
|
|
adds r0, r6, r5
|
|
lsls r0, 3
|
|
adds r4, r0, r1
|
|
_080BC91A:
|
|
lsls r2, r3, 1
|
|
ldrb r1, [r7, 0x14]
|
|
lsls r0, r1, 4
|
|
subs r0, r1
|
|
lsls r0, 7
|
|
adds r2, r0
|
|
add r2, r12
|
|
ldrh r0, [r4, 0xC]
|
|
negs r0, r0
|
|
strh r0, [r2]
|
|
adds r3, 0x1
|
|
cmp r3, 0x9F
|
|
ble _080BC91A
|
|
_080BC934:
|
|
ldr r1, _080BC990 @ =gTasks
|
|
adds r0, r6, r5
|
|
lsls r0, 3
|
|
adds r1, r0, r1
|
|
movs r3, 0xC
|
|
ldrsh r2, [r1, r3]
|
|
cmp r2, 0
|
|
bne _080BC9AA
|
|
movs r0, 0x3
|
|
mov r3, r8
|
|
strb r0, [r3, 0x15]
|
|
ldrh r0, [r1, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x8]
|
|
str r2, [sp]
|
|
ldr r1, _080BC99C @ =0x0600e000
|
|
ldr r2, _080BC9A0 @ =0x05000200
|
|
mov r0, sp
|
|
bl CpuSet
|
|
movs r0, 0x1
|
|
movs r1, 0x1
|
|
movs r2, 0
|
|
bl SetBgAttribute
|
|
movs r0, 0x2
|
|
movs r1, 0x1
|
|
movs r2, 0
|
|
bl SetBgAttribute
|
|
movs r1, 0x9C
|
|
lsls r1, 8
|
|
movs r0, 0xA
|
|
bl SetGpuReg
|
|
movs r1, 0xBC
|
|
lsls r1, 7
|
|
movs r0, 0xC
|
|
bl SetGpuReg
|
|
b _080BC9AA
|
|
.align 2, 0
|
|
_080BC988: .4byte gUnknown_2022986
|
|
_080BC98C: .4byte 0xfffffc04
|
|
_080BC990: .4byte gTasks
|
|
_080BC994: .4byte gUnknown_2039600
|
|
_080BC998: .4byte gUnknown_2038700
|
|
_080BC99C: .4byte 0x0600e000
|
|
_080BC9A0: .4byte 0x05000200
|
|
_080BC9A4:
|
|
adds r0, r5, 0
|
|
bl sub_80BC41C
|
|
_080BC9AA:
|
|
ldr r0, _080BC9D0 @ =gTasks
|
|
adds r1, r6, r5
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
movs r2, 0x8
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, 0x4
|
|
beq _080BC9C2
|
|
ldrh r1, [r1, 0x10]
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
_080BC9C2:
|
|
add sp, 0x4
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BC9D0: .4byte gTasks
|
|
thumb_func_end task00_battle_intro_80BC6C8
|
|
|
|
thumb_func_start task_battle_intro_anim
|
|
task_battle_intro_anim: @ 80BC9D4
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r1, _080BCA08 @ =gUnknown_2022978
|
|
ldrh r0, [r1]
|
|
adds r0, 0x8
|
|
strh r0, [r1]
|
|
ldr r1, _080BCA0C @ =gTasks
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
movs r2, 0x8
|
|
ldrsh r0, [r0, r2]
|
|
adds r4, r1, 0
|
|
cmp r0, 0x4
|
|
bls _080BC9FE
|
|
b _080BCC22
|
|
_080BC9FE:
|
|
lsls r0, 2
|
|
ldr r1, _080BCA10 @ =_080BCA14
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080BCA08: .4byte gUnknown_2022978
|
|
_080BCA0C: .4byte gTasks
|
|
_080BCA10: .4byte _080BCA14
|
|
.align 2, 0
|
|
_080BCA14:
|
|
.4byte _080BCA28
|
|
.4byte _080BCA7C
|
|
.4byte _080BCAA8
|
|
.4byte _080BCAF8
|
|
.4byte _080BCC1C
|
|
_080BCA28:
|
|
ldr r1, _080BCA60 @ =0x00001842
|
|
movs r0, 0x50
|
|
bl SetGpuReg
|
|
ldr r4, _080BCA64 @ =0x00000808
|
|
movs r0, 0x52
|
|
adds r1, r4, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x54
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
ldr r1, _080BCA68 @ =gTasks
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
adds r2, r0, r1
|
|
strh r4, [r2, 0x10]
|
|
ldr r0, _080BCA6C @ =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080BCA70
|
|
movs r0, 0x10
|
|
b _080BCA72
|
|
.align 2, 0
|
|
_080BCA60: .4byte 0x00001842
|
|
_080BCA64: .4byte 0x00000808
|
|
_080BCA68: .4byte gTasks
|
|
_080BCA6C: .4byte gBattleTypeFlags
|
|
_080BCA70:
|
|
movs r0, 0x1
|
|
_080BCA72:
|
|
strh r0, [r2, 0xC]
|
|
ldrh r0, [r2, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r2, 0x8]
|
|
b _080BCC22
|
|
_080BCA7C:
|
|
ldr r0, _080BCAA4 @ =gTasks
|
|
lsls r1, r5, 2
|
|
adds r1, r5
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldrh r0, [r1, 0xC]
|
|
subs r0, 0x1
|
|
strh r0, [r1, 0xC]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
beq _080BCA94
|
|
b _080BCC22
|
|
_080BCA94:
|
|
ldrh r0, [r1, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x8]
|
|
movs r0, 0x48
|
|
movs r1, 0x3F
|
|
bl SetGpuReg
|
|
b _080BCC22
|
|
.align 2, 0
|
|
_080BCAA4: .4byte gTasks
|
|
_080BCAA8:
|
|
ldr r1, _080BCAE8 @ =gUnknown_2022986
|
|
ldrh r0, [r1]
|
|
subs r0, 0xFF
|
|
strh r0, [r1]
|
|
movs r1, 0xFF
|
|
lsls r1, 8
|
|
ands r0, r1
|
|
movs r1, 0xC0
|
|
lsls r1, 6
|
|
cmp r0, r1
|
|
beq _080BCAC0
|
|
b _080BCC22
|
|
_080BCAC0:
|
|
ldr r0, _080BCAEC @ =gTasks
|
|
lsls r1, r5, 2
|
|
adds r1, r5
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldrh r0, [r1, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x8]
|
|
movs r0, 0xF0
|
|
strh r0, [r1, 0xC]
|
|
movs r0, 0x20
|
|
strh r0, [r1, 0xE]
|
|
movs r0, 0x1
|
|
strh r0, [r1, 0x12]
|
|
ldr r2, _080BCAF0 @ =gUnknown_2023F4C
|
|
ldrh r1, [r2]
|
|
ldr r0, _080BCAF4 @ =0x0000fffe
|
|
ands r0, r1
|
|
strh r0, [r2]
|
|
b _080BCC22
|
|
.align 2, 0
|
|
_080BCAE8: .4byte gUnknown_2022986
|
|
_080BCAEC: .4byte gTasks
|
|
_080BCAF0: .4byte gUnknown_2023F4C
|
|
_080BCAF4: .4byte 0x0000fffe
|
|
_080BCAF8:
|
|
lsls r0, r5, 2
|
|
adds r1, r0, r5
|
|
lsls r1, 3
|
|
adds r2, r1, r4
|
|
ldrh r3, [r2, 0xE]
|
|
movs r6, 0xE
|
|
ldrsh r1, [r2, r6]
|
|
mov r12, r0
|
|
cmp r1, 0
|
|
beq _080BCB12
|
|
subs r0, r3, 0x1
|
|
strh r0, [r2, 0xE]
|
|
b _080BCB32
|
|
_080BCB12:
|
|
ldrh r1, [r2, 0x10]
|
|
movs r0, 0xF
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080BCB32
|
|
ldrh r0, [r2, 0x12]
|
|
subs r0, 0x1
|
|
strh r0, [r2, 0x12]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bne _080BCB32
|
|
adds r0, r1, 0
|
|
adds r0, 0xFF
|
|
strh r0, [r2, 0x10]
|
|
movs r0, 0x6
|
|
strh r0, [r2, 0x12]
|
|
_080BCB32:
|
|
ldr r2, _080BCC00 @ =gUnknown_2022986
|
|
ldrh r1, [r2]
|
|
movs r0, 0xFF
|
|
lsls r0, 8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080BCB46
|
|
ldr r3, _080BCC04 @ =0xfffffc04
|
|
adds r0, r1, r3
|
|
strh r0, [r2]
|
|
_080BCB46:
|
|
mov r6, r12
|
|
adds r0, r6, r5
|
|
lsls r0, 3
|
|
adds r1, r0, r4
|
|
ldrh r2, [r1, 0xC]
|
|
movs r3, 0xC
|
|
ldrsh r0, [r1, r3]
|
|
cmp r0, 0
|
|
beq _080BCB5C
|
|
subs r0, r2, 0x2
|
|
strh r0, [r1, 0xC]
|
|
_080BCB5C:
|
|
movs r3, 0
|
|
ldr r6, _080BCC08 @ =gUnknown_2039600
|
|
mov r8, r6
|
|
ldr r7, _080BCC0C @ =gUnknown_2038700
|
|
adds r4, r1, 0
|
|
_080BCB66:
|
|
lsls r2, r3, 1
|
|
ldrb r1, [r6, 0x14]
|
|
lsls r0, r1, 4
|
|
subs r0, r1
|
|
lsls r0, 7
|
|
adds r2, r0
|
|
adds r2, r7
|
|
ldrh r0, [r4, 0xC]
|
|
strh r0, [r2]
|
|
adds r3, 0x1
|
|
cmp r3, 0x4F
|
|
ble _080BCB66
|
|
cmp r3, 0x9F
|
|
bgt _080BCBAA
|
|
ldr r7, _080BCC0C @ =gUnknown_2038700
|
|
ldr r6, _080BCC08 @ =gUnknown_2039600
|
|
ldr r1, _080BCC10 @ =gTasks
|
|
mov r2, r12
|
|
adds r0, r2, r5
|
|
lsls r0, 3
|
|
adds r4, r0, r1
|
|
_080BCB90:
|
|
lsls r2, r3, 1
|
|
ldrb r1, [r6, 0x14]
|
|
lsls r0, r1, 4
|
|
subs r0, r1
|
|
lsls r0, 7
|
|
adds r2, r0
|
|
adds r2, r7
|
|
ldrh r0, [r4, 0xC]
|
|
negs r0, r0
|
|
strh r0, [r2]
|
|
adds r3, 0x1
|
|
cmp r3, 0x9F
|
|
ble _080BCB90
|
|
_080BCBAA:
|
|
ldr r1, _080BCC10 @ =gTasks
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
adds r1, r0, r1
|
|
movs r3, 0xC
|
|
ldrsh r2, [r1, r3]
|
|
cmp r2, 0
|
|
bne _080BCC22
|
|
movs r0, 0x3
|
|
mov r6, r8
|
|
strb r0, [r6, 0x15]
|
|
ldrh r0, [r1, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x8]
|
|
str r2, [sp]
|
|
ldr r1, _080BCC14 @ =0x0600e000
|
|
ldr r2, _080BCC18 @ =0x05000200
|
|
mov r0, sp
|
|
bl CpuSet
|
|
movs r0, 0x1
|
|
movs r1, 0x1
|
|
movs r2, 0
|
|
bl SetBgAttribute
|
|
movs r0, 0x2
|
|
movs r1, 0x1
|
|
movs r2, 0
|
|
bl SetBgAttribute
|
|
movs r1, 0x9C
|
|
lsls r1, 8
|
|
movs r0, 0xA
|
|
bl SetGpuReg
|
|
movs r1, 0xBC
|
|
lsls r1, 7
|
|
movs r0, 0xC
|
|
bl SetGpuReg
|
|
b _080BCC22
|
|
.align 2, 0
|
|
_080BCC00: .4byte gUnknown_2022986
|
|
_080BCC04: .4byte 0xfffffc04
|
|
_080BCC08: .4byte gUnknown_2039600
|
|
_080BCC0C: .4byte gUnknown_2038700
|
|
_080BCC10: .4byte gTasks
|
|
_080BCC14: .4byte 0x0600e000
|
|
_080BCC18: .4byte 0x05000200
|
|
_080BCC1C:
|
|
adds r0, r5, 0
|
|
bl sub_80BC41C
|
|
_080BCC22:
|
|
ldr r0, _080BCC48 @ =gTasks
|
|
lsls r1, r5, 2
|
|
adds r1, r5
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
movs r2, 0x8
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, 0x4
|
|
beq _080BCC3C
|
|
ldrh r1, [r1, 0x10]
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
_080BCC3C:
|
|
add sp, 0x4
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BCC48: .4byte gTasks
|
|
thumb_func_end task_battle_intro_anim
|
|
|
|
thumb_func_start sub_80BCC4C
|
|
sub_80BCC4C: @ 80BCC4C
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
ldr r1, _080BCC98 @ =gTasks
|
|
lsls r0, r6, 2
|
|
adds r0, r6
|
|
lsls r0, 3
|
|
adds r7, r0, r1
|
|
movs r1, 0x8
|
|
ldrsh r0, [r7, r1]
|
|
cmp r0, 0x1
|
|
ble _080BCCC2
|
|
movs r2, 0x10
|
|
ldrsh r0, [r7, r2]
|
|
cmp r0, 0
|
|
bne _080BCCC2
|
|
ldr r2, _080BCC9C @ =gUnknown_2022978
|
|
ldrh r1, [r2]
|
|
movs r0, 0x80
|
|
lsls r0, 8
|
|
ands r0, r1
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
cmp r5, 0
|
|
bne _080BCC8A
|
|
cmp r1, 0x4F
|
|
bhi _080BCCA4
|
|
_080BCC8A:
|
|
adds r0, r1, 0x3
|
|
strh r0, [r2]
|
|
ldr r1, _080BCCA0 @ =gUnknown_202297C
|
|
ldrh r0, [r1]
|
|
subs r0, 0x3
|
|
strh r0, [r1]
|
|
b _080BCCC2
|
|
.align 2, 0
|
|
_080BCC98: .4byte gTasks
|
|
_080BCC9C: .4byte gUnknown_2022978
|
|
_080BCCA0: .4byte gUnknown_202297C
|
|
_080BCCA4:
|
|
str r5, [sp]
|
|
ldr r1, _080BCCE4 @ =0x0600e000
|
|
ldr r4, _080BCCE8 @ =0x05000200
|
|
mov r0, sp
|
|
adds r2, r4, 0
|
|
bl CpuSet
|
|
str r5, [sp, 0x4]
|
|
add r0, sp, 0x4
|
|
ldr r1, _080BCCEC @ =0x0600f000
|
|
adds r2, r4, 0
|
|
bl CpuSet
|
|
movs r0, 0x1
|
|
strh r0, [r7, 0x10]
|
|
_080BCCC2:
|
|
ldr r0, _080BCCF0 @ =gTasks
|
|
lsls r2, r6, 2
|
|
adds r1, r2, r6
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
movs r3, 0x8
|
|
ldrsh r1, [r1, r3]
|
|
mov r9, r0
|
|
adds r5, r2, 0
|
|
cmp r1, 0x4
|
|
bls _080BCCDA
|
|
b _080BCEE6
|
|
_080BCCDA:
|
|
lsls r0, r1, 2
|
|
ldr r1, _080BCCF4 @ =_080BCCF8
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080BCCE4: .4byte 0x0600e000
|
|
_080BCCE8: .4byte 0x05000200
|
|
_080BCCEC: .4byte 0x0600f000
|
|
_080BCCF0: .4byte gTasks
|
|
_080BCCF4: .4byte _080BCCF8
|
|
.align 2, 0
|
|
_080BCCF8:
|
|
.4byte _080BCD0C
|
|
.4byte _080BCD1E
|
|
.4byte _080BCDC4
|
|
.4byte _080BCE08
|
|
.4byte _080BCEE0
|
|
_080BCD0C:
|
|
adds r0, r5, r6
|
|
lsls r0, 3
|
|
add r0, r9
|
|
movs r1, 0x20
|
|
strh r1, [r0, 0xC]
|
|
ldrh r1, [r0, 0x8]
|
|
adds r1, 0x1
|
|
strh r1, [r0, 0x8]
|
|
b _080BCEE6
|
|
_080BCD1E:
|
|
adds r0, r5, r6
|
|
lsls r0, 3
|
|
mov r2, r9
|
|
adds r1, r0, r2
|
|
ldrh r0, [r1, 0xC]
|
|
subs r0, 0x1
|
|
strh r0, [r1, 0xC]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
beq _080BCD34
|
|
b _080BCEE6
|
|
_080BCD34:
|
|
ldrh r0, [r1, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x8]
|
|
ldr r4, _080BCDB4 @ =gSprites
|
|
ldr r5, _080BCDB8 @ =gBattleStruct
|
|
ldr r0, [r5]
|
|
adds r0, 0x7D
|
|
ldrb r0, [r0]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r4
|
|
ldrb r3, [r1, 0x1]
|
|
movs r2, 0xD
|
|
negs r2, r2
|
|
adds r0, r2, 0
|
|
ands r0, r3
|
|
movs r3, 0x8
|
|
mov r9, r3
|
|
mov r3, r9
|
|
orrs r0, r3
|
|
strb r0, [r1, 0x1]
|
|
ldr r3, [r5]
|
|
adds r0, r3, 0
|
|
adds r0, 0x7D
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
movs r1, 0x1C
|
|
adds r1, r4
|
|
mov r8, r1
|
|
add r0, r8
|
|
ldr r6, _080BCDBC @ =sub_801182C
|
|
str r6, [r0]
|
|
adds r3, 0x7E
|
|
ldrb r1, [r3]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldrb r1, [r0, 0x1]
|
|
ands r2, r1
|
|
mov r3, r9
|
|
orrs r2, r3
|
|
strb r2, [r0, 0x1]
|
|
ldr r0, [r5]
|
|
adds r0, 0x7E
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
add r0, r8
|
|
str r6, [r0]
|
|
movs r0, 0x48
|
|
movs r1, 0x3F
|
|
bl SetGpuReg
|
|
ldr r1, _080BCDC0 @ =0x00003f06
|
|
movs r0, 0x4A
|
|
bl SetGpuReg
|
|
b _080BCEE6
|
|
.align 2, 0
|
|
_080BCDB4: .4byte gSprites
|
|
_080BCDB8: .4byte gBattleStruct
|
|
_080BCDBC: .4byte sub_801182C
|
|
_080BCDC0: .4byte 0x00003f06
|
|
_080BCDC4:
|
|
ldr r1, _080BCDFC @ =gUnknown_2022986
|
|
ldrh r0, [r1]
|
|
subs r0, 0xFF
|
|
strh r0, [r1]
|
|
movs r1, 0xFF
|
|
lsls r1, 8
|
|
ands r0, r1
|
|
movs r1, 0xC0
|
|
lsls r1, 6
|
|
cmp r0, r1
|
|
beq _080BCDDC
|
|
b _080BCEE6
|
|
_080BCDDC:
|
|
adds r1, r5, r6
|
|
lsls r1, 3
|
|
add r1, r9
|
|
ldrh r0, [r1, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x8]
|
|
movs r0, 0xF0
|
|
strh r0, [r1, 0xC]
|
|
movs r0, 0x20
|
|
strh r0, [r1, 0xE]
|
|
ldr r2, _080BCE00 @ =gUnknown_2023F4C
|
|
ldrh r1, [r2]
|
|
ldr r0, _080BCE04 @ =0x0000fffe
|
|
ands r0, r1
|
|
strh r0, [r2]
|
|
b _080BCEE6
|
|
.align 2, 0
|
|
_080BCDFC: .4byte gUnknown_2022986
|
|
_080BCE00: .4byte gUnknown_2023F4C
|
|
_080BCE04: .4byte 0x0000fffe
|
|
_080BCE08:
|
|
ldr r2, _080BCECC @ =gUnknown_2022986
|
|
ldrh r1, [r2]
|
|
movs r0, 0xFF
|
|
lsls r0, 8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080BCE1C
|
|
ldr r3, _080BCED0 @ =0xfffffc04
|
|
adds r0, r1, r3
|
|
strh r0, [r2]
|
|
_080BCE1C:
|
|
adds r0, r5, r6
|
|
lsls r0, 3
|
|
mov r2, r9
|
|
adds r1, r0, r2
|
|
ldrh r2, [r1, 0xC]
|
|
movs r3, 0xC
|
|
ldrsh r0, [r1, r3]
|
|
cmp r0, 0
|
|
beq _080BCE32
|
|
subs r0, r2, 0x2
|
|
strh r0, [r1, 0xC]
|
|
_080BCE32:
|
|
movs r3, 0
|
|
ldr r0, _080BCED4 @ =gUnknown_2039600
|
|
mov r12, r0
|
|
ldr r2, _080BCED8 @ =gUnknown_2038700
|
|
mov r8, r2
|
|
mov r7, r12
|
|
adds r4, r1, 0
|
|
_080BCE40:
|
|
lsls r2, r3, 1
|
|
ldrb r1, [r7, 0x14]
|
|
lsls r0, r1, 4
|
|
subs r0, r1
|
|
lsls r0, 7
|
|
adds r2, r0
|
|
add r2, r8
|
|
ldrh r0, [r4, 0xC]
|
|
strh r0, [r2]
|
|
adds r3, 0x1
|
|
cmp r3, 0x4F
|
|
ble _080BCE40
|
|
cmp r3, 0x9F
|
|
bgt _080BCE84
|
|
ldr r0, _080BCED8 @ =gUnknown_2038700
|
|
mov r8, r0
|
|
ldr r7, _080BCED4 @ =gUnknown_2039600
|
|
ldr r1, _080BCEDC @ =gTasks
|
|
adds r0, r5, r6
|
|
lsls r0, 3
|
|
adds r4, r0, r1
|
|
_080BCE6A:
|
|
lsls r2, r3, 1
|
|
ldrb r1, [r7, 0x14]
|
|
lsls r0, r1, 4
|
|
subs r0, r1
|
|
lsls r0, 7
|
|
adds r2, r0
|
|
add r2, r8
|
|
ldrh r0, [r4, 0xC]
|
|
negs r0, r0
|
|
strh r0, [r2]
|
|
adds r3, 0x1
|
|
cmp r3, 0x9F
|
|
ble _080BCE6A
|
|
_080BCE84:
|
|
adds r0, r5, r6
|
|
lsls r0, 3
|
|
mov r2, r9
|
|
adds r1, r0, r2
|
|
movs r3, 0xC
|
|
ldrsh r0, [r1, r3]
|
|
cmp r0, 0
|
|
bne _080BCEE6
|
|
movs r0, 0x3
|
|
mov r2, r12
|
|
strb r0, [r2, 0x15]
|
|
ldrh r0, [r1, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x8]
|
|
movs r0, 0x1
|
|
movs r1, 0x1
|
|
movs r2, 0
|
|
bl SetBgAttribute
|
|
movs r0, 0x2
|
|
movs r1, 0x1
|
|
movs r2, 0
|
|
bl SetBgAttribute
|
|
movs r1, 0x9C
|
|
lsls r1, 8
|
|
movs r0, 0xA
|
|
bl SetGpuReg
|
|
movs r1, 0xBC
|
|
lsls r1, 7
|
|
movs r0, 0xC
|
|
bl SetGpuReg
|
|
b _080BCEE6
|
|
.align 2, 0
|
|
_080BCECC: .4byte gUnknown_2022986
|
|
_080BCED0: .4byte 0xfffffc04
|
|
_080BCED4: .4byte gUnknown_2039600
|
|
_080BCED8: .4byte gUnknown_2038700
|
|
_080BCEDC: .4byte gTasks
|
|
_080BCEE0:
|
|
adds r0, r6, 0
|
|
bl sub_80BC41C
|
|
_080BCEE6:
|
|
add sp, 0x8
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80BCC4C
|
|
|
|
thumb_func_start sub_80BCEF4
|
|
sub_80BCEF4: @ 80BCEF4
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x4
|
|
str r0, [sp]
|
|
adds r6, r2, 0
|
|
adds r4, r3, 0
|
|
ldr r0, [sp, 0x24]
|
|
ldr r7, [sp, 0x28]
|
|
ldr r2, [sp, 0x2C]
|
|
mov r9, r2
|
|
ldr r5, [sp, 0x30]
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
mov r8, r1
|
|
lsls r6, 24
|
|
lsrs r6, 24
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r10, r0
|
|
lsls r5, 16
|
|
lsrs r5, 16
|
|
adds r0, r4, 0
|
|
bl GetBattlerAtPosition
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _080BCFC4 @ =gMonSpritesGfxPtr
|
|
ldr r2, [r1]
|
|
lsls r4, 2
|
|
adds r2, 0x4
|
|
adds r2, r4
|
|
ldr r1, _080BCFC8 @ =gBattleMonForms
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
lsls r1, 11
|
|
ldr r0, [r2]
|
|
adds r0, r1
|
|
movs r2, 0x80
|
|
lsls r2, 3
|
|
adds r1, r7, 0
|
|
bl CpuSet
|
|
ldr r1, [sp]
|
|
lsls r0, r1, 24
|
|
lsrs r0, 24
|
|
movs r2, 0x80
|
|
lsls r2, 5
|
|
adds r1, r7, 0
|
|
adds r3, r5, 0
|
|
bl LoadBgTiles
|
|
adds r0, r6, 0
|
|
adds r0, 0x8
|
|
cmp r6, r0
|
|
bge _080BCFA0
|
|
mov r12, r0
|
|
mov r2, r8
|
|
lsls r7, r2, 1
|
|
_080BCF72:
|
|
mov r1, r8
|
|
adds r2, r1, 0
|
|
adds r2, 0x8
|
|
adds r4, r6, 0x1
|
|
cmp r1, r2
|
|
bge _080BCF9A
|
|
mov r0, r10
|
|
lsls r3, r0, 12
|
|
lsls r0, r6, 6
|
|
add r0, r9
|
|
adds r6, r7, r0
|
|
subs r1, r2, r1
|
|
_080BCF8A:
|
|
adds r0, r5, 0
|
|
orrs r0, r3
|
|
strh r0, [r6]
|
|
adds r5, 0x1
|
|
adds r6, 0x2
|
|
subs r1, 0x1
|
|
cmp r1, 0
|
|
bne _080BCF8A
|
|
_080BCF9A:
|
|
adds r6, r4, 0
|
|
cmp r6, r12
|
|
blt _080BCF72
|
|
_080BCFA0:
|
|
ldr r1, [sp]
|
|
lsls r0, r1, 24
|
|
lsrs r0, 24
|
|
movs r2, 0x80
|
|
lsls r2, 4
|
|
mov r1, r9
|
|
movs r3, 0
|
|
bl LoadBgTilemap
|
|
add sp, 0x4
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BCFC4: .4byte gMonSpritesGfxPtr
|
|
_080BCFC8: .4byte gBattleMonForms
|
|
thumb_func_end sub_80BCEF4
|
|
|
|
thumb_func_start sub_80BCFCC
|
|
sub_80BCFCC: @ 80BCFCC
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x4
|
|
ldr r4, [sp, 0x24]
|
|
ldr r5, [sp, 0x28]
|
|
mov r8, r5
|
|
ldr r5, [sp, 0x2C]
|
|
ldr r6, [sp, 0x30]
|
|
mov r9, r6
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r12, r0
|
|
lsls r1, 24
|
|
lsls r2, 24
|
|
lsls r3, 24
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
mov r10, r4
|
|
mov r7, r8
|
|
lsls r7, 16
|
|
lsrs r6, r7, 16
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
mov r0, r9
|
|
lsls r0, 24
|
|
mov r9, r0
|
|
ldr r4, _080BD090 @ =0x040000d4
|
|
ldr r0, _080BD094 @ =gMonSpritesGfxPtr
|
|
ldr r0, [r0]
|
|
lsrs r2, 22
|
|
adds r0, 0x4
|
|
adds r0, r2
|
|
lsrs r3, 13
|
|
ldr r0, [r0]
|
|
adds r0, r3
|
|
str r0, [r4]
|
|
movs r0, 0xC0
|
|
lsls r0, 19
|
|
adds r6, r0
|
|
str r6, [r4, 0x4]
|
|
ldr r0, _080BD098 @ =0x80000400
|
|
str r0, [r4, 0x8]
|
|
ldr r0, [r4, 0x8]
|
|
adds r2, r7, 0
|
|
lsrs r2, 21
|
|
mov r6, r9
|
|
lsrs r6, 15
|
|
subs r4, r2, r6
|
|
lsrs r0, r1, 24
|
|
adds r1, r0, 0
|
|
adds r1, 0x8
|
|
cmp r0, r1
|
|
bge _080BD080
|
|
mov r9, r1
|
|
mov r7, r12
|
|
lsls r7, 1
|
|
mov r8, r7
|
|
lsls r5, 11
|
|
str r5, [sp]
|
|
_080BD048:
|
|
mov r2, r12
|
|
adds r3, r2, 0
|
|
adds r3, 0x8
|
|
adds r5, r0, 0x1
|
|
cmp r2, r3
|
|
bge _080BD07A
|
|
mov r1, r10
|
|
lsls r6, r1, 12
|
|
lsls r0, 6
|
|
movs r7, 0xC0
|
|
lsls r7, 19
|
|
adds r0, r7
|
|
ldr r1, [sp]
|
|
adds r0, r1, r0
|
|
mov r7, r8
|
|
adds r1, r7, r0
|
|
subs r2, r3, r2
|
|
_080BD06A:
|
|
adds r0, r4, 0
|
|
orrs r0, r6
|
|
strh r0, [r1]
|
|
adds r4, 0x1
|
|
adds r1, 0x2
|
|
subs r2, 0x1
|
|
cmp r2, 0
|
|
bne _080BD06A
|
|
_080BD07A:
|
|
adds r0, r5, 0
|
|
cmp r0, r9
|
|
blt _080BD048
|
|
_080BD080:
|
|
add sp, 0x4
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BD090: .4byte 0x040000d4
|
|
_080BD094: .4byte gMonSpritesGfxPtr
|
|
_080BD098: .4byte 0x80000400
|
|
thumb_func_end sub_80BCFCC
|
|
|
|
.align 2, 0 @ Don't pad with nop.
|