mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2024-11-16 19:47:35 +01:00
15476 lines
235 KiB
ArmAsm
15476 lines
235 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "constants/constants.inc"
|
|
|
|
.syntax unified
|
|
|
|
.text
|
|
|
|
thumb_func_start sub_816F318
|
|
sub_816F318: @ 816F318
|
|
push {r4,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
movs r1, 0x32
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0xBF
|
|
ble _0816F394
|
|
ldrh r1, [r4, 0x34]
|
|
movs r2, 0x34
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0
|
|
beq _0816F336
|
|
subs r0, r1, 0x1
|
|
strh r0, [r4, 0x34]
|
|
b _0816F39A
|
|
_0816F336:
|
|
adds r2, r4, 0
|
|
adds r2, 0x3E
|
|
ldrb r1, [r2]
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
ldrh r0, [r4, 0x30]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrh r1, [r4, 0x32]
|
|
str r1, [sp]
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl SetSpriteTransformationMatrix
|
|
movs r0, 0x32
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 5
|
|
subs r0, r1
|
|
movs r1, 0x64
|
|
bl __divsi3
|
|
strh r0, [r4, 0x32]
|
|
movs r2, 0x32
|
|
ldrsh r1, [r4, r2]
|
|
adds r0, r1, 0
|
|
subs r0, 0xC0
|
|
cmp r0, 0
|
|
bge _0816F378
|
|
adds r0, 0x7F
|
|
_0816F378:
|
|
asrs r0, 7
|
|
adds r0, 0x9
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0xF
|
|
bls _0816F386
|
|
movs r0, 0xF
|
|
_0816F386:
|
|
lsls r2, r0, 4
|
|
ldrb r1, [r4, 0x5]
|
|
movs r0, 0xF
|
|
ands r0, r1
|
|
orrs r0, r2
|
|
strb r0, [r4, 0x5]
|
|
b _0816F39A
|
|
_0816F394:
|
|
adds r0, r4, 0
|
|
bl RemoveObjectAndFreeTiles
|
|
_0816F39A:
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_816F318
|
|
|
|
thumb_func_start sub_816F3A4
|
|
sub_816F3A4: @ 816F3A4
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldr r2, =gUnknown_02020630
|
|
movs r1, 0x3C
|
|
ldrsh r0, [r4, r1]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
movs r3, 0x3C
|
|
ldrsh r0, [r1, r3]
|
|
cmp r0, 0
|
|
beq _0816F420
|
|
adds r2, r4, 0
|
|
adds r2, 0x3E
|
|
ldrb r0, [r2]
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldrh r0, [r4, 0x24]
|
|
ldrh r1, [r4, 0x20]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x20]
|
|
ldrh r0, [r4, 0x26]
|
|
ldrh r3, [r4, 0x22]
|
|
adds r0, r3
|
|
strh r0, [r4, 0x22]
|
|
adds r0, r4, 0
|
|
movs r1, 0x3
|
|
bl StartObjectImageAnim
|
|
movs r0, 0x80
|
|
lsls r0, 3
|
|
strh r0, [r4, 0x32]
|
|
ldrh r1, [r4, 0x30]
|
|
movs r0, 0x3
|
|
ands r0, r1
|
|
lsls r0, 3
|
|
strh r0, [r4, 0x34]
|
|
ldr r0, =sub_816F318
|
|
str r0, [r4, 0x1C]
|
|
ldrb r1, [r4, 0x1]
|
|
movs r0, 0x3F
|
|
ands r0, r1
|
|
movs r1, 0x40
|
|
orrs r0, r1
|
|
strb r0, [r4, 0x1]
|
|
ldrb r0, [r4, 0x3]
|
|
movs r1, 0xC0
|
|
orrs r0, r1
|
|
strb r0, [r4, 0x3]
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
movs r2, 0x3
|
|
movs r3, 0x2
|
|
bl CalcVecFromObjectCenterToObjectUpperLeft
|
|
b _0816F44C
|
|
.pool
|
|
_0816F420:
|
|
ldrh r0, [r1, 0x24]
|
|
strh r0, [r4, 0x24]
|
|
movs r0, 0x3C
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrh r0, [r0, 0x26]
|
|
strh r0, [r4, 0x26]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrh r0, [r0, 0x20]
|
|
strh r0, [r4, 0x20]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrh r0, [r0, 0x22]
|
|
strh r0, [r4, 0x22]
|
|
_0816F44C:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_816F3A4
|
|
|
|
thumb_func_start sub_816F454
|
|
sub_816F454: @ 816F454
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
movs r2, 0x2E
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, 0
|
|
beq _0816F464
|
|
ldr r0, =sub_816F46C
|
|
str r0, [r1, 0x1C]
|
|
_0816F464:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_816F454
|
|
|
|
thumb_func_start sub_816F46C
|
|
sub_816F46C: @ 816F46C
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x4
|
|
adds r7, r0, 0
|
|
ldrh r4, [r7, 0x20]
|
|
movs r1, 0x20
|
|
ldrsh r0, [r7, r1]
|
|
cmp r0, 0x74
|
|
bgt _0816F4AC
|
|
ldrh r0, [r7, 0x26]
|
|
ldrh r1, [r7, 0x22]
|
|
adds r0, r1
|
|
movs r1, 0
|
|
strh r0, [r7, 0x22]
|
|
strh r1, [r7, 0x26]
|
|
adds r0, r4, 0x4
|
|
strh r0, [r7, 0x20]
|
|
ldr r0, =0x0000fffc
|
|
strh r0, [r7, 0x24]
|
|
movs r0, 0x80
|
|
strh r0, [r7, 0x36]
|
|
ldr r0, =sub_816F5B4
|
|
str r0, [r7, 0x1C]
|
|
b _0816F59E
|
|
.pool
|
|
_0816F4AC:
|
|
ldrh r1, [r7, 0x36]
|
|
ldr r5, =gUnknown_08329F40
|
|
lsls r0, r1, 24
|
|
lsrs r0, 23
|
|
adds r0, r5
|
|
ldrh r2, [r0]
|
|
adds r0, r1, 0
|
|
adds r0, 0x40
|
|
lsls r0, 24
|
|
lsrs r0, 23
|
|
adds r0, r5
|
|
ldrh r3, [r0]
|
|
adds r1, 0x2
|
|
strh r1, [r7, 0x36]
|
|
lsls r2, 16
|
|
asrs r0, r2, 16
|
|
cmp r0, 0
|
|
bge _0816F4D2
|
|
adds r0, 0x1F
|
|
_0816F4D2:
|
|
asrs r0, 5
|
|
strh r0, [r7, 0x26]
|
|
subs r0, r4, 0x1
|
|
strh r0, [r7, 0x20]
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0816F4E8
|
|
ldrh r0, [r7, 0x22]
|
|
adds r0, 0x1
|
|
strh r0, [r7, 0x22]
|
|
_0816F4E8:
|
|
lsls r0, r3, 16
|
|
asrs r0, 16
|
|
negs r0, r0
|
|
cmp r0, 0
|
|
bge _0816F4F4
|
|
adds r0, 0xF
|
|
_0816F4F4:
|
|
lsls r1, r0, 12
|
|
lsrs r1, 16
|
|
ldrh r4, [r7, 0x32]
|
|
ldrh r3, [r7, 0x34]
|
|
adds r0, r1, 0
|
|
subs r0, 0x10
|
|
lsls r0, 24
|
|
lsrs r0, 23
|
|
adds r0, r5
|
|
ldrh r2, [r0]
|
|
adds r1, 0x30
|
|
lsls r1, 24
|
|
lsrs r1, 23
|
|
adds r1, r5
|
|
movs r0, 0
|
|
ldrsh r1, [r1, r0]
|
|
adds r0, r1, 0
|
|
muls r0, r4
|
|
cmp r0, 0
|
|
bge _0816F51E
|
|
adds r0, 0xFF
|
|
_0816F51E:
|
|
lsls r0, 8
|
|
lsrs r0, 16
|
|
mov r8, r0
|
|
lsls r0, r2, 16
|
|
asrs r2, r0, 16
|
|
negs r0, r2
|
|
muls r0, r3
|
|
cmp r0, 0
|
|
bge _0816F532
|
|
adds r0, 0xFF
|
|
_0816F532:
|
|
lsls r0, 8
|
|
lsrs r0, 16
|
|
mov r10, r0
|
|
adds r0, r2, 0
|
|
muls r0, r4
|
|
cmp r0, 0
|
|
bge _0816F542
|
|
adds r0, 0xFF
|
|
_0816F542:
|
|
lsls r0, 8
|
|
lsrs r5, r0, 16
|
|
adds r0, r1, 0
|
|
muls r0, r3
|
|
cmp r0, 0
|
|
bge _0816F550
|
|
adds r0, 0xFF
|
|
_0816F550:
|
|
lsls r6, r0, 8
|
|
lsrs r6, 16
|
|
ldrh r0, [r7, 0x30]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
str r3, [sp]
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl SetSpriteTransformationMatrix
|
|
ldrh r0, [r7, 0x30]
|
|
adds r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r9, r5
|
|
mov r1, r10
|
|
lsls r5, r1, 16
|
|
lsrs r3, r5, 16
|
|
lsls r4, r6, 16
|
|
str r6, [sp]
|
|
mov r1, r8
|
|
mov r2, r9
|
|
bl SetSpriteTransformationMatrix
|
|
ldrh r0, [r7, 0x30]
|
|
adds r0, 0x2
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r5, 1
|
|
lsrs r5, 16
|
|
lsls r4, 1
|
|
lsrs r4, 16
|
|
str r4, [sp]
|
|
mov r1, r8
|
|
mov r2, r9
|
|
adds r3, r5, 0
|
|
bl SetSpriteTransformationMatrix
|
|
_0816F59E:
|
|
add sp, 0x4
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_816F46C
|
|
|
|
thumb_func_start sub_816F5B4
|
|
sub_816F5B4: @ 816F5B4
|
|
push {r4,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
ldrh r0, [r4, 0x30]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrh r1, [r4, 0x3A]
|
|
adds r1, 0x40
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
str r1, [sp]
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl SetSpriteTransformationMatrix
|
|
ldrh r0, [r4, 0x30]
|
|
adds r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrh r1, [r4, 0x3A]
|
|
adds r1, 0x40
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
str r1, [sp]
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl SetSpriteTransformationMatrix
|
|
ldrh r0, [r4, 0x30]
|
|
adds r0, 0x2
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrh r1, [r4, 0x3A]
|
|
adds r1, 0x40
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
str r1, [sp]
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl SetSpriteTransformationMatrix
|
|
ldrh r1, [r4, 0x36]
|
|
movs r2, 0x36
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0x40
|
|
beq _0816F64C
|
|
adds r0, r1, 0
|
|
subs r0, 0x8
|
|
strh r0, [r4, 0x36]
|
|
ldrh r0, [r4, 0x36]
|
|
adds r1, r0, 0
|
|
ldr r2, =gUnknown_08329F40
|
|
adds r0, 0x40
|
|
lsls r0, 24
|
|
lsrs r0, 23
|
|
adds r0, r2
|
|
movs r3, 0
|
|
ldrsh r0, [r0, r3]
|
|
cmp r0, 0
|
|
bge _0816F62E
|
|
adds r0, 0x3F
|
|
_0816F62E:
|
|
asrs r0, 6
|
|
strh r0, [r4, 0x24]
|
|
lsls r0, r1, 24
|
|
lsrs r0, 23
|
|
adds r0, r2
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0
|
|
bge _0816F642
|
|
adds r0, 0x3F
|
|
_0816F642:
|
|
asrs r0, 6
|
|
strh r0, [r4, 0x26]
|
|
b _0816F654
|
|
.pool
|
|
_0816F64C:
|
|
movs r0, 0
|
|
strh r0, [r4, 0x36]
|
|
ldr r0, =sub_816F660
|
|
str r0, [r4, 0x1C]
|
|
_0816F654:
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_816F5B4
|
|
|
|
thumb_func_start sub_816F660
|
|
sub_816F660: @ 816F660
|
|
push {r4,lr}
|
|
adds r1, r0, 0
|
|
movs r2, 0x2E
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, 0x2
|
|
beq _0816F6C0
|
|
ldrh r0, [r1, 0x36]
|
|
adds r0, 0x8
|
|
strh r0, [r1, 0x36]
|
|
ldr r3, =gUnknown_08329F40
|
|
lsls r0, 24
|
|
lsrs r0, 23
|
|
adds r0, r3
|
|
movs r4, 0
|
|
ldrsh r0, [r0, r4]
|
|
cmp r0, 0
|
|
bge _0816F684
|
|
adds r0, 0xF
|
|
_0816F684:
|
|
asrs r0, 4
|
|
adds r0, 0x40
|
|
lsls r0, 16
|
|
lsrs r2, r0, 16
|
|
adds r0, r2, 0
|
|
adds r0, 0x40
|
|
lsls r0, 24
|
|
lsrs r0, 23
|
|
adds r0, r3
|
|
movs r4, 0
|
|
ldrsh r0, [r0, r4]
|
|
cmp r0, 0
|
|
bge _0816F6A0
|
|
adds r0, 0x3F
|
|
_0816F6A0:
|
|
asrs r0, 6
|
|
strh r0, [r1, 0x24]
|
|
lsls r0, r2, 24
|
|
lsrs r0, 23
|
|
adds r0, r3
|
|
movs r2, 0
|
|
ldrsh r0, [r0, r2]
|
|
cmp r0, 0
|
|
bge _0816F6B4
|
|
adds r0, 0x3F
|
|
_0816F6B4:
|
|
asrs r0, 6
|
|
strh r0, [r1, 0x26]
|
|
b _0816F6C4
|
|
.pool
|
|
_0816F6C0:
|
|
ldr r0, =sub_816F6D0
|
|
str r0, [r1, 0x1C]
|
|
_0816F6C4:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_816F660
|
|
|
|
thumb_func_start sub_816F6D0
|
|
sub_816F6D0: @ 816F6D0
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrh r2, [r4, 0x22]
|
|
movs r0, 0x22
|
|
ldrsh r1, [r4, r0]
|
|
movs r3, 0x38
|
|
ldrsh r0, [r4, r3]
|
|
cmp r1, r0
|
|
bge _0816F6E8
|
|
adds r0, r2, 0x4
|
|
strh r0, [r4, 0x22]
|
|
b _0816F744
|
|
_0816F6E8:
|
|
movs r0, 0x1
|
|
strh r0, [r4, 0x3C]
|
|
adds r2, r4, 0
|
|
adds r2, 0x3E
|
|
ldrb r0, [r2]
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldrh r0, [r4, 0x24]
|
|
ldrh r1, [r4, 0x20]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x20]
|
|
ldrh r0, [r4, 0x26]
|
|
ldrh r3, [r4, 0x22]
|
|
adds r0, r3
|
|
strh r0, [r4, 0x22]
|
|
adds r0, r4, 0
|
|
movs r1, 0x3
|
|
bl StartObjectImageAnim
|
|
movs r0, 0x80
|
|
lsls r0, 3
|
|
strh r0, [r4, 0x32]
|
|
ldrh r1, [r4, 0x30]
|
|
movs r0, 0x3
|
|
ands r0, r1
|
|
lsls r0, 3
|
|
strh r0, [r4, 0x34]
|
|
ldr r0, =sub_816F318
|
|
str r0, [r4, 0x1C]
|
|
ldrb r1, [r4, 0x1]
|
|
movs r0, 0x3F
|
|
ands r0, r1
|
|
movs r1, 0x40
|
|
orrs r0, r1
|
|
strb r0, [r4, 0x1]
|
|
ldrb r0, [r4, 0x3]
|
|
movs r1, 0xC0
|
|
orrs r0, r1
|
|
strb r0, [r4, 0x3]
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
movs r2, 0x3
|
|
movs r3, 0x2
|
|
bl CalcVecFromObjectCenterToObjectUpperLeft
|
|
_0816F744:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_816F6D0
|
|
|
|
thumb_func_start sub_816F750
|
|
sub_816F750: @ 816F750
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrh r2, [r4, 0x22]
|
|
movs r0, 0x22
|
|
ldrsh r1, [r4, r0]
|
|
movs r3, 0x38
|
|
ldrsh r0, [r4, r3]
|
|
cmp r1, r0
|
|
bge _0816F768
|
|
adds r0, r2, 0x4
|
|
strh r0, [r4, 0x22]
|
|
b _0816F7C4
|
|
_0816F768:
|
|
movs r0, 0x1
|
|
strh r0, [r4, 0x3C]
|
|
adds r2, r4, 0
|
|
adds r2, 0x3E
|
|
ldrb r0, [r2]
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldrh r0, [r4, 0x24]
|
|
ldrh r1, [r4, 0x20]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x20]
|
|
ldrh r0, [r4, 0x26]
|
|
ldrh r3, [r4, 0x22]
|
|
adds r0, r3
|
|
strh r0, [r4, 0x22]
|
|
adds r0, r4, 0
|
|
movs r1, 0x3
|
|
bl StartObjectImageAnim
|
|
movs r0, 0x80
|
|
lsls r0, 3
|
|
strh r0, [r4, 0x32]
|
|
ldrh r1, [r4, 0x30]
|
|
movs r0, 0x3
|
|
ands r0, r1
|
|
lsls r0, 3
|
|
strh r0, [r4, 0x34]
|
|
ldr r0, =sub_816F318
|
|
str r0, [r4, 0x1C]
|
|
ldrb r1, [r4, 0x1]
|
|
movs r0, 0x3F
|
|
ands r0, r1
|
|
movs r1, 0x40
|
|
orrs r0, r1
|
|
strb r0, [r4, 0x1]
|
|
ldrb r0, [r4, 0x3]
|
|
movs r1, 0xC0
|
|
orrs r0, r1
|
|
strb r0, [r4, 0x3]
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
movs r2, 0x3
|
|
movs r3, 0x2
|
|
bl CalcVecFromObjectCenterToObjectUpperLeft
|
|
_0816F7C4:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_816F750
|
|
|
|
thumb_func_start sub_816F7D0
|
|
sub_816F7D0: @ 816F7D0
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x14
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r6, [sp, 0x34]
|
|
ldr r0, [sp, 0x38]
|
|
mov r8, r0
|
|
lsls r4, 16
|
|
lsls r5, 16
|
|
lsls r2, 16
|
|
lsrs r2, 16
|
|
str r2, [sp, 0x8]
|
|
lsls r3, 16
|
|
lsrs r3, 16
|
|
str r3, [sp, 0xC]
|
|
lsls r6, 16
|
|
lsrs r6, 16
|
|
mov r1, r8
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
mov r8, r1
|
|
ldr r0, =gUnknown_085E4D64
|
|
lsrs r2, r4, 16
|
|
mov r10, r2
|
|
asrs r4, 16
|
|
lsrs r1, r5, 16
|
|
str r1, [sp, 0x4]
|
|
asrs r5, 16
|
|
adds r1, r4, 0
|
|
adds r2, r5, 0
|
|
movs r3, 0x1
|
|
bl AddObjectToFront
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
ldr r2, =gUnknown_02020630
|
|
mov r9, r2
|
|
lsls r0, r7, 4
|
|
adds r0, r7
|
|
lsls r5, r0, 2
|
|
adds r4, r5, r2
|
|
movs r0, 0
|
|
strh r0, [r4, 0x2E]
|
|
strh r0, [r4, 0x3C]
|
|
mov r0, sp
|
|
ldrh r0, [r0, 0xC]
|
|
strh r0, [r4, 0x30]
|
|
mov r1, sp
|
|
ldrh r1, [r1, 0x8]
|
|
strh r1, [r4, 0x32]
|
|
mov r2, sp
|
|
ldrh r2, [r2, 0x8]
|
|
strh r2, [r4, 0x34]
|
|
strh r6, [r4, 0x38]
|
|
mov r0, sp
|
|
ldrh r0, [r0, 0x8]
|
|
strh r0, [r4, 0x3A]
|
|
ldrb r0, [r4, 0x1]
|
|
movs r1, 0x3
|
|
orrs r0, r1
|
|
strb r0, [r4, 0x1]
|
|
movs r0, 0x1F
|
|
ldr r1, [sp, 0xC]
|
|
ands r1, r0
|
|
lsls r1, 1
|
|
ldrb r2, [r4, 0x3]
|
|
movs r0, 0x3F
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r4, 0x3]
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
movs r2, 0x2
|
|
movs r3, 0x2
|
|
bl CalcVecFromObjectCenterToObjectUpperLeft
|
|
adds r0, r4, 0
|
|
movs r1, 0x2
|
|
bl StartObjectImageAnim
|
|
mov r1, r8
|
|
cmp r1, 0
|
|
bne _0816F898
|
|
mov r0, r9
|
|
adds r0, 0x1C
|
|
adds r0, r5, r0
|
|
ldr r1, =sub_816F454
|
|
b _0816F8A0
|
|
.pool
|
|
_0816F898:
|
|
mov r0, r9
|
|
adds r0, 0x1C
|
|
adds r0, r5, r0
|
|
ldr r1, =sub_816F750
|
|
_0816F8A0:
|
|
str r1, [r0]
|
|
str r7, [sp, 0x10]
|
|
mov r2, r10
|
|
lsls r2, 16
|
|
asrs r2, 16
|
|
mov r10, r2
|
|
ldr r0, [sp, 0x4]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
mov r8, r0
|
|
ldr r0, =gUnknown_085E4D64
|
|
mov r1, r10
|
|
mov r2, r8
|
|
movs r3, 0x1
|
|
bl AddObjectToFront
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
ldr r5, =gUnknown_02020630
|
|
lsls r4, r7, 4
|
|
adds r4, r7
|
|
lsls r4, 2
|
|
adds r0, r4, r5
|
|
mov r1, sp
|
|
ldrh r1, [r1, 0x10]
|
|
strh r1, [r0, 0x3C]
|
|
ldr r2, [sp, 0xC]
|
|
adds r2, 0x1
|
|
mov r9, r2
|
|
strh r2, [r0, 0x30]
|
|
ldrb r1, [r0, 0x1]
|
|
movs r2, 0x3
|
|
orrs r1, r2
|
|
strb r1, [r0, 0x1]
|
|
mov r2, r9
|
|
movs r1, 0x1F
|
|
ands r2, r1
|
|
lsls r2, 1
|
|
ldrb r3, [r0, 0x3]
|
|
movs r6, 0x3F
|
|
negs r6, r6
|
|
adds r1, r6, 0
|
|
ands r1, r3
|
|
orrs r1, r2
|
|
strb r1, [r0, 0x3]
|
|
movs r1, 0
|
|
movs r2, 0x2
|
|
movs r3, 0x2
|
|
bl CalcVecFromObjectCenterToObjectUpperLeft
|
|
ldr r2, =gUnknown_0202064C
|
|
adds r4, r2
|
|
ldr r0, =sub_816F3A4
|
|
str r0, [r4]
|
|
ldr r0, =gUnknown_085E4D64
|
|
mov r1, r10
|
|
mov r2, r8
|
|
movs r3, 0x1
|
|
bl AddObjectToFront
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
lsls r4, r7, 4
|
|
adds r4, r7
|
|
lsls r4, 2
|
|
adds r5, r4, r5
|
|
mov r1, sp
|
|
ldrh r1, [r1, 0x10]
|
|
strh r1, [r5, 0x3C]
|
|
ldr r2, [sp, 0xC]
|
|
adds r2, 0x2
|
|
mov r8, r2
|
|
strh r2, [r5, 0x30]
|
|
adds r0, r5, 0
|
|
movs r1, 0x1
|
|
bl StartObjectImageAnim
|
|
ldrb r0, [r5, 0x1]
|
|
movs r1, 0x3
|
|
orrs r0, r1
|
|
strb r0, [r5, 0x1]
|
|
mov r0, r8
|
|
movs r2, 0x1F
|
|
ands r0, r2
|
|
lsls r0, 1
|
|
ldrb r1, [r5, 0x3]
|
|
ands r6, r1
|
|
orrs r6, r0
|
|
strb r6, [r5, 0x3]
|
|
adds r0, r5, 0
|
|
movs r1, 0
|
|
movs r2, 0x2
|
|
movs r3, 0x2
|
|
bl CalcVecFromObjectCenterToObjectUpperLeft
|
|
ldr r0, =gUnknown_0202064C
|
|
adds r4, r0
|
|
ldr r1, =sub_816F3A4
|
|
str r1, [r4]
|
|
ldr r2, [sp, 0xC]
|
|
lsls r0, r2, 24
|
|
lsrs r0, 24
|
|
ldr r5, [sp, 0x8]
|
|
adds r5, 0x20
|
|
lsls r4, r5, 16
|
|
lsrs r4, 16
|
|
str r4, [sp]
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl SetSpriteTransformationMatrix
|
|
mov r0, r9
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
str r4, [sp]
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl SetSpriteTransformationMatrix
|
|
mov r1, r8
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
mov r8, r1
|
|
lsls r5, 17
|
|
lsrs r5, 16
|
|
str r5, [sp]
|
|
mov r0, r8
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl SetSpriteTransformationMatrix
|
|
ldr r0, [sp, 0x10]
|
|
add sp, 0x14
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_816F7D0
|
|
|
|
thumb_func_start sub_816F9D4
|
|
sub_816F9D4: @ 816F9D4
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x4
|
|
bhi _0816FA62
|
|
lsls r0, 2
|
|
ldr r1, =_0816F9F0
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_0816F9F0:
|
|
.4byte _0816FA04
|
|
.4byte _0816FA12
|
|
.4byte _0816FA30
|
|
.4byte _0816FA62
|
|
.4byte _0816FA50
|
|
_0816FA04:
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl StartObjectImageAnimIfDifferent
|
|
ldrh r0, [r4, 0x20]
|
|
subs r0, 0x1
|
|
b _0816FA60
|
|
_0816FA12:
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl StartObjectImageAnimIfDifferent
|
|
ldr r0, =gUnknown_030062A0
|
|
ldr r0, [r0]
|
|
movs r1, 0x7
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0816FAAA
|
|
ldrh r0, [r4, 0x20]
|
|
adds r0, 0x1
|
|
b _0816FA60
|
|
.pool
|
|
_0816FA30:
|
|
ldrh r2, [r4, 0x20]
|
|
movs r1, 0x20
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x78
|
|
ble _0816FA46
|
|
ldr r0, =gUnknown_030062A0
|
|
ldr r0, [r0]
|
|
movs r1, 0x7
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0816FA6E
|
|
_0816FA46:
|
|
adds r0, r2, 0x1
|
|
b _0816FA60
|
|
.pool
|
|
_0816FA50:
|
|
ldrh r2, [r4, 0x20]
|
|
movs r0, 0x20
|
|
ldrsh r1, [r4, r0]
|
|
movs r0, 0x20
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
ble _0816FA62
|
|
subs r0, r2, 0x2
|
|
_0816FA60:
|
|
strh r0, [r4, 0x20]
|
|
_0816FA62:
|
|
ldr r0, =gUnknown_030062A0
|
|
ldr r0, [r0]
|
|
movs r1, 0x7
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0816FAAA
|
|
_0816FA6E:
|
|
movs r1, 0x26
|
|
ldrsh r5, [r4, r1]
|
|
cmp r5, 0
|
|
beq _0816FA80
|
|
movs r0, 0
|
|
strh r0, [r4, 0x26]
|
|
b _0816FAAA
|
|
.pool
|
|
_0816FA80:
|
|
bl GenerateRandomNumber
|
|
movs r1, 0x3
|
|
ands r1, r0
|
|
cmp r1, 0x1
|
|
beq _0816FAA8
|
|
cmp r1, 0x1
|
|
bgt _0816FA96
|
|
cmp r1, 0
|
|
beq _0816FA9E
|
|
b _0816FAAA
|
|
_0816FA96:
|
|
cmp r1, 0x3
|
|
bgt _0816FAAA
|
|
strh r5, [r4, 0x26]
|
|
b _0816FAAA
|
|
_0816FA9E:
|
|
ldr r0, =0x0000ffff
|
|
strh r0, [r4, 0x26]
|
|
b _0816FAAA
|
|
.pool
|
|
_0816FAA8:
|
|
strh r1, [r4, 0x26]
|
|
_0816FAAA:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_816F9D4
|
|
|
|
thumb_func_start sub_816FAB0
|
|
sub_816FAB0: @ 816FAB0
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x1
|
|
beq _0816FACA
|
|
cmp r0, 0x1
|
|
ble _0816FB12
|
|
cmp r0, 0x2
|
|
beq _0816FAEA
|
|
cmp r0, 0x3
|
|
beq _0816FB04
|
|
b _0816FB12
|
|
_0816FACA:
|
|
movs r2, 0x24
|
|
ldrsh r0, [r4, r2]
|
|
movs r2, 0x20
|
|
ldrsh r1, [r4, r2]
|
|
adds r0, r1
|
|
ldr r1, =0x0000012f
|
|
cmp r0, r1
|
|
bgt _0816FAE4
|
|
ldrh r0, [r4, 0x24]
|
|
adds r0, 0x8
|
|
b _0816FB10
|
|
.pool
|
|
_0816FAE4:
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x2E]
|
|
b _0816FB12
|
|
_0816FAEA:
|
|
movs r1, 0x24
|
|
ldrsh r0, [r4, r1]
|
|
movs r2, 0x20
|
|
ldrsh r1, [r4, r2]
|
|
adds r0, r1
|
|
cmp r0, 0x78
|
|
ble _0816FAFE
|
|
ldrh r0, [r4, 0x24]
|
|
subs r0, 0x1
|
|
b _0816FB10
|
|
_0816FAFE:
|
|
movs r0, 0x3
|
|
strh r0, [r4, 0x2E]
|
|
b _0816FB12
|
|
_0816FB04:
|
|
ldrh r1, [r4, 0x24]
|
|
movs r2, 0x24
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0
|
|
ble _0816FB12
|
|
subs r0, r1, 0x2
|
|
_0816FB10:
|
|
strh r0, [r4, 0x24]
|
|
_0816FB12:
|
|
ldrh r0, [r4, 0x30]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0x8
|
|
bl sine
|
|
ldr r1, =gUnknown_0203BCCC
|
|
ldrh r1, [r1]
|
|
subs r0, r1
|
|
strh r0, [r4, 0x26]
|
|
ldrh r0, [r4, 0x30]
|
|
adds r0, 0x4
|
|
strh r0, [r4, 0x30]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_816FAB0
|
|
|
|
thumb_func_start sub_816FB38
|
|
sub_816FB38: @ 816FB38
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r6, r1]
|
|
cmp r0, 0x5
|
|
bls _0816FB46
|
|
b _0816FD38
|
|
_0816FB46:
|
|
lsls r0, 2
|
|
ldr r1, =_0816FB54
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_0816FB54:
|
|
.4byte _0816FB6C
|
|
.4byte _0816FB94
|
|
.4byte _0816FBB4
|
|
.4byte _0816FC5C
|
|
.4byte _0816FCC4
|
|
.4byte _0816FCF4
|
|
_0816FB6C:
|
|
ldrh r1, [r6, 0x30]
|
|
movs r2, 0x30
|
|
ldrsh r0, [r6, r2]
|
|
cmp r0, 0
|
|
beq _0816FB7C
|
|
subs r0, r1, 0x1
|
|
strh r0, [r6, 0x30]
|
|
b _0816FD38
|
|
_0816FB7C:
|
|
adds r2, r6, 0
|
|
adds r2, 0x3E
|
|
ldrb r0, [r2]
|
|
movs r1, 0x5
|
|
negs r1, r1
|
|
ands r1, r0
|
|
strb r1, [r2]
|
|
adds r0, r6, 0
|
|
movs r1, 0x1
|
|
bl StartObjectRotScalAnim
|
|
b _0816FCE6
|
|
_0816FB94:
|
|
ldr r0, =gUnknown_030062A0
|
|
ldr r0, [r0]
|
|
cmp r0, 0x90
|
|
beq _0816FB9E
|
|
b _0816FD38
|
|
_0816FB9E:
|
|
ldrh r0, [r6, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r6, 0x2E]
|
|
movs r0, 0x9
|
|
strh r0, [r6, 0x30]
|
|
movs r0, 0x2
|
|
strh r0, [r6, 0x34]
|
|
b _0816FD38
|
|
.pool
|
|
_0816FBB4:
|
|
ldrh r1, [r6, 0x34]
|
|
movs r2, 0x34
|
|
ldrsh r0, [r6, r2]
|
|
cmp r0, 0
|
|
bne _0816FC66
|
|
movs r0, 0x2
|
|
strh r0, [r6, 0x34]
|
|
movs r1, 0x30
|
|
ldrsh r0, [r6, r1]
|
|
cmp r0, 0
|
|
beq _0816FC14
|
|
lsls r0, 1
|
|
ldr r4, =gUnknown_08D85C50
|
|
adds r0, r4
|
|
ldr r5, =gUnknown_02037D52
|
|
adds r1, r5, 0
|
|
movs r2, 0x1
|
|
bl CpuSet
|
|
movs r1, 0x30
|
|
ldrsh r0, [r6, r1]
|
|
lsls r0, 1
|
|
adds r1, r4, 0
|
|
adds r1, 0x20
|
|
adds r0, r1
|
|
adds r1, r5, 0
|
|
subs r1, 0x16
|
|
movs r2, 0x1
|
|
bl CpuSet
|
|
movs r2, 0x30
|
|
ldrsh r0, [r6, r2]
|
|
lsls r0, 1
|
|
adds r4, 0x40
|
|
adds r0, r4
|
|
subs r5, 0xA
|
|
adds r1, r5, 0
|
|
movs r2, 0x1
|
|
bl CpuSet
|
|
ldrh r0, [r6, 0x30]
|
|
subs r0, 0x1
|
|
strh r0, [r6, 0x30]
|
|
b _0816FD38
|
|
.pool
|
|
_0816FC14:
|
|
movs r1, 0x30
|
|
ldrsh r0, [r6, r1]
|
|
lsls r0, 1
|
|
ldr r4, =gUnknown_08D85C50
|
|
adds r0, r4
|
|
ldr r5, =gUnknown_02037D52
|
|
adds r1, r5, 0
|
|
movs r2, 0x1
|
|
bl CpuSet
|
|
movs r2, 0x30
|
|
ldrsh r0, [r6, r2]
|
|
lsls r0, 1
|
|
adds r1, r4, 0
|
|
adds r1, 0x20
|
|
adds r0, r1
|
|
adds r1, r5, 0
|
|
subs r1, 0x16
|
|
movs r2, 0x1
|
|
bl CpuSet
|
|
movs r1, 0x30
|
|
ldrsh r0, [r6, r1]
|
|
lsls r0, 1
|
|
adds r4, 0x40
|
|
adds r0, r4
|
|
subs r5, 0xA
|
|
adds r1, r5, 0
|
|
movs r2, 0x1
|
|
bl CpuSet
|
|
b _0816FCE6
|
|
.pool
|
|
_0816FC5C:
|
|
ldrh r1, [r6, 0x34]
|
|
movs r2, 0x34
|
|
ldrsh r0, [r6, r2]
|
|
cmp r0, 0
|
|
beq _0816FC6C
|
|
_0816FC66:
|
|
subs r0, r1, 0x1
|
|
strh r0, [r6, 0x34]
|
|
b _0816FD38
|
|
_0816FC6C:
|
|
movs r0, 0x2
|
|
strh r0, [r6, 0x34]
|
|
movs r1, 0x30
|
|
ldrsh r0, [r6, r1]
|
|
cmp r0, 0x9
|
|
bgt _0816FCE6
|
|
lsls r0, 1
|
|
ldr r4, =gUnknown_08D85C50
|
|
adds r0, r4
|
|
ldr r5, =gUnknown_02037D52
|
|
adds r1, r5, 0
|
|
movs r2, 0x1
|
|
bl CpuSet
|
|
movs r1, 0x30
|
|
ldrsh r0, [r6, r1]
|
|
lsls r0, 1
|
|
adds r1, r4, 0
|
|
adds r1, 0x20
|
|
adds r0, r1
|
|
adds r1, r5, 0
|
|
subs r1, 0x16
|
|
movs r2, 0x1
|
|
bl CpuSet
|
|
movs r2, 0x30
|
|
ldrsh r0, [r6, r2]
|
|
lsls r0, 1
|
|
adds r4, 0x40
|
|
adds r0, r4
|
|
subs r5, 0xA
|
|
adds r1, r5, 0
|
|
movs r2, 0x1
|
|
bl CpuSet
|
|
ldrh r0, [r6, 0x30]
|
|
adds r0, 0x1
|
|
strh r0, [r6, 0x30]
|
|
b _0816FD38
|
|
.pool
|
|
_0816FCC4:
|
|
ldr r0, =gUnknown_030062A0
|
|
ldr r1, [r0]
|
|
movs r0, 0x88
|
|
lsls r0, 1
|
|
cmp r1, r0
|
|
bne _0816FD38
|
|
adds r0, r6, 0
|
|
movs r1, 0x2
|
|
bl StartObjectRotScalAnim
|
|
ldrb r1, [r6, 0x1]
|
|
movs r0, 0xD
|
|
negs r0, r0
|
|
ands r0, r1
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
strb r0, [r6, 0x1]
|
|
_0816FCE6:
|
|
ldrh r0, [r6, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r6, 0x2E]
|
|
b _0816FD38
|
|
.pool
|
|
_0816FCF4:
|
|
ldr r1, =gUnknown_085E4F48
|
|
movs r2, 0x32
|
|
ldrsh r0, [r6, r2]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
ldrh r1, [r6, 0x34]
|
|
adds r0, r1
|
|
strh r0, [r6, 0x34]
|
|
movs r2, 0x34
|
|
ldrsh r0, [r6, r2]
|
|
movs r1, 0xFF
|
|
lsls r1, 8
|
|
ands r0, r1
|
|
asrs r0, 8
|
|
strh r0, [r6, 0x24]
|
|
movs r1, 0x32
|
|
ldrsh r0, [r6, r1]
|
|
cmp r0, 0x3
|
|
bgt _0816FD24
|
|
movs r2, 0x24
|
|
ldrsh r0, [r6, r2]
|
|
negs r0, r0
|
|
strh r0, [r6, 0x24]
|
|
_0816FD24:
|
|
adds r0, r6, 0
|
|
adds r0, 0x3F
|
|
ldrb r1, [r0]
|
|
movs r0, 0x20
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0816FD38
|
|
adds r0, r6, 0
|
|
bl RemoveObjectAndFreeTiles
|
|
_0816FD38:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_816FB38
|
|
|
|
thumb_func_start sub_816FD44
|
|
sub_816FD44: @ 816FD44
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x1
|
|
beq _0816FD7C
|
|
cmp r0, 0x1
|
|
bgt _0816FD5A
|
|
cmp r0, 0
|
|
beq _0816FD60
|
|
b _0816FDB0
|
|
_0816FD5A:
|
|
cmp r0, 0x2
|
|
beq _0816FD9C
|
|
b _0816FDB0
|
|
_0816FD60:
|
|
ldr r0, =gUnknown_030062A0
|
|
ldr r0, [r0]
|
|
cmp r0, 0x80
|
|
bne _0816FDB0
|
|
adds r2, r4, 0
|
|
adds r2, 0x3E
|
|
ldrb r0, [r2]
|
|
movs r1, 0x5
|
|
negs r1, r1
|
|
ands r1, r0
|
|
strb r1, [r2]
|
|
b _0816FD90
|
|
.pool
|
|
_0816FD7C:
|
|
ldr r0, =gUnknown_030062A0
|
|
ldr r1, [r0]
|
|
movs r0, 0x88
|
|
lsls r0, 1
|
|
cmp r1, r0
|
|
bne _0816FDB0
|
|
adds r0, r4, 0
|
|
movs r1, 0x3
|
|
bl StartObjectRotScalAnim
|
|
_0816FD90:
|
|
ldrh r0, [r4, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
b _0816FDB0
|
|
.pool
|
|
_0816FD9C:
|
|
adds r0, r4, 0
|
|
adds r0, 0x3F
|
|
ldrb r1, [r0]
|
|
movs r0, 0x20
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0816FDB0
|
|
adds r0, r4, 0
|
|
bl RemoveObjectAndFreeTiles
|
|
_0816FDB0:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_816FD44
|
|
|
|
thumb_func_start sub_816FDB8
|
|
sub_816FDB8: @ 816FDB8
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0xC
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
str r0, [sp]
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
str r1, [sp, 0x4]
|
|
movs r7, 0
|
|
_0816FDD2:
|
|
lsls r5, r7, 2
|
|
ldr r0, =gUnknown_085E4E94
|
|
adds r0, 0x2
|
|
adds r0, r5, r0
|
|
ldr r2, [sp]
|
|
lsls r1, r2, 16
|
|
asrs r1, 16
|
|
ldrh r0, [r0]
|
|
adds r1, r0
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
ldr r3, [sp, 0x4]
|
|
lsls r2, r3, 16
|
|
asrs r0, r2, 16
|
|
str r0, [sp, 0x8]
|
|
ldr r3, =0xfffc0000
|
|
adds r2, r3
|
|
ldr r0, =gUnknown_085E4F5C
|
|
asrs r2, 16
|
|
movs r3, 0
|
|
bl AddObjectToFront
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
lsls r4, r6, 4
|
|
adds r4, r6
|
|
lsls r4, 2
|
|
ldr r0, =gUnknown_02020630
|
|
adds r4, r0
|
|
movs r1, 0
|
|
strh r1, [r4, 0x2E]
|
|
ldr r0, =gUnknown_085E4FA4
|
|
adds r0, r7, r0
|
|
ldrb r0, [r0]
|
|
strh r0, [r4, 0x30]
|
|
strh r7, [r4, 0x32]
|
|
adds r1, r4, 0
|
|
adds r1, 0x3E
|
|
ldrb r0, [r1]
|
|
movs r2, 0x4
|
|
mov r10, r2
|
|
mov r3, r10
|
|
orrs r0, r3
|
|
strb r0, [r1]
|
|
adds r1, r7, 0
|
|
adds r1, 0xC
|
|
movs r0, 0x1F
|
|
mov r9, r0
|
|
mov r2, r9
|
|
ands r1, r2
|
|
lsls r1, 1
|
|
ldrb r0, [r4, 0x3]
|
|
movs r3, 0x3F
|
|
negs r3, r3
|
|
mov r8, r3
|
|
mov r2, r8
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r4, 0x3]
|
|
ldr r3, =gUnknown_085E4E94
|
|
adds r5, r3
|
|
ldrb r1, [r5]
|
|
adds r0, r4, 0
|
|
bl StartObjectImageAnim
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl StartObjectRotScalAnim
|
|
adds r0, r7, 0x1
|
|
lsls r0, 16
|
|
lsrs r7, r0, 16
|
|
cmp r7, 0x8
|
|
bls _0816FDD2
|
|
ldr r0, =gUnknown_085E4F8C
|
|
ldr r2, [sp, 0x8]
|
|
subs r2, 0x6
|
|
lsls r2, 16
|
|
asrs r2, 16
|
|
movs r1, 0x78
|
|
movs r3, 0
|
|
bl AddObjectToFront
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
lsls r0, r6, 4
|
|
adds r0, r6
|
|
lsls r0, 2
|
|
ldr r1, =gUnknown_02020630
|
|
adds r0, r1
|
|
movs r2, 0
|
|
strh r2, [r0, 0x2E]
|
|
adds r2, r0, 0
|
|
adds r2, 0x3E
|
|
ldrb r1, [r2]
|
|
mov r3, r10
|
|
orrs r1, r3
|
|
strb r1, [r2]
|
|
adds r2, r7, 0
|
|
adds r2, 0xC
|
|
mov r1, r9
|
|
ands r2, r1
|
|
lsls r2, 1
|
|
ldrb r1, [r0, 0x3]
|
|
mov r3, r8
|
|
ands r1, r3
|
|
orrs r1, r2
|
|
strb r1, [r0, 0x3]
|
|
movs r1, 0x1
|
|
bl StartObjectRotScalAnim
|
|
adds r0, r6, 0
|
|
add sp, 0xC
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_816FDB8
|
|
|
|
thumb_func_start sub_816FEDC
|
|
sub_816FEDC: @ 816FEDC
|
|
push {r4-r6,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
ldrh r0, [r4, 0x3C]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x3C]
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
beq _0816FF48
|
|
ldr r2, =gUnknown_08329F40
|
|
ldrh r1, [r4, 0x32]
|
|
lsls r0, r1, 24
|
|
lsrs r0, 23
|
|
adds r0, r2
|
|
ldrh r3, [r0]
|
|
adds r1, 0x40
|
|
lsls r1, 24
|
|
lsrs r1, 23
|
|
adds r1, r2
|
|
movs r2, 0
|
|
ldrsh r0, [r1, r2]
|
|
movs r1, 0x30
|
|
ldrsh r2, [r4, r1]
|
|
adds r1, r0, 0
|
|
muls r1, r2
|
|
adds r0, r1, 0
|
|
cmp r1, 0
|
|
bge _0816FF18
|
|
adds r0, 0xFF
|
|
_0816FF18:
|
|
lsls r0, 8
|
|
lsrs r6, r0, 16
|
|
lsls r0, r3, 16
|
|
asrs r3, r0, 16
|
|
negs r0, r3
|
|
muls r0, r2
|
|
cmp r0, 0
|
|
bge _0816FF2A
|
|
adds r0, 0xFF
|
|
_0816FF2A:
|
|
lsls r0, 8
|
|
lsrs r5, r0, 16
|
|
adds r0, r3, 0
|
|
muls r0, r2
|
|
cmp r0, 0
|
|
bge _0816FF38
|
|
adds r0, 0xFF
|
|
_0816FF38:
|
|
lsls r0, 8
|
|
lsrs r2, r0, 16
|
|
adds r1, r6, 0
|
|
adds r3, r5, 0
|
|
str r1, [sp]
|
|
movs r0, 0x1
|
|
bl SetSpriteTransformationMatrix
|
|
_0816FF48:
|
|
movs r2, 0x2E
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0x1
|
|
beq _0816FF9C
|
|
cmp r0, 0x1
|
|
ble _0816FF58
|
|
cmp r0, 0x2
|
|
beq _0816FFFE
|
|
_0816FF58:
|
|
ldrb r0, [r4, 0x1]
|
|
movs r1, 0x3
|
|
orrs r0, r1
|
|
strb r0, [r4, 0x1]
|
|
ldrb r1, [r4, 0x3]
|
|
movs r0, 0x3F
|
|
negs r0, r0
|
|
ands r0, r1
|
|
movs r1, 0x2
|
|
orrs r0, r1
|
|
strb r0, [r4, 0x3]
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
movs r2, 0x3
|
|
movs r3, 0x3
|
|
bl CalcVecFromObjectCenterToObjectUpperLeft
|
|
adds r2, r4, 0
|
|
adds r2, 0x3E
|
|
ldrb r1, [r2]
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
movs r1, 0
|
|
movs r0, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
movs r0, 0x80
|
|
strh r0, [r4, 0x30]
|
|
strh r1, [r4, 0x32]
|
|
strh r1, [r4, 0x34]
|
|
b _08170038
|
|
.pool
|
|
_0816FF9C:
|
|
ldrh r0, [r4, 0x34]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0x8C
|
|
bl sine
|
|
negs r0, r0
|
|
strh r0, [r4, 0x24]
|
|
ldrh r0, [r4, 0x34]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0x78
|
|
bl sine
|
|
negs r0, r0
|
|
strh r0, [r4, 0x26]
|
|
ldrh r0, [r4, 0x30]
|
|
adds r0, 0x7
|
|
strh r0, [r4, 0x30]
|
|
ldrh r0, [r4, 0x34]
|
|
adds r0, 0x3
|
|
strh r0, [r4, 0x34]
|
|
movs r1, 0x20
|
|
ldrsh r0, [r4, r1]
|
|
movs r2, 0x24
|
|
ldrsh r1, [r4, r2]
|
|
adds r0, r1
|
|
movs r1, 0x10
|
|
negs r1, r1
|
|
cmp r0, r1
|
|
bgt _08170038
|
|
ldrb r0, [r4, 0x5]
|
|
movs r1, 0xC
|
|
orrs r0, r1
|
|
strb r0, [r4, 0x5]
|
|
ldrh r0, [r4, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
movs r0, 0x14
|
|
strh r0, [r4, 0x20]
|
|
movs r0, 0x28
|
|
strh r0, [r4, 0x22]
|
|
movs r0, 0x80
|
|
lsls r0, 2
|
|
strh r0, [r4, 0x30]
|
|
movs r0, 0
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x10
|
|
b _08170036
|
|
_0816FFFE:
|
|
ldrh r0, [r4, 0x34]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0x22
|
|
bl sine
|
|
strh r0, [r4, 0x24]
|
|
ldrh r0, [r4, 0x34]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0x3C
|
|
bl cosine
|
|
negs r0, r0
|
|
strh r0, [r4, 0x26]
|
|
ldrh r0, [r4, 0x30]
|
|
adds r0, 0x2
|
|
strh r0, [r4, 0x30]
|
|
movs r1, 0x3C
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0x5
|
|
bl __modsi3
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bne _08170038
|
|
ldrh r0, [r4, 0x34]
|
|
adds r0, 0x1
|
|
_08170036:
|
|
strh r0, [r4, 0x34]
|
|
_08170038:
|
|
add sp, 0x4
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_816FEDC
|
|
|
|
thumb_func_start sub_8170040
|
|
sub_8170040: @ 8170040
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0
|
|
beq _08170056
|
|
adds r4, r5, 0
|
|
adds r4, 0x3E
|
|
cmp r0, 0x1
|
|
beq _0817008E
|
|
_08170056:
|
|
adds r4, r5, 0
|
|
adds r4, 0x3E
|
|
ldrb r1, [r4]
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r4]
|
|
ldrb r0, [r5, 0x1]
|
|
movs r1, 0x3
|
|
orrs r0, r1
|
|
strb r0, [r5, 0x1]
|
|
ldrb r1, [r5, 0x3]
|
|
movs r0, 0x3F
|
|
negs r0, r0
|
|
ands r0, r1
|
|
movs r1, 0x24
|
|
orrs r0, r1
|
|
strb r0, [r5, 0x3]
|
|
adds r0, r5, 0
|
|
movs r1, 0
|
|
movs r2, 0x3
|
|
movs r3, 0x3
|
|
bl CalcVecFromObjectCenterToObjectUpperLeft
|
|
movs r0, 0
|
|
strh r0, [r5, 0x30]
|
|
movs r0, 0x1
|
|
strh r0, [r5, 0x2E]
|
|
_0817008E:
|
|
ldrh r0, [r5, 0x3C]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x3C]
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _081700A6
|
|
ldrb r0, [r4]
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
strb r0, [r4]
|
|
b _081700BE
|
|
_081700A6:
|
|
ldrb r0, [r4]
|
|
movs r1, 0x5
|
|
negs r1, r1
|
|
ands r1, r0
|
|
strb r1, [r4]
|
|
ldrh r1, [r5, 0x30]
|
|
movs r2, 0x30
|
|
ldrsh r0, [r5, r2]
|
|
cmp r0, 0x3F
|
|
bgt _081700BE
|
|
adds r0, r1, 0x1
|
|
strh r0, [r5, 0x30]
|
|
_081700BE:
|
|
ldr r1, =gUnknown_08329F40
|
|
ldrh r0, [r5, 0x30]
|
|
lsls r0, 24
|
|
lsrs r0, 23
|
|
adds r0, r1
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
lsrs r1, r0, 31
|
|
adds r0, r1
|
|
asrs r0, 1
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r1, r2, 0
|
|
subs r1, r0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
str r1, [sp]
|
|
movs r0, 0x12
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl SetSpriteTransformationMatrix
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8170040
|
|
|
|
thumb_func_start sub_81700F8
|
|
sub_81700F8: @ 81700F8
|
|
push {r4,r5,lr}
|
|
ldr r5, =0x04000208
|
|
ldrh r4, [r5]
|
|
movs r0, 0
|
|
strh r0, [r5]
|
|
movs r0, 0x1
|
|
bl RegisterRamReset
|
|
movs r0, 0
|
|
movs r1, 0x80
|
|
bl ClearGpuRegBits
|
|
strh r4, [r5]
|
|
ldr r1, =gUnknown_030022C0
|
|
ldr r0, =0x00000439
|
|
adds r1, r0
|
|
ldrb r2, [r1]
|
|
movs r0, 0x3
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
bl sub_815355C
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
bl InitSaveBlockPointersWithRandomOffset
|
|
bl sub_808447C
|
|
bl sub_8152680
|
|
movs r0, 0
|
|
bl sub_81534D0
|
|
ldr r0, =gUnknown_03006210
|
|
ldrh r0, [r0]
|
|
cmp r0, 0
|
|
beq _08170148
|
|
cmp r0, 0x2
|
|
bne _0817014C
|
|
_08170148:
|
|
bl init_sav2
|
|
_0817014C:
|
|
ldr r0, =gUnknown_03005D90
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x15]
|
|
lsls r0, 31
|
|
lsrs r0, 31
|
|
bl sub_82E1810
|
|
ldr r0, =0x02000000
|
|
movs r1, 0xE0
|
|
lsls r1, 9
|
|
bl InitHeap
|
|
ldr r0, =sub_8086230
|
|
bl SetMainCallback2
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81700F8
|
|
|
|
thumb_func_start sub_817018C
|
|
sub_817018C: @ 817018C
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
movs r0, 0
|
|
bl SetVBlankCallback
|
|
ldr r4, =gUnknown_0203BCD0
|
|
movs r0, 0x89
|
|
lsls r0, 4
|
|
bl Alloc
|
|
str r0, [r4]
|
|
ldr r1, =0x0000088c
|
|
adds r2, r0, r1
|
|
movs r1, 0
|
|
strh r1, [r2]
|
|
str r5, [r0]
|
|
ldr r0, =sub_81701C4
|
|
bl SetMainCallback2
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_817018C
|
|
|
|
thumb_func_start sub_81701C4
|
|
sub_81701C4: @ 81701C4
|
|
push {lr}
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x10
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x12
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x14
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x16
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x18
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x1A
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x1C
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x1E
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
bl ResetAllObjectData
|
|
bl ResetObjectPaletteAllocator
|
|
movs r0, 0
|
|
bl ResetBgsAndClearDma3BusyFlags
|
|
ldr r1, =gUnknown_085E5068
|
|
movs r0, 0x1
|
|
movs r2, 0x2
|
|
bl InitBgsFromTemplates
|
|
ldr r0, =gUnknown_085E5070
|
|
bl InitWindows
|
|
bl DeactivateAllTextPrinters
|
|
movs r0, 0
|
|
movs r1, 0x27
|
|
movs r2, 0xD0
|
|
bl sub_809882C
|
|
bl clear_scheduled_bg_copies_to_vram
|
|
ldr r0, =sub_8170274
|
|
bl SetMainCallback2
|
|
ldr r0, =sub_8170260
|
|
bl SetVBlankCallback
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81701C4
|
|
|
|
thumb_func_start sub_8170260
|
|
sub_8170260: @ 8170260
|
|
push {lr}
|
|
bl LoadOamFromSprites
|
|
bl ProcessObjectCopyRequests
|
|
bl copy_pal_bg_faded_to_pal_ram
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8170260
|
|
|
|
thumb_func_start sub_8170274
|
|
sub_8170274: @ 8170274
|
|
push {lr}
|
|
bl sub_8170290
|
|
bl CallObjectCallbacks
|
|
bl PrepareSpritesForOamLoad
|
|
bl fade_and_return_progress_probably
|
|
bl do_scheduled_bg_tilemap_copies_to_vram
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8170274
|
|
|
|
thumb_func_start sub_8170290
|
|
sub_8170290: @ 8170290
|
|
push {r4,r5,lr}
|
|
sub sp, 0xC
|
|
ldr r1, =gUnknown_0203BCD0
|
|
ldr r0, [r1]
|
|
ldr r2, =0x0000088c
|
|
adds r0, r2
|
|
ldrh r0, [r0]
|
|
adds r4, r1, 0
|
|
cmp r0, 0x6
|
|
bls _081702A6
|
|
b _08170416
|
|
_081702A6:
|
|
lsls r0, 2
|
|
ldr r1, =_081702BC
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_081702BC:
|
|
.4byte _081702D8
|
|
.4byte _08170300
|
|
.4byte _08170358
|
|
.4byte _08170380
|
|
.4byte _08170394
|
|
.4byte _081703C0
|
|
.4byte _081703E8
|
|
_081702D8:
|
|
ldr r0, [r4]
|
|
adds r0, 0x8
|
|
movs r1, 0
|
|
bl sub_8122CDC
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl sub_8124288
|
|
movs r0, 0x1
|
|
movs r1, 0x1
|
|
bl sub_81240D4
|
|
ldr r1, [r4]
|
|
ldr r0, =0x0000088c
|
|
adds r1, r0
|
|
b _081703D8
|
|
.pool
|
|
_08170300:
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
movs r2, 0x27
|
|
movs r3, 0xD
|
|
bl SetWindowBorderStyle
|
|
ldr r5, =gUnknown_085EE8F1
|
|
movs r0, 0x1
|
|
adds r1, r5, 0
|
|
movs r2, 0x38
|
|
bl GetStringCenterAlignXOffset
|
|
adds r3, r0, 0
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
movs r0, 0x1
|
|
str r0, [sp]
|
|
movs r4, 0
|
|
str r4, [sp, 0x4]
|
|
str r4, [sp, 0x8]
|
|
movs r1, 0x1
|
|
adds r2, r5, 0
|
|
bl Print
|
|
movs r0, 0
|
|
bl schedule_bg_copy_tilemap_to_vram
|
|
movs r0, 0
|
|
movs r1, 0
|
|
movs r2, 0x27
|
|
movs r3, 0xD
|
|
bl SetWindowBorderStyle
|
|
bl sub_8170428
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
str r4, [sp]
|
|
movs r1, 0
|
|
movs r2, 0x10
|
|
movs r3, 0
|
|
b _081703CC
|
|
.pool
|
|
_08170358:
|
|
movs r1, 0x82
|
|
lsls r1, 5
|
|
movs r0, 0
|
|
bl SetGpuRegBits
|
|
movs r0, 0
|
|
bl ShowBg
|
|
movs r0, 0x2
|
|
bl ShowBg
|
|
ldr r0, =gUnknown_0203BCD0
|
|
ldr r1, [r0]
|
|
ldr r0, =0x0000088c
|
|
adds r1, r0
|
|
b _081703D8
|
|
.pool
|
|
_08170380:
|
|
ldr r0, =gUnknown_02037FD4
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08170416
|
|
ldr r1, [r4]
|
|
b _081703D4
|
|
.pool
|
|
_08170394:
|
|
bl sub_81230AC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x3
|
|
bne _081703A6
|
|
bl sub_8170428
|
|
b _08170416
|
|
_081703A6:
|
|
cmp r0, 0x3
|
|
blt _08170416
|
|
cmp r0, 0x5
|
|
bgt _08170416
|
|
ldr r0, =gUnknown_0203BCD0
|
|
ldr r1, [r0]
|
|
ldr r0, =0x0000088c
|
|
adds r1, r0
|
|
b _081703D8
|
|
.pool
|
|
_081703C0:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
movs r2, 0
|
|
movs r3, 0x10
|
|
_081703CC:
|
|
bl pal_fade_maybe
|
|
ldr r0, =gUnknown_0203BCD0
|
|
ldr r1, [r0]
|
|
_081703D4:
|
|
ldr r2, =0x0000088c
|
|
adds r1, r2
|
|
_081703D8:
|
|
ldrh r0, [r1]
|
|
adds r0, 0x1
|
|
strh r0, [r1]
|
|
b _08170416
|
|
.pool
|
|
_081703E8:
|
|
ldr r0, =gUnknown_02037FD4
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0
|
|
bne _08170416
|
|
bl sub_812305C
|
|
ldr r4, =gUnknown_0203BCD0
|
|
ldr r0, [r4]
|
|
ldr r0, [r0]
|
|
bl SetMainCallback2
|
|
ldr r0, [r4]
|
|
cmp r0, 0
|
|
beq _08170412
|
|
bl Free
|
|
str r5, [r4]
|
|
_08170412:
|
|
bl FreeAllWindowBuffers
|
|
_08170416:
|
|
add sp, 0xC
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8170290
|
|
|
|
thumb_func_start sub_8170428
|
|
sub_8170428: @ 8170428
|
|
push {r4,lr}
|
|
sub sp, 0xC
|
|
ldr r4, =gUnknown_0203BCD0
|
|
ldr r0, [r4]
|
|
ldrb r0, [r0, 0xA]
|
|
cmp r0, 0
|
|
beq _08170460
|
|
movs r0, 0
|
|
movs r1, 0x11
|
|
bl FillWindowPixelBuffer
|
|
ldr r2, [r4]
|
|
adds r2, 0xC
|
|
movs r0, 0x1
|
|
str r0, [sp]
|
|
movs r0, 0
|
|
str r0, [sp, 0x4]
|
|
str r0, [sp, 0x8]
|
|
movs r1, 0x1
|
|
movs r3, 0
|
|
bl Print
|
|
movs r0, 0
|
|
bl schedule_bg_copy_tilemap_to_vram
|
|
b _08170470
|
|
.pool
|
|
_08170460:
|
|
movs r0, 0
|
|
movs r1, 0x11
|
|
bl FillWindowPixelBuffer
|
|
movs r0, 0
|
|
movs r1, 0x3
|
|
bl CopyWindowToVram
|
|
_08170470:
|
|
add sp, 0xC
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8170428
|
|
|
|
thumb_func_start sub_8170478
|
|
sub_8170478: @ 8170478
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x1C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
str r0, [sp, 0x10]
|
|
ldr r0, =gUnknown_02038436
|
|
ldrb r4, [r0]
|
|
ldr r0, =gUnknown_02022E24
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
ldr r0, =gUnknown_02022E26
|
|
strh r1, [r0]
|
|
ldr r1, =0x00003f3f
|
|
movs r0, 0x48
|
|
bl SetGpuReg
|
|
ldr r1, =0x00003f3d
|
|
movs r0, 0x4A
|
|
bl SetGpuReg
|
|
movs r1, 0x80
|
|
lsls r1, 8
|
|
movs r0, 0
|
|
bl SetGpuRegBits
|
|
ldr r1, =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 lcd_bg_operations
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl lcd_bg_operations
|
|
movs r0, 0x1
|
|
movs r1, 0x1
|
|
movs r2, 0x1
|
|
bl lcd_bg_operations
|
|
movs r0, 0x1
|
|
movs r1, 0x3
|
|
movs r2, 0x1
|
|
bl lcd_bg_operations
|
|
ldr r0, =gUnknown_03005D70
|
|
adds r4, r0
|
|
ldrb r0, [r4]
|
|
ldr r1, =gUnknown_02020630
|
|
mov r9, r1
|
|
lsls r4, r0, 4
|
|
adds r4, r0
|
|
lsls r4, 2
|
|
add r4, r9
|
|
ldrb r7, [r4, 0x6]
|
|
ldrh r6, [r4, 0x38]
|
|
lsls r6, 24
|
|
lsrs r6, 24
|
|
ldr r0, =DummyObjectCallback
|
|
bl object_new_hidden_with_callback
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
str r0, [sp, 0x14]
|
|
ldr r0, =DummyObjectCallback
|
|
bl object_new_hidden_with_callback
|
|
mov r10, r0
|
|
mov r2, r10
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
mov r10, r2
|
|
ldrb r1, [r4, 0x5]
|
|
movs r3, 0xD
|
|
negs r3, r3
|
|
adds r0, r3, 0
|
|
ands r0, r1
|
|
movs r1, 0x4
|
|
mov r8, r1
|
|
mov r2, r8
|
|
orrs r0, r2
|
|
strb r0, [r4, 0x5]
|
|
lsls r5, r7, 4
|
|
adds r5, r7
|
|
lsls r5, 2
|
|
add r5, r9
|
|
ldrb r1, [r5, 0x5]
|
|
adds r0, r3, 0
|
|
ands r0, r1
|
|
orrs r0, r2
|
|
strb r0, [r5, 0x5]
|
|
lsls r1, r6, 4
|
|
adds r1, r6
|
|
lsls r1, 2
|
|
add r1, r9
|
|
ldrb r2, [r1, 0x5]
|
|
adds r0, r3, 0
|
|
ands r0, r2
|
|
mov r2, r8
|
|
orrs r0, r2
|
|
strb r0, [r1, 0x5]
|
|
ldr r0, [sp, 0x14]
|
|
lsls r6, r0, 4
|
|
adds r6, r0
|
|
lsls r6, 2
|
|
mov r1, r9
|
|
adds r7, r6, r1
|
|
adds r0, r7, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0x44
|
|
str r3, [sp, 0x18]
|
|
bl memcpy
|
|
mov r2, r10
|
|
lsls r4, r2, 4
|
|
add r4, r10
|
|
lsls r4, 2
|
|
adds r0, r4, 0
|
|
add r0, r9
|
|
mov r8, r0
|
|
adds r1, r5, 0
|
|
movs r2, 0x44
|
|
bl memcpy
|
|
ldrb r1, [r7, 0x1]
|
|
ldr r3, [sp, 0x18]
|
|
adds r0, r3, 0
|
|
ands r0, r1
|
|
movs r1, 0x8
|
|
orrs r0, r1
|
|
strb r0, [r7, 0x1]
|
|
mov r2, r8
|
|
ldrb r0, [r2, 0x1]
|
|
ands r3, r0
|
|
orrs r3, r1
|
|
strb r3, [r2, 0x1]
|
|
movs r0, 0x1C
|
|
add r9, r0
|
|
add r6, r9
|
|
ldr r1, =DummyObjectCallback
|
|
str r1, [r6]
|
|
add r4, r9
|
|
str r1, [r4]
|
|
mov r0, sp
|
|
bl sub_80A6B30
|
|
mov r0, sp
|
|
ldrb r0, [r0, 0x9]
|
|
ldr r1, =gUnknown_08C2EA9C
|
|
bl sub_80A6D48
|
|
mov r0, sp
|
|
ldrb r0, [r0, 0x9]
|
|
ldr r1, =gUnknown_08C2EA50
|
|
mov r2, sp
|
|
ldrh r2, [r2, 0xA]
|
|
bl sub_80A6CC0
|
|
ldr r0, =gUnknown_08C2DDA4
|
|
mov r1, sp
|
|
ldrb r1, [r1, 0x8]
|
|
lsls r1, 4
|
|
movs r2, 0x20
|
|
bl decompress_palette
|
|
ldr r1, =gUnknown_02022E18
|
|
ldrh r0, [r7, 0x20]
|
|
negs r0, r0
|
|
adds r0, 0x20
|
|
strh r0, [r1]
|
|
ldr r1, =gUnknown_02022E1A
|
|
ldrh r0, [r7, 0x22]
|
|
negs r0, r0
|
|
subs r0, 0x20
|
|
strh r0, [r1]
|
|
ldr r1, =gTasks
|
|
ldr r2, [sp, 0x10]
|
|
lsls r0, r2, 2
|
|
adds r0, r2
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
movs r1, 0xA0
|
|
lsls r1, 2
|
|
strh r1, [r0, 0xA]
|
|
mov r1, sp
|
|
ldrh r1, [r1, 0x14]
|
|
strh r1, [r0, 0x8]
|
|
mov r2, r10
|
|
strh r2, [r0, 0xC]
|
|
ldr r1, =sub_8170660
|
|
str r1, [r0]
|
|
add sp, 0x1C
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8170478
|
|
|
|
thumb_func_start sub_8170660
|
|
sub_8170660: @ 8170660
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
ldr r0, =gUnknown_02038436
|
|
ldrb r0, [r0]
|
|
mov r8, r0
|
|
ldr r1, =gTasks
|
|
lsls r0, r7, 2
|
|
adds r0, r7
|
|
lsls r0, 3
|
|
adds r5, r0, r1
|
|
ldrh r1, [r5, 0xA]
|
|
ldrh r0, [r5, 0x22]
|
|
adds r1, r0
|
|
movs r3, 0
|
|
strh r1, [r5, 0x22]
|
|
ldr r2, =gUnknown_02022E1A
|
|
lsls r0, r1, 16
|
|
lsrs r0, 24
|
|
ldrh r4, [r2]
|
|
adds r0, r4
|
|
strh r0, [r2]
|
|
movs r0, 0xFF
|
|
ands r1, r0
|
|
strh r1, [r5, 0x22]
|
|
movs r1, 0x26
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0x1
|
|
beq _081706F0
|
|
cmp r0, 0x1
|
|
bgt _081706B4
|
|
cmp r0, 0
|
|
beq _081706BA
|
|
b _08170814
|
|
.pool
|
|
_081706B4:
|
|
cmp r0, 0x2
|
|
beq _08170708
|
|
b _08170814
|
|
_081706BA:
|
|
ldrh r0, [r5, 0x1E]
|
|
adds r1, r0, 0x1
|
|
strh r1, [r5, 0x1E]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1
|
|
bgt _081706CA
|
|
b _08170814
|
|
_081706CA:
|
|
strh r3, [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 r0, [r5, r2]
|
|
cmp r0, 0x8
|
|
beq _081706EE
|
|
b _08170814
|
|
_081706EE:
|
|
b _08170700
|
|
_081706F0:
|
|
ldrh r0, [r5, 0x1C]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x1C]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1E
|
|
beq _08170700
|
|
b _08170814
|
|
_08170700:
|
|
ldrh r0, [r5, 0x26]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x26]
|
|
b _08170814
|
|
_08170708:
|
|
ldrh r0, [r5, 0x1E]
|
|
adds r1, r0, 0x1
|
|
strh r1, [r5, 0x1E]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1
|
|
ble _08170814
|
|
strh r3, [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 _08170814
|
|
movs r0, 0
|
|
bl sub_80A477C
|
|
ldr r0, =gUnknown_02022E24
|
|
strh r4, [r0]
|
|
ldr r0, =gUnknown_02022E26
|
|
strh r4, [r0]
|
|
ldr r4, =0x00003f3f
|
|
movs r0, 0x48
|
|
adds r1, r4, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x4A
|
|
adds r1, r4, 0
|
|
bl SetGpuReg
|
|
bl sub_80A4DF0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0817076C
|
|
movs r0, 0x1
|
|
movs r1, 0x3
|
|
movs r2, 0
|
|
bl lcd_bg_operations
|
|
_0817076C:
|
|
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 r4, 0x8
|
|
ldrsh r1, [r5, r4]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r6, =gUnknown_02020630
|
|
adds r0, r6
|
|
bl RemoveObjectAndFreeTiles
|
|
movs r0, 0xC
|
|
ldrsh r1, [r5, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
bl RemoveObjectAndFreeTiles
|
|
movs r0, 0x1
|
|
movs r1, 0x1
|
|
movs r2, 0
|
|
bl lcd_bg_operations
|
|
ldr r0, =gUnknown_03005D70
|
|
add r0, r8
|
|
ldrb r0, [r0]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r6
|
|
ldrb r2, [r1, 0x6]
|
|
mov r8, r2
|
|
ldrh r4, [r1, 0x38]
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
ldrb r3, [r1, 0x5]
|
|
movs r2, 0xD
|
|
negs r2, r2
|
|
adds r0, r2, 0
|
|
ands r0, r3
|
|
movs r5, 0x4
|
|
orrs r0, r5
|
|
strb r0, [r1, 0x5]
|
|
mov r0, r8
|
|
lsls r1, r0, 4
|
|
add r1, r8
|
|
lsls r1, 2
|
|
adds r1, r6
|
|
ldrb r3, [r1, 0x5]
|
|
adds r0, r2, 0
|
|
ands r0, r3
|
|
orrs r0, r5
|
|
strb r0, [r1, 0x5]
|
|
lsls r0, r4, 4
|
|
adds r0, r4
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
ldrb r1, [r0, 0x5]
|
|
ands r2, r1
|
|
orrs r2, r5
|
|
strb r2, [r0, 0x5]
|
|
adds r0, r7, 0
|
|
bl move_anim_task_del
|
|
_08170814:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8170660
|
|
|
|
thumb_func_start sub_8170834
|
|
sub_8170834: @ 8170834
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x4
|
|
mov r9, r0
|
|
adds r7, r1, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
ldr r0, =gUnknown_03005D70
|
|
adds r2, r0
|
|
ldrb r0, [r2]
|
|
lsls r5, r0, 4
|
|
adds r5, r0
|
|
lsls r5, 2
|
|
ldr r0, =gUnknown_02020630
|
|
adds r5, r0
|
|
ldrb r1, [r5, 0x6]
|
|
mov r10, r1
|
|
ldrh r4, [r5, 0x38]
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
ldr r0, =0x0000d709
|
|
bl AllocObjectPalette
|
|
mov r2, r9
|
|
strb r0, [r2]
|
|
ldr r0, =0x0000d70a
|
|
bl AllocObjectPalette
|
|
strb r0, [r7]
|
|
ldrb r0, [r5, 0x5]
|
|
lsrs r0, 4
|
|
lsls r0, 4
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
adds r3, r1, 0
|
|
orrs r0, r3
|
|
lsls r6, r4, 4
|
|
adds r6, r4
|
|
lsls r6, 2
|
|
ldr r2, =gUnknown_02020630
|
|
adds r6, r2
|
|
ldrb r4, [r6, 0x5]
|
|
lsrs r4, 4
|
|
lsls r4, 4
|
|
orrs r4, r3
|
|
lsls r0, 1
|
|
ldr r1, =gUnknown_02037714
|
|
mov r8, r1
|
|
add r0, r8
|
|
mov r2, r9
|
|
ldrb r1, [r2]
|
|
lsls r1, 4
|
|
adds r1, r3, r1
|
|
movs r2, 0x20
|
|
str r3, [sp]
|
|
bl gpu_pal_apply
|
|
lsls r4, 1
|
|
add r4, r8
|
|
ldrb r0, [r7]
|
|
lsls r0, 4
|
|
ldr r3, [sp]
|
|
adds r3, r0
|
|
adds r0, r4, 0
|
|
adds r1, r3, 0
|
|
movs r2, 0x20
|
|
bl gpu_pal_apply
|
|
mov r0, r9
|
|
ldrb r1, [r0]
|
|
lsls r1, 4
|
|
ldrb r2, [r5, 0x5]
|
|
movs r3, 0xF
|
|
adds r0, r3, 0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r5, 0x5]
|
|
mov r2, r10
|
|
lsls r1, r2, 4
|
|
add r1, r10
|
|
lsls r1, 2
|
|
ldr r0, =gUnknown_02020630
|
|
adds r1, r0
|
|
mov r0, r9
|
|
ldrb r2, [r0]
|
|
lsls r2, 4
|
|
ldrb r4, [r1, 0x5]
|
|
adds r0, r3, 0
|
|
ands r0, r4
|
|
orrs r0, r2
|
|
strb r0, [r1, 0x5]
|
|
ldrb r0, [r7]
|
|
lsls r0, 4
|
|
ldrb r1, [r6, 0x5]
|
|
ands r3, r1
|
|
orrs r3, r0
|
|
strb r3, [r6, 0x5]
|
|
add sp, 0x4
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8170834
|
|
|
|
thumb_func_start sub_8170920
|
|
sub_8170920: @ 8170920
|
|
push {r4,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
mov r1, sp
|
|
adds r1, 0x1
|
|
ldr r0, =gUnknown_02038436
|
|
ldrb r2, [r0]
|
|
mov r0, sp
|
|
bl sub_8170834
|
|
adds r0, r4, 0
|
|
bl move_anim_task_del
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8170920
|
|
|
|
thumb_func_start sub_817094C
|
|
sub_817094C: @ 817094C
|
|
push {r4-r6,lr}
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5,r6}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, =gUnknown_03005D70
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
ldr r1, =gUnknown_02020630
|
|
mov r8, r1
|
|
lsls r5, r0, 4
|
|
adds r5, r0
|
|
lsls r5, 2
|
|
add r5, r8
|
|
ldrb r0, [r5, 0x6]
|
|
mov r9, r0
|
|
ldrh r6, [r5, 0x38]
|
|
lsls r6, 24
|
|
lsrs r6, 24
|
|
ldr r0, =0x0000d709
|
|
bl FreeObjectPaletteByTag
|
|
ldr r0, =0x0000d70a
|
|
bl FreeObjectPaletteByTag
|
|
ldr r0, =0x0000d6ff
|
|
bl IndexOfObjectPaletteTag
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
ldr r0, =0x0000d704
|
|
bl IndexOfObjectPaletteTag
|
|
lsls r0, 24
|
|
lsls r4, 4
|
|
ldrb r2, [r5, 0x5]
|
|
movs r3, 0xF
|
|
adds r1, r3, 0
|
|
ands r1, r2
|
|
orrs r1, r4
|
|
strb r1, [r5, 0x5]
|
|
mov r1, r9
|
|
lsls r2, r1, 4
|
|
add r2, r9
|
|
lsls r2, 2
|
|
add r2, r8
|
|
ldrb r5, [r2, 0x5]
|
|
adds r1, r3, 0
|
|
ands r1, r5
|
|
orrs r1, r4
|
|
strb r1, [r2, 0x5]
|
|
lsls r1, r6, 4
|
|
adds r1, r6
|
|
lsls r1, 2
|
|
add r1, r8
|
|
lsrs r0, 20
|
|
ldrb r2, [r1, 0x5]
|
|
ands r3, r2
|
|
orrs r3, r0
|
|
strb r3, [r1, 0x5]
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_817094C
|
|
|
|
thumb_func_start sub_81709EC
|
|
sub_81709EC: @ 81709EC
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
ldr r0, =gUnknown_02038436
|
|
ldrb r0, [r0]
|
|
bl sub_817094C
|
|
adds r0, r4, 0
|
|
bl move_anim_task_del
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81709EC
|
|
|
|
thumb_func_start sub_8170A0C
|
|
sub_8170A0C: @ 8170A0C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, =gTasks
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r2
|
|
ldr r2, =gUnknown_0203841E
|
|
ldrh r0, [r2]
|
|
strh r0, [r1, 0x1C]
|
|
ldrh r0, [r2, 0x2]
|
|
strh r0, [r1, 0x1E]
|
|
ldr r0, =sub_8170A38
|
|
str r0, [r1]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_8170A0C
|
|
|
|
thumb_func_start sub_8170A38
|
|
sub_8170A38: @ 8170A38
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r1, =gTasks
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
adds r4, r0, r1
|
|
ldrh r0, [r4, 0x8]
|
|
adds r0, 0x1
|
|
movs r6, 0
|
|
adds r1, r0, 0x1
|
|
strh r1, [r4, 0x8]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r2, 0x1E
|
|
ldrsh r1, [r4, r2]
|
|
cmp r0, r1
|
|
blt _08170AF8
|
|
strh r6, [r4, 0x8]
|
|
ldr r0, =0x0000d709
|
|
bl IndexOfObjectPaletteTag
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
movs r3, 0x1C
|
|
ldrsh r0, [r4, r3]
|
|
movs r1, 0x2
|
|
cmp r0, 0
|
|
bne _08170A76
|
|
movs r1, 0x6
|
|
_08170A76:
|
|
movs r3, 0xA
|
|
ldrsh r0, [r4, r3]
|
|
cmp r0, 0
|
|
beq _08170A8C
|
|
cmp r0, 0x1
|
|
beq _08170AC8
|
|
b _08170AF8
|
|
.pool
|
|
_08170A8C:
|
|
ldrh r0, [r4, 0xC]
|
|
adds r0, 0x2
|
|
strh r0, [r4, 0xC]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x10
|
|
ble _08170A9E
|
|
movs r0, 0x10
|
|
strh r0, [r4, 0xC]
|
|
_08170A9E:
|
|
lsls r0, r2, 4
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r0, r2
|
|
orrs r0, r1
|
|
ldrb r2, [r4, 0xC]
|
|
ldr r3, =0x00007f74
|
|
movs r1, 0x1
|
|
bl pal_fade_1
|
|
movs r3, 0xC
|
|
ldrsh r0, [r4, r3]
|
|
cmp r0, 0x10
|
|
bne _08170AF8
|
|
ldrh r0, [r4, 0xA]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0xA]
|
|
b _08170AF8
|
|
.pool
|
|
_08170AC8:
|
|
ldrh r0, [r4, 0xC]
|
|
subs r0, 0x2
|
|
strh r0, [r4, 0xC]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bge _08170AD6
|
|
strh r6, [r4, 0xC]
|
|
_08170AD6:
|
|
lsls r0, r2, 4
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r0, r2
|
|
orrs r0, r1
|
|
ldrb r2, [r4, 0xC]
|
|
ldr r3, =0x00007f74
|
|
movs r1, 0x1
|
|
bl pal_fade_1
|
|
movs r3, 0xC
|
|
ldrsh r0, [r4, r3]
|
|
cmp r0, 0
|
|
bne _08170AF8
|
|
adds r0, r5, 0
|
|
bl move_anim_task_del
|
|
_08170AF8:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8170A38
|
|
|
|
thumb_func_start sub_8170B04
|
|
sub_8170B04: @ 8170B04
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
ldr r1, =gUnknown_020241E4
|
|
ldr r0, =gUnknown_02038436
|
|
ldrb r0, [r0]
|
|
adds r0, r1
|
|
ldrb r5, [r0]
|
|
ldr r1, =gTasks
|
|
lsls r0, r6, 2
|
|
adds r0, r6
|
|
lsls r0, 3
|
|
adds r4, r0, r1
|
|
movs r1, 0x8
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x1
|
|
beq _08170B52
|
|
cmp r0, 0x1
|
|
bgt _08170B3C
|
|
cmp r0, 0
|
|
beq _08170B42
|
|
b _08170BA4
|
|
.pool
|
|
_08170B3C:
|
|
cmp r0, 0x2
|
|
beq _08170B84
|
|
b _08170BA4
|
|
_08170B42:
|
|
adds r0, r5, 0
|
|
movs r1, 0
|
|
bl sub_80A7270
|
|
movs r0, 0x80
|
|
lsls r0, 1
|
|
strh r0, [r4, 0x1C]
|
|
b _08170B76
|
|
_08170B52:
|
|
ldrh r0, [r4, 0x1C]
|
|
adds r0, 0x30
|
|
strh r0, [r4, 0x1C]
|
|
movs r0, 0x1C
|
|
ldrsh r2, [r4, r0]
|
|
adds r0, r5, 0
|
|
adds r1, r2, 0
|
|
movs r3, 0
|
|
bl obj_id_set_rotscale
|
|
adds r0, r5, 0
|
|
bl sub_80A7E6C
|
|
movs r0, 0x1C
|
|
ldrsh r1, [r4, r0]
|
|
ldr r0, =0x000002cf
|
|
cmp r1, r0
|
|
ble _08170BA4
|
|
_08170B76:
|
|
ldrh r0, [r4, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x8]
|
|
b _08170BA4
|
|
.pool
|
|
_08170B84:
|
|
adds r0, r5, 0
|
|
bl sub_80A7344
|
|
ldr r1, =gUnknown_02020630
|
|
lsls r0, r5, 4
|
|
adds r0, r5
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
adds r0, 0x3E
|
|
ldrb r1, [r0]
|
|
movs r2, 0x4
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
adds r0, r6, 0
|
|
bl move_anim_task_del
|
|
_08170BA4:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8170B04
|
|
|
|
thumb_func_start sub_8170BB0
|
|
sub_8170BB0: @ 8170BB0
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0xC
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r1, =gUnknown_020241E4
|
|
ldr r4, =gUnknown_02038436
|
|
ldrb r0, [r4]
|
|
adds r1, r0, r1
|
|
ldrb r1, [r1]
|
|
mov r9, r1
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08170BF8
|
|
ldr r1, =gUnknown_0202406E
|
|
ldrb r0, [r4]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, =gUnknown_020244EC
|
|
b _08170C08
|
|
.pool
|
|
_08170BF8:
|
|
ldr r1, =gUnknown_0202406E
|
|
ldrb r0, [r4]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, 0x64
|
|
muls r0, r1
|
|
ldr r1, =gUnknown_02024744
|
|
_08170C08:
|
|
adds r0, r1
|
|
movs r1, 0x26
|
|
bl pokemon_getattr
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
bl ball_number_to_ball_processing_index
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
ldr r2, =gTasks
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
adds r6, r0, r2
|
|
movs r0, 0x8
|
|
ldrsh r7, [r6, r0]
|
|
cmp r7, 0
|
|
beq _08170C44
|
|
cmp r7, 0x1
|
|
beq _08170CC4
|
|
b _08170CEE
|
|
.pool
|
|
_08170C44:
|
|
ldr r5, =gUnknown_02038436
|
|
ldrb r0, [r5]
|
|
movs r1, 0
|
|
bl sub_80A5C6C
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
ldrb r0, [r5]
|
|
movs r1, 0x1
|
|
bl sub_80A5C6C
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
ldr r2, =gUnknown_02020630
|
|
mov r3, r9
|
|
lsls r0, r3, 4
|
|
add r0, r9
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r2, [r0, 0x5]
|
|
lsls r2, 28
|
|
lsrs r2, 30
|
|
adds r0, 0x43
|
|
ldrb r3, [r0]
|
|
movs r0, 0x80
|
|
lsls r0, 22
|
|
adds r1, r0
|
|
lsrs r1, 24
|
|
mov r0, r8
|
|
str r0, [sp]
|
|
adds r0, r4, 0
|
|
bl sub_8171D98
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r6, 0x1C]
|
|
str r7, [sp]
|
|
str r7, [sp, 0x4]
|
|
str r7, [sp, 0x8]
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl sub_80A75AC
|
|
adds r2, r0, 0
|
|
ldrb r1, [r5]
|
|
movs r0, 0
|
|
mov r3, r8
|
|
bl sub_81729E8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r6, 0x1E]
|
|
ldrh r0, [r6, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r6, 0x8]
|
|
b _08170CEE
|
|
.pool
|
|
_08170CC4:
|
|
movs r1, 0x1C
|
|
ldrsh r0, [r6, r1]
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r2
|
|
ldrb r0, [r1, 0x4]
|
|
cmp r0, 0
|
|
bne _08170CEE
|
|
movs r3, 0x1E
|
|
ldrsh r0, [r6, r3]
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r2
|
|
ldrb r0, [r1, 0x4]
|
|
cmp r0, 0
|
|
bne _08170CEE
|
|
adds r0, r5, 0
|
|
bl move_anim_task_del
|
|
_08170CEE:
|
|
add sp, 0xC
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8170BB0
|
|
|
|
thumb_func_start sub_8170CFC
|
|
sub_8170CFC: @ 8170CFC
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
ldr r0, =gUnknown_02024208
|
|
ldrh r0, [r0]
|
|
bl ball_number_to_ball_processing_index
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl sub_8076A78
|
|
adds r0, r4, 0
|
|
bl move_anim_task_del
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8170CFC
|
|
|
|
thumb_func_start sub_8170D24
|
|
sub_8170D24: @ 8170D24
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
ldr r0, =gUnknown_02024208
|
|
ldrh r0, [r0]
|
|
bl ball_number_to_ball_processing_index
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl sub_8076AE8
|
|
adds r0, r4, 0
|
|
bl move_anim_task_del
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8170D24
|
|
|
|
thumb_func_start sub_8170D4C
|
|
sub_8170D4C: @ 8170D4C
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
ldr r0, =gUnknown_020244D0
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, 0x8]
|
|
ldrb r0, [r0, 0x8]
|
|
cmp r0, 0x5
|
|
bne _08170D70
|
|
ldr r1, =gUnknown_0203841E
|
|
ldr r0, =0x0000ffff
|
|
b _08170D74
|
|
.pool
|
|
_08170D70:
|
|
ldr r1, =gUnknown_0203841E
|
|
movs r0, 0
|
|
_08170D74:
|
|
strh r0, [r1, 0xE]
|
|
adds r0, r2, 0
|
|
bl move_anim_task_del
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8170D4C
|
|
|
|
thumb_func_start ball_number_to_ball_processing_index
|
|
ball_number_to_ball_processing_index: @ 8170D84
|
|
push {lr}
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
subs r0, 0x1
|
|
cmp r0, 0xB
|
|
bhi _08170DFC
|
|
lsls r0, 2
|
|
ldr r1, =_08170DA0
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_08170DA0:
|
|
.4byte _08170DD0
|
|
.4byte _08170DD4
|
|
.4byte _08170DD8
|
|
.4byte _08170DFC
|
|
.4byte _08170DDC
|
|
.4byte _08170DE0
|
|
.4byte _08170DE4
|
|
.4byte _08170DE8
|
|
.4byte _08170DEC
|
|
.4byte _08170DF0
|
|
.4byte _08170DF4
|
|
.4byte _08170DF8
|
|
_08170DD0:
|
|
movs r0, 0x4
|
|
b _08170DFE
|
|
_08170DD4:
|
|
movs r0, 0x3
|
|
b _08170DFE
|
|
_08170DD8:
|
|
movs r0, 0x1
|
|
b _08170DFE
|
|
_08170DDC:
|
|
movs r0, 0x2
|
|
b _08170DFE
|
|
_08170DE0:
|
|
movs r0, 0x5
|
|
b _08170DFE
|
|
_08170DE4:
|
|
movs r0, 0x6
|
|
b _08170DFE
|
|
_08170DE8:
|
|
movs r0, 0x7
|
|
b _08170DFE
|
|
_08170DEC:
|
|
movs r0, 0x8
|
|
b _08170DFE
|
|
_08170DF0:
|
|
movs r0, 0x9
|
|
b _08170DFE
|
|
_08170DF4:
|
|
movs r0, 0xA
|
|
b _08170DFE
|
|
_08170DF8:
|
|
movs r0, 0xB
|
|
b _08170DFE
|
|
_08170DFC:
|
|
movs r0, 0
|
|
_08170DFE:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end ball_number_to_ball_processing_index
|
|
|
|
thumb_func_start sub_8170E04
|
|
sub_8170E04: @ 8170E04
|
|
push {r4-r6,lr}
|
|
mov r6, r10
|
|
mov r5, r9
|
|
mov r4, r8
|
|
push {r4-r6}
|
|
mov r10, r0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r10, r0
|
|
ldr r0, =gUnknown_02024208
|
|
ldrh r0, [r0]
|
|
bl ball_number_to_ball_processing_index
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
ldr r1, =gUnknown_0832C588
|
|
adds r0, r1
|
|
movs r1, 0x20
|
|
movs r2, 0x50
|
|
movs r3, 0x1D
|
|
bl AddObjectToFront
|
|
adds r5, r0, 0
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
ldr r1, =gUnknown_02020630
|
|
mov r9, r1
|
|
lsls r4, r5, 4
|
|
adds r4, r5
|
|
lsls r4, 2
|
|
adds r6, r4, r1
|
|
movs r0, 0x22
|
|
strh r0, [r6, 0x2E]
|
|
ldr r2, =gUnknown_02038437
|
|
mov r8, r2
|
|
ldrb r0, [r2]
|
|
movs r1, 0
|
|
bl sub_80A5C6C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r6, 0x30]
|
|
mov r1, r8
|
|
ldrb r0, [r1]
|
|
movs r1, 0x1
|
|
bl sub_80A5C6C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
subs r0, 0x10
|
|
strh r0, [r6, 0x32]
|
|
mov r0, r9
|
|
adds r0, 0x1C
|
|
adds r4, r0
|
|
ldr r0, =sub_8171104
|
|
str r0, [r4]
|
|
ldr r0, =gUnknown_020244D0
|
|
ldr r0, [r0]
|
|
ldr r3, [r0, 0x8]
|
|
ldr r1, =gUnknown_020241E4
|
|
mov r2, r8
|
|
ldrb r0, [r2]
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
add r0, r9
|
|
adds r0, 0x3E
|
|
ldrb r1, [r0]
|
|
lsls r1, 29
|
|
lsrs r1, 31
|
|
lsls r1, 1
|
|
ldrb r2, [r3, 0x9]
|
|
movs r0, 0x3
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r3, 0x9]
|
|
ldr r1, =gTasks
|
|
mov r2, r10
|
|
lsls r0, r2, 2
|
|
add r0, r10
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
strh r5, [r0, 0x8]
|
|
ldr r1, =sub_8170EF0
|
|
str r1, [r0]
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8170E04
|
|
|
|
thumb_func_start sub_8170EF0
|
|
sub_8170EF0: @ 8170EF0
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
ldr r1, =gTasks
|
|
lsls r0, r3, 2
|
|
adds r0, r3
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldrb r1, [r0, 0x8]
|
|
ldr r2, =gUnknown_02020630
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrh r1, [r0, 0x2E]
|
|
ldr r0, =0x0000ffff
|
|
cmp r1, r0
|
|
bne _08170F1A
|
|
adds r0, r3, 0
|
|
bl move_anim_task_del
|
|
_08170F1A:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8170EF0
|
|
|
|
thumb_func_start sub_8170F2C
|
|
sub_8170F2C: @ 8170F2C
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
ldr r0, =gUnknown_02022FEC
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08170F50
|
|
movs r6, 0x20
|
|
movs r5, 0xB
|
|
b _08170F54
|
|
.pool
|
|
_08170F50:
|
|
movs r6, 0x17
|
|
movs r5, 0x5
|
|
_08170F54:
|
|
ldr r0, =gUnknown_02024208
|
|
ldrh r0, [r0]
|
|
bl ball_number_to_ball_processing_index
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
movs r0, 0x1
|
|
bl battle_get_side_with_given_state
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl sub_80A82E4
|
|
adds r3, r0, 0
|
|
adds r3, 0x1
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
lsls r0, r4, 1
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
ldr r1, =gUnknown_0832C588
|
|
adds r0, r1
|
|
adds r1, r6, 0
|
|
adds r1, 0x20
|
|
movs r2, 0x50
|
|
orrs r5, r2
|
|
adds r2, r5, 0
|
|
bl AddObjectToFront
|
|
adds r5, r0, 0
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
ldr r0, =gUnknown_02020630
|
|
mov r9, r0
|
|
lsls r4, r5, 4
|
|
adds r4, r5
|
|
lsls r4, 2
|
|
adds r6, r4, r0
|
|
movs r0, 0x22
|
|
strh r0, [r6, 0x2E]
|
|
ldr r1, =gUnknown_02038437
|
|
mov r8, r1
|
|
ldrb r0, [r1]
|
|
movs r1, 0
|
|
bl sub_80A5C6C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r6, 0x30]
|
|
mov r1, r8
|
|
ldrb r0, [r1]
|
|
movs r1, 0x1
|
|
bl sub_80A5C6C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
subs r0, 0x10
|
|
strh r0, [r6, 0x32]
|
|
movs r0, 0x1C
|
|
add r9, r0
|
|
add r4, r9
|
|
ldr r0, =DummyObjectCallback
|
|
str r0, [r4]
|
|
movs r0, 0
|
|
bl battle_get_side_with_given_state
|
|
ldr r1, =gUnknown_020241E4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
add r0, r9
|
|
ldr r1, =sub_8039E84
|
|
str r1, [r0]
|
|
ldr r1, =gTasks
|
|
lsls r0, r7, 2
|
|
adds r0, r7
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
strh r5, [r0, 0x8]
|
|
ldr r1, =sub_8171030
|
|
str r1, [r0]
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8170F2C
|
|
|
|
thumb_func_start sub_8171030
|
|
sub_8171030: @ 8171030
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r6, =gUnknown_02020630
|
|
movs r0, 0
|
|
bl battle_get_side_with_given_state
|
|
ldr r1, =gUnknown_020241E4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
adds r0, 0x2B
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
bne _0817108A
|
|
movs r0, 0x3D
|
|
movs r1, 0
|
|
bl audio_play_and_stuff
|
|
ldr r0, =gTasks
|
|
lsls r4, r5, 2
|
|
adds r4, r5
|
|
lsls r4, 3
|
|
adds r4, r0
|
|
movs r0, 0x8
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r1, r6, 0
|
|
adds r1, 0x1C
|
|
adds r0, r1
|
|
ldr r1, =sub_8171104
|
|
str r1, [r0]
|
|
ldr r0, =sub_81710A8
|
|
movs r1, 0xA
|
|
bl CreateTask
|
|
ldr r0, =sub_8170EF0
|
|
str r0, [r4]
|
|
_0817108A:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8171030
|
|
|
|
thumb_func_start sub_81710A8
|
|
sub_81710A8: @ 81710A8
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r6, =gUnknown_02020630
|
|
movs r0, 0
|
|
bl battle_get_side_with_given_state
|
|
ldr r4, =gUnknown_020241E4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r0, r4
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
adds r0, 0x3F
|
|
ldrb r0, [r0]
|
|
lsls r0, 27
|
|
cmp r0, 0
|
|
bge _081710F4
|
|
movs r0, 0
|
|
bl battle_get_side_with_given_state
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r0, r4
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
movs r1, 0
|
|
bl StartObjectImageAnim
|
|
adds r0, r5, 0
|
|
bl DestroyTask
|
|
_081710F4:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81710A8
|
|
|
|
thumb_func_start sub_8171104
|
|
sub_8171104: @ 8171104
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrh r1, [r4, 0x30]
|
|
ldrh r2, [r4, 0x32]
|
|
ldrh r0, [r4, 0x20]
|
|
strh r0, [r4, 0x30]
|
|
strh r1, [r4, 0x32]
|
|
ldrh r0, [r4, 0x22]
|
|
strh r0, [r4, 0x34]
|
|
strh r2, [r4, 0x36]
|
|
ldr r0, =0x0000ffd8
|
|
strh r0, [r4, 0x38]
|
|
adds r0, r4, 0
|
|
bl sub_80A68D4
|
|
ldr r0, =sub_8171134
|
|
str r0, [r4, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8171104
|
|
|
|
thumb_func_start sub_8171134
|
|
sub_8171134: @ 8171134
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
bl sub_80A6900
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _081711D2
|
|
ldr r0, =gUnknown_020244D0
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, 0x8]
|
|
ldrb r0, [r0, 0x8]
|
|
cmp r0, 0x5
|
|
bne _08171160
|
|
ldr r0, =sub_8171CAC
|
|
str r0, [r4, 0x1C]
|
|
b _081711D2
|
|
.pool
|
|
_08171160:
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl StartObjectImageAnim
|
|
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, 0x24]
|
|
strh r1, [r4, 0x26]
|
|
adds r1, r4, 0
|
|
adds r1, 0x2E
|
|
movs r2, 0
|
|
adds r0, r4, 0
|
|
adds r0, 0x3C
|
|
_08171188:
|
|
strh r2, [r0]
|
|
subs r0, 0x2
|
|
cmp r0, r1
|
|
bge _08171188
|
|
movs r0, 0
|
|
strh r0, [r4, 0x38]
|
|
ldr r0, =sub_81711E8
|
|
str r0, [r4, 0x1C]
|
|
ldr r0, =gUnknown_02024208
|
|
ldrh r0, [r0]
|
|
bl ball_number_to_ball_processing_index
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0xB
|
|
bgt _081711D2
|
|
cmp r5, 0
|
|
blt _081711D2
|
|
ldrh r0, [r4, 0x20]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrh r1, [r4, 0x22]
|
|
subs r1, 0x5
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
str r5, [sp]
|
|
movs r2, 0x1
|
|
movs r3, 0x1C
|
|
bl sub_8171D98
|
|
ldr r0, =gUnknown_02038437
|
|
ldrb r1, [r0]
|
|
movs r0, 0
|
|
movs r2, 0xE
|
|
adds r3, r5, 0
|
|
bl sub_81729E8
|
|
_081711D2:
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8171134
|
|
|
|
thumb_func_start sub_81711E8
|
|
sub_81711E8: @ 81711E8
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrh r0, [r4, 0x38]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x38]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0xA
|
|
bne _08171224
|
|
ldr r0, =TaskDummy
|
|
movs r1, 0x32
|
|
bl CreateTask
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x38]
|
|
ldr r0, =sub_8171240
|
|
str r0, [r4, 0x1C]
|
|
ldr r2, =gUnknown_02020630
|
|
ldr r1, =gUnknown_020241E4
|
|
ldr r0, =gUnknown_02038437
|
|
ldrb r0, [r0]
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
movs r1, 0
|
|
strh r1, [r0, 0x30]
|
|
_08171224:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81711E8
|
|
|
|
thumb_func_start sub_8171240
|
|
sub_8171240: @ 8171240
|
|
push {r4-r7,lr}
|
|
adds r7, r0, 0
|
|
ldr r1, =gUnknown_020241E4
|
|
ldr r0, =gUnknown_02038437
|
|
ldrb r0, [r0]
|
|
adds r0, r1
|
|
ldrb r4, [r0]
|
|
ldrh r0, [r7, 0x38]
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
ldr r1, =gTasks
|
|
lsls r0, r6, 2
|
|
adds r0, r6
|
|
lsls r0, 3
|
|
adds r5, r0, r1
|
|
ldrh r0, [r5, 0xA]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0xA]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0xB
|
|
bne _08171272
|
|
movs r0, 0x3C
|
|
bl audio_play
|
|
_08171272:
|
|
movs r1, 0x8
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0x1
|
|
beq _081712E8
|
|
cmp r0, 0x1
|
|
bgt _08171290
|
|
cmp r0, 0
|
|
beq _08171296
|
|
b _08171354
|
|
.pool
|
|
_08171290:
|
|
cmp r0, 0x2
|
|
beq _0817132C
|
|
b _08171354
|
|
_08171296:
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl sub_80A7270
|
|
movs r0, 0x80
|
|
lsls r0, 1
|
|
strh r0, [r5, 0x1C]
|
|
ldr r1, =gUnknown_030062DC
|
|
movs r0, 0x1C
|
|
str r0, [r1]
|
|
ldr r2, =gUnknown_030062E4
|
|
ldr r1, =gUnknown_02020630
|
|
lsls r0, r4, 4
|
|
adds r0, r4
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrh r1, [r0, 0x26]
|
|
ldrh r0, [r0, 0x22]
|
|
adds r1, r0
|
|
ldrh r0, [r7, 0x26]
|
|
ldrh r7, [r7, 0x22]
|
|
adds r0, r7
|
|
subs r1, r0
|
|
strh r1, [r2]
|
|
ldr r4, =gUnknown_030062E0
|
|
ldrh r0, [r2]
|
|
lsls r0, 8
|
|
movs r1, 0x1C
|
|
bl __udivsi3
|
|
strh r0, [r4]
|
|
strh r0, [r5, 0xC]
|
|
b _08171346
|
|
.pool
|
|
_081712E8:
|
|
ldrh r0, [r5, 0x1C]
|
|
adds r0, 0x20
|
|
strh r0, [r5, 0x1C]
|
|
movs r0, 0x1C
|
|
ldrsh r2, [r5, r0]
|
|
adds r0, r4, 0
|
|
adds r1, r2, 0
|
|
movs r3, 0
|
|
bl obj_id_set_rotscale
|
|
ldrh r0, [r5, 0xC]
|
|
ldrh r1, [r5, 0xE]
|
|
adds r0, r1
|
|
strh r0, [r5, 0xE]
|
|
ldr r0, =gUnknown_02020630
|
|
lsls r1, r4, 4
|
|
adds r1, r4
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
movs r2, 0xE
|
|
ldrsh r0, [r5, r2]
|
|
negs r0, r0
|
|
asrs r0, 8
|
|
strh r0, [r1, 0x26]
|
|
movs r0, 0x1C
|
|
ldrsh r1, [r5, r0]
|
|
ldr r0, =0x0000047f
|
|
cmp r1, r0
|
|
ble _0817137C
|
|
b _08171346
|
|
.pool
|
|
_0817132C:
|
|
adds r0, r4, 0
|
|
bl sub_80A7344
|
|
ldr r1, =gUnknown_02020630
|
|
lsls r0, r4, 4
|
|
adds r0, r4
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
adds r0, 0x3E
|
|
ldrb r1, [r0]
|
|
movs r2, 0x4
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
_08171346:
|
|
ldrh r0, [r5, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x8]
|
|
b _0817137C
|
|
.pool
|
|
_08171354:
|
|
ldr r0, =gTasks
|
|
lsls r1, r6, 2
|
|
adds r1, r6
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
movs r2, 0xA
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, 0xA
|
|
ble _0817137C
|
|
adds r0, r6, 0
|
|
bl DestroyTask
|
|
adds r0, r7, 0
|
|
movs r1, 0x2
|
|
bl StartObjectImageAnim
|
|
movs r0, 0
|
|
strh r0, [r7, 0x38]
|
|
ldr r0, =sub_817138C
|
|
str r0, [r7, 0x1C]
|
|
_0817137C:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8171240
|
|
|
|
thumb_func_start sub_817138C
|
|
sub_817138C: @ 817138C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
adds r0, 0x3F
|
|
ldrb r1, [r0]
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _081713C6
|
|
movs r1, 0
|
|
strh r1, [r4, 0x34]
|
|
movs r0, 0x28
|
|
strh r0, [r4, 0x36]
|
|
strh r1, [r4, 0x38]
|
|
movs r0, 0
|
|
movs r1, 0x28
|
|
bl cosine
|
|
ldrh r1, [r4, 0x22]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x22]
|
|
movs r0, 0x36
|
|
ldrsh r1, [r4, r0]
|
|
movs r0, 0
|
|
bl cosine
|
|
negs r0, r0
|
|
strh r0, [r4, 0x26]
|
|
ldr r0, =sub_81713D0
|
|
str r0, [r4, 0x1C]
|
|
_081713C6:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_817138C
|
|
|
|
thumb_func_start sub_81713D0
|
|
sub_81713D0: @ 81713D0
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
movs r5, 0
|
|
ldrh r0, [r4, 0x34]
|
|
movs r1, 0xFF
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _081713E6
|
|
cmp r1, 0x1
|
|
beq _0817145A
|
|
b _08171486
|
|
_081713E6:
|
|
movs r1, 0x38
|
|
ldrsh r0, [r4, r1]
|
|
movs r2, 0x36
|
|
ldrsh r1, [r4, r2]
|
|
bl cosine
|
|
negs r0, r0
|
|
strh r0, [r4, 0x26]
|
|
ldrh r1, [r4, 0x38]
|
|
adds r1, 0x4
|
|
ldrh r2, [r4, 0x34]
|
|
lsls r0, r2, 16
|
|
asrs r0, 24
|
|
adds r1, r0
|
|
strh r1, [r4, 0x38]
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
cmp r1, 0x3F
|
|
ble _08171486
|
|
ldrh r0, [r4, 0x36]
|
|
subs r0, 0xA
|
|
strh r0, [r4, 0x36]
|
|
ldr r1, =0x00000101
|
|
adds r0, r2, r1
|
|
strh r0, [r4, 0x34]
|
|
lsls r0, 16
|
|
asrs r0, 24
|
|
cmp r0, 0x4
|
|
bne _08171422
|
|
movs r5, 0x1
|
|
_08171422:
|
|
cmp r0, 0x2
|
|
beq _08171442
|
|
cmp r0, 0x2
|
|
bgt _08171434
|
|
cmp r0, 0x1
|
|
beq _0817143A
|
|
b _08171452
|
|
.pool
|
|
_08171434:
|
|
cmp r0, 0x3
|
|
beq _0817144A
|
|
b _08171452
|
|
_0817143A:
|
|
movs r0, 0x38
|
|
bl audio_play
|
|
b _08171486
|
|
_08171442:
|
|
movs r0, 0x39
|
|
bl audio_play
|
|
b _08171486
|
|
_0817144A:
|
|
movs r0, 0x3A
|
|
bl audio_play
|
|
b _08171486
|
|
_08171452:
|
|
movs r0, 0x3B
|
|
bl audio_play
|
|
b _08171486
|
|
_0817145A:
|
|
movs r2, 0x38
|
|
ldrsh r0, [r4, r2]
|
|
movs r2, 0x36
|
|
ldrsh r1, [r4, r2]
|
|
bl cosine
|
|
negs r0, r0
|
|
strh r0, [r4, 0x26]
|
|
ldrh r1, [r4, 0x38]
|
|
subs r1, 0x4
|
|
ldrh r2, [r4, 0x34]
|
|
lsls r0, r2, 16
|
|
asrs r0, 24
|
|
subs r1, r0
|
|
strh r1, [r4, 0x38]
|
|
lsls r1, 16
|
|
cmp r1, 0
|
|
bgt _08171486
|
|
strh r5, [r4, 0x38]
|
|
ldr r0, =0xffffff00
|
|
ands r0, r2
|
|
strh r0, [r4, 0x34]
|
|
_08171486:
|
|
cmp r5, 0
|
|
beq _081714CA
|
|
movs r5, 0
|
|
strh r5, [r4, 0x34]
|
|
movs r0, 0x40
|
|
movs r1, 0x28
|
|
bl cosine
|
|
ldrh r1, [r4, 0x22]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x22]
|
|
strh r5, [r4, 0x26]
|
|
ldr r0, =gUnknown_020244D0
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, 0x8]
|
|
ldrb r0, [r0, 0x8]
|
|
cmp r0, 0
|
|
bne _081714C0
|
|
strh r5, [r4, 0x38]
|
|
ldr r0, =sub_81717B4
|
|
str r0, [r4, 0x1C]
|
|
b _081714CA
|
|
.pool
|
|
_081714C0:
|
|
ldr r0, =sub_81714D4
|
|
str r0, [r4, 0x1C]
|
|
movs r0, 0x1
|
|
strh r0, [r4, 0x36]
|
|
strh r5, [r4, 0x38]
|
|
_081714CA:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81713D0
|
|
|
|
thumb_func_start sub_81714D4
|
|
sub_81714D4: @ 81714D4
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
ldrh r0, [r4, 0x34]
|
|
adds r0, 0x1
|
|
movs r5, 0
|
|
strh r0, [r4, 0x34]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1F
|
|
bne _08171510
|
|
strh r5, [r4, 0x34]
|
|
adds r2, r4, 0
|
|
adds r2, 0x2C
|
|
ldrb r0, [r2]
|
|
movs r1, 0x80
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl StartObjectRotScalAnim
|
|
ldr r0, =gUnknown_020244D0
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, 0x8]
|
|
strh r5, [r0, 0xC]
|
|
ldr r0, =sub_8171520
|
|
str r0, [r4, 0x1C]
|
|
movs r0, 0x17
|
|
bl audio_play
|
|
_08171510:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81714D4
|
|
|
|
thumb_func_start sub_8171520
|
|
sub_8171520: @ 8171520
|
|
push {r4-r6,lr}
|
|
adds r4, r0, 0
|
|
ldrh r0, [r4, 0x34]
|
|
movs r1, 0xFF
|
|
ands r1, r0
|
|
cmp r1, 0x6
|
|
bls _08171530
|
|
b _08171768
|
|
_08171530:
|
|
lsls r0, r1, 2
|
|
ldr r1, =_08171540
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_08171540:
|
|
.4byte _0817155C
|
|
.4byte _081715AE
|
|
.4byte _081715F4
|
|
.4byte _08171654
|
|
.4byte _081716A4
|
|
.4byte _08171708
|
|
.4byte _08171768
|
|
_0817155C:
|
|
ldr r1, =gUnknown_020244D0
|
|
ldr r5, [r1]
|
|
ldr r2, [r5, 0x8]
|
|
ldrh r3, [r2, 0xC]
|
|
movs r6, 0xC
|
|
ldrsh r0, [r2, r6]
|
|
adds r6, r1, 0
|
|
cmp r0, 0xFF
|
|
ble _08171584
|
|
ldrh r0, [r4, 0x36]
|
|
ldrh r1, [r4, 0x24]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x24]
|
|
ldr r1, [r5, 0x8]
|
|
ldrb r0, [r1, 0xC]
|
|
strh r0, [r1, 0xC]
|
|
b _0817158A
|
|
.pool
|
|
_08171584:
|
|
adds r0, r3, 0
|
|
adds r0, 0xB0
|
|
strh r0, [r2, 0xC]
|
|
_0817158A:
|
|
ldrh r0, [r4, 0x38]
|
|
adds r0, 0x1
|
|
movs r3, 0
|
|
strh r0, [r4, 0x38]
|
|
adds r2, r4, 0
|
|
adds r2, 0x2C
|
|
ldrb r1, [r2]
|
|
movs r0, 0x7F
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
ldrh r0, [r4, 0x38]
|
|
adds r0, 0x7
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0xE
|
|
bhi _081715AC
|
|
b _081717AE
|
|
_081715AC:
|
|
b _08171644
|
|
_081715AE:
|
|
ldrh r0, [r4, 0x38]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x38]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1
|
|
bne _08171660
|
|
movs r0, 0
|
|
strh r0, [r4, 0x38]
|
|
ldrh r0, [r4, 0x36]
|
|
negs r0, r0
|
|
strh r0, [r4, 0x36]
|
|
ldrh r0, [r4, 0x34]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x34]
|
|
adds r2, r4, 0
|
|
adds r2, 0x2C
|
|
ldrb r1, [r2]
|
|
movs r0, 0x7F
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
movs r6, 0x36
|
|
ldrsh r0, [r4, r6]
|
|
cmp r0, 0
|
|
bge _081715EA
|
|
adds r0, r4, 0
|
|
movs r1, 0x2
|
|
bl sub_80082B8
|
|
b _081717AE
|
|
_081715EA:
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl sub_80082B8
|
|
b _081717AE
|
|
_081715F4:
|
|
ldr r1, =gUnknown_020244D0
|
|
ldr r5, [r1]
|
|
ldr r2, [r5, 0x8]
|
|
ldrh r3, [r2, 0xC]
|
|
movs r6, 0xC
|
|
ldrsh r0, [r2, r6]
|
|
adds r6, r1, 0
|
|
cmp r0, 0xFF
|
|
ble _0817161C
|
|
ldrh r0, [r4, 0x36]
|
|
ldrh r1, [r4, 0x24]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x24]
|
|
ldr r1, [r5, 0x8]
|
|
ldrb r0, [r1, 0xC]
|
|
strh r0, [r1, 0xC]
|
|
b _08171622
|
|
.pool
|
|
_0817161C:
|
|
adds r0, r3, 0
|
|
adds r0, 0xB0
|
|
strh r0, [r2, 0xC]
|
|
_08171622:
|
|
ldrh r0, [r4, 0x38]
|
|
adds r0, 0x1
|
|
movs r3, 0
|
|
strh r0, [r4, 0x38]
|
|
adds r2, r4, 0
|
|
adds r2, 0x2C
|
|
ldrb r1, [r2]
|
|
movs r0, 0x7F
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
ldrh r0, [r4, 0x38]
|
|
adds r0, 0xC
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x18
|
|
bhi _08171644
|
|
b _081717AE
|
|
_08171644:
|
|
ldr r0, [r6]
|
|
ldr r0, [r0, 0x8]
|
|
strh r3, [r0, 0xC]
|
|
ldrh r0, [r4, 0x34]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x34]
|
|
strh r3, [r4, 0x38]
|
|
b _081717AE
|
|
_08171654:
|
|
ldrh r0, [r4, 0x38]
|
|
adds r1, r0, 0x1
|
|
strh r1, [r4, 0x38]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bge _0817166E
|
|
_08171660:
|
|
adds r0, r4, 0
|
|
adds r0, 0x2C
|
|
ldrb r1, [r0]
|
|
movs r2, 0x80
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
b _081717AE
|
|
_0817166E:
|
|
movs r0, 0
|
|
strh r0, [r4, 0x38]
|
|
ldrh r0, [r4, 0x36]
|
|
negs r0, r0
|
|
strh r0, [r4, 0x36]
|
|
ldrh r0, [r4, 0x34]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x34]
|
|
adds r2, r4, 0
|
|
adds r2, 0x2C
|
|
ldrb r1, [r2]
|
|
movs r0, 0x7F
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
movs r6, 0x36
|
|
ldrsh r0, [r4, r6]
|
|
cmp r0, 0
|
|
bge _0817169C
|
|
adds r0, r4, 0
|
|
movs r1, 0x2
|
|
bl sub_80082B8
|
|
b _081716A4
|
|
_0817169C:
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl sub_80082B8
|
|
_081716A4:
|
|
ldr r1, =gUnknown_020244D0
|
|
ldr r5, [r1]
|
|
ldr r2, [r5, 0x8]
|
|
ldrh r3, [r2, 0xC]
|
|
movs r6, 0xC
|
|
ldrsh r0, [r2, r6]
|
|
adds r6, r1, 0
|
|
cmp r0, 0xFF
|
|
ble _081716CC
|
|
ldrh r0, [r4, 0x36]
|
|
ldrh r1, [r4, 0x24]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x24]
|
|
ldr r1, [r5, 0x8]
|
|
ldrb r0, [r1, 0xC]
|
|
strh r0, [r1, 0xC]
|
|
b _081716D2
|
|
.pool
|
|
_081716CC:
|
|
adds r0, r3, 0
|
|
adds r0, 0xB0
|
|
strh r0, [r2, 0xC]
|
|
_081716D2:
|
|
ldrh r0, [r4, 0x38]
|
|
adds r0, 0x1
|
|
movs r3, 0
|
|
strh r0, [r4, 0x38]
|
|
adds r2, r4, 0
|
|
adds r2, 0x2C
|
|
ldrb r1, [r2]
|
|
movs r0, 0x7F
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
ldrh r0, [r4, 0x38]
|
|
adds r0, 0x4
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x8
|
|
bls _081717AE
|
|
ldr r0, [r6]
|
|
ldr r0, [r0, 0x8]
|
|
strh r3, [r0, 0xC]
|
|
ldrh r0, [r4, 0x34]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x34]
|
|
strh r3, [r4, 0x38]
|
|
ldrh r0, [r4, 0x36]
|
|
negs r0, r0
|
|
strh r0, [r4, 0x36]
|
|
b _081717AE
|
|
_08171708:
|
|
movs r6, 0x80
|
|
lsls r6, 1
|
|
adds r0, r6, 0
|
|
ldrh r1, [r4, 0x34]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x34]
|
|
lsls r0, 16
|
|
asrs r1, r0, 24
|
|
ldr r0, =gUnknown_020244D0
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, 0x8]
|
|
ldrb r0, [r0, 0x8]
|
|
cmp r1, r0
|
|
bne _08171740
|
|
adds r2, r4, 0
|
|
adds r2, 0x2C
|
|
ldrb r0, [r2]
|
|
movs r1, 0x80
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r0, =sub_81717B4
|
|
str r0, [r4, 0x1C]
|
|
b _081717AE
|
|
.pool
|
|
_08171740:
|
|
cmp r0, 0x4
|
|
bne _08171754
|
|
cmp r1, 0x3
|
|
bne _08171754
|
|
ldr r0, =sub_81717D8
|
|
str r0, [r4, 0x1C]
|
|
b _0817175A
|
|
.pool
|
|
_08171754:
|
|
ldrh r0, [r4, 0x34]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x34]
|
|
_0817175A:
|
|
adds r2, r4, 0
|
|
adds r2, 0x2C
|
|
ldrb r0, [r2]
|
|
movs r1, 0x80
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
b _081717AE
|
|
_08171768:
|
|
ldrh r0, [r4, 0x38]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x38]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1F
|
|
bne _081717AE
|
|
movs r0, 0
|
|
strh r0, [r4, 0x38]
|
|
ldrh r1, [r4, 0x34]
|
|
ldr r0, =0xffffff00
|
|
ands r0, r1
|
|
strh r0, [r4, 0x34]
|
|
adds r0, r4, 0
|
|
movs r1, 0x3
|
|
bl StartObjectRotScalAnim
|
|
movs r6, 0x36
|
|
ldrsh r0, [r4, r6]
|
|
cmp r0, 0
|
|
bge _081717A0
|
|
adds r0, r4, 0
|
|
movs r1, 0x2
|
|
bl StartObjectRotScalAnim
|
|
b _081717A8
|
|
.pool
|
|
_081717A0:
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl StartObjectRotScalAnim
|
|
_081717A8:
|
|
movs r0, 0x17
|
|
bl audio_play
|
|
_081717AE:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8171520
|
|
|
|
thumb_func_start sub_81717B4
|
|
sub_81717B4: @ 81717B4
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
ldrh r0, [r1, 0x38]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x38]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1F
|
|
bne _081717CE
|
|
movs r0, 0
|
|
strh r0, [r1, 0x38]
|
|
ldr r0, =sub_8171AE4
|
|
str r0, [r1, 0x1C]
|
|
_081717CE:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81717B4
|
|
|
|
thumb_func_start sub_81717D8
|
|
sub_81717D8: @ 81717D8
|
|
adds r3, r0, 0
|
|
adds r3, 0x2C
|
|
ldrb r1, [r3]
|
|
movs r2, 0x40
|
|
orrs r1, r2
|
|
strb r1, [r3]
|
|
ldr r1, =sub_81717F8
|
|
str r1, [r0, 0x1C]
|
|
movs r1, 0
|
|
strh r1, [r0, 0x34]
|
|
strh r1, [r0, 0x36]
|
|
strh r1, [r0, 0x38]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_81717D8
|
|
|
|
thumb_func_start sub_81717F8
|
|
sub_81717F8: @ 81717F8
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x4
|
|
adds r6, r0, 0
|
|
ldr r7, =gUnknown_02038437
|
|
ldrh r0, [r6, 0x36]
|
|
adds r0, 0x1
|
|
movs r1, 0
|
|
mov r8, r1
|
|
strh r0, [r6, 0x36]
|
|
lsls r0, 16
|
|
asrs r1, r0, 16
|
|
cmp r1, 0x28
|
|
bne _0817183C
|
|
movs r0, 0xFE
|
|
bl audio_play
|
|
ldrb r1, [r6, 0x5]
|
|
lsrs r1, 4
|
|
movs r0, 0x80
|
|
lsls r0, 9
|
|
lsls r0, r1
|
|
movs r1, 0x6
|
|
movs r2, 0
|
|
bl sub_80A2A20
|
|
adds r0, r6, 0
|
|
bl sub_81719EC
|
|
b _081718BC
|
|
.pool
|
|
_0817183C:
|
|
cmp r1, 0x3C
|
|
bne _0817185A
|
|
ldrb r1, [r6, 0x5]
|
|
lsrs r1, 4
|
|
movs r0, 0x80
|
|
lsls r0, 9
|
|
lsls r0, r1
|
|
mov r1, r8
|
|
str r1, [sp]
|
|
movs r1, 0x2
|
|
movs r2, 0x6
|
|
movs r3, 0
|
|
bl pal_fade_maybe
|
|
b _081718BC
|
|
_0817185A:
|
|
cmp r1, 0x5F
|
|
bne _08171880
|
|
ldr r0, =gUnknown_020244B9
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
movs r0, 0x1
|
|
bl sub_8072A88
|
|
bl m4aMPlayAllStop
|
|
ldr r0, =0x00000213
|
|
bl audio_play
|
|
b _081718BC
|
|
.pool
|
|
_08171880:
|
|
ldr r0, =0x0000013b
|
|
cmp r1, r0
|
|
bne _081718BC
|
|
ldr r5, =gUnknown_02020630
|
|
ldr r4, =gUnknown_020241E4
|
|
ldrb r0, [r7]
|
|
adds r0, r4
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
ldrb r0, [r0, 0x3]
|
|
lsls r0, 26
|
|
lsrs r0, 27
|
|
bl rotscale_free_entry
|
|
ldrb r0, [r7]
|
|
adds r0, r4
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
bl RemoveObjectAndFreeTiles
|
|
mov r0, r8
|
|
strh r0, [r6, 0x2E]
|
|
ldr r0, =sub_81718D8
|
|
str r0, [r6, 0x1C]
|
|
_081718BC:
|
|
add sp, 0x4
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81717F8
|
|
|
|
thumb_func_start sub_81718D8
|
|
sub_81718D8: @ 81718D8
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x1
|
|
beq _08171944
|
|
cmp r0, 0x1
|
|
bgt _081718F0
|
|
cmp r0, 0
|
|
beq _081718F6
|
|
b _0817198A
|
|
_081718F0:
|
|
cmp r0, 0x2
|
|
beq _08171976
|
|
b _0817198A
|
|
_081718F6:
|
|
strh r0, [r4, 0x30]
|
|
strh r0, [r4, 0x32]
|
|
ldrb r1, [r4, 0x1]
|
|
movs r0, 0xD
|
|
negs r0, r0
|
|
ands r0, r1
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
strb r0, [r4, 0x1]
|
|
movs r1, 0xFD
|
|
lsls r1, 6
|
|
movs r0, 0x50
|
|
bl SetGpuReg
|
|
movs r0, 0x52
|
|
movs r1, 0x10
|
|
bl SetGpuReg
|
|
ldr r0, [r4, 0x14]
|
|
ldrh r0, [r0, 0x2]
|
|
bl IndexOfObjectPaletteTag
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r0, 0x10
|
|
movs r1, 0x1
|
|
lsls r1, r0
|
|
ldr r0, =0x00007fff
|
|
str r0, [sp]
|
|
adds r0, r1, 0
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0x10
|
|
bl pal_fade_maybe
|
|
b _08171982
|
|
.pool
|
|
_08171944:
|
|
ldrh r0, [r4, 0x30]
|
|
adds r1, r0, 0x1
|
|
strh r1, [r4, 0x30]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
ble _081719B0
|
|
movs r0, 0
|
|
strh r0, [r4, 0x30]
|
|
ldrh r2, [r4, 0x32]
|
|
adds r2, 0x1
|
|
strh r2, [r4, 0x32]
|
|
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, 0x32
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x10
|
|
bne _081719B0
|
|
b _08171982
|
|
_08171976:
|
|
adds r2, r4, 0
|
|
adds r2, 0x3E
|
|
ldrb r0, [r2]
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
_08171982:
|
|
ldrh r0, [r4, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
b _081719B0
|
|
_0817198A:
|
|
ldr r0, =gUnknown_02037FD4
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0
|
|
bne _081719B0
|
|
movs r0, 0x50
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x52
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
strh r5, [r4, 0x2E]
|
|
ldr r0, =sub_81719C0
|
|
str r0, [r4, 0x1C]
|
|
_081719B0:
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81718D8
|
|
|
|
thumb_func_start sub_81719C0
|
|
sub_81719C0: @ 81719C0
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrh r1, [r4, 0x2E]
|
|
movs r2, 0x2E
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0
|
|
bne _081719D8
|
|
ldr r0, =0x0000ffff
|
|
strh r0, [r4, 0x2E]
|
|
b _081719E4
|
|
.pool
|
|
_081719D8:
|
|
adds r0, r4, 0
|
|
bl obj_free_rotscale_entry
|
|
adds r0, r4, 0
|
|
bl RemoveObjectAndFreeTiles
|
|
_081719E4:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_81719C0
|
|
|
|
thumb_func_start sub_81719EC
|
|
sub_81719EC: @ 81719EC
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
adds r6, r0, 0
|
|
adds r1, r6, 0
|
|
adds r1, 0x43
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
beq _08171A0C
|
|
subs r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
b _08171A14
|
|
_08171A0C:
|
|
movs r0, 0
|
|
mov r8, r0
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
_08171A14:
|
|
movs r0, 0x4
|
|
bl sub_8171D60
|
|
movs r7, 0
|
|
ldr r2, =gUnknown_02020630
|
|
mov r9, r2
|
|
movs r0, 0x1C
|
|
add r0, r9
|
|
mov r10, r0
|
|
_08171A26:
|
|
movs r2, 0x20
|
|
ldrsh r1, [r6, r2]
|
|
movs r0, 0x22
|
|
ldrsh r2, [r6, r0]
|
|
ldr r0, =gUnknown_085E5250
|
|
mov r3, r8
|
|
bl AddObjectToFront
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x40
|
|
beq _08171A82
|
|
lsls r4, r0, 4
|
|
adds r4, r0
|
|
lsls r4, 2
|
|
mov r2, r9
|
|
adds r5, r4, r2
|
|
movs r0, 0x18
|
|
strh r0, [r5, 0x2E]
|
|
ldr r0, =gUnknown_085E5088
|
|
lsls r1, r7, 2
|
|
adds r1, r0
|
|
movs r0, 0
|
|
ldrsb r0, [r1, r0]
|
|
ldrh r2, [r6, 0x20]
|
|
adds r0, r2
|
|
strh r0, [r5, 0x32]
|
|
movs r0, 0x1
|
|
ldrsb r0, [r1, r0]
|
|
ldrh r2, [r6, 0x22]
|
|
adds r0, r2
|
|
strh r0, [r5, 0x36]
|
|
movs r0, 0x2
|
|
ldrsb r0, [r1, r0]
|
|
strh r0, [r5, 0x38]
|
|
adds r0, r5, 0
|
|
bl sub_80A68D4
|
|
add r4, r10
|
|
ldr r0, =sub_8171AAC
|
|
str r0, [r4]
|
|
ldr r0, =gUnknown_085E51B4
|
|
ldrb r1, [r0, 0x4]
|
|
adds r0, r5, 0
|
|
bl StartObjectImageAnim
|
|
_08171A82:
|
|
adds r7, 0x1
|
|
cmp r7, 0x2
|
|
bls _08171A26
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81719EC
|
|
|
|
thumb_func_start sub_8171AAC
|
|
sub_8171AAC: @ 8171AAC
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
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]
|
|
adds r0, r4, 0
|
|
bl sub_80A6900
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08171ADC
|
|
adds r0, r4, 0
|
|
bl RemoveObjectAndFreeTiles
|
|
_08171ADC:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8171AAC
|
|
|
|
thumb_func_start sub_8171AE4
|
|
sub_8171AE4: @ 8171AE4
|
|
push {r4-r6,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
movs r1, 0x1
|
|
bl StartObjectImageAnim
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl StartObjectRotScalAnim
|
|
ldr r0, =sub_8171BAC
|
|
str r0, [r4, 0x1C]
|
|
ldr r0, =gUnknown_02024208
|
|
ldrh r0, [r0]
|
|
bl ball_number_to_ball_processing_index
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0xB
|
|
bgt _08171B36
|
|
cmp r5, 0
|
|
blt _08171B36
|
|
ldrh r0, [r4, 0x20]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrh r1, [r4, 0x22]
|
|
subs r1, 0x5
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
str r5, [sp]
|
|
movs r2, 0x1
|
|
movs r3, 0x1C
|
|
bl sub_8171D98
|
|
ldr r0, =gUnknown_02038437
|
|
ldrb r1, [r0]
|
|
movs r0, 0x1
|
|
movs r2, 0xE
|
|
adds r3, r5, 0
|
|
bl sub_81729E8
|
|
_08171B36:
|
|
ldr r6, =gUnknown_02020630
|
|
ldr r5, =gUnknown_020241E4
|
|
ldr r4, =gUnknown_02038437
|
|
ldrb r0, [r4]
|
|
adds r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
adds r0, 0x3E
|
|
ldrb r2, [r0]
|
|
movs r1, 0x5
|
|
negs r1, r1
|
|
ands r1, r2
|
|
strb r1, [r0]
|
|
ldrb r0, [r4]
|
|
adds r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
movs r1, 0x1
|
|
bl StartObjectRotScalAnim
|
|
ldrb r0, [r4]
|
|
adds r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
bl AnimateObject
|
|
ldrb r0, [r4]
|
|
adds r0, r5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
movs r1, 0x80
|
|
lsls r1, 5
|
|
strh r1, [r0, 0x30]
|
|
add sp, 0x4
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8171AE4
|
|
|
|
thumb_func_start sub_8171BAC
|
|
sub_8171BAC: @ 8171BAC
|
|
push {r4-r7,lr}
|
|
adds r7, r0, 0
|
|
movs r5, 0
|
|
adds r0, 0x3F
|
|
ldrb r1, [r0]
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08171BCA
|
|
adds r2, r7, 0
|
|
adds r2, 0x3E
|
|
ldrb r0, [r2]
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
_08171BCA:
|
|
ldr r4, =gUnknown_02020630
|
|
ldr r3, =gUnknown_020241E4
|
|
ldr r2, =gUnknown_02038437
|
|
ldrb r0, [r2]
|
|
adds r0, r3
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r1, r0, r4
|
|
adds r0, r1, 0
|
|
adds r0, 0x3F
|
|
ldrb r0, [r0]
|
|
lsls r0, 26
|
|
cmp r0, 0
|
|
bge _08171C04
|
|
adds r0, r1, 0
|
|
movs r1, 0
|
|
bl StartObjectRotScalAnim
|
|
movs r5, 0x1
|
|
b _08171C24
|
|
.pool
|
|
_08171C04:
|
|
ldr r6, =0xfffffee0
|
|
adds r0, r6, 0
|
|
ldrh r6, [r1, 0x30]
|
|
adds r0, r6
|
|
strh r0, [r1, 0x30]
|
|
ldrb r0, [r2]
|
|
adds r0, r3
|
|
ldrb r0, [r0]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r4
|
|
ldrh r0, [r1, 0x30]
|
|
lsls r0, 16
|
|
asrs r0, 24
|
|
strh r0, [r1, 0x26]
|
|
_08171C24:
|
|
adds r0, r7, 0
|
|
adds r0, 0x3F
|
|
ldrb r1, [r0]
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08171C8A
|
|
cmp r5, 0
|
|
beq _08171C8A
|
|
ldr r4, =gUnknown_02020630
|
|
ldr r3, =gUnknown_020241E4
|
|
ldr r2, =gUnknown_02038437
|
|
ldrb r0, [r2]
|
|
adds r0, r3
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
movs r6, 0
|
|
movs r5, 0
|
|
strh r5, [r0, 0x26]
|
|
ldrb r0, [r2]
|
|
adds r0, r3
|
|
ldrb r0, [r0]
|
|
lsls r2, r0, 4
|
|
adds r2, r0
|
|
lsls r2, 2
|
|
adds r2, r4
|
|
ldr r0, =gUnknown_020244D0
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, 0x8]
|
|
ldrb r1, [r0, 0x9]
|
|
lsls r1, 30
|
|
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]
|
|
strh r5, [r7, 0x2E]
|
|
ldr r0, =sub_81719C0
|
|
str r0, [r7, 0x1C]
|
|
ldr r0, =gUnknown_020244B9
|
|
strb r6, [r0]
|
|
movs r0, 0x1
|
|
bl sub_8072A88
|
|
_08171C8A:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8171BAC
|
|
|
|
thumb_func_start sub_8171CAC
|
|
sub_8171CAC: @ 8171CAC
|
|
push {r4,lr}
|
|
adds r2, r0, 0
|
|
ldrh r0, [r2, 0x24]
|
|
ldrh r1, [r2, 0x20]
|
|
adds r0, r1
|
|
movs r1, 0
|
|
strh r0, [r2, 0x20]
|
|
ldrh r0, [r2, 0x26]
|
|
ldrh r3, [r2, 0x22]
|
|
adds r0, r3
|
|
strh r0, [r2, 0x22]
|
|
strh r1, [r2, 0x26]
|
|
strh r1, [r2, 0x24]
|
|
ldr r4, =sub_8171CE8
|
|
movs r3, 0
|
|
movs r1, 0x5
|
|
adds r0, r2, 0
|
|
adds r0, 0x38
|
|
_08171CD0:
|
|
strh r3, [r0]
|
|
subs r0, 0x2
|
|
subs r1, 0x1
|
|
cmp r1, 0
|
|
bge _08171CD0
|
|
str r4, [r2, 0x1C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8171CAC
|
|
|
|
thumb_func_start sub_8171CE8
|
|
sub_8171CE8: @ 8171CE8
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x80
|
|
lsls r0, 4
|
|
adds r2, r0, 0
|
|
ldrh r1, [r4, 0x2E]
|
|
adds r2, r1
|
|
movs r0, 0xD0
|
|
lsls r0, 3
|
|
adds r3, r0, 0
|
|
ldrh r1, [r4, 0x30]
|
|
adds r3, r1
|
|
lsls r1, r3, 16
|
|
asrs r1, 24
|
|
ldrh r0, [r4, 0x24]
|
|
subs r0, r1
|
|
strh r0, [r4, 0x24]
|
|
lsls r0, r2, 16
|
|
asrs r0, 24
|
|
ldrh r1, [r4, 0x26]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x26]
|
|
movs r0, 0xFF
|
|
ands r2, r0
|
|
strh r2, [r4, 0x2E]
|
|
ands r3, r0
|
|
strh r3, [r4, 0x30]
|
|
movs r2, 0x22
|
|
ldrsh r0, [r4, r2]
|
|
movs r2, 0x26
|
|
ldrsh r1, [r4, r2]
|
|
adds r0, r1
|
|
cmp r0, 0xA0
|
|
bgt _08171D3E
|
|
movs r1, 0x20
|
|
ldrsh r0, [r4, r1]
|
|
movs r2, 0x24
|
|
ldrsh r1, [r4, r2]
|
|
adds r0, r1
|
|
movs r1, 0x8
|
|
negs r1, r1
|
|
cmp r0, r1
|
|
bge _08171D52
|
|
_08171D3E:
|
|
movs r0, 0
|
|
strh r0, [r4, 0x2E]
|
|
ldr r0, =sub_81719C0
|
|
str r0, [r4, 0x1C]
|
|
ldr r1, =gUnknown_020244B9
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
movs r0, 0x1
|
|
bl sub_8072A88
|
|
_08171D52:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8171CE8
|
|
|
|
thumb_func_start sub_8171D60
|
|
sub_8171D60: @ 8171D60
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
ldr r1, =gUnknown_085E5094
|
|
lsrs r5, r0, 21
|
|
adds r4, r5, r1
|
|
ldrh r0, [r4, 0x6]
|
|
bl GetObjectTileRangeStartByTag
|
|
lsls r0, 16
|
|
ldr r1, =0xffff0000
|
|
cmp r0, r1
|
|
bne _08171D86
|
|
adds r0, r4, 0
|
|
bl LoadCompressedObjectPicUsingHeap
|
|
ldr r0, =gUnknown_085E50F4
|
|
adds r0, r5, r0
|
|
bl LoadCompressedObjectPaletteUsingHeap
|
|
_08171D86:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8171D60
|
|
|
|
thumb_func_start sub_8171D98
|
|
sub_8171D98: @ 8171D98
|
|
push {r4-r6,lr}
|
|
mov r6, r10
|
|
mov r5, r9
|
|
mov r4, r8
|
|
push {r4-r6}
|
|
adds r6, r0, 0
|
|
mov r8, r1
|
|
mov r9, r2
|
|
mov r10, r3
|
|
ldr r5, [sp, 0x1C]
|
|
lsls r6, 24
|
|
lsrs r6, 24
|
|
mov r0, r8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
mov r1, r9
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
mov r9, r1
|
|
mov r0, r10
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r10, r0
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
adds r0, r5, 0
|
|
bl sub_8171D60
|
|
ldr r1, =gUnknown_085E51C0
|
|
lsls r0, r5, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0x5
|
|
bl CreateTask
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
ldr r1, =gTasks
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
strh r6, [r0, 0xA]
|
|
mov r1, r8
|
|
strh r1, [r0, 0xC]
|
|
mov r1, r9
|
|
strh r1, [r0, 0xE]
|
|
mov r1, r10
|
|
strh r1, [r0, 0x10]
|
|
strh r5, [r0, 0x26]
|
|
movs r0, 0xF
|
|
bl audio_play
|
|
adds r0, r4, 0
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_8171D98
|
|
|
|
thumb_func_start sub_8171E20
|
|
sub_8171E20: @ 8171E20
|
|
push {lr}
|
|
ldr r0, =gUnknown_030022C0
|
|
ldr r1, =0x00000439
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08171E3E
|
|
ldr r0, =gUnknown_020244D0
|
|
ldr r0, [r0]
|
|
ldr r1, [r0, 0x8]
|
|
ldrb r0, [r1, 0xA]
|
|
adds r0, 0x1
|
|
strb r0, [r1, 0xA]
|
|
_08171E3E:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8171E20
|
|
|
|
thumb_func_start sub_8171E50
|
|
sub_8171E50: @ 8171E50
|
|
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 r8, r0
|
|
ldr r1, =gTasks
|
|
lsls r0, 2
|
|
add r0, r8
|
|
lsls r0, 3
|
|
adds r6, r0, r1
|
|
ldrh r0, [r6, 0x26]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
str r0, [sp]
|
|
movs r2, 0x8
|
|
ldrsh r0, [r6, r2]
|
|
adds r2, r1, 0
|
|
cmp r0, 0xF
|
|
bgt _08171F48
|
|
ldrb r1, [r6, 0xA]
|
|
ldrb r2, [r6, 0xC]
|
|
ldrb r4, [r6, 0xE]
|
|
mov r9, r4
|
|
ldrb r3, [r6, 0x10]
|
|
ldr r4, [sp]
|
|
lsls r0, r4, 1
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
ldr r4, =gUnknown_085E51F0
|
|
adds r0, r4
|
|
bl AddObjectToFront
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r10, r0
|
|
cmp r0, 0x40
|
|
beq _08171EEC
|
|
bl sub_8171E20
|
|
mov r0, r10
|
|
lsls r4, r0, 4
|
|
add r4, r10
|
|
lsls r4, 2
|
|
ldr r5, =gUnknown_02020630
|
|
adds r7, r4, r5
|
|
ldr r0, =gUnknown_085E51B4
|
|
ldr r1, [sp]
|
|
adds r0, r1, r0
|
|
ldrb r1, [r0]
|
|
adds r0, r7, 0
|
|
bl StartObjectImageAnim
|
|
adds r5, 0x1C
|
|
adds r4, r5
|
|
ldr r0, =sub_8171F68
|
|
str r0, [r4]
|
|
movs r0, 0x3
|
|
mov r2, r9
|
|
ands r2, r0
|
|
lsls r2, 2
|
|
ldrb r1, [r7, 0x5]
|
|
movs r0, 0xD
|
|
negs r0, r0
|
|
ands r0, r1
|
|
orrs r0, r2
|
|
strb r0, [r7, 0x5]
|
|
ldrb r0, [r6, 0x8]
|
|
cmp r0, 0x7
|
|
bls _08171EE8
|
|
subs r0, 0x8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
_08171EE8:
|
|
lsls r0, 5
|
|
strh r0, [r7, 0x2E]
|
|
_08171EEC:
|
|
ldr r0, =gTasks
|
|
mov r4, r8
|
|
lsls r1, r4, 2
|
|
add r1, r8
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
movs r2, 0x8
|
|
ldrsh r1, [r1, r2]
|
|
adds r2, r0, 0
|
|
cmp r1, 0xF
|
|
bne _08171F48
|
|
ldr r0, =gUnknown_030022C0
|
|
ldr r4, =0x00000439
|
|
adds r0, r4
|
|
ldrb r1, [r0]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08171F22
|
|
ldr r0, =gUnknown_02020630
|
|
mov r2, r10
|
|
lsls r1, r2, 4
|
|
add r1, r10
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
movs r0, 0x1
|
|
strh r0, [r1, 0x3C]
|
|
_08171F22:
|
|
mov r0, r8
|
|
bl DestroyTask
|
|
b _08171F58
|
|
.pool
|
|
_08171F48:
|
|
mov r4, r8
|
|
lsls r0, r4, 2
|
|
add r0, r8
|
|
lsls r0, 3
|
|
adds r0, r2
|
|
ldrh r1, [r0, 0x8]
|
|
adds r1, 0x1
|
|
strh r1, [r0, 0x8]
|
|
_08171F58:
|
|
add sp, 0x4
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8171E50
|
|
|
|
thumb_func_start sub_8171F68
|
|
sub_8171F68: @ 8171F68
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
ldrh r2, [r1, 0x30]
|
|
movs r3, 0x30
|
|
ldrsh r0, [r1, r3]
|
|
cmp r0, 0
|
|
bne _08171F80
|
|
ldr r0, =sub_8171F88
|
|
str r0, [r1, 0x1C]
|
|
b _08171F84
|
|
.pool
|
|
_08171F80:
|
|
subs r0, r2, 0x1
|
|
strh r0, [r1, 0x30]
|
|
_08171F84:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8171F68
|
|
|
|
thumb_func_start sub_8171F88
|
|
sub_8171F88: @ 8171F88
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r4, r1]
|
|
movs r2, 0x30
|
|
ldrsh r1, [r4, r2]
|
|
bl sine
|
|
strh r0, [r4, 0x24]
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r4, r1]
|
|
movs r2, 0x30
|
|
ldrsh r1, [r4, r2]
|
|
bl cosine
|
|
strh r0, [r4, 0x26]
|
|
ldrh r0, [r4, 0x30]
|
|
adds r0, 0x2
|
|
strh r0, [r4, 0x30]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x32
|
|
bne _08171FBC
|
|
adds r0, r4, 0
|
|
bl sub_8172944
|
|
_08171FBC:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8171F88
|
|
|
|
thumb_func_start sub_8171FC4
|
|
sub_8171FC4: @ 8171FC4
|
|
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
|
|
mov r9, r0
|
|
ldr r0, =gTasks
|
|
mov r2, r9
|
|
lsls r1, r2, 2
|
|
add r1, r9
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldrh r0, [r1, 0x26]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
ldrb r3, [r1, 0xA]
|
|
str r3, [sp]
|
|
ldrb r0, [r1, 0xC]
|
|
str r0, [sp, 0x4]
|
|
ldrb r2, [r1, 0xE]
|
|
str r2, [sp, 0x8]
|
|
ldrb r1, [r1, 0x10]
|
|
str r1, [sp, 0xC]
|
|
movs r7, 0
|
|
ldr r3, =gUnknown_02020630
|
|
mov r10, r3
|
|
mov r1, r8
|
|
lsls r0, r1, 1
|
|
add r0, r8
|
|
lsls r0, 3
|
|
str r0, [sp, 0x10]
|
|
_0817200A:
|
|
ldr r0, =gUnknown_085E51F0
|
|
ldr r2, [sp, 0x10]
|
|
adds r0, r2, r0
|
|
ldr r1, [sp]
|
|
ldr r2, [sp, 0x4]
|
|
ldr r3, [sp, 0xC]
|
|
bl AddObjectToFront
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
cmp r6, 0x40
|
|
beq _0817206A
|
|
bl sub_8171E20
|
|
lsls r4, r6, 4
|
|
adds r4, r6
|
|
lsls r4, 2
|
|
mov r3, r10
|
|
adds r5, r4, r3
|
|
ldr r0, =gUnknown_085E51B4
|
|
add r0, r8
|
|
ldrb r1, [r0]
|
|
adds r0, r5, 0
|
|
bl StartObjectImageAnim
|
|
ldr r0, =gUnknown_0202064C
|
|
adds r4, r0
|
|
ldr r0, =sub_8172508
|
|
str r0, [r4]
|
|
movs r0, 0x3
|
|
ldr r2, [sp, 0x8]
|
|
ands r2, r0
|
|
lsls r2, 2
|
|
ldrb r0, [r5, 0x5]
|
|
movs r3, 0xD
|
|
negs r3, r3
|
|
adds r1, r3, 0
|
|
ands r0, r1
|
|
orrs r0, r2
|
|
strb r0, [r5, 0x5]
|
|
lsls r0, r7, 5
|
|
strh r0, [r5, 0x2E]
|
|
movs r0, 0xA
|
|
strh r0, [r5, 0x36]
|
|
movs r0, 0x2
|
|
strh r0, [r5, 0x38]
|
|
movs r0, 0x1
|
|
strh r0, [r5, 0x3A]
|
|
_0817206A:
|
|
adds r0, r7, 0x1
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
cmp r7, 0x7
|
|
bls _0817200A
|
|
ldr r0, =gUnknown_030022C0
|
|
ldr r1, =0x00000439
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08172092
|
|
ldr r0, =gUnknown_02020630
|
|
lsls r1, r6, 4
|
|
adds r1, r6
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
movs r0, 0x1
|
|
strh r0, [r1, 0x3C]
|
|
_08172092:
|
|
mov r0, r9
|
|
bl DestroyTask
|
|
add sp, 0x14
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8171FC4
|
|
|
|
thumb_func_start sub_81720C8
|
|
sub_81720C8: @ 81720C8
|
|
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
|
|
mov r9, r0
|
|
ldr r0, =gTasks
|
|
mov r2, r9
|
|
lsls r1, r2, 2
|
|
add r1, r9
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldrh r0, [r1, 0x26]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
ldrb r3, [r1, 0xA]
|
|
str r3, [sp]
|
|
ldrb r0, [r1, 0xC]
|
|
str r0, [sp, 0x4]
|
|
ldrb r2, [r1, 0xE]
|
|
str r2, [sp, 0x8]
|
|
ldrb r1, [r1, 0x10]
|
|
str r1, [sp, 0xC]
|
|
movs r7, 0
|
|
ldr r3, =gUnknown_02020630
|
|
mov r10, r3
|
|
mov r1, r8
|
|
lsls r0, r1, 1
|
|
add r0, r8
|
|
lsls r0, 3
|
|
str r0, [sp, 0x10]
|
|
_0817210E:
|
|
ldr r0, =gUnknown_085E51F0
|
|
ldr r2, [sp, 0x10]
|
|
adds r0, r2, r0
|
|
ldr r1, [sp]
|
|
ldr r2, [sp, 0x4]
|
|
ldr r3, [sp, 0xC]
|
|
bl AddObjectToFront
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
cmp r6, 0x40
|
|
beq _0817216E
|
|
bl sub_8171E20
|
|
lsls r4, r6, 4
|
|
adds r4, r6
|
|
lsls r4, 2
|
|
mov r3, r10
|
|
adds r5, r4, r3
|
|
ldr r0, =gUnknown_085E51B4
|
|
add r0, r8
|
|
ldrb r1, [r0]
|
|
adds r0, r5, 0
|
|
bl StartObjectImageAnim
|
|
ldr r0, =gUnknown_0202064C
|
|
adds r4, r0
|
|
ldr r0, =sub_8172508
|
|
str r0, [r4]
|
|
movs r0, 0x3
|
|
ldr r2, [sp, 0x8]
|
|
ands r2, r0
|
|
lsls r2, 2
|
|
ldrb r0, [r5, 0x5]
|
|
movs r3, 0xD
|
|
negs r3, r3
|
|
adds r1, r3, 0
|
|
ands r0, r1
|
|
orrs r0, r2
|
|
strb r0, [r5, 0x5]
|
|
lsls r0, r7, 5
|
|
strh r0, [r5, 0x2E]
|
|
movs r0, 0xA
|
|
strh r0, [r5, 0x36]
|
|
movs r0, 0x1
|
|
strh r0, [r5, 0x38]
|
|
movs r0, 0x2
|
|
strh r0, [r5, 0x3A]
|
|
_0817216E:
|
|
adds r0, r7, 0x1
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
cmp r7, 0x7
|
|
bls _0817210E
|
|
ldr r0, =gUnknown_030022C0
|
|
ldr r1, =0x00000439
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08172196
|
|
ldr r0, =gUnknown_02020630
|
|
lsls r1, r6, 4
|
|
adds r1, r6
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
movs r0, 0x1
|
|
strh r0, [r1, 0x3C]
|
|
_08172196:
|
|
mov r0, r9
|
|
bl DestroyTask
|
|
add sp, 0x14
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81720C8
|
|
|
|
thumb_func_start sub_81721CC
|
|
sub_81721CC: @ 81721CC
|
|
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
|
|
mov r9, r0
|
|
ldr r1, =gTasks
|
|
lsls r0, 2
|
|
add r0, r9
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldrh r1, [r0, 0x26]
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
ldrb r2, [r0, 0xA]
|
|
str r2, [sp]
|
|
ldrb r3, [r0, 0xC]
|
|
str r3, [sp, 0x4]
|
|
ldrb r2, [r0, 0xE]
|
|
str r2, [sp, 0x8]
|
|
ldrb r0, [r0, 0x10]
|
|
str r0, [sp, 0xC]
|
|
movs r7, 0
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
str r0, [sp, 0x10]
|
|
ldr r3, =gUnknown_02020630
|
|
mov r8, r3
|
|
ldr r0, =gUnknown_085E51B4
|
|
adds r1, r0
|
|
mov r10, r1
|
|
_08172212:
|
|
ldr r0, =gUnknown_085E51F0
|
|
ldr r1, [sp, 0x10]
|
|
adds r0, r1, r0
|
|
ldr r1, [sp]
|
|
ldr r2, [sp, 0x4]
|
|
ldr r3, [sp, 0xC]
|
|
bl AddObjectToFront
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
cmp r6, 0x40
|
|
beq _0817226E
|
|
bl sub_8171E20
|
|
lsls r4, r6, 4
|
|
adds r4, r6
|
|
lsls r4, 2
|
|
mov r2, r8
|
|
adds r5, r4, r2
|
|
mov r3, r10
|
|
ldrb r1, [r3]
|
|
adds r0, r5, 0
|
|
bl StartObjectImageAnim
|
|
ldr r0, =gUnknown_0202064C
|
|
adds r4, r0
|
|
ldr r0, =sub_8172508
|
|
str r0, [r4]
|
|
movs r0, 0x3
|
|
ldr r2, [sp, 0x8]
|
|
ands r2, r0
|
|
lsls r2, 2
|
|
ldrb r0, [r5, 0x5]
|
|
movs r3, 0xD
|
|
negs r3, r3
|
|
adds r1, r3, 0
|
|
ands r0, r1
|
|
orrs r0, r2
|
|
strb r0, [r5, 0x5]
|
|
lsls r0, r7, 5
|
|
strh r0, [r5, 0x2E]
|
|
movs r0, 0x4
|
|
strh r0, [r5, 0x36]
|
|
movs r0, 0x1
|
|
strh r0, [r5, 0x38]
|
|
strh r0, [r5, 0x3A]
|
|
_0817226E:
|
|
adds r0, r7, 0x1
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
cmp r7, 0x7
|
|
bls _08172212
|
|
ldr r0, =gUnknown_030022C0
|
|
ldr r1, =0x00000439
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08172296
|
|
ldr r0, =gUnknown_02020630
|
|
lsls r1, r6, 4
|
|
adds r1, r6
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
movs r0, 0x1
|
|
strh r0, [r1, 0x3C]
|
|
_08172296:
|
|
mov r0, r9
|
|
bl DestroyTask
|
|
add sp, 0x14
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81721CC
|
|
|
|
thumb_func_start sub_81722CC
|
|
sub_81722CC: @ 81722CC
|
|
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
|
|
mov r9, r0
|
|
ldr r0, =gTasks
|
|
mov r2, r9
|
|
lsls r1, r2, 2
|
|
add r1, r9
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldrh r0, [r1, 0x26]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
ldrb r3, [r1, 0xA]
|
|
str r3, [sp]
|
|
ldrb r0, [r1, 0xC]
|
|
str r0, [sp, 0x4]
|
|
ldrb r2, [r1, 0xE]
|
|
str r2, [sp, 0x8]
|
|
ldrb r1, [r1, 0x10]
|
|
str r1, [sp, 0xC]
|
|
movs r7, 0
|
|
ldr r3, =gUnknown_02020630
|
|
mov r10, r3
|
|
mov r1, r8
|
|
lsls r0, r1, 1
|
|
add r0, r8
|
|
lsls r0, 3
|
|
str r0, [sp, 0x10]
|
|
_08172312:
|
|
ldr r0, =gUnknown_085E51F0
|
|
ldr r2, [sp, 0x10]
|
|
adds r0, r2, r0
|
|
ldr r1, [sp]
|
|
ldr r2, [sp, 0x4]
|
|
ldr r3, [sp, 0xC]
|
|
bl AddObjectToFront
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
cmp r6, 0x40
|
|
beq _08172376
|
|
bl sub_8171E20
|
|
lsls r4, r6, 4
|
|
adds r4, r6
|
|
lsls r4, 2
|
|
mov r3, r10
|
|
adds r5, r4, r3
|
|
ldr r0, =gUnknown_085E51B4
|
|
add r0, r8
|
|
ldrb r1, [r0]
|
|
adds r0, r5, 0
|
|
bl StartObjectImageAnim
|
|
ldr r0, =gUnknown_0202064C
|
|
adds r4, r0
|
|
ldr r0, =sub_8172508
|
|
str r0, [r4]
|
|
movs r0, 0x3
|
|
ldr r2, [sp, 0x8]
|
|
ands r2, r0
|
|
lsls r2, 2
|
|
ldrb r0, [r5, 0x5]
|
|
movs r3, 0xD
|
|
negs r3, r3
|
|
adds r1, r3, 0
|
|
ands r0, r1
|
|
orrs r0, r2
|
|
strb r0, [r5, 0x5]
|
|
lsls r0, r7, 1
|
|
adds r0, r7
|
|
lsls r0, 3
|
|
adds r0, r7
|
|
strh r0, [r5, 0x2E]
|
|
movs r0, 0x5
|
|
strh r0, [r5, 0x36]
|
|
movs r0, 0x1
|
|
strh r0, [r5, 0x38]
|
|
strh r0, [r5, 0x3A]
|
|
_08172376:
|
|
adds r0, r7, 0x1
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
cmp r7, 0x9
|
|
bls _08172312
|
|
ldr r0, =gUnknown_030022C0
|
|
ldr r1, =0x00000439
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0817239E
|
|
ldr r0, =gUnknown_02020630
|
|
lsls r1, r6, 4
|
|
adds r1, r6
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
movs r0, 0x1
|
|
strh r0, [r1, 0x3C]
|
|
_0817239E:
|
|
mov r0, r9
|
|
bl DestroyTask
|
|
add sp, 0x14
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81722CC
|
|
|
|
thumb_func_start sub_81723D4
|
|
sub_81723D4: @ 81723D4
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x18
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
ldr r1, =gTasks
|
|
lsls r2, r0, 2
|
|
adds r0, r2, r0
|
|
lsls r0, 3
|
|
adds r3, r0, r1
|
|
ldrh r1, [r3, 0x16]
|
|
movs r4, 0x16
|
|
ldrsh r0, [r3, r4]
|
|
cmp r0, 0
|
|
beq _08172404
|
|
subs r0, r1, 0x1
|
|
strh r0, [r3, 0x16]
|
|
b _081724D6
|
|
.pool
|
|
_08172404:
|
|
ldrh r0, [r3, 0x26]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrb r1, [r3, 0xA]
|
|
str r1, [sp]
|
|
ldrb r4, [r3, 0xC]
|
|
str r4, [sp, 0x4]
|
|
ldrb r1, [r3, 0xE]
|
|
str r1, [sp, 0x8]
|
|
ldrb r3, [r3, 0x10]
|
|
str r3, [sp, 0xC]
|
|
movs r7, 0
|
|
str r2, [sp, 0x14]
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
str r1, [sp, 0x10]
|
|
ldr r3, =gUnknown_02020630
|
|
mov r9, r3
|
|
ldr r1, =gUnknown_085E51B4
|
|
adds r0, r1
|
|
mov r10, r0
|
|
_08172430:
|
|
ldr r0, =gUnknown_085E51F0
|
|
ldr r4, [sp, 0x10]
|
|
adds r0, r4, r0
|
|
ldr r1, [sp]
|
|
ldr r2, [sp, 0x4]
|
|
ldr r3, [sp, 0xC]
|
|
bl AddObjectToFront
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
cmp r6, 0x40
|
|
beq _0817248C
|
|
bl sub_8171E20
|
|
lsls r4, r6, 4
|
|
adds r4, r6
|
|
lsls r4, 2
|
|
mov r0, r9
|
|
adds r5, r4, r0
|
|
mov r3, r10
|
|
ldrb r1, [r3]
|
|
adds r0, r5, 0
|
|
bl StartObjectImageAnim
|
|
ldr r0, =gUnknown_0202064C
|
|
adds r4, r0
|
|
ldr r0, =sub_8172508
|
|
str r0, [r4]
|
|
movs r0, 0x3
|
|
ldr r2, [sp, 0x8]
|
|
ands r2, r0
|
|
lsls r2, 2
|
|
ldrb r0, [r5, 0x5]
|
|
movs r3, 0xD
|
|
negs r3, r3
|
|
adds r1, r3, 0
|
|
ands r0, r1
|
|
orrs r0, r2
|
|
strb r0, [r5, 0x5]
|
|
lsls r0, r7, 5
|
|
strh r0, [r5, 0x2E]
|
|
movs r0, 0x8
|
|
strh r0, [r5, 0x36]
|
|
movs r0, 0x2
|
|
strh r0, [r5, 0x38]
|
|
strh r0, [r5, 0x3A]
|
|
_0817248C:
|
|
adds r0, r7, 0x1
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
cmp r7, 0x7
|
|
bls _08172430
|
|
ldr r0, =gTasks
|
|
ldr r1, [sp, 0x14]
|
|
add r1, r8
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
movs r0, 0x8
|
|
strh r0, [r1, 0x16]
|
|
ldrh r0, [r1, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x8]
|
|
lsls r0, 16
|
|
asrs r2, r0, 16
|
|
cmp r2, 0x2
|
|
bne _081724D6
|
|
ldr r0, =gUnknown_030022C0
|
|
ldr r4, =0x00000439
|
|
adds r0, r4
|
|
ldrb r1, [r0]
|
|
adds r0, r2, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _081724D0
|
|
ldr r0, =gUnknown_02020630
|
|
lsls r1, r6, 4
|
|
adds r1, r6
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
movs r0, 0x1
|
|
strh r0, [r1, 0x3C]
|
|
_081724D0:
|
|
mov r0, r8
|
|
bl DestroyTask
|
|
_081724D6:
|
|
add sp, 0x18
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81723D4
|
|
|
|
thumb_func_start sub_8172508
|
|
sub_8172508: @ 8172508
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r4, r1]
|
|
movs r2, 0x30
|
|
ldrsh r1, [r4, r2]
|
|
bl sine
|
|
strh r0, [r4, 0x24]
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r4, r1]
|
|
movs r2, 0x32
|
|
ldrsh r1, [r4, r2]
|
|
bl cosine
|
|
strh r0, [r4, 0x26]
|
|
ldrh r0, [r4, 0x36]
|
|
ldrh r1, [r4, 0x2E]
|
|
adds r0, r1
|
|
movs r1, 0xFF
|
|
ands r0, r1
|
|
strh r0, [r4, 0x2E]
|
|
ldrh r0, [r4, 0x38]
|
|
ldrh r2, [r4, 0x30]
|
|
adds r0, r2
|
|
strh r0, [r4, 0x30]
|
|
ldrh r0, [r4, 0x3A]
|
|
ldrh r1, [r4, 0x32]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x32]
|
|
ldrh r0, [r4, 0x34]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x34]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x33
|
|
bne _08172558
|
|
adds r0, r4, 0
|
|
bl sub_8172944
|
|
_08172558:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8172508
|
|
|
|
thumb_func_start sub_8172560
|
|
sub_8172560: @ 8172560
|
|
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
|
|
mov r9, r0
|
|
ldr r1, =gTasks
|
|
lsls r0, 2
|
|
add r0, r9
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldrh r1, [r0, 0x26]
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
ldrb r2, [r0, 0xA]
|
|
str r2, [sp]
|
|
ldrb r3, [r0, 0xC]
|
|
str r3, [sp, 0x4]
|
|
ldrb r2, [r0, 0xE]
|
|
str r2, [sp, 0x8]
|
|
ldrb r0, [r0, 0x10]
|
|
str r0, [sp, 0xC]
|
|
movs r7, 0
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
str r0, [sp, 0x10]
|
|
ldr r3, =gUnknown_02020630
|
|
mov r8, r3
|
|
ldr r0, =gUnknown_085E51B4
|
|
adds r1, r0
|
|
mov r10, r1
|
|
_081725A6:
|
|
ldr r0, =gUnknown_085E51F0
|
|
ldr r1, [sp, 0x10]
|
|
adds r0, r1, r0
|
|
ldr r1, [sp]
|
|
ldr r2, [sp, 0x4]
|
|
ldr r3, [sp, 0xC]
|
|
bl AddObjectToFront
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
cmp r6, 0x40
|
|
beq _081725FE
|
|
bl sub_8171E20
|
|
lsls r4, r6, 4
|
|
adds r4, r6
|
|
lsls r4, 2
|
|
mov r2, r8
|
|
adds r5, r4, r2
|
|
mov r3, r10
|
|
ldrb r1, [r3]
|
|
adds r0, r5, 0
|
|
bl StartObjectImageAnim
|
|
ldr r0, =gUnknown_0202064C
|
|
adds r4, r0
|
|
ldr r0, =sub_817265C
|
|
str r0, [r4]
|
|
movs r0, 0x3
|
|
ldr r2, [sp, 0x8]
|
|
ands r2, r0
|
|
lsls r2, 2
|
|
ldrb r0, [r5, 0x5]
|
|
movs r3, 0xD
|
|
negs r3, r3
|
|
adds r1, r3, 0
|
|
ands r0, r1
|
|
orrs r0, r2
|
|
strb r0, [r5, 0x5]
|
|
lsls r0, r7, 2
|
|
adds r0, r7
|
|
lsls r0, 2
|
|
adds r0, r7
|
|
strh r0, [r5, 0x2E]
|
|
_081725FE:
|
|
adds r0, r7, 0x1
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
cmp r7, 0xB
|
|
bls _081725A6
|
|
ldr r0, =gUnknown_030022C0
|
|
ldr r1, =0x00000439
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08172626
|
|
ldr r0, =gUnknown_02020630
|
|
lsls r1, r6, 4
|
|
adds r1, r6
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
movs r0, 0x1
|
|
strh r0, [r1, 0x3C]
|
|
_08172626:
|
|
mov r0, r9
|
|
bl DestroyTask
|
|
add sp, 0x14
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8172560
|
|
|
|
thumb_func_start sub_817265C
|
|
sub_817265C: @ 817265C
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r5, r1]
|
|
movs r2, 0x30
|
|
ldrsh r1, [r5, r2]
|
|
bl sine
|
|
strh r0, [r5, 0x24]
|
|
movs r0, 0x2E
|
|
ldrsh r4, [r5, r0]
|
|
movs r2, 0x32
|
|
ldrsh r1, [r5, r2]
|
|
adds r0, r4, 0
|
|
bl sine
|
|
adds r1, r0, 0
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
adds r0, r4, 0
|
|
bl cosine
|
|
strh r0, [r5, 0x26]
|
|
ldrh r0, [r5, 0x2E]
|
|
adds r0, 0x6
|
|
movs r1, 0xFF
|
|
ands r0, r1
|
|
strh r0, [r5, 0x2E]
|
|
ldrh r0, [r5, 0x30]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x30]
|
|
ldrh r0, [r5, 0x32]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x32]
|
|
ldrh r0, [r5, 0x34]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x34]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x33
|
|
bne _081726B4
|
|
adds r0, r5, 0
|
|
bl sub_8172944
|
|
_081726B4:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_817265C
|
|
|
|
thumb_func_start sub_81726BC
|
|
sub_81726BC: @ 81726BC
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x18
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
str r0, [sp]
|
|
ldr r0, =gTasks
|
|
ldr r2, [sp]
|
|
lsls r1, r2, 2
|
|
adds r1, r2
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldrh r0, [r1, 0x26]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
ldrb r3, [r1, 0xA]
|
|
str r3, [sp, 0x4]
|
|
ldrb r0, [r1, 0xC]
|
|
str r0, [sp, 0x8]
|
|
ldrb r2, [r1, 0xE]
|
|
str r2, [sp, 0xC]
|
|
ldrb r1, [r1, 0x10]
|
|
str r1, [sp, 0x10]
|
|
movs r3, 0
|
|
mov r8, r3
|
|
mov r1, r9
|
|
lsls r0, r1, 1
|
|
add r0, r9
|
|
lsls r0, 3
|
|
str r0, [sp, 0x14]
|
|
_08172700:
|
|
movs r7, 0
|
|
movs r2, 0x1
|
|
add r2, r8
|
|
mov r10, r2
|
|
_08172708:
|
|
ldr r0, =gUnknown_085E51F0
|
|
ldr r3, [sp, 0x14]
|
|
adds r0, r3, r0
|
|
ldr r1, [sp, 0x4]
|
|
ldr r2, [sp, 0x8]
|
|
ldr r3, [sp, 0x10]
|
|
bl AddObjectToFront
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
cmp r6, 0x40
|
|
beq _08172790
|
|
bl sub_8171E20
|
|
lsls r4, r6, 4
|
|
adds r4, r6
|
|
lsls r4, 2
|
|
ldr r0, =gUnknown_02020630
|
|
adds r5, r4, r0
|
|
ldr r0, =gUnknown_085E51B4
|
|
add r0, r9
|
|
ldrb r1, [r0]
|
|
adds r0, r5, 0
|
|
bl StartObjectImageAnim
|
|
ldr r1, =gUnknown_0202064C
|
|
adds r4, r1
|
|
ldr r0, =sub_8172508
|
|
str r0, [r4]
|
|
movs r0, 0x3
|
|
ldr r1, [sp, 0xC]
|
|
ands r1, r0
|
|
lsls r1, 2
|
|
ldrb r0, [r5, 0x5]
|
|
movs r3, 0xD
|
|
negs r3, r3
|
|
adds r2, r3, 0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r5, 0x5]
|
|
lsls r0, r7, 5
|
|
strh r0, [r5, 0x2E]
|
|
movs r0, 0x8
|
|
strh r0, [r5, 0x36]
|
|
mov r0, r8
|
|
cmp r0, 0
|
|
bne _08172788
|
|
movs r0, 0x2
|
|
strh r0, [r5, 0x38]
|
|
movs r0, 0x1
|
|
b _0817278E
|
|
.pool
|
|
_08172788:
|
|
movs r0, 0x1
|
|
strh r0, [r5, 0x38]
|
|
movs r0, 0x2
|
|
_0817278E:
|
|
strh r0, [r5, 0x3A]
|
|
_08172790:
|
|
adds r0, r7, 0x1
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
cmp r7, 0x7
|
|
bls _08172708
|
|
mov r1, r10
|
|
lsls r0, r1, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
cmp r0, 0x1
|
|
bls _08172700
|
|
ldr r0, =gUnknown_030022C0
|
|
ldr r2, =0x00000439
|
|
adds r0, r2
|
|
ldrb r1, [r0]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _081727C4
|
|
ldr r0, =gUnknown_02020630
|
|
lsls r1, r6, 4
|
|
adds r1, r6
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
movs r0, 0x1
|
|
strh r0, [r1, 0x3C]
|
|
_081727C4:
|
|
ldr r0, [sp]
|
|
bl DestroyTask
|
|
add sp, 0x18
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81726BC
|
|
|
|
thumb_func_start sub_81727E8
|
|
sub_81727E8: @ 81727E8
|
|
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
|
|
mov r9, r0
|
|
ldr r1, =gTasks
|
|
lsls r0, 2
|
|
add r0, r9
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldrh r1, [r0, 0x26]
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
ldrb r2, [r0, 0xA]
|
|
str r2, [sp]
|
|
ldrb r3, [r0, 0xC]
|
|
str r3, [sp, 0x4]
|
|
ldrb r2, [r0, 0xE]
|
|
str r2, [sp, 0x8]
|
|
ldrb r0, [r0, 0x10]
|
|
str r0, [sp, 0xC]
|
|
movs r7, 0
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
str r0, [sp, 0x10]
|
|
ldr r3, =gUnknown_02020630
|
|
mov r8, r3
|
|
ldr r0, =gUnknown_085E51B4
|
|
adds r1, r0
|
|
mov r10, r1
|
|
_0817282E:
|
|
ldr r0, =gUnknown_085E51F0
|
|
ldr r1, [sp, 0x10]
|
|
adds r0, r1, r0
|
|
ldr r1, [sp]
|
|
ldr r2, [sp, 0x4]
|
|
ldr r3, [sp, 0xC]
|
|
bl AddObjectToFront
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
cmp r6, 0x40
|
|
beq _08172880
|
|
bl sub_8171E20
|
|
lsls r4, r6, 4
|
|
adds r4, r6
|
|
lsls r4, 2
|
|
mov r2, r8
|
|
adds r5, r4, r2
|
|
mov r3, r10
|
|
ldrb r1, [r3]
|
|
adds r0, r5, 0
|
|
bl StartObjectImageAnim
|
|
ldr r0, =gUnknown_0202064C
|
|
adds r4, r0
|
|
ldr r0, =sub_81728E0
|
|
str r0, [r4]
|
|
movs r0, 0x3
|
|
ldr r2, [sp, 0x8]
|
|
ands r2, r0
|
|
lsls r2, 2
|
|
ldrb r0, [r5, 0x5]
|
|
movs r3, 0xD
|
|
negs r3, r3
|
|
adds r1, r3, 0
|
|
ands r0, r1
|
|
orrs r0, r2
|
|
strb r0, [r5, 0x5]
|
|
lsls r0, r7, 5
|
|
strh r0, [r5, 0x2E]
|
|
_08172880:
|
|
adds r0, r7, 0x1
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
cmp r7, 0x7
|
|
bls _0817282E
|
|
ldr r0, =gUnknown_030022C0
|
|
ldr r1, =0x00000439
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _081728A8
|
|
ldr r0, =gUnknown_02020630
|
|
lsls r1, r6, 4
|
|
adds r1, r6
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
movs r0, 0x1
|
|
strh r0, [r1, 0x3C]
|
|
_081728A8:
|
|
mov r0, r9
|
|
bl DestroyTask
|
|
add sp, 0x14
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81727E8
|
|
|
|
thumb_func_start sub_81728E0
|
|
sub_81728E0: @ 81728E0
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r5, r1]
|
|
movs r2, 0x30
|
|
ldrsh r1, [r5, r2]
|
|
bl sine
|
|
strh r0, [r5, 0x24]
|
|
movs r0, 0x2E
|
|
ldrsh r4, [r5, r0]
|
|
ldrh r1, [r5, 0x2E]
|
|
movs r0, 0x3F
|
|
ands r0, r1
|
|
movs r2, 0x32
|
|
ldrsh r1, [r5, r2]
|
|
bl sine
|
|
adds r1, r0, 0
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
adds r0, r4, 0
|
|
bl cosine
|
|
strh r0, [r5, 0x26]
|
|
ldrh r0, [r5, 0x2E]
|
|
adds r0, 0xA
|
|
movs r1, 0xFF
|
|
ands r0, r1
|
|
strh r0, [r5, 0x2E]
|
|
ldrh r0, [r5, 0x30]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x30]
|
|
ldrh r0, [r5, 0x32]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x32]
|
|
ldrh r0, [r5, 0x34]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x34]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x33
|
|
bne _0817293C
|
|
adds r0, r5, 0
|
|
bl sub_8172944
|
|
_0817293C:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_81728E0
|
|
|
|
thumb_func_start sub_8172944
|
|
sub_8172944: @ 8172944
|
|
push {r4-r7,lr}
|
|
adds r7, r0, 0
|
|
ldr r0, =gUnknown_030022C0
|
|
ldr r1, =0x00000439
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08172970
|
|
movs r1, 0x3C
|
|
ldrsh r0, [r7, r1]
|
|
cmp r0, 0x1
|
|
bne _081729CA
|
|
adds r0, r7, 0
|
|
bl RemoveObjectAndFreeResources
|
|
b _081729E2
|
|
.pool
|
|
_08172970:
|
|
ldr r2, =gUnknown_020244D0
|
|
ldr r0, [r2]
|
|
ldr r1, [r0, 0x8]
|
|
ldrb r0, [r1, 0xA]
|
|
subs r0, 0x1
|
|
strb r0, [r1, 0xA]
|
|
ldr r0, [r2]
|
|
ldr r0, [r0, 0x8]
|
|
ldrb r0, [r0, 0xA]
|
|
cmp r0, 0
|
|
bne _081729DC
|
|
movs r4, 0
|
|
ldr r5, =gUnknown_085E51C0
|
|
b _08172998
|
|
.pool
|
|
_08172994:
|
|
adds r5, 0x4
|
|
adds r4, 0x1
|
|
_08172998:
|
|
cmp r4, 0xB
|
|
bgt _081729AA
|
|
ldr r0, [r5]
|
|
bl FuncIsActiveTask
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _08172994
|
|
_081729AA:
|
|
cmp r4, 0xC
|
|
bne _081729CA
|
|
movs r6, 0
|
|
ldr r5, =gUnknown_085E5094
|
|
ldr r4, =gUnknown_085E50F4
|
|
_081729B4:
|
|
ldrh r0, [r5, 0x6]
|
|
bl FreeObjectTilesByTag
|
|
ldrh r0, [r4, 0x4]
|
|
bl FreeObjectPaletteByTag
|
|
adds r5, 0x8
|
|
adds r4, 0x8
|
|
adds r6, 0x1
|
|
cmp r6, 0xB
|
|
ble _081729B4
|
|
_081729CA:
|
|
adds r0, r7, 0
|
|
bl RemoveObjectAndFreeTiles
|
|
b _081729E2
|
|
.pool
|
|
_081729DC:
|
|
adds r0, r7, 0
|
|
bl RemoveObjectAndFreeTiles
|
|
_081729E2:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8172944
|
|
|
|
thumb_func_start sub_81729E8
|
|
sub_81729E8: @ 81729E8
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
mov r9, r2
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
lsls r1, 24
|
|
lsrs r6, r1, 24
|
|
lsls r3, 24
|
|
lsrs r7, r3, 24
|
|
ldr r0, =sub_8172AB0
|
|
movs r1, 0x5
|
|
bl CreateTask
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
ldr r1, =gTasks
|
|
lsls r0, 2
|
|
add r0, r8
|
|
lsls r0, 3
|
|
adds r5, r0, r1
|
|
strh r7, [r5, 0x26]
|
|
strh r6, [r5, 0xE]
|
|
mov r0, r9
|
|
strh r0, [r5, 0x1C]
|
|
mov r1, r9
|
|
lsrs r0, r1, 16
|
|
strh r0, [r5, 0x1E]
|
|
cmp r4, 0
|
|
bne _08172A58
|
|
lsls r0, r6, 20
|
|
movs r2, 0x80
|
|
lsls r2, 17
|
|
adds r0, r2
|
|
lsrs r0, 16
|
|
ldr r2, =gUnknown_085E5310
|
|
lsls r1, r7, 1
|
|
adds r1, r2
|
|
ldrh r3, [r1]
|
|
movs r1, 0x10
|
|
movs r2, 0
|
|
bl pal_fade_1
|
|
movs r0, 0x1
|
|
strh r0, [r5, 0xA]
|
|
b _08172A7E
|
|
.pool
|
|
_08172A58:
|
|
lsls r0, r6, 20
|
|
movs r1, 0x80
|
|
lsls r1, 17
|
|
adds r0, r1
|
|
lsrs r0, 16
|
|
ldr r2, =gUnknown_085E5310
|
|
lsls r1, r7, 1
|
|
adds r1, r2
|
|
ldrh r3, [r1]
|
|
movs r1, 0x10
|
|
movs r2, 0x10
|
|
bl pal_fade_1
|
|
movs r0, 0x10
|
|
strh r0, [r5, 0x8]
|
|
ldr r0, =0x0000ffff
|
|
strh r0, [r5, 0xA]
|
|
ldr r0, =sub_8172B40
|
|
str r0, [r5]
|
|
_08172A7E:
|
|
ldr r0, =0x00007fff
|
|
str r0, [sp]
|
|
mov r0, r9
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0x10
|
|
bl pal_fade_maybe
|
|
mov r0, r8
|
|
add sp, 0x4
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_81729E8
|
|
|
|
thumb_func_start sub_8172AB0
|
|
sub_8172AB0: @ 8172AB0
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r5, r0, 0
|
|
ldr r1, =gTasks
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
adds r4, r0, r1
|
|
ldrh r0, [r4, 0x26]
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
movs r2, 0xC
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0x10
|
|
bgt _08172B08
|
|
movs r2, 0xE
|
|
ldrsh r0, [r4, r2]
|
|
lsls r0, 20
|
|
movs r2, 0x80
|
|
lsls r2, 17
|
|
adds r0, r2
|
|
lsrs r0, 16
|
|
ldrb r2, [r4, 0x8]
|
|
ldr r3, =gUnknown_085E5310
|
|
lsls r1, 1
|
|
adds r1, r3
|
|
ldrh r3, [r1]
|
|
movs r1, 0x10
|
|
bl pal_fade_1
|
|
ldrh r0, [r4, 0xA]
|
|
ldrh r1, [r4, 0x8]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x8]
|
|
ldrh r0, [r4, 0xC]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0xC]
|
|
b _08172B30
|
|
.pool
|
|
_08172B08:
|
|
ldr r0, =gUnknown_02037FD4
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08172B30
|
|
ldrh r0, [r4, 0x1C]
|
|
ldrh r1, [r4, 0x1E]
|
|
lsls r1, 16
|
|
orrs r0, r1
|
|
ldr r1, =0x00007fff
|
|
str r1, [sp]
|
|
movs r1, 0
|
|
movs r2, 0x10
|
|
movs r3, 0
|
|
bl pal_fade_maybe
|
|
adds r0, r5, 0
|
|
bl DestroyTask
|
|
_08172B30:
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8172AB0
|
|
|
|
thumb_func_start sub_8172B40
|
|
sub_8172B40: @ 8172B40
|
|
push {r4,lr}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
ldr r0, =gUnknown_02037FD4
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08172B78
|
|
ldr r0, =gTasks
|
|
lsls r4, r2, 2
|
|
adds r4, r2
|
|
lsls r4, 3
|
|
adds r4, r0
|
|
ldrh r0, [r4, 0x1C]
|
|
ldrh r1, [r4, 0x1E]
|
|
lsls r1, 16
|
|
orrs r0, r1
|
|
ldr r1, =0x00007fff
|
|
str r1, [sp]
|
|
movs r1, 0
|
|
movs r2, 0x10
|
|
movs r3, 0
|
|
bl pal_fade_maybe
|
|
ldr r0, =sub_8172B90
|
|
str r0, [r4]
|
|
_08172B78:
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8172B40
|
|
|
|
thumb_func_start sub_8172B90
|
|
sub_8172B90: @ 8172B90
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
ldr r1, =gTasks
|
|
lsls r0, r2, 2
|
|
adds r0, r2
|
|
lsls r0, 3
|
|
adds r4, r0, r1
|
|
ldrh r0, [r4, 0x26]
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
movs r3, 0xC
|
|
ldrsh r0, [r4, r3]
|
|
cmp r0, 0x10
|
|
bgt _08172BE4
|
|
movs r2, 0xE
|
|
ldrsh r0, [r4, r2]
|
|
lsls r0, 20
|
|
movs r3, 0x80
|
|
lsls r3, 17
|
|
adds r0, r3
|
|
lsrs r0, 16
|
|
ldrb r2, [r4, 0x8]
|
|
ldr r3, =gUnknown_085E5310
|
|
lsls r1, 1
|
|
adds r1, r3
|
|
ldrh r3, [r1]
|
|
movs r1, 0x10
|
|
bl pal_fade_1
|
|
ldrh r0, [r4, 0xA]
|
|
ldrh r1, [r4, 0x8]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x8]
|
|
ldrh r0, [r4, 0xC]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0xC]
|
|
b _08172BEA
|
|
.pool
|
|
_08172BE4:
|
|
adds r0, r2, 0
|
|
bl DestroyTask
|
|
_08172BEA:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8172B90
|
|
|
|
thumb_func_start sub_8172BF0
|
|
sub_8172BF0: @ 8172BF0
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
movs r0, 0
|
|
mov r8, r0
|
|
ldr r0, =gUnknown_020241E4
|
|
ldr r3, =gUnknown_02038436
|
|
ldrb r2, [r3]
|
|
adds r0, r2, r0
|
|
ldrb r6, [r0]
|
|
ldr r1, =gTasks
|
|
lsls r0, r7, 2
|
|
adds r0, r7
|
|
lsls r0, 3
|
|
adds r5, r0, r1
|
|
movs r1, 0x1C
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0x1
|
|
beq _08172CC8
|
|
cmp r0, 0x1
|
|
bgt _08172C30
|
|
cmp r0, 0
|
|
beq _08172C36
|
|
b _08172D8A
|
|
.pool
|
|
_08172C30:
|
|
cmp r0, 0x2
|
|
beq _08172CDA
|
|
b _08172D8A
|
|
_08172C36:
|
|
ldr r0, =gUnknown_0203841E
|
|
ldrh r0, [r0]
|
|
strh r0, [r5, 0x1E]
|
|
movs r2, 0xA0
|
|
lsls r2, 3
|
|
adds r0, r2, 0
|
|
ldrh r4, [r5, 0x8]
|
|
adds r0, r4
|
|
strh r0, [r5, 0x8]
|
|
ldrb r0, [r3]
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08172C78
|
|
ldr r2, =gUnknown_02020630
|
|
lsls r3, r6, 4
|
|
adds r1, r3, r6
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
ldrh r0, [r5, 0x8]
|
|
lsls r0, 16
|
|
asrs r0, 24
|
|
ldrh r4, [r1, 0x24]
|
|
adds r0, r4
|
|
strh r0, [r1, 0x24]
|
|
adds r4, r3, 0
|
|
b _08172C90
|
|
.pool
|
|
_08172C78:
|
|
ldr r3, =gUnknown_02020630
|
|
lsls r4, r6, 4
|
|
adds r2, r4, r6
|
|
lsls r2, 2
|
|
adds r2, r3
|
|
ldrh r1, [r5, 0x8]
|
|
lsls r1, 16
|
|
asrs r1, 24
|
|
ldrh r0, [r2, 0x24]
|
|
subs r0, r1
|
|
strh r0, [r2, 0x24]
|
|
adds r2, r3, 0
|
|
_08172C90:
|
|
ldr r1, =gTasks
|
|
lsls r0, r7, 2
|
|
adds r0, r7
|
|
lsls r0, 3
|
|
adds r3, r0, r1
|
|
ldrb r0, [r3, 0x8]
|
|
strh r0, [r3, 0x8]
|
|
adds r0, r4, r6
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
movs r2, 0x20
|
|
ldrsh r1, [r0, r2]
|
|
movs r4, 0x24
|
|
ldrsh r0, [r0, r4]
|
|
adds r1, r0
|
|
adds r1, 0x20
|
|
movs r0, 0x98
|
|
lsls r0, 1
|
|
cmp r1, r0
|
|
bls _08172D8A
|
|
ldrh r0, [r3, 0x1C]
|
|
adds r0, 0x1
|
|
strh r0, [r3, 0x1C]
|
|
b _08172D8A
|
|
.pool
|
|
_08172CC8:
|
|
ldrb r1, [r5, 0x1E]
|
|
adds r0, r2, 0
|
|
adds r2, r6, 0
|
|
bl refresh_graphics_maybe
|
|
ldrh r0, [r5, 0x1C]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x1C]
|
|
b _08172D8A
|
|
_08172CDA:
|
|
movs r1, 0xA0
|
|
lsls r1, 3
|
|
adds r0, r1, 0
|
|
ldrh r2, [r5, 0x8]
|
|
adds r0, r2
|
|
strh r0, [r5, 0x8]
|
|
ldrb r0, [r3]
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08172D10
|
|
ldr r0, =gUnknown_02020630
|
|
lsls r3, r6, 4
|
|
adds r2, r3, r6
|
|
lsls r2, 2
|
|
adds r2, r0
|
|
ldrh r1, [r5, 0x8]
|
|
lsls r1, 16
|
|
asrs r1, 24
|
|
ldrh r0, [r2, 0x24]
|
|
subs r0, r1
|
|
strh r0, [r2, 0x24]
|
|
adds r4, r3, 0
|
|
b _08172D28
|
|
.pool
|
|
_08172D10:
|
|
ldr r0, =gUnknown_02020630
|
|
lsls r2, r6, 4
|
|
adds r1, r2, r6
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrh r0, [r5, 0x8]
|
|
lsls r0, 16
|
|
asrs r0, 24
|
|
ldrh r3, [r1, 0x24]
|
|
adds r0, r3
|
|
strh r0, [r1, 0x24]
|
|
adds r4, r2, 0
|
|
_08172D28:
|
|
ldr r1, =gTasks
|
|
lsls r0, r7, 2
|
|
adds r0, r7
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldrb r1, [r0, 0x8]
|
|
strh r1, [r0, 0x8]
|
|
ldr r0, =gUnknown_02038436
|
|
ldrb r0, [r0]
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0
|
|
beq _08172D68
|
|
ldr r0, =gUnknown_02020630
|
|
adds r1, r4, r6
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
movs r4, 0x24
|
|
ldrsh r0, [r1, r4]
|
|
cmp r0, 0
|
|
bgt _08172D7E
|
|
movs r0, 0
|
|
strh r0, [r1, 0x24]
|
|
b _08172D84
|
|
.pool
|
|
_08172D68:
|
|
ldr r0, =gUnknown_02020630
|
|
adds r1, r4, r6
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
movs r3, 0x24
|
|
ldrsh r0, [r1, r3]
|
|
cmp r0, 0
|
|
blt _08172D7E
|
|
strh r2, [r1, 0x24]
|
|
movs r4, 0x1
|
|
mov r8, r4
|
|
_08172D7E:
|
|
mov r0, r8
|
|
cmp r0, 0
|
|
beq _08172D8A
|
|
_08172D84:
|
|
adds r0, r7, 0
|
|
bl move_anim_task_del
|
|
_08172D8A:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8172BF0
|
|
|
|
thumb_func_start sub_8172D98
|
|
sub_8172D98: @ 8172D98
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r1, =gTasks
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
adds r4, r0, r1
|
|
movs r1, 0x26
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x1
|
|
beq _08172E14
|
|
cmp r0, 0x1
|
|
bgt _08172DC0
|
|
cmp r0, 0
|
|
beq _08172DC6
|
|
b _08172E84
|
|
.pool
|
|
_08172DC0:
|
|
cmp r0, 0x2
|
|
beq _08172E4E
|
|
b _08172E84
|
|
_08172DC6:
|
|
ldr r0, =gUnknown_02038436
|
|
ldrb r0, [r0]
|
|
bl battle_get_per_side_status_permutated
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _08172DE8
|
|
ldr r1, =0x00003f42
|
|
movs r0, 0x50
|
|
bl SetGpuReg
|
|
b _08172DF0
|
|
.pool
|
|
_08172DE8:
|
|
ldr r1, =0x00003f44
|
|
movs r0, 0x50
|
|
bl SetGpuReg
|
|
_08172DF0:
|
|
movs r0, 0x52
|
|
movs r1, 0x10
|
|
bl SetGpuReg
|
|
ldr r0, =gTasks
|
|
lsls r1, r5, 2
|
|
adds r1, r5
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldrh r0, [r1, 0x26]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x26]
|
|
b _08172E84
|
|
.pool
|
|
_08172E14:
|
|
ldrh r0, [r4, 0xA]
|
|
adds r1, r0, 0x1
|
|
strh r1, [r4, 0xA]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1
|
|
ble _08172E84
|
|
movs r0, 0
|
|
strh r0, [r4, 0xA]
|
|
ldrh r2, [r4, 0x8]
|
|
adds r2, 0x1
|
|
strh r2, [r4, 0x8]
|
|
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, 0x8
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x10
|
|
bne _08172E84
|
|
ldrh r0, [r4, 0x26]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x26]
|
|
b _08172E84
|
|
_08172E4E:
|
|
ldr r1, =gUnknown_020241E4
|
|
ldr r4, =gUnknown_02038436
|
|
ldrb r0, [r4]
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
ldr r2, =gUnknown_02020630
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrh r1, [r0, 0x4]
|
|
lsls r1, 22
|
|
lsrs r1, 17
|
|
ldr r0, =0x06010000
|
|
adds r1, r0
|
|
movs r2, 0x80
|
|
lsls r2, 4
|
|
movs r0, 0
|
|
movs r3, 0x1
|
|
bl RequestDma3Fill
|
|
ldrb r0, [r4]
|
|
bl sub_805E974
|
|
adds r0, r5, 0
|
|
bl move_anim_task_del
|
|
_08172E84:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8172D98
|
|
|
|
thumb_func_start sub_8172E9C
|
|
sub_8172E9C: @ 8172E9C
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r3, =gUnknown_0203841E
|
|
ldr r1, =gUnknown_020244D0
|
|
ldr r2, [r1]
|
|
ldr r1, =gUnknown_02038436
|
|
ldrb r1, [r1]
|
|
ldr r2, [r2]
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
ldr r1, [r1]
|
|
lsls r1, 29
|
|
lsrs r1, 31
|
|
strh r1, [r3, 0xE]
|
|
bl move_anim_task_del
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8172E9C
|
|
|
|
thumb_func_start sub_8172ED0
|
|
sub_8172ED0: @ 8172ED0
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, =gUnknown_02038437
|
|
ldr r1, =gUnknown_0202420E
|
|
ldrb r1, [r1]
|
|
strb r1, [r2]
|
|
bl move_anim_task_del
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8172ED0
|
|
|
|
thumb_func_start sub_8172EF0
|
|
sub_8172EF0: @ 8172EF0
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
adds r4, r1, 0
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
movs r0, 0
|
|
mov r8, r0
|
|
ldr r0, =gUnknown_020244D0
|
|
ldr r0, [r0]
|
|
ldr r1, [r0, 0x4]
|
|
lsls r0, r6, 1
|
|
adds r0, r6
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r2, 0x80
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl pokemon_getattr
|
|
adds r5, r0, 0
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl pokemon_getattr
|
|
adds r4, r0, 0
|
|
adds r0, r6, 0
|
|
bl b_side_obj__get_some_boolean
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08172FC8
|
|
lsrs r0, r5, 16
|
|
ldr r7, =0x0000ffff
|
|
ands r5, r7
|
|
eors r0, r5
|
|
lsrs r1, r4, 16
|
|
eors r0, r1
|
|
ands r4, r7
|
|
eors r0, r4
|
|
cmp r0, 0x7
|
|
bhi _08172F4E
|
|
movs r0, 0x1
|
|
mov r8, r0
|
|
_08172F4E:
|
|
mov r0, r8
|
|
cmp r0, 0
|
|
beq _08172FC8
|
|
ldr r0, =0x000027f9
|
|
bl GetObjectTileRangeStartByTag
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, r7
|
|
bne _08172F6E
|
|
ldr r0, =gUnknown_0852528C
|
|
bl LoadCompressedObjectPicUsingHeap
|
|
ldr r0, =gUnknown_08525B94
|
|
bl LoadCompressedObjectPaletteUsingHeap
|
|
_08172F6E:
|
|
ldr r5, =sub_8172FEC
|
|
adds r0, r5, 0
|
|
movs r1, 0xA
|
|
bl CreateTask
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
adds r0, r5, 0
|
|
movs r1, 0xA
|
|
bl CreateTask
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r3, =gTasks
|
|
lsls r2, r4, 2
|
|
adds r2, r4
|
|
lsls r2, 3
|
|
adds r2, r3
|
|
movs r4, 0
|
|
strh r6, [r2, 0x8]
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r3
|
|
strh r6, [r1, 0x8]
|
|
strh r4, [r2, 0xA]
|
|
movs r0, 0x1
|
|
strh r0, [r1, 0xA]
|
|
b _08172FDE
|
|
.pool
|
|
_08172FC8:
|
|
ldr r0, =gUnknown_020244D0
|
|
ldr r0, [r0]
|
|
ldr r1, [r0, 0x4]
|
|
lsls r0, r6, 1
|
|
adds r0, r6
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrb r1, [r0, 0x1]
|
|
movs r2, 0x1
|
|
orrs r1, r2
|
|
strb r1, [r0, 0x1]
|
|
_08172FDE:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8172EF0
|
|
|
|
thumb_func_start sub_8172FEC
|
|
sub_8172FEC: @ 8172FEC
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
ldr r1, =gTasks
|
|
lsls r0, r7, 2
|
|
adds r0, r7
|
|
lsls r0, 3
|
|
adds r4, r0, r1
|
|
ldrh r1, [r4, 0x22]
|
|
movs r2, 0x22
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0x3B
|
|
bgt _08173018
|
|
adds r0, r1, 0x1
|
|
strh r0, [r4, 0x22]
|
|
b _08173190
|
|
.pool
|
|
_08173018:
|
|
ldr r0, =gUnknown_020244D0
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, 0x8]
|
|
ldrb r0, [r0, 0xA]
|
|
cmp r0, 0
|
|
beq _08173026
|
|
b _08173190
|
|
_08173026:
|
|
ldrh r0, [r4, 0x1C]
|
|
adds r1, r0, 0x1
|
|
strh r1, [r4, 0x1C]
|
|
lsls r0, 16
|
|
movs r1, 0xC0
|
|
lsls r1, 10
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _0817303A
|
|
b _08173190
|
|
_0817303A:
|
|
ldrb r0, [r4, 0x8]
|
|
mov r8, r0
|
|
movs r1, 0
|
|
bl sub_80A5C6C
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
mov r0, r8
|
|
movs r1, 0x1
|
|
bl sub_80A5C6C
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
movs r1, 0x1E
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bne _08173074
|
|
ldr r0, =gUnknown_085CE388
|
|
adds r1, r5, 0
|
|
movs r3, 0x5
|
|
bl AddObjectToFront
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
b _081730D6
|
|
.pool
|
|
_08173074:
|
|
cmp r0, 0
|
|
blt _081730A8
|
|
cmp r0, 0x3
|
|
bgt _081730A8
|
|
ldr r0, =gUnknown_085CE3A0
|
|
adds r1, r5, 0
|
|
movs r3, 0x5
|
|
bl AddObjectToFront
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r0, =gUnknown_02020630
|
|
lsls r2, r5, 4
|
|
adds r2, r5
|
|
lsls r2, 2
|
|
adds r2, r0
|
|
ldrh r3, [r2, 0x4]
|
|
lsls r1, r3, 22
|
|
lsrs r1, 22
|
|
adds r1, 0x4
|
|
b _081730C8
|
|
.pool
|
|
_081730A8:
|
|
ldr r0, =gUnknown_085CE3A0
|
|
adds r1, r5, 0
|
|
movs r3, 0x5
|
|
bl AddObjectToFront
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r0, =gUnknown_02020630
|
|
lsls r2, r5, 4
|
|
adds r2, r5
|
|
lsls r2, 2
|
|
adds r2, r0
|
|
ldrh r3, [r2, 0x4]
|
|
lsls r1, r3, 22
|
|
lsrs r1, 22
|
|
adds r1, 0x5
|
|
_081730C8:
|
|
ldr r4, =0x000003ff
|
|
adds r0, r4, 0
|
|
ands r1, r0
|
|
ldr r0, =0xfffffc00
|
|
ands r0, r3
|
|
orrs r0, r1
|
|
strh r0, [r2, 0x4]
|
|
_081730D6:
|
|
ldr r2, =gTasks
|
|
lsls r1, r7, 2
|
|
adds r0, r1, r7
|
|
lsls r0, 3
|
|
adds r6, r0, r2
|
|
movs r2, 0xA
|
|
ldrsh r0, [r6, r2]
|
|
mov r9, r1
|
|
cmp r0, 0
|
|
bne _08173118
|
|
ldr r1, =gUnknown_02020630
|
|
lsls r2, r5, 4
|
|
adds r0, r2, r5
|
|
lsls r0, 2
|
|
adds r1, 0x1C
|
|
adds r0, r1
|
|
ldr r1, =sub_81731FC
|
|
str r1, [r0]
|
|
adds r4, r2, 0
|
|
b _08173160
|
|
.pool
|
|
_08173118:
|
|
ldr r3, =gUnknown_02020630
|
|
lsls r4, r5, 4
|
|
adds r1, r4, r5
|
|
lsls r1, 2
|
|
adds r0, r3, 0
|
|
adds r0, 0x1C
|
|
adds r0, r1, r0
|
|
ldr r2, =sub_8173250
|
|
str r2, [r0]
|
|
adds r1, r3
|
|
ldr r0, =0x0000ffe0
|
|
strh r0, [r1, 0x24]
|
|
movs r0, 0x20
|
|
strh r0, [r1, 0x26]
|
|
adds r1, 0x3E
|
|
ldrb r0, [r1]
|
|
movs r2, 0x4
|
|
orrs r0, r2
|
|
strb r0, [r1]
|
|
movs r1, 0x1E
|
|
ldrsh r0, [r6, r1]
|
|
cmp r0, 0
|
|
bne _08173160
|
|
mov r0, r8
|
|
bl battle_side_get_owner
|
|
lsls r0, 24
|
|
movs r1, 0x3F
|
|
cmp r0, 0
|
|
bne _08173156
|
|
movs r1, 0xC0
|
|
_08173156:
|
|
lsls r1, 24
|
|
asrs r1, 24
|
|
movs r0, 0x66
|
|
bl audio_play_and_stuff
|
|
_08173160:
|
|
ldr r1, =gUnknown_02020630
|
|
adds r0, r4, r5
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
strh r7, [r0, 0x2E]
|
|
ldr r1, =gTasks
|
|
mov r2, r9
|
|
adds r0, r2, r7
|
|
lsls r0, 3
|
|
adds r1, r0, r1
|
|
ldrh r0, [r1, 0x1E]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x1E]
|
|
cmp r5, 0x40
|
|
beq _08173184
|
|
ldrh r0, [r1, 0x20]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x20]
|
|
_08173184:
|
|
movs r4, 0x1E
|
|
ldrsh r0, [r1, r4]
|
|
cmp r0, 0x5
|
|
bne _08173190
|
|
ldr r0, =sub_81731B0
|
|
str r0, [r1]
|
|
_08173190:
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8172FEC
|
|
|
|
thumb_func_start sub_81731B0
|
|
sub_81731B0: @ 81731B0
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r3, r0, 0
|
|
ldr r1, =gTasks
|
|
lsls r0, r3, 2
|
|
adds r0, r3
|
|
lsls r0, 3
|
|
adds r1, r0, r1
|
|
movs r2, 0x20
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, 0
|
|
bne _081731F0
|
|
movs r2, 0xA
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, 0x1
|
|
bne _081731EA
|
|
ldrb r1, [r1, 0x8]
|
|
ldr r0, =gUnknown_020244D0
|
|
ldr r0, [r0]
|
|
ldr r2, [r0, 0x4]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r1, [r0, 0x1]
|
|
movs r2, 0x1
|
|
orrs r1, r2
|
|
strb r1, [r0, 0x1]
|
|
_081731EA:
|
|
adds r0, r3, 0
|
|
bl DestroyTask
|
|
_081731F0:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81731B0
|
|
|
|
thumb_func_start sub_81731FC
|
|
sub_81731FC: @ 81731FC
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x30
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0x18
|
|
bl sine
|
|
strh r0, [r4, 0x24]
|
|
movs r1, 0x30
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0x18
|
|
bl cosine
|
|
strh r0, [r4, 0x26]
|
|
ldrh r0, [r4, 0x30]
|
|
adds r0, 0xC
|
|
strh r0, [r4, 0x30]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0xFF
|
|
ble _08173246
|
|
ldr r2, =gTasks
|
|
movs r0, 0x2E
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r0, r2
|
|
ldrh r1, [r0, 0x20]
|
|
subs r1, 0x1
|
|
strh r1, [r0, 0x20]
|
|
adds r0, r4, 0
|
|
bl obj_free_rotscale_entry
|
|
adds r0, r4, 0
|
|
bl RemoveObjectAndFreeTiles
|
|
_08173246:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81731FC
|
|
|
|
thumb_func_start sub_8173250
|
|
sub_8173250: @ 8173250
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrh r1, [r4, 0x30]
|
|
movs r2, 0x30
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0x3
|
|
bgt _08173264
|
|
adds r0, r1, 0x1
|
|
strh r0, [r4, 0x30]
|
|
b _081732A6
|
|
_08173264:
|
|
adds r2, r4, 0
|
|
adds r2, 0x3E
|
|
ldrb r1, [r2]
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
ldrh r1, [r4, 0x24]
|
|
adds r1, 0x5
|
|
strh r1, [r4, 0x24]
|
|
ldrh r0, [r4, 0x26]
|
|
subs r0, 0x5
|
|
strh r0, [r4, 0x26]
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
cmp r1, 0x20
|
|
ble _081732A6
|
|
ldr r2, =gTasks
|
|
movs r0, 0x2E
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r0, r2
|
|
ldrh r1, [r0, 0x20]
|
|
subs r1, 0x1
|
|
strh r1, [r0, 0x20]
|
|
adds r0, r4, 0
|
|
bl obj_free_rotscale_entry
|
|
adds r0, r4, 0
|
|
bl RemoveObjectAndFreeTiles
|
|
_081732A6:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8173250
|
|
|
|
thumb_func_start sub_81732B0
|
|
sub_81732B0: @ 81732B0
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
ldr r0, =gUnknown_085253AC
|
|
bl LoadCompressedObjectPicUsingHeap
|
|
ldr r0, =gUnknown_08525CB4
|
|
bl LoadCompressedObjectPaletteUsingHeap
|
|
ldr r0, =0x0000281d
|
|
bl IndexOfObjectPaletteTag
|
|
adds r0, r4, 0
|
|
bl move_anim_task_del
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81732B0
|
|
|
|
thumb_func_start sub_81732E4
|
|
sub_81732E4: @ 81732E4
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
ldr r5, =0x0000281d
|
|
adds r0, r5, 0
|
|
bl FreeObjectTilesByTag
|
|
adds r0, r5, 0
|
|
bl FreeObjectPaletteByTag
|
|
adds r0, r4, 0
|
|
bl move_anim_task_del
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81732E4
|
|
|
|
thumb_func_start sub_817330C
|
|
sub_817330C: @ 817330C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0
|
|
bl sub_80A69CC
|
|
movs r0, 0x1E
|
|
strh r0, [r4, 0x2E]
|
|
movs r0, 0x1
|
|
bl battle_get_side_with_given_state
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0
|
|
bl sub_80A5C6C
|
|
lsls r0, 24
|
|
ldr r5, =gUnknown_0203841E
|
|
lsrs r0, 24
|
|
ldrh r1, [r5, 0x4]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0x1
|
|
bl battle_get_side_with_given_state
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0x1
|
|
bl sub_80A5C6C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrh r5, [r5, 0x6]
|
|
adds r0, r5
|
|
strh r0, [r4, 0x36]
|
|
ldr r0, =0x0000ffe0
|
|
strh r0, [r4, 0x38]
|
|
adds r0, r4, 0
|
|
bl sub_80A68D4
|
|
ldr r2, =gUnknown_02020630
|
|
ldr r1, =gUnknown_020241E4
|
|
ldr r0, =gUnknown_02038436
|
|
ldrb r0, [r0]
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r2, 0x1C
|
|
adds r0, r2
|
|
ldr r1, =sub_8039E84
|
|
str r1, [r0]
|
|
ldr r0, =sub_817339C
|
|
str r0, [r4, 0x1C]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_817330C
|
|
|
|
thumb_func_start sub_817339C
|
|
sub_817339C: @ 817339C
|
|
push {lr}
|
|
adds r3, r0, 0
|
|
ldr r2, =gUnknown_02020630
|
|
ldr r1, =gUnknown_020241E4
|
|
ldr r0, =gUnknown_02038436
|
|
ldrb r0, [r0]
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
adds r0, 0x2B
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
bne _081733C0
|
|
ldr r0, =sub_81733D4
|
|
str r0, [r3, 0x1C]
|
|
_081733C0:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_817339C
|
|
|
|
thumb_func_start sub_81733D4
|
|
sub_81733D4: @ 81733D4
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_80A6900
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _081733F6
|
|
movs r0, 0
|
|
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, =sub_8173400
|
|
str r0, [r4, 0x1C]
|
|
_081733F6:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81733D4
|
|
|
|
thumb_func_start sub_8173400
|
|
sub_8173400: @ 8173400
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
ldr r5, =gUnknown_02020630
|
|
ldr r3, =gUnknown_020241E4
|
|
ldr r2, =gUnknown_02038436
|
|
ldrb r0, [r2]
|
|
adds r0, r3
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
adds r0, 0x3F
|
|
ldrb r0, [r0]
|
|
lsls r0, 27
|
|
cmp r0, 0
|
|
bge _08173448
|
|
ldrh r0, [r4, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
ble _08173448
|
|
ldrb r0, [r2]
|
|
adds r0, r3
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
movs r1, 0
|
|
bl StartObjectImageAnim
|
|
adds r0, r4, 0
|
|
bl move_anim_8072740
|
|
_08173448:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8173400
|
|
|
|
thumb_func_start sub_817345C
|
|
sub_817345C: @ 817345C
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r0, =gUnknown_0203841E
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0
|
|
beq _08173478
|
|
cmp r0, 0x1
|
|
beq _0817348C
|
|
b _081734A0
|
|
.pool
|
|
_08173478:
|
|
movs r0, 0
|
|
bl battle_get_side_with_given_state
|
|
ldr r1, =gUnknown_02038436
|
|
strb r0, [r1]
|
|
movs r0, 0x1
|
|
b _08173498
|
|
.pool
|
|
_0817348C:
|
|
movs r0, 0x1
|
|
bl battle_get_side_with_given_state
|
|
ldr r1, =gUnknown_02038436
|
|
strb r0, [r1]
|
|
movs r0, 0
|
|
_08173498:
|
|
bl battle_get_side_with_given_state
|
|
ldr r1, =gUnknown_02038437
|
|
strb r0, [r1]
|
|
_081734A0:
|
|
adds r0, r4, 0
|
|
bl move_anim_task_del
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_817345C
|
|
|
|
thumb_func_start sub_81734B4
|
|
sub_81734B4: @ 81734B4
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
ldr r0, =gUnknown_020244D0
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, 0x8]
|
|
ldrh r1, [r0]
|
|
cmp r1, 0x53
|
|
bne _081734D4
|
|
ldr r1, =gUnknown_0203841E
|
|
movs r0, 0x1
|
|
b _0817350C
|
|
.pool
|
|
_081734D4:
|
|
cmp r1, 0xFA
|
|
bne _081734E4
|
|
ldr r1, =gUnknown_0203841E
|
|
movs r0, 0x2
|
|
b _0817350C
|
|
.pool
|
|
_081734E4:
|
|
cmp r1, 0x80
|
|
bne _081734F4
|
|
ldr r1, =gUnknown_0203841E
|
|
movs r0, 0x3
|
|
b _0817350C
|
|
.pool
|
|
_081734F4:
|
|
movs r0, 0xA4
|
|
lsls r0, 1
|
|
cmp r1, r0
|
|
bne _08173508
|
|
ldr r1, =gUnknown_0203841E
|
|
movs r0, 0x4
|
|
b _0817350C
|
|
.pool
|
|
_08173508:
|
|
ldr r1, =gUnknown_0203841E
|
|
movs r0, 0
|
|
_0817350C:
|
|
strh r0, [r1]
|
|
adds r0, r2, 0
|
|
bl move_anim_task_del
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81734B4
|
|
|
|
thumb_func_start sub_817351C
|
|
sub_817351C: @ 817351C
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r3, =gUnknown_02038436
|
|
ldr r1, =gUnknown_020244D0
|
|
ldr r2, [r1]
|
|
ldr r1, [r2, 0x8]
|
|
ldrh r1, [r1]
|
|
strb r1, [r3]
|
|
ldr r3, =gUnknown_02038437
|
|
ldr r1, [r2, 0x8]
|
|
ldrh r1, [r1]
|
|
lsrs r1, 8
|
|
strb r1, [r3]
|
|
bl move_anim_task_del
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_817351C
|
|
|
|
thumb_func_start sub_817354C
|
|
sub_817354C: @ 817354C
|
|
push {lr}
|
|
bl LoadOamFromSprites
|
|
bl ProcessObjectCopyRequests
|
|
bl copy_pal_bg_faded_to_pal_ram
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_817354C
|
|
|
|
thumb_func_start sub_8173560
|
|
sub_8173560: @ 8173560
|
|
push {lr}
|
|
bl RunTasks
|
|
bl RunTextPrinters
|
|
bl CallObjectCallbacks
|
|
bl PrepareSpritesForOamLoad
|
|
bl fade_and_return_progress_probably
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8173560
|
|
|
|
thumb_func_start sub_817357C
|
|
sub_817357C: @ 817357C
|
|
push {r4,lr}
|
|
sub sp, 0x4
|
|
ldr r0, =gUnknown_030022C0
|
|
movs r1, 0x87
|
|
lsls r1, 3
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x4
|
|
bls _08173590
|
|
b _08173688
|
|
_08173590:
|
|
lsls r0, 2
|
|
ldr r1, =_081735A4
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_081735A4:
|
|
.4byte _081735B8
|
|
.4byte _081735E8
|
|
.4byte _081735EE
|
|
.4byte _08173620
|
|
.4byte _0817365C
|
|
_081735B8:
|
|
movs r0, 0
|
|
bl SetVBlankCallback
|
|
bl sub_8174EC4
|
|
ldr r4, =gUnknown_0203BCDC
|
|
ldr r0, =0x00002014
|
|
bl AllocZeroed
|
|
str r0, [r4]
|
|
ldr r0, =gUnknown_030022C0
|
|
movs r1, 0x87
|
|
lsls r1, 3
|
|
adds r0, r1
|
|
movs r1, 0x1
|
|
strb r1, [r0]
|
|
b _08173688
|
|
.pool
|
|
_081735E8:
|
|
bl sub_8174F70
|
|
b _08173642
|
|
_081735EE:
|
|
ldr r1, =0x00003f42
|
|
movs r0, 0x50
|
|
bl SetGpuReg
|
|
movs r1, 0xE2
|
|
lsls r1, 3
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
movs r0, 0x54
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
bl sub_8174FAC
|
|
ldr r0, =gUnknown_0203BCDC
|
|
ldr r1, [r0]
|
|
movs r0, 0
|
|
strh r0, [r1]
|
|
b _08173642
|
|
.pool
|
|
_08173620:
|
|
bl sub_8175024
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0
|
|
bne _08173688
|
|
ldr r0, =sub_817354C
|
|
bl SetVBlankCallback
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
str r4, [sp]
|
|
movs r1, 0
|
|
movs r2, 0x10
|
|
movs r3, 0
|
|
bl pal_fade_maybe
|
|
_08173642:
|
|
ldr r1, =gUnknown_030022C0
|
|
movs r0, 0x87
|
|
lsls r0, 3
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
b _08173688
|
|
.pool
|
|
_0817365C:
|
|
bl fade_and_return_progress_probably
|
|
ldr r0, =gUnknown_02037FD4
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08173688
|
|
ldr r0, =sub_8173560
|
|
bl SetMainCallback2
|
|
movs r0, 0xDA
|
|
lsls r0, 1
|
|
bl song_play_for_text
|
|
movs r0, 0
|
|
b _0817368A
|
|
.pool
|
|
_08173688:
|
|
movs r0, 0x1
|
|
_0817368A:
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_817357C
|
|
|
|
thumb_func_start sub_8173694
|
|
sub_8173694: @ 8173694
|
|
push {r4,lr}
|
|
bl sub_817357C
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0
|
|
bne _081736C4
|
|
ldr r0, =sub_817371C
|
|
movs r1, 0
|
|
bl CreateTask
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, =gTasks
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r2
|
|
strh r4, [r1, 0x8]
|
|
ldr r4, =gUnknown_0203BCD8
|
|
movs r0, 0x78
|
|
bl AllocZeroed
|
|
str r0, [r4]
|
|
_081736C4:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8173694
|
|
|
|
thumb_func_start sub_81736D8
|
|
sub_81736D8: @ 81736D8
|
|
push {r4,lr}
|
|
bl sub_817357C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08173708
|
|
ldr r0, =sub_817371C
|
|
movs r1, 0
|
|
bl CreateTask
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, =gTasks
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r2
|
|
movs r0, 0x1
|
|
strh r0, [r1, 0x8]
|
|
ldr r4, =gUnknown_0203BCD8
|
|
movs r0, 0x78
|
|
bl AllocZeroed
|
|
str r0, [r4]
|
|
_08173708:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81736D8
|
|
|
|
thumb_func_start sub_817371C
|
|
sub_817371C: @ 817371C
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0xC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
ldr r1, =gTasks
|
|
lsls r0, 2
|
|
add r0, r8
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
movs r1, 0
|
|
strh r1, [r0, 0xC]
|
|
movs r7, 0
|
|
ldr r0, =gUnknown_0203BCD8
|
|
mov r9, r0
|
|
_08173740:
|
|
movs r0, 0x64
|
|
adds r1, r7, 0
|
|
muls r1, r0
|
|
ldr r0, =gUnknown_020244EC
|
|
adds r6, r1, r0
|
|
adds r0, r6, 0
|
|
movs r1, 0xB
|
|
bl pokemon_getattr
|
|
adds r5, r0, 0
|
|
cmp r5, 0
|
|
beq _0817380C
|
|
adds r0, r6, 0
|
|
movs r1, 0x41
|
|
bl pokemon_getattr
|
|
mov r1, r9
|
|
ldr r3, [r1]
|
|
lsls r4, r7, 2
|
|
adds r4, r7
|
|
lsls r4, 2
|
|
adds r3, r4
|
|
ldr r2, =0x000001ff
|
|
adds r1, r2, 0
|
|
ands r0, r1
|
|
ldrh r1, [r3, 0x8]
|
|
ldr r5, =0xfffffe00
|
|
adds r2, r5, 0
|
|
ands r1, r2
|
|
orrs r1, r0
|
|
strh r1, [r3, 0x8]
|
|
adds r0, r6, 0
|
|
movs r1, 0x1
|
|
bl pokemon_getattr
|
|
mov r2, r9
|
|
ldr r1, [r2]
|
|
adds r1, r4
|
|
str r0, [r1]
|
|
adds r0, r6, 0
|
|
movs r1, 0
|
|
bl pokemon_getattr
|
|
mov r5, r9
|
|
ldr r1, [r5]
|
|
adds r1, 0x4
|
|
adds r1, r4
|
|
str r0, [r1]
|
|
adds r0, r6, 0
|
|
movs r1, 0x38
|
|
bl pokemon_getattr
|
|
ldr r2, [r5]
|
|
adds r2, r4
|
|
lsls r0, 1
|
|
ldrb r3, [r2, 0x9]
|
|
movs r1, 0x1
|
|
ands r1, r3
|
|
orrs r1, r0
|
|
strb r1, [r2, 0x9]
|
|
adds r0, r6, 0
|
|
movs r1, 0x2
|
|
mov r2, sp
|
|
bl pokemon_getattr
|
|
movs r2, 0
|
|
mov r6, r8
|
|
lsls r5, r6, 2
|
|
ldr r3, =gUnknown_0203BCD8
|
|
_081737CA:
|
|
ldr r0, [r3]
|
|
adds r1, r2, r4
|
|
adds r0, 0xA
|
|
adds r0, r1
|
|
mov r6, sp
|
|
adds r1, r6, r2
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
adds r0, r2, 0x1
|
|
lsls r0, 16
|
|
lsrs r2, r0, 16
|
|
cmp r2, 0x9
|
|
bls _081737CA
|
|
ldr r0, =gTasks
|
|
mov r2, r8
|
|
adds r1, r5, r2
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldrh r0, [r1, 0xC]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0xC]
|
|
b _08173840
|
|
.pool
|
|
_0817380C:
|
|
mov r6, r9
|
|
ldr r3, [r6]
|
|
lsls r2, r7, 2
|
|
adds r2, r7
|
|
lsls r2, 2
|
|
adds r4, r3, r2
|
|
ldrh r0, [r4, 0x8]
|
|
ldr r6, =0xfffffe00
|
|
adds r1, r6, 0
|
|
ands r0, r1
|
|
strh r0, [r4, 0x8]
|
|
str r5, [r4]
|
|
adds r3, 0x4
|
|
adds r3, r2
|
|
str r5, [r3]
|
|
ldrb r1, [r4, 0x9]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
strb r0, [r4, 0x9]
|
|
mov r1, r9
|
|
ldr r0, [r1]
|
|
adds r0, r2
|
|
movs r1, 0xFF
|
|
strb r1, [r0, 0xA]
|
|
mov r2, r8
|
|
lsls r5, r2, 2
|
|
_08173840:
|
|
adds r0, r7, 0x1
|
|
lsls r0, 16
|
|
lsrs r7, r0, 16
|
|
cmp r7, 0x5
|
|
bhi _0817384C
|
|
b _08173740
|
|
_0817384C:
|
|
ldr r0, =gUnknown_0203BCD4
|
|
movs r3, 0
|
|
str r3, [r0]
|
|
ldr r4, =gTasks
|
|
mov r6, r8
|
|
adds r1, r5, r6
|
|
lsls r1, 3
|
|
adds r2, r1, r4
|
|
strh r3, [r2, 0xA]
|
|
movs r0, 0xFF
|
|
strh r0, [r2, 0x10]
|
|
movs r7, 0
|
|
adds r3, r4, 0
|
|
adds r3, 0x8
|
|
movs r2, 0xFF
|
|
_0817386A:
|
|
adds r0, r7, 0x5
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
adds r0, r3
|
|
strh r2, [r0]
|
|
adds r0, r7, 0x1
|
|
lsls r0, 16
|
|
lsrs r7, r0, 16
|
|
cmp r7, 0x5
|
|
bls _0817386A
|
|
mov r1, r8
|
|
adds r0, r5, r1
|
|
lsls r0, 3
|
|
adds r1, r0, r4
|
|
movs r2, 0x8
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, 0
|
|
beq _081738A4
|
|
ldr r0, =sub_8173A8C
|
|
b _081738A6
|
|
.pool
|
|
_081738A4:
|
|
ldr r0, =sub_81738BC
|
|
_081738A6:
|
|
str r0, [r1]
|
|
add sp, 0xC
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_817371C
|
|
|
|
thumb_func_start sub_81738BC
|
|
sub_81738BC: @ 81738BC
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x10
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
ldr r7, =0x0201c000
|
|
ldr r0, =gUnknown_0203BCE4
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _081738EC
|
|
movs r2, 0x80
|
|
lsls r2, 6
|
|
adds r0, r7, 0
|
|
movs r1, 0
|
|
bl memset
|
|
b _08173906
|
|
.pool
|
|
_081738EC:
|
|
movs r0, 0x3
|
|
bl sub_81534D0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _08173906
|
|
movs r2, 0x80
|
|
lsls r2, 6
|
|
adds r0, r7, 0
|
|
movs r1, 0
|
|
bl memset
|
|
_08173906:
|
|
movs r5, 0
|
|
ldrh r1, [r7, 0x8]
|
|
ldr r2, =0x000001ff
|
|
adds r0, r2, 0
|
|
ands r0, r1
|
|
mov r1, r9
|
|
lsls r1, 2
|
|
mov r8, r1
|
|
cmp r0, 0
|
|
beq _08173930
|
|
_0817391A:
|
|
adds r0, r5, 0x1
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
adds r7, 0x78
|
|
cmp r5, 0x31
|
|
bhi _08173934
|
|
ldrh r1, [r7, 0x8]
|
|
adds r0, r2, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0817391A
|
|
_08173930:
|
|
cmp r5, 0x31
|
|
bls _08173956
|
|
_08173934:
|
|
ldr r4, =0x0201c000
|
|
adds r6, r4, 0
|
|
adds r4, 0x78
|
|
movs r5, 0
|
|
subs r7, 0x78
|
|
_0817393E:
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0x78
|
|
bl memcpy
|
|
adds r0, r5, 0x1
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
adds r6, 0x78
|
|
adds r4, 0x78
|
|
cmp r5, 0x30
|
|
bls _0817393E
|
|
_08173956:
|
|
ldr r0, =gUnknown_0203BCD8
|
|
ldr r1, [r0]
|
|
adds r0, r7, 0
|
|
movs r2, 0x78
|
|
bl memcpy
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl sub_81973C4
|
|
ldr r2, =gUnknown_082C8959
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
movs r0, 0x2
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0x1
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0x3
|
|
str r0, [sp, 0xC]
|
|
movs r0, 0
|
|
movs r1, 0x1
|
|
movs r3, 0
|
|
bl AddTextPrinterParametrized
|
|
movs r0, 0
|
|
movs r1, 0x3
|
|
bl CopyWindowToVram
|
|
ldr r1, =gTasks
|
|
mov r0, r8
|
|
add r0, r9
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldr r1, =sub_81739C4
|
|
str r1, [r0]
|
|
add sp, 0x10
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81738BC
|
|
|
|
thumb_func_start sub_81739C4
|
|
sub_81739C4: @ 81739C4
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r1, =gUnknown_03006214
|
|
ldr r0, =sub_81736D8
|
|
str r0, [r1]
|
|
movs r0, 0x3
|
|
bl save_game_when_memory_present
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0xFF
|
|
bne _08173A34
|
|
ldr r0, =gUnknown_030061FC
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
beq _08173A34
|
|
movs r0, 0x1
|
|
bl UnsetBgTilemapBuffer
|
|
movs r0, 0x3
|
|
bl UnsetBgTilemapBuffer
|
|
bl FreeAllWindowBuffers
|
|
ldr r5, =gUnknown_0203BCDC
|
|
ldr r0, [r5]
|
|
cmp r0, 0
|
|
beq _08173A06
|
|
bl Free
|
|
movs r0, 0
|
|
str r0, [r5]
|
|
_08173A06:
|
|
ldr r5, =gUnknown_0203BCD8
|
|
ldr r0, [r5]
|
|
cmp r0, 0
|
|
beq _08173A16
|
|
bl Free
|
|
movs r0, 0
|
|
str r0, [r5]
|
|
_08173A16:
|
|
adds r0, r4, 0
|
|
bl DestroyTask
|
|
b _08173A4C
|
|
.pool
|
|
_08173A34:
|
|
movs r0, 0x37
|
|
bl audio_play
|
|
ldr r1, =gTasks
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldr r1, =sub_8173A5C
|
|
str r1, [r0]
|
|
movs r1, 0x20
|
|
strh r1, [r0, 0xE]
|
|
_08173A4C:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81739C4
|
|
|
|
thumb_func_start sub_8173A5C
|
|
sub_8173A5C: @ 8173A5C
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, =gTasks
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r2
|
|
ldrh r2, [r1, 0xE]
|
|
movs r3, 0xE
|
|
ldrsh r0, [r1, r3]
|
|
cmp r0, 0
|
|
beq _08173A80
|
|
subs r0, r2, 0x1
|
|
strh r0, [r1, 0xE]
|
|
b _08173A84
|
|
.pool
|
|
_08173A80:
|
|
ldr r0, =sub_8173A8C
|
|
str r0, [r1]
|
|
_08173A84:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8173A5C
|
|
|
|
thumb_func_start sub_8173A8C
|
|
sub_8173A8C: @ 8173A8C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, =gTasks
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r2
|
|
ldr r0, =sub_8173AA8
|
|
str r0, [r1]
|
|
bx lr
|
|
.pool
|
|
thumb_func_end sub_8173A8C
|
|
|
|
thumb_func_start sub_8173AA8
|
|
sub_8173AA8: @ 8173AA8
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x10
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
ldr r0, =gTasks
|
|
mov r2, r8
|
|
lsls r1, r2, 2
|
|
add r1, r8
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldrh r6, [r1, 0xA]
|
|
ldr r2, =gUnknown_0203BCD8
|
|
lsls r0, r6, 2
|
|
adds r0, r6
|
|
lsls r0, 2
|
|
ldr r2, [r2]
|
|
adds r7, r2, r0
|
|
movs r2, 0xC
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, 0x3
|
|
ble _08173AEC
|
|
ldr r1, =gUnknown_085E53B4
|
|
b _08173AEE
|
|
.pool
|
|
_08173AEC:
|
|
ldr r1, =gUnknown_085E53E4
|
|
_08173AEE:
|
|
lsls r2, r6, 3
|
|
adds r0, r2, r1
|
|
ldrh r3, [r0]
|
|
adds r0, r1, 0x2
|
|
adds r0, r2, r0
|
|
ldrh r4, [r0]
|
|
adds r0, r1, 0x4
|
|
adds r0, r2, r0
|
|
ldrh r0, [r0]
|
|
mov r9, r0
|
|
adds r1, 0x6
|
|
adds r2, r1
|
|
ldrh r5, [r2]
|
|
ldrh r2, [r7, 0x8]
|
|
ldr r0, =0x000001ff
|
|
ands r0, r2
|
|
movs r1, 0xCE
|
|
lsls r1, 1
|
|
cmp r0, r1
|
|
bne _08173B20
|
|
lsls r0, r5, 16
|
|
movs r1, 0xA0
|
|
lsls r1, 12
|
|
adds r0, r1
|
|
lsrs r5, r0, 16
|
|
_08173B20:
|
|
lsls r0, r2, 23
|
|
lsrs r0, 23
|
|
ldr r1, [r7]
|
|
ldr r2, [r7, 0x4]
|
|
lsls r3, 16
|
|
asrs r3, 16
|
|
str r3, [sp]
|
|
lsls r3, r4, 16
|
|
asrs r3, 16
|
|
str r3, [sp, 0x4]
|
|
lsls r3, r6, 24
|
|
lsrs r3, 24
|
|
str r3, [sp, 0x8]
|
|
ldr r3, =0x0000ffff
|
|
str r3, [sp, 0xC]
|
|
movs r3, 0x1
|
|
bl sub_818D3E4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r4, =gUnknown_02020630
|
|
lsls r2, r0, 4
|
|
adds r2, r0
|
|
lsls r2, 2
|
|
adds r3, r2, r4
|
|
movs r1, 0
|
|
mov r12, r1
|
|
mov r1, r9
|
|
strh r1, [r3, 0x30]
|
|
strh r5, [r3, 0x32]
|
|
mov r1, r12
|
|
strh r1, [r3, 0x2E]
|
|
ldrh r1, [r7, 0x8]
|
|
lsls r1, 23
|
|
lsrs r1, 23
|
|
strh r1, [r3, 0x3C]
|
|
adds r4, 0x1C
|
|
adds r2, r4
|
|
ldr r1, =sub_8175120
|
|
str r1, [r2]
|
|
ldr r5, =gTasks
|
|
adds r1, r6, 0x5
|
|
lsls r1, 1
|
|
mov r2, r8
|
|
lsls r4, r2, 2
|
|
add r4, r8
|
|
lsls r4, 3
|
|
adds r1, r4
|
|
adds r2, r5, 0
|
|
adds r2, 0x8
|
|
adds r1, r2
|
|
strh r0, [r1]
|
|
movs r0, 0
|
|
movs r1, 0x1
|
|
bl sub_8197434
|
|
adds r4, r5
|
|
ldr r0, =sub_8173BC0
|
|
str r0, [r4]
|
|
add sp, 0x10
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8173AA8
|
|
|
|
thumb_func_start sub_8173BC0
|
|
sub_8173BC0: @ 8173BC0
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r4, =gTasks
|
|
lsls r3, r0, 2
|
|
adds r3, r0
|
|
lsls r3, 3
|
|
adds r5, r3, r4
|
|
ldrh r0, [r5, 0xA]
|
|
ldr r2, =gUnknown_0203BCD8
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
ldr r2, [r2]
|
|
adds r2, r1
|
|
adds r0, 0x5
|
|
lsls r0, 1
|
|
adds r0, r3
|
|
adds r4, 0x8
|
|
adds r0, r4
|
|
movs r3, 0
|
|
ldrsh r1, [r0, r3]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, =gUnknown_02020630
|
|
adds r3, r0, r1
|
|
ldr r1, [r3, 0x1C]
|
|
ldr r0, =DummyObjectCallback
|
|
cmp r1, r0
|
|
bne _08173C1A
|
|
ldrb r1, [r3, 0x1]
|
|
movs r0, 0x4
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r3, 0x1]
|
|
adds r0, r2, 0
|
|
movs r1, 0
|
|
movs r2, 0xE
|
|
bl sub_8174A88
|
|
movs r0, 0x78
|
|
strh r0, [r5, 0xE]
|
|
ldr r0, =sub_8173C34
|
|
str r0, [r5]
|
|
_08173C1A:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8173BC0
|
|
|
|
thumb_func_start sub_8173C34
|
|
sub_8173C34: @ 8173C34
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r2, =gTasks
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r6, r0, 3
|
|
adds r4, r6, r2
|
|
ldrh r3, [r4, 0xA]
|
|
ldr r1, =gUnknown_0203BCD8
|
|
lsls r0, r3, 2
|
|
adds r0, r3
|
|
lsls r0, 2
|
|
ldr r1, [r1]
|
|
adds r1, r0
|
|
mov r9, r1
|
|
ldrh r1, [r4, 0xE]
|
|
movs r7, 0xE
|
|
ldrsh r0, [r4, r7]
|
|
mov r12, r2
|
|
cmp r0, 0
|
|
beq _08173C78
|
|
subs r0, r1, 0x1
|
|
strh r0, [r4, 0xE]
|
|
b _08173D10
|
|
.pool
|
|
_08173C78:
|
|
ldr r2, =gUnknown_0203BCD4
|
|
ldr r0, =gUnknown_02020630
|
|
mov r8, r0
|
|
adds r0, r3, 0x5
|
|
lsls r0, 1
|
|
adds r0, r6
|
|
mov r1, r12
|
|
adds r1, 0x8
|
|
adds r6, r0, r1
|
|
movs r7, 0
|
|
ldrsh r1, [r6, r7]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
add r0, r8
|
|
ldrb r0, [r0, 0x5]
|
|
lsrs r0, 4
|
|
movs r1, 0x80
|
|
lsls r1, 9
|
|
lsls r1, r0
|
|
ldr r3, [r2]
|
|
orrs r3, r1
|
|
str r3, [r2]
|
|
ldrh r2, [r4, 0xA]
|
|
movs r1, 0xA
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x4
|
|
bgt _08173D04
|
|
mov r7, r9
|
|
ldrh r1, [r7, 0x1C]
|
|
ldr r0, =0x000001ff
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08173D04
|
|
adds r0, r2, 0x1
|
|
strh r0, [r4, 0xA]
|
|
ldr r0, =0x000063b0
|
|
str r0, [sp]
|
|
adds r0, r3, 0
|
|
movs r1, 0
|
|
movs r2, 0xC
|
|
movs r3, 0xC
|
|
bl pal_fade_maybe
|
|
movs r0, 0
|
|
ldrsh r1, [r6, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
add r0, r8
|
|
ldrb r2, [r0, 0x5]
|
|
movs r1, 0xD
|
|
negs r1, r1
|
|
ands r1, r2
|
|
movs r2, 0x4
|
|
orrs r1, r2
|
|
strb r1, [r0, 0x5]
|
|
ldr r0, =sub_8173AA8
|
|
str r0, [r4]
|
|
b _08173D10
|
|
.pool
|
|
_08173D04:
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
add r0, r12
|
|
ldr r1, =sub_8173D24
|
|
str r1, [r0]
|
|
_08173D10:
|
|
add sp, 0x4
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8173C34
|
|
|
|
thumb_func_start sub_8173D24
|
|
sub_8173D24: @ 8173D24
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r0, =0xffff0000
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl pal_fade_maybe
|
|
movs r3, 0
|
|
lsls r1, r4, 2
|
|
adds r0, r1, r4
|
|
lsls r5, r0, 3
|
|
ldr r0, =gTasks + 0x8
|
|
mov r12, r0
|
|
mov r8, r1
|
|
ldr r6, =gUnknown_02020630
|
|
movs r7, 0xD
|
|
negs r7, r7
|
|
_08173D52:
|
|
adds r0, r3, 0x5
|
|
lsls r0, 1
|
|
adds r0, r5
|
|
mov r2, r12
|
|
adds r1, r0, r2
|
|
movs r2, 0
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, 0xFF
|
|
beq _08173D74
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r6
|
|
ldrb r2, [r1, 0x5]
|
|
adds r0, r7, 0
|
|
ands r0, r2
|
|
strb r0, [r1, 0x5]
|
|
_08173D74:
|
|
adds r0, r3, 0x1
|
|
lsls r0, 16
|
|
lsrs r3, r0, 16
|
|
cmp r3, 0x5
|
|
bls _08173D52
|
|
movs r0, 0
|
|
movs r1, 0xF
|
|
bl sub_8174A38
|
|
movs r0, 0x69
|
|
bl audio_play
|
|
ldr r1, =gTasks
|
|
mov r2, r8
|
|
adds r0, r2, r4
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
movs r1, 0xC8
|
|
lsls r1, 1
|
|
strh r1, [r0, 0xE]
|
|
ldr r1, =sub_8173DC0
|
|
str r1, [r0]
|
|
add sp, 0x4
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8173D24
|
|
|
|
thumb_func_start sub_8173DC0
|
|
sub_8173DC0: @ 8173DC0
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
ldr r7, =gTasks
|
|
lsls r4, r6, 2
|
|
adds r0, r4, r6
|
|
lsls r5, r0, 3
|
|
adds r1, r5, r7
|
|
ldrh r2, [r1, 0xE]
|
|
movs r3, 0xE
|
|
ldrsh r0, [r1, r3]
|
|
cmp r0, 0
|
|
beq _08173E04
|
|
subs r2, 0x1
|
|
strh r2, [r1, 0xE]
|
|
movs r0, 0x3
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
bne _08173E7E
|
|
lsls r0, r2, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x6E
|
|
ble _08173E7E
|
|
bl sub_81751FC
|
|
b _08173E7E
|
|
.pool
|
|
_08173E04:
|
|
movs r3, 0
|
|
mov r9, r4
|
|
ldr r0, =gUnknown_0203BCD4
|
|
mov r10, r0
|
|
adds r4, r5, 0
|
|
adds r7, 0x8
|
|
mov r8, r7
|
|
ldr r7, =gUnknown_02020630
|
|
movs r1, 0xD
|
|
negs r1, r1
|
|
mov r12, r1
|
|
movs r5, 0x4
|
|
_08173E1C:
|
|
adds r0, r3, 0x5
|
|
lsls r0, 1
|
|
adds r0, r4
|
|
mov r2, r8
|
|
adds r1, r0, r2
|
|
movs r2, 0
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, 0xFF
|
|
beq _08173E40
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r7
|
|
ldrb r2, [r1, 0x5]
|
|
mov r0, r12
|
|
ands r0, r2
|
|
orrs r0, r5
|
|
strb r0, [r1, 0x5]
|
|
_08173E40:
|
|
adds r0, r3, 0x1
|
|
lsls r0, 16
|
|
lsrs r3, r0, 16
|
|
cmp r3, 0x5
|
|
bls _08173E1C
|
|
mov r3, r10
|
|
ldr r0, [r3]
|
|
ldr r1, =0x000063b0
|
|
str r1, [sp]
|
|
movs r1, 0
|
|
movs r2, 0xC
|
|
movs r3, 0xC
|
|
bl pal_fade_maybe
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl FillWindowPixelBuffer
|
|
movs r0, 0
|
|
movs r1, 0x3
|
|
bl CopyWindowToVram
|
|
ldr r1, =gTasks
|
|
mov r2, r9
|
|
adds r0, r2, r6
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
movs r1, 0x7
|
|
strh r1, [r0, 0xE]
|
|
ldr r1, =sub_8173EA4
|
|
str r1, [r0]
|
|
_08173E7E:
|
|
add sp, 0x4
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8173DC0
|
|
|
|
thumb_func_start sub_8173EA4
|
|
sub_8173EA4: @ 8173EA4
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, =gTasks
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r2
|
|
ldrh r2, [r1, 0xE]
|
|
movs r3, 0xE
|
|
ldrsh r0, [r1, r3]
|
|
cmp r0, 0xF
|
|
ble _08173ECC
|
|
ldr r0, =sub_8173EE4
|
|
str r0, [r1]
|
|
b _08173EDE
|
|
.pool
|
|
_08173ECC:
|
|
adds r0, r2, 0x1
|
|
strh r0, [r1, 0xE]
|
|
movs r0, 0xE
|
|
ldrsh r1, [r1, r0]
|
|
lsls r1, 24
|
|
lsrs r1, 16
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
_08173EDE:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8173EA4
|
|
|
|
thumb_func_start sub_8173EE4
|
|
sub_8173EE4: @ 8173EE4
|
|
push {r4-r6,lr}
|
|
sub sp, 0x8
|
|
adds r5, r0, 0
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
movs r1, 0x82
|
|
lsls r1, 5
|
|
movs r0, 0
|
|
bl SetGpuReg
|
|
movs r0, 0
|
|
bl ShowBg
|
|
movs r0, 0x1
|
|
bl ShowBg
|
|
movs r0, 0x3
|
|
bl ShowBg
|
|
ldr r6, =gUnknown_03005D90
|
|
ldr r0, [r6]
|
|
ldrb r0, [r0, 0x8]
|
|
movs r1, 0x1
|
|
bl sub_818D97C
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x6
|
|
str r1, [sp]
|
|
ldr r1, =0x0000ffff
|
|
str r1, [sp, 0x4]
|
|
movs r1, 0x1
|
|
movs r2, 0x78
|
|
movs r3, 0x48
|
|
bl sub_818D8AC
|
|
ldr r1, =gTasks
|
|
lsls r4, r5, 2
|
|
adds r4, r5
|
|
lsls r4, 3
|
|
adds r4, r1
|
|
strh r0, [r4, 0x10]
|
|
ldr r0, =gUnknown_085E5380
|
|
bl AddWindow
|
|
ldr r0, [r6]
|
|
ldrb r1, [r0, 0x14]
|
|
lsrs r1, 3
|
|
ldr r2, =0x0000021d
|
|
movs r0, 0x1
|
|
movs r3, 0xD0
|
|
bl sub_80987D4
|
|
movs r0, 0x1
|
|
bl stdpal_get
|
|
movs r1, 0xE0
|
|
movs r2, 0x20
|
|
bl gpu_pal_apply
|
|
movs r0, 0x78
|
|
strh r0, [r4, 0xE]
|
|
ldr r0, =sub_8173F84
|
|
str r0, [r4]
|
|
add sp, 0x8
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8173EE4
|
|
|
|
thumb_func_start sub_8173F84
|
|
sub_8173F84: @ 8173F84
|
|
push {r4,r5,lr}
|
|
sub sp, 0x10
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, =gTasks
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r4, r1, r2
|
|
ldrh r0, [r4, 0xE]
|
|
movs r1, 0xE
|
|
ldrsh r5, [r4, r1]
|
|
cmp r5, 0
|
|
beq _08173FAC
|
|
subs r0, 0x1
|
|
strh r0, [r4, 0xE]
|
|
b _08174018
|
|
.pool
|
|
_08173FAC:
|
|
ldr r2, =gUnknown_02020630
|
|
movs r3, 0x10
|
|
ldrsh r1, [r4, r3]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r1, r0, r2
|
|
ldrh r2, [r1, 0x20]
|
|
movs r3, 0x20
|
|
ldrsh r0, [r1, r3]
|
|
cmp r0, 0xC0
|
|
beq _08173FD0
|
|
adds r0, r2, 0x1
|
|
strh r0, [r1, 0x20]
|
|
b _08174018
|
|
.pool
|
|
_08173FD0:
|
|
movs r0, 0x20
|
|
str r0, [sp]
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl FillBgTilemapBufferRect_Palette0
|
|
movs r0, 0x1
|
|
movs r1, 0x2
|
|
bl sub_8174C98
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl sub_81973C4
|
|
ldr r2, =gUnknown_085E8C14
|
|
str r5, [sp]
|
|
movs r0, 0x2
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0x1
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0x3
|
|
str r0, [sp, 0xC]
|
|
movs r0, 0
|
|
movs r1, 0x1
|
|
movs r3, 0
|
|
bl AddTextPrinterParametrized
|
|
movs r0, 0
|
|
movs r1, 0x3
|
|
bl CopyWindowToVram
|
|
ldr r0, =sub_8174028
|
|
str r0, [r4]
|
|
_08174018:
|
|
add sp, 0x10
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8173F84
|
|
|
|
thumb_func_start sub_8174028
|
|
sub_8174028: @ 8174028
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r0, =gUnknown_030022C0
|
|
ldrh r1, [r0, 0x2E]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0817404E
|
|
movs r0, 0x4
|
|
bl play_sound_effect
|
|
ldr r0, =gTasks
|
|
lsls r1, r4, 2
|
|
adds r1, r4
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldr r0, =sub_8174060
|
|
str r0, [r1]
|
|
_0817404E:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8174028
|
|
|
|
thumb_func_start sub_8174060
|
|
sub_8174060: @ 8174060
|
|
push {r4,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
ldr r0, =gUnknown_02037B14
|
|
ldr r1, =gUnknown_02037714
|
|
movs r2, 0x80
|
|
lsls r2, 2
|
|
bl CpuSet
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
movs r1, 0x8
|
|
movs r2, 0
|
|
movs r3, 0x10
|
|
bl pal_fade_maybe
|
|
ldr r1, =gTasks
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldr r1, =sub_81740B0
|
|
str r1, [r0]
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8174060
|
|
|
|
thumb_func_start sub_81740B0
|
|
sub_81740B0: @ 81740B0
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
ldr r0, =gUnknown_02037FD4
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08174164
|
|
lsls r0, r7, 2
|
|
mov r8, r0
|
|
ldr r1, =gTasks
|
|
adds r0, r7
|
|
lsls r0, 3
|
|
adds r1, 0x12
|
|
adds r5, r0, r1
|
|
ldr r2, =gUnknown_02020630
|
|
mov r9, r2
|
|
movs r6, 0x5
|
|
_081740DC:
|
|
ldrb r4, [r5]
|
|
cmp r4, 0xFF
|
|
beq _081740FA
|
|
lsls r0, r4, 4
|
|
adds r0, r4
|
|
lsls r0, 2
|
|
add r0, r9
|
|
ldrb r0, [r0, 0x3]
|
|
lsls r0, 26
|
|
lsrs r0, 27
|
|
bl rotscale_free_entry
|
|
adds r0, r4, 0
|
|
bl sub_818D820
|
|
_081740FA:
|
|
adds r5, 0x2
|
|
subs r6, 0x1
|
|
cmp r6, 0
|
|
bge _081740DC
|
|
ldr r0, =gTasks
|
|
mov r2, r8
|
|
adds r1, r2, r7
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldrh r0, [r1, 0x10]
|
|
bl sub_818D8F0
|
|
movs r0, 0
|
|
bl HideBg
|
|
movs r0, 0x1
|
|
bl HideBg
|
|
movs r0, 0x3
|
|
bl HideBg
|
|
bl FreeAllWindowBuffers
|
|
movs r0, 0x1
|
|
bl UnsetBgTilemapBuffer
|
|
movs r0, 0x3
|
|
bl UnsetBgTilemapBuffer
|
|
movs r0, 0
|
|
bl ResetBgsAndClearDma3BusyFlags
|
|
adds r0, r7, 0
|
|
bl DestroyTask
|
|
ldr r4, =gUnknown_0203BCDC
|
|
ldr r0, [r4]
|
|
cmp r0, 0
|
|
beq _08174150
|
|
bl Free
|
|
movs r0, 0
|
|
str r0, [r4]
|
|
_08174150:
|
|
ldr r4, =gUnknown_0203BCD8
|
|
ldr r0, [r4]
|
|
cmp r0, 0
|
|
beq _08174160
|
|
bl Free
|
|
movs r0, 0
|
|
str r0, [r4]
|
|
_08174160:
|
|
bl sub_8174184
|
|
_08174164:
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81740B0
|
|
|
|
thumb_func_start sub_8174184
|
|
sub_8174184: @ 8174184
|
|
push {lr}
|
|
ldr r0, =sub_8175620
|
|
bl SetMainCallback2
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8174184
|
|
|
|
thumb_func_start sub_8174194
|
|
sub_8174194: @ 8174194
|
|
push {r4,lr}
|
|
ldr r0, =gUnknown_030022C0
|
|
movs r1, 0x87
|
|
lsls r1, 3
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x5
|
|
bhi _081741D0
|
|
lsls r0, 2
|
|
ldr r1, =_081741B8
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_081741B8:
|
|
.4byte _081741D0
|
|
.4byte _08174200
|
|
.4byte _08174214
|
|
.4byte _08174240
|
|
.4byte _08174280
|
|
.4byte _081742B0
|
|
_081741D0:
|
|
movs r0, 0
|
|
bl SetVBlankCallback
|
|
bl sub_8174EC4
|
|
ldr r4, =gUnknown_0203BCDC
|
|
ldr r0, =0x00002014
|
|
bl AllocZeroed
|
|
str r0, [r4]
|
|
ldr r0, =gUnknown_030022C0
|
|
movs r2, 0x87
|
|
lsls r2, 3
|
|
adds r0, r2
|
|
movs r1, 0x1
|
|
strb r1, [r0]
|
|
b _08174308
|
|
.pool
|
|
_08174200:
|
|
bl sub_8174F70
|
|
ldr r1, =gUnknown_030022C0
|
|
movs r3, 0x87
|
|
lsls r3, 3
|
|
adds r1, r3
|
|
b _081742A2
|
|
.pool
|
|
_08174214:
|
|
movs r0, 0x50
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x52
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x54
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
bl sub_8174FAC
|
|
ldr r1, =gUnknown_030022C0
|
|
movs r4, 0x87
|
|
lsls r4, 3
|
|
adds r1, r4
|
|
b _081742A2
|
|
.pool
|
|
_08174240:
|
|
bl sub_8175024
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08174308
|
|
ldr r1, =0x0201c000
|
|
ldr r0, =gUnknown_085E56D4
|
|
ldm r0!, {r2-r4}
|
|
stm r1!, {r2-r4}
|
|
ldm r0!, {r2,r3}
|
|
stm r1!, {r2,r3}
|
|
movs r0, 0
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl sub_80F9BCC
|
|
ldr r0, =sub_817354C
|
|
bl SetVBlankCallback
|
|
ldr r1, =gUnknown_030022C0
|
|
movs r4, 0x87
|
|
lsls r4, 3
|
|
adds r1, r4
|
|
b _081742A2
|
|
.pool
|
|
_08174280:
|
|
bl RunTasks
|
|
bl CallObjectCallbacks
|
|
bl PrepareSpritesForOamLoad
|
|
bl fade_and_return_progress_probably
|
|
bl sub_80F9C1C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08174308
|
|
ldr r1, =gUnknown_030022C0
|
|
movs r0, 0x87
|
|
lsls r0, 3
|
|
adds r1, r0
|
|
_081742A2:
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
b _08174308
|
|
.pool
|
|
_081742B0:
|
|
ldr r1, =0x00003f42
|
|
movs r0, 0x50
|
|
bl SetGpuReg
|
|
movs r1, 0xE2
|
|
lsls r1, 3
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
movs r0, 0x54
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
ldr r0, =sub_8174324
|
|
movs r1, 0
|
|
bl CreateTask
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r2, 0
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
ldr r4, =gTasks + 0x8
|
|
movs r3, 0xFF
|
|
_081742E2:
|
|
adds r0, r2, 0x5
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
adds r0, r4
|
|
strh r3, [r0]
|
|
adds r0, r2, 0x1
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0x5
|
|
bls _081742E2
|
|
ldr r4, =gUnknown_0203BCD8
|
|
movs r0, 0x80
|
|
lsls r0, 6
|
|
bl AllocZeroed
|
|
str r0, [r4]
|
|
ldr r0, =sub_8173560
|
|
bl SetMainCallback2
|
|
_08174308:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8174194
|
|
|
|
thumb_func_start sub_8174324
|
|
sub_8174324: @ 8174324
|
|
push {r4-r6,lr}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
ldr r0, =0x00000226
|
|
str r0, [sp]
|
|
movs r0, 0
|
|
movs r1, 0x1E
|
|
movs r2, 0
|
|
movs r3, 0xC
|
|
bl sub_81980F0
|
|
movs r0, 0x3
|
|
bl sub_81534D0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _08174364
|
|
ldr r0, =gTasks
|
|
lsls r1, r6, 2
|
|
adds r1, r6
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldr r0, =sub_81749A0
|
|
b _081743DA
|
|
.pool
|
|
_08174364:
|
|
ldr r0, =0x0201c000
|
|
ldr r4, =gUnknown_0203BCD8
|
|
ldr r1, [r4]
|
|
movs r2, 0x80
|
|
lsls r2, 5
|
|
bl CpuSet
|
|
ldr r4, [r4]
|
|
movs r2, 0
|
|
ldrh r1, [r4, 0x8]
|
|
ldr r3, =0x000001ff
|
|
adds r0, r3, 0
|
|
ands r0, r1
|
|
lsls r5, r6, 2
|
|
cmp r0, 0
|
|
beq _0817439A
|
|
_08174384:
|
|
adds r0, r2, 0x1
|
|
lsls r0, 16
|
|
lsrs r2, r0, 16
|
|
adds r4, 0x78
|
|
cmp r2, 0x31
|
|
bhi _081743BC
|
|
ldrh r1, [r4, 0x8]
|
|
adds r0, r3, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08174384
|
|
_0817439A:
|
|
cmp r2, 0x31
|
|
bhi _081743BC
|
|
ldr r0, =gTasks
|
|
adds r1, r5, r6
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
subs r0, r2, 0x1
|
|
b _081743C6
|
|
.pool
|
|
_081743BC:
|
|
ldr r0, =gTasks
|
|
adds r1, r5, r6
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
movs r0, 0x31
|
|
_081743C6:
|
|
strh r0, [r1, 0x8]
|
|
movs r0, 0xA
|
|
bl sub_80847F8
|
|
ldr r2, =gTasks
|
|
adds r1, r5, r6
|
|
lsls r1, 3
|
|
adds r1, r2
|
|
strh r0, [r1, 0xA]
|
|
ldr r0, =sub_81743EC
|
|
_081743DA:
|
|
str r0, [r1]
|
|
add sp, 0x4
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8174324
|
|
|
|
thumb_func_start sub_81743EC
|
|
sub_81743EC: @ 81743EC
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x18
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
ldr r0, =gUnknown_0203BCD8
|
|
ldr r3, [r0]
|
|
movs r5, 0
|
|
ldr r1, =gTasks
|
|
mov r2, r8
|
|
lsls r0, r2, 2
|
|
add r0, r8
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
movs r4, 0x8
|
|
ldrsh r0, [r0, r4]
|
|
adds r4, r1, 0
|
|
ldr r2, =gUnknown_0203BCD4
|
|
cmp r5, r0
|
|
bge _0817442A
|
|
adds r1, r0, 0
|
|
_0817441E:
|
|
adds r3, 0x78
|
|
adds r0, r5, 0x1
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
cmp r5, r1
|
|
blt _0817441E
|
|
_0817442A:
|
|
adds r6, r3, 0
|
|
movs r0, 0
|
|
str r0, [r2]
|
|
mov r5, r8
|
|
lsls r2, r5, 2
|
|
adds r1, r2, r5
|
|
lsls r1, 3
|
|
adds r1, r4
|
|
strh r0, [r1, 0xC]
|
|
strh r0, [r1, 0x10]
|
|
movs r5, 0
|
|
str r2, [sp, 0x14]
|
|
ldr r4, =0x000001ff
|
|
adds r2, r1, 0
|
|
_08174446:
|
|
ldrh r1, [r6, 0x8]
|
|
adds r0, r4, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08174456
|
|
ldrh r0, [r2, 0x10]
|
|
adds r0, 0x1
|
|
strh r0, [r2, 0x10]
|
|
_08174456:
|
|
adds r0, r5, 0x1
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
adds r6, 0x14
|
|
cmp r5, 0x5
|
|
bls _08174446
|
|
adds r6, r3, 0
|
|
movs r5, 0
|
|
ldr r1, =gTasks
|
|
ldr r0, [sp, 0x14]
|
|
add r0, r8
|
|
lsls r0, 3
|
|
mov r9, r0
|
|
adds r0, r1
|
|
str r0, [sp, 0x10]
|
|
ldr r1, =0x000001ff
|
|
mov r10, r1
|
|
_08174478:
|
|
ldrh r0, [r6, 0x8]
|
|
mov r1, r10
|
|
ands r1, r0
|
|
adds r7, r0, 0
|
|
cmp r1, 0
|
|
beq _08174540
|
|
ldr r2, [sp, 0x10]
|
|
movs r4, 0x10
|
|
ldrsh r0, [r2, r4]
|
|
cmp r0, 0x3
|
|
ble _081744B8
|
|
lsls r1, r5, 3
|
|
ldr r0, =gUnknown_085E53B4
|
|
adds r0, 0x4
|
|
adds r0, r1, r0
|
|
ldrh r3, [r0]
|
|
ldr r0, =gUnknown_085E53BA
|
|
adds r1, r0
|
|
ldrh r4, [r1]
|
|
b _081744C8
|
|
.pool
|
|
_081744B8:
|
|
ldr r0, =gUnknown_085E53E4
|
|
lsls r2, r5, 3
|
|
adds r1, r0, 0x4
|
|
adds r1, r2, r1
|
|
ldrh r3, [r1]
|
|
adds r0, 0x6
|
|
adds r2, r0
|
|
ldrh r4, [r2]
|
|
_081744C8:
|
|
mov r1, r10
|
|
ands r1, r7
|
|
movs r0, 0xCE
|
|
lsls r0, 1
|
|
cmp r1, r0
|
|
bne _081744DE
|
|
lsls r0, r4, 16
|
|
movs r1, 0xA0
|
|
lsls r1, 12
|
|
adds r0, r1
|
|
lsrs r4, r0, 16
|
|
_081744DE:
|
|
lsls r0, r7, 23
|
|
lsrs r0, 23
|
|
ldr r1, [r6]
|
|
ldr r2, [r6, 0x4]
|
|
lsls r3, 16
|
|
asrs r3, 16
|
|
str r3, [sp]
|
|
lsls r3, r4, 16
|
|
asrs r3, 16
|
|
str r3, [sp, 0x4]
|
|
lsls r3, r5, 24
|
|
lsrs r3, 24
|
|
str r3, [sp, 0x8]
|
|
ldr r3, =0x0000ffff
|
|
str r3, [sp, 0xC]
|
|
movs r3, 0x1
|
|
bl sub_818D7D8
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldr r2, =gUnknown_02020630
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
ldrb r3, [r1, 0x5]
|
|
movs r4, 0xD
|
|
negs r4, r4
|
|
adds r2, r4, 0
|
|
ands r3, r2
|
|
movs r2, 0x4
|
|
orrs r3, r2
|
|
strb r3, [r1, 0x5]
|
|
adds r1, r5, 0x5
|
|
lsls r1, 1
|
|
add r1, r9
|
|
ldr r2, =gTasks + 0x8
|
|
adds r1, r2
|
|
strh r0, [r1]
|
|
b _0817454E
|
|
.pool
|
|
_08174540:
|
|
adds r0, r5, 0x5
|
|
lsls r0, 1
|
|
add r0, r9
|
|
ldr r4, =gTasks + 0x8
|
|
adds r0, r4
|
|
movs r1, 0xFF
|
|
strh r1, [r0]
|
|
_0817454E:
|
|
adds r0, r5, 0x1
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
adds r6, 0x14
|
|
cmp r5, 0x5
|
|
bls _08174478
|
|
ldr r0, =0xffff0000
|
|
ldr r2, =0x000063b0
|
|
movs r1, 0xC
|
|
bl sub_80A2A20
|
|
ldr r0, =gUnknown_02021CC4
|
|
ldr r1, =gTasks
|
|
ldr r4, [sp, 0x14]
|
|
add r4, r8
|
|
lsls r4, 3
|
|
adds r4, r1
|
|
movs r5, 0xA
|
|
ldrsh r1, [r4, r5]
|
|
movs r2, 0x1
|
|
movs r3, 0x3
|
|
bl ConvertIntToDecimalString
|
|
ldr r5, =gUnknown_02021FC4
|
|
ldr r1, =gUnknown_085E8C00
|
|
adds r0, r5, 0
|
|
bl ExpandStringRefs
|
|
movs r1, 0x8
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bgt _081745C0
|
|
ldr r1, =gUnknown_085E8574
|
|
movs r0, 0x1
|
|
str r0, [sp]
|
|
adds r0, r5, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl sub_8198204
|
|
b _081745D0
|
|
.pool
|
|
_081745C0:
|
|
ldr r1, =gUnknown_085E855C
|
|
movs r0, 0x1
|
|
str r0, [sp]
|
|
adds r0, r5, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl sub_8198204
|
|
_081745D0:
|
|
ldr r0, =gTasks
|
|
ldr r1, [sp, 0x14]
|
|
add r1, r8
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldr r0, =sub_81745FC
|
|
str r0, [r1]
|
|
add sp, 0x18
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81743EC
|
|
|
|
thumb_func_start sub_81745FC
|
|
sub_81745FC: @ 81745FC
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r0, =gUnknown_0203BCD8
|
|
ldr r5, [r0]
|
|
movs r3, 0
|
|
ldr r1, =gTasks
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
movs r2, 0x8
|
|
ldrsh r0, [r0, r2]
|
|
cmp r3, r0
|
|
bge _08174630
|
|
adds r1, r0, 0
|
|
_08174624:
|
|
adds r5, 0x78
|
|
adds r0, r3, 0x1
|
|
lsls r0, 16
|
|
lsrs r3, r0, 16
|
|
cmp r3, r1
|
|
blt _08174624
|
|
_08174630:
|
|
movs r3, 0
|
|
lsls r7, r4, 2
|
|
adds r0, r7, r4
|
|
lsls r6, r0, 3
|
|
ldr r0, =gTasks + 0x8
|
|
mov r10, r0
|
|
ldr r1, =gUnknown_02020630
|
|
mov r8, r1
|
|
movs r2, 0xD
|
|
negs r2, r2
|
|
mov r9, r2
|
|
movs r0, 0x4
|
|
mov r12, r0
|
|
_0817464A:
|
|
adds r0, r3, 0x5
|
|
lsls r0, 1
|
|
adds r0, r6
|
|
add r0, r10
|
|
ldrh r1, [r0]
|
|
cmp r1, 0xFF
|
|
beq _0817466C
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
add r0, r8
|
|
ldrb r2, [r0, 0x5]
|
|
mov r1, r9
|
|
ands r1, r2
|
|
mov r2, r12
|
|
orrs r1, r2
|
|
strb r1, [r0, 0x5]
|
|
_0817466C:
|
|
adds r0, r3, 0x1
|
|
lsls r0, 16
|
|
lsrs r3, r0, 16
|
|
cmp r3, 0x5
|
|
bls _0817464A
|
|
adds r1, r7, r4
|
|
lsls r1, 3
|
|
ldr r0, =gTasks
|
|
adds r6, r1, r0
|
|
movs r2, 0xC
|
|
ldrsh r0, [r6, r2]
|
|
adds r0, 0x5
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
ldr r1, =gTasks
|
|
adds r1, 0x8
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, =gUnknown_02020630
|
|
adds r0, r1
|
|
ldrb r2, [r0, 0x5]
|
|
movs r1, 0xD
|
|
negs r1, r1
|
|
ands r1, r2
|
|
strb r1, [r0, 0x5]
|
|
lsrs r1, 4
|
|
movs r0, 0x80
|
|
lsls r0, 9
|
|
lsls r0, r1
|
|
ldr r1, =0xffff0000
|
|
eors r0, r1
|
|
ldr r2, =gUnknown_0203BCD4
|
|
str r0, [r2]
|
|
ldr r2, =0x000063b0
|
|
movs r1, 0xC
|
|
bl sub_80A2A5C
|
|
movs r0, 0xC
|
|
ldrsh r1, [r6, r0]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r4, r5, r0
|
|
ldrh r1, [r4, 0x8]
|
|
ldr r0, =0x000001ff
|
|
ands r0, r1
|
|
movs r1, 0xCE
|
|
lsls r1, 1
|
|
cmp r0, r1
|
|
beq _081746E6
|
|
bl sub_80A369C
|
|
ldrh r0, [r4, 0x8]
|
|
lsls r0, 23
|
|
lsrs r0, 23
|
|
movs r1, 0
|
|
bl cry_related
|
|
_081746E6:
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
movs r2, 0xE
|
|
bl sub_8174A88
|
|
ldr r0, =sub_8174728
|
|
str r0, [r6]
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81745FC
|
|
|
|
thumb_func_start sub_8174728
|
|
sub_8174728: @ 8174728
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
ldr r1, =gUnknown_030022C0
|
|
ldrh r2, [r1, 0x2E]
|
|
movs r0, 0x1
|
|
ands r0, r2
|
|
adds r3, r1, 0
|
|
cmp r0, 0
|
|
beq _081747E4
|
|
ldr r0, =gTasks
|
|
mov r12, r0
|
|
lsls r0, r6, 2
|
|
adds r1, r0, r6
|
|
lsls r3, r1, 3
|
|
mov r1, r12
|
|
adds r4, r3, r1
|
|
ldrh r2, [r4, 0x8]
|
|
movs r5, 0x8
|
|
ldrsh r1, [r4, r5]
|
|
mov r9, r0
|
|
cmp r1, 0
|
|
beq _081747B8
|
|
subs r0, r2, 0x1
|
|
strh r0, [r4, 0x8]
|
|
movs r5, 0
|
|
adds r7, r3, 0
|
|
movs r0, 0x8
|
|
add r0, r12
|
|
mov r8, r0
|
|
_0817476A:
|
|
adds r0, r5, 0x5
|
|
lsls r0, 1
|
|
adds r0, r7
|
|
mov r1, r8
|
|
adds r4, r0, r1
|
|
ldrb r0, [r4]
|
|
cmp r0, 0xFF
|
|
beq _08174782
|
|
bl sub_818D820
|
|
movs r0, 0xFF
|
|
strh r0, [r4]
|
|
_08174782:
|
|
adds r0, r5, 0x1
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
cmp r5, 0x5
|
|
bls _0817476A
|
|
ldr r0, =gTasks
|
|
mov r2, r9
|
|
adds r1, r2, r6
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldrh r2, [r1, 0xA]
|
|
movs r3, 0xA
|
|
ldrsh r0, [r1, r3]
|
|
cmp r0, 0
|
|
beq _081747A4
|
|
subs r0, r2, 0x1
|
|
strh r0, [r1, 0xA]
|
|
_081747A4:
|
|
ldr r0, =sub_81743EC
|
|
str r0, [r1]
|
|
b _08174884
|
|
.pool
|
|
_081747B8:
|
|
bl sub_80A36C8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _081747D2
|
|
bl sub_80A369C
|
|
ldr r0, =gUnknown_03007420
|
|
ldr r1, =0x0000ffff
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
bl MPlayVolumeControl
|
|
_081747D2:
|
|
ldr r0, =sub_8174898
|
|
str r0, [r4]
|
|
b _08174884
|
|
.pool
|
|
_081747E4:
|
|
movs r0, 0x2
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _08174828
|
|
bl sub_80A36C8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08174806
|
|
bl sub_80A369C
|
|
ldr r0, =gUnknown_03007420
|
|
ldr r1, =0x0000ffff
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
bl MPlayVolumeControl
|
|
_08174806:
|
|
ldr r0, =gTasks
|
|
lsls r1, r6, 2
|
|
adds r1, r6
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldr r0, =sub_8174898
|
|
str r0, [r1]
|
|
b _08174884
|
|
.pool
|
|
_08174828:
|
|
movs r0, 0x40
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _08174858
|
|
ldr r0, =gTasks
|
|
lsls r1, r6, 2
|
|
adds r1, r6
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldrh r2, [r1, 0xC]
|
|
movs r4, 0xC
|
|
ldrsh r0, [r1, r4]
|
|
cmp r0, 0
|
|
beq _08174858
|
|
subs r0, r2, 0x1
|
|
strh r0, [r1, 0xC]
|
|
ldr r0, =sub_81745FC
|
|
str r0, [r1]
|
|
b _08174884
|
|
.pool
|
|
_08174858:
|
|
ldrh r1, [r3, 0x2E]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08174884
|
|
ldr r1, =gTasks
|
|
lsls r0, r6, 2
|
|
adds r0, r6
|
|
lsls r0, 3
|
|
adds r2, r0, r1
|
|
movs r5, 0xC
|
|
ldrsh r1, [r2, r5]
|
|
movs r3, 0x10
|
|
ldrsh r0, [r2, r3]
|
|
subs r0, 0x1
|
|
cmp r1, r0
|
|
bge _08174884
|
|
ldrh r0, [r2, 0xC]
|
|
adds r0, 0x1
|
|
strh r0, [r2, 0xC]
|
|
ldr r0, =sub_81745FC
|
|
str r0, [r2]
|
|
_08174884:
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8174728
|
|
|
|
thumb_func_start sub_8174898
|
|
sub_8174898: @ 8174898
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
ldr r0, =gUnknown_02037B14
|
|
ldr r1, =gUnknown_02037714
|
|
movs r2, 0x80
|
|
lsls r2, 2
|
|
bl CpuSet
|
|
ldr r1, =0x0201c000
|
|
ldr r0, =gUnknown_085E56D4
|
|
ldm r0!, {r2,r3,r5}
|
|
stm r1!, {r2,r3,r5}
|
|
ldm r0!, {r2,r3}
|
|
stm r1!, {r2,r3}
|
|
movs r0, 0
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl sub_80F9BF4
|
|
ldr r1, =gTasks
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldr r1, =sub_81748F0
|
|
str r1, [r0]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8174898
|
|
|
|
thumb_func_start sub_81748F0
|
|
sub_81748F0: @ 81748F0
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
bl sub_80F9C30
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08174988
|
|
movs r5, 0
|
|
lsls r0, r6, 2
|
|
adds r0, r6
|
|
lsls r7, r0, 3
|
|
ldr r0, =gTasks + 0x8
|
|
mov r8, r0
|
|
_08174910:
|
|
adds r0, r5, 0x5
|
|
lsls r0, 1
|
|
adds r0, r7
|
|
mov r1, r8
|
|
adds r4, r0, r1
|
|
ldrh r0, [r4]
|
|
cmp r0, 0xFF
|
|
beq _08174928
|
|
bl sub_818D820
|
|
movs r0, 0xFF
|
|
strh r0, [r4]
|
|
_08174928:
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0x5
|
|
bls _08174910
|
|
movs r0, 0
|
|
bl HideBg
|
|
movs r0, 0x1
|
|
bl HideBg
|
|
movs r0, 0x3
|
|
bl HideBg
|
|
bl sub_8198314
|
|
bl FreeAllWindowBuffers
|
|
movs r0, 0x1
|
|
bl UnsetBgTilemapBuffer
|
|
movs r0, 0x3
|
|
bl UnsetBgTilemapBuffer
|
|
movs r0, 0
|
|
bl ResetBgsAndClearDma3BusyFlags
|
|
adds r0, r6, 0
|
|
bl DestroyTask
|
|
ldr r4, =gUnknown_0203BCDC
|
|
ldr r0, [r4]
|
|
cmp r0, 0
|
|
beq _08174974
|
|
bl Free
|
|
movs r0, 0
|
|
str r0, [r4]
|
|
_08174974:
|
|
ldr r4, =gUnknown_0203BCD8
|
|
ldr r0, [r4]
|
|
cmp r0, 0
|
|
beq _08174984
|
|
bl Free
|
|
movs r0, 0
|
|
str r0, [r4]
|
|
_08174984:
|
|
bl sub_8137C3C
|
|
_08174988:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81748F0
|
|
|
|
thumb_func_start sub_81749A0
|
|
sub_81749A0: @ 81749A0
|
|
push {r4,lr}
|
|
sub sp, 0x10
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
ldr r0, =gUnknown_085E8588
|
|
movs r1, 0x8
|
|
movs r2, 0x1
|
|
bl sub_8198180
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl sub_81973C4
|
|
ldr r2, =gUnknown_085E8BDC
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
movs r0, 0x2
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0x1
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0x3
|
|
str r0, [sp, 0xC]
|
|
movs r0, 0
|
|
movs r1, 0x1
|
|
movs r3, 0
|
|
bl AddTextPrinterParametrized
|
|
movs r0, 0
|
|
movs r1, 0x3
|
|
bl CopyWindowToVram
|
|
ldr r1, =gTasks
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldr r1, =sub_8174A08
|
|
str r1, [r0]
|
|
add sp, 0x10
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81749A0
|
|
|
|
thumb_func_start sub_8174A08
|
|
sub_8174A08: @ 8174A08
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
ldr r0, =gUnknown_030022C0
|
|
ldrh r1, [r0, 0x2E]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08174A28
|
|
ldr r0, =gTasks
|
|
lsls r1, r2, 2
|
|
adds r1, r2
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldr r0, =sub_8174898
|
|
str r0, [r1]
|
|
_08174A28:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8174A08
|
|
|
|
thumb_func_start sub_8174A38
|
|
sub_8174A38: @ 8174A38
|
|
push {r4,lr}
|
|
sub sp, 0xC
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl FillWindowPixelBuffer
|
|
movs r0, 0
|
|
bl PutWindowTilemap
|
|
ldr r4, =gUnknown_085E8B3E
|
|
movs r0, 0x1
|
|
adds r1, r4, 0
|
|
movs r2, 0xD0
|
|
bl GetStringCenterAlignXOffset
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
ldr r0, =gUnknown_085E5388
|
|
str r0, [sp]
|
|
movs r0, 0
|
|
str r0, [sp, 0x4]
|
|
str r4, [sp, 0x8]
|
|
movs r1, 0x1
|
|
movs r3, 0x1
|
|
bl box_print
|
|
movs r0, 0
|
|
movs r1, 0x3
|
|
bl CopyWindowToVram
|
|
add sp, 0xC
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8174A38
|
|
|
|
thumb_func_start sub_8174A88
|
|
sub_8174A88: @ 8174A88
|
|
push {r4-r7,lr}
|
|
sub sp, 0x2C
|
|
adds r7, r0, 0
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl FillWindowPixelBuffer
|
|
movs r0, 0
|
|
bl PutWindowTilemap
|
|
ldrh r0, [r7, 0x8]
|
|
ldr r1, =0x000001ff
|
|
ands r1, r0
|
|
movs r0, 0xCE
|
|
lsls r0, 1
|
|
cmp r1, r0
|
|
beq _08174B30
|
|
ldr r1, =gUnknown_085E8C36
|
|
add r0, sp, 0xC
|
|
bl CopyString
|
|
adds r6, r0, 0
|
|
ldrh r0, [r7, 0x8]
|
|
lsls r0, 23
|
|
lsrs r0, 23
|
|
bl sub_806E3C0
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
ldr r0, =0x0000ffff
|
|
cmp r4, r0
|
|
beq _08174B04
|
|
adds r0, r4, 0
|
|
movs r1, 0x64
|
|
bl __divsi3
|
|
subs r0, 0x5F
|
|
strb r0, [r6]
|
|
adds r6, 0x1
|
|
adds r0, r4, 0
|
|
movs r1, 0x64
|
|
bl __modsi3
|
|
adds r4, r0, 0
|
|
movs r1, 0xA
|
|
bl __divsi3
|
|
subs r0, 0x5F
|
|
strb r0, [r6]
|
|
adds r6, 0x1
|
|
adds r0, r4, 0
|
|
movs r1, 0xA
|
|
bl __modsi3
|
|
subs r0, 0x5F
|
|
b _08174B0E
|
|
.pool
|
|
_08174B04:
|
|
movs r0, 0xAC
|
|
strb r0, [r6]
|
|
adds r6, 0x1
|
|
strb r0, [r6]
|
|
adds r6, 0x1
|
|
_08174B0E:
|
|
strb r0, [r6]
|
|
adds r6, 0x1
|
|
movs r0, 0xFF
|
|
strb r0, [r6]
|
|
ldr r0, =gUnknown_085E5388
|
|
str r0, [sp]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
str r0, [sp, 0x4]
|
|
add r0, sp, 0xC
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0
|
|
movs r1, 0x1
|
|
movs r2, 0x10
|
|
movs r3, 0x1
|
|
bl box_print
|
|
_08174B30:
|
|
adds r1, r7, 0
|
|
adds r1, 0xA
|
|
add r0, sp, 0xC
|
|
movs r2, 0xA
|
|
bl memcpy
|
|
add r1, sp, 0xC
|
|
movs r0, 0xFF
|
|
strb r0, [r1, 0xA]
|
|
ldrh r1, [r7, 0x8]
|
|
ldr r4, =0x000001ff
|
|
adds r0, r4, 0
|
|
ands r0, r1
|
|
movs r1, 0xCE
|
|
lsls r1, 1
|
|
cmp r0, r1
|
|
bne _08174B8C
|
|
movs r0, 0x1
|
|
add r1, sp, 0xC
|
|
movs r2, 0xD0
|
|
bl GetStringCenterAlignXOffset
|
|
lsls r2, r0, 24
|
|
lsrs r2, 24
|
|
ldr r0, =gUnknown_085E5388
|
|
str r0, [sp]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
str r0, [sp, 0x4]
|
|
add r0, sp, 0xC
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0
|
|
movs r1, 0x1
|
|
movs r3, 0x1
|
|
bl box_print
|
|
movs r0, 0
|
|
movs r1, 0x3
|
|
bl CopyWindowToVram
|
|
b _08174C82
|
|
.pool
|
|
_08174B8C:
|
|
movs r0, 0x1
|
|
add r1, sp, 0xC
|
|
movs r2, 0x80
|
|
bl GetStringRightAlignXOffset
|
|
lsls r2, r0, 24
|
|
lsrs r2, 24
|
|
ldr r0, =gUnknown_085E5388
|
|
str r0, [sp]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
str r0, [sp, 0x4]
|
|
add r0, sp, 0xC
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0
|
|
movs r1, 0x1
|
|
movs r3, 0x1
|
|
bl box_print
|
|
add r1, sp, 0xC
|
|
movs r0, 0xBA
|
|
strb r0, [r1]
|
|
mov r0, sp
|
|
adds r0, 0xD
|
|
ldrh r1, [r7, 0x8]
|
|
lsls r1, 23
|
|
lsrs r1, 23
|
|
movs r2, 0xB
|
|
muls r1, r2
|
|
ldr r2, =gSpeciesNames
|
|
adds r1, r2
|
|
bl CopyString
|
|
adds r6, r0, 0
|
|
ldrh r1, [r7, 0x8]
|
|
adds r0, r4, 0
|
|
ands r0, r1
|
|
cmp r0, 0x20
|
|
beq _08174C0A
|
|
cmp r0, 0x1D
|
|
beq _08174C0A
|
|
lsls r0, r1, 23
|
|
lsrs r0, 23
|
|
ldr r1, [r7, 0x4]
|
|
bl pokemon_species_get_gender_info
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0
|
|
beq _08174C00
|
|
cmp r0, 0xFE
|
|
beq _08174C04
|
|
b _08174C0A
|
|
.pool
|
|
_08174C00:
|
|
movs r0, 0xB5
|
|
b _08174C06
|
|
_08174C04:
|
|
movs r0, 0xB6
|
|
_08174C06:
|
|
strb r0, [r6]
|
|
adds r6, 0x1
|
|
_08174C0A:
|
|
movs r0, 0xFF
|
|
strb r0, [r6]
|
|
ldr r5, =gUnknown_085E5388
|
|
str r5, [sp]
|
|
movs r4, 0x1
|
|
negs r4, r4
|
|
str r4, [sp, 0x4]
|
|
add r0, sp, 0xC
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0
|
|
movs r1, 0x1
|
|
movs r2, 0x80
|
|
movs r3, 0x1
|
|
bl box_print
|
|
ldr r1, =gUnknown_085E8C3B
|
|
add r0, sp, 0xC
|
|
bl CopyString
|
|
adds r6, r0, 0
|
|
ldrb r1, [r7, 0x9]
|
|
lsrs r1, 1
|
|
movs r2, 0
|
|
movs r3, 0x3
|
|
bl ConvertIntToDecimalString
|
|
str r5, [sp]
|
|
str r4, [sp, 0x4]
|
|
add r0, sp, 0xC
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0
|
|
movs r1, 0x1
|
|
movs r2, 0x24
|
|
movs r3, 0x11
|
|
bl box_print
|
|
ldr r1, =gUnknown_085E8C4D
|
|
add r0, sp, 0xC
|
|
bl CopyString
|
|
adds r6, r0, 0
|
|
ldrh r1, [r7]
|
|
movs r2, 0x2
|
|
movs r3, 0x5
|
|
bl ConvertIntToDecimalString
|
|
str r5, [sp]
|
|
str r4, [sp, 0x4]
|
|
add r0, sp, 0xC
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0
|
|
movs r1, 0x1
|
|
movs r2, 0x68
|
|
movs r3, 0x11
|
|
bl box_print
|
|
movs r0, 0
|
|
movs r1, 0x3
|
|
bl CopyWindowToVram
|
|
_08174C82:
|
|
add sp, 0x2C
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8174A88
|
|
|
|
thumb_func_start sub_8174C98
|
|
sub_8174C98: @ 8174C98
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x20
|
|
movs r0, 0x1
|
|
movs r1, 0x11
|
|
bl FillWindowPixelBuffer
|
|
movs r0, 0x1
|
|
bl PutWindowTilemap
|
|
ldr r2, =0x0000021d
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
movs r3, 0xD
|
|
bl SetWindowBorderStyle
|
|
ldr r0, =gUnknown_085E538C
|
|
mov r8, r0
|
|
str r0, [sp]
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
mov r9, r1
|
|
str r1, [sp, 0x4]
|
|
ldr r0, =gUnknown_085E8C48
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0x1
|
|
movs r1, 0x1
|
|
movs r2, 0
|
|
movs r3, 0x1
|
|
bl box_print
|
|
ldr r0, =gUnknown_03005D90
|
|
mov r10, r0
|
|
ldr r1, [r0]
|
|
movs r0, 0x1
|
|
movs r2, 0x70
|
|
bl GetStringRightAlignXOffset
|
|
lsls r2, r0, 24
|
|
lsrs r2, 24
|
|
mov r1, r8
|
|
str r1, [sp]
|
|
mov r0, r9
|
|
str r0, [sp, 0x4]
|
|
mov r1, r10
|
|
ldr r0, [r1]
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0x1
|
|
movs r1, 0x1
|
|
movs r3, 0x1
|
|
bl box_print
|
|
mov r1, r10
|
|
ldr r0, [r1]
|
|
ldrb r4, [r0, 0xA]
|
|
ldrb r0, [r0, 0xB]
|
|
lsls r0, 8
|
|
orrs r4, r0
|
|
mov r0, r8
|
|
str r0, [sp]
|
|
movs r7, 0
|
|
str r7, [sp, 0x4]
|
|
ldr r0, =gUnknown_085E8C4D
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0x1
|
|
movs r1, 0x1
|
|
movs r2, 0
|
|
movs r3, 0x11
|
|
bl box_print
|
|
add r6, sp, 0xC
|
|
ldr r1, =0x000186a0
|
|
adds r0, r4, 0
|
|
bl __modsi3
|
|
ldr r5, =0x00002710
|
|
adds r1, r5, 0
|
|
bl __divsi3
|
|
subs r0, 0x5F
|
|
strb r0, [r6]
|
|
add r6, sp, 0xC
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl __umodsi3
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r5, 0xFA
|
|
lsls r5, 2
|
|
adds r1, r5, 0
|
|
bl __udivsi3
|
|
adds r0, 0xA1
|
|
strb r0, [r6, 0x1]
|
|
add r6, sp, 0xC
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl __umodsi3
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x64
|
|
bl __udivsi3
|
|
adds r0, 0xA1
|
|
strb r0, [r6, 0x2]
|
|
add r5, sp, 0xC
|
|
adds r0, r4, 0
|
|
movs r1, 0x64
|
|
bl __umodsi3
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0xA
|
|
bl __udivsi3
|
|
adds r0, 0xA1
|
|
strb r0, [r5, 0x3]
|
|
add r5, sp, 0xC
|
|
adds r0, r4, 0
|
|
movs r1, 0xA
|
|
bl __umodsi3
|
|
adds r0, 0xA1
|
|
strb r0, [r5, 0x4]
|
|
add r1, sp, 0xC
|
|
movs r0, 0xFF
|
|
strb r0, [r1, 0x5]
|
|
movs r0, 0x1
|
|
movs r2, 0x70
|
|
bl GetStringRightAlignXOffset
|
|
lsls r2, r0, 24
|
|
lsrs r2, 24
|
|
mov r1, r8
|
|
str r1, [sp]
|
|
mov r0, r9
|
|
str r0, [sp, 0x4]
|
|
add r1, sp, 0xC
|
|
str r1, [sp, 0x8]
|
|
movs r0, 0x1
|
|
movs r1, 0x1
|
|
movs r3, 0x11
|
|
bl box_print
|
|
mov r0, r8
|
|
str r0, [sp]
|
|
mov r1, r9
|
|
str r1, [sp, 0x4]
|
|
ldr r0, =gUnknown_085E84CE
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0x1
|
|
movs r1, 0x1
|
|
movs r2, 0
|
|
movs r3, 0x21
|
|
bl box_print
|
|
add r5, sp, 0xC
|
|
mov r0, r10
|
|
ldr r4, [r0]
|
|
ldrh r0, [r4, 0xE]
|
|
movs r1, 0x64
|
|
bl __udivsi3
|
|
adds r0, 0xA1
|
|
strb r0, [r5]
|
|
add r5, sp, 0xC
|
|
ldrh r0, [r4, 0xE]
|
|
movs r1, 0x64
|
|
bl __umodsi3
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0xA
|
|
bl __udivsi3
|
|
adds r0, 0xA1
|
|
strb r0, [r5, 0x1]
|
|
add r5, sp, 0xC
|
|
ldrh r0, [r4, 0xE]
|
|
movs r1, 0xA
|
|
bl __umodsi3
|
|
adds r0, 0xA1
|
|
strb r0, [r5, 0x2]
|
|
add r0, sp, 0xC
|
|
ldrb r0, [r0]
|
|
cmp r0, 0xA1
|
|
bne _08174E1E
|
|
add r0, sp, 0xC
|
|
strb r7, [r0]
|
|
_08174E1E:
|
|
add r0, sp, 0xC
|
|
ldrb r1, [r0]
|
|
cmp r1, 0
|
|
bne _08174E30
|
|
ldrb r0, [r0, 0x1]
|
|
cmp r0, 0xA1
|
|
bne _08174E30
|
|
add r0, sp, 0xC
|
|
strb r1, [r0, 0x8]
|
|
_08174E30:
|
|
add r1, sp, 0xC
|
|
movs r0, 0xF0
|
|
strb r0, [r1, 0x3]
|
|
adds r4, r1, 0
|
|
ldr r0, =gUnknown_03005D90
|
|
ldr r5, [r0]
|
|
ldrb r0, [r5, 0x10]
|
|
movs r1, 0x64
|
|
bl __umodsi3
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0xA
|
|
bl __udivsi3
|
|
adds r0, 0xA1
|
|
strb r0, [r4, 0x4]
|
|
add r4, sp, 0xC
|
|
ldrb r0, [r5, 0x10]
|
|
movs r1, 0xA
|
|
bl __umodsi3
|
|
adds r0, 0xA1
|
|
strb r0, [r4, 0x5]
|
|
add r1, sp, 0xC
|
|
movs r0, 0xFF
|
|
strb r0, [r1, 0x6]
|
|
movs r0, 0x1
|
|
movs r2, 0x70
|
|
bl GetStringRightAlignXOffset
|
|
lsls r2, r0, 24
|
|
lsrs r2, 24
|
|
ldr r0, =gUnknown_085E538C
|
|
str r0, [sp]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
str r0, [sp, 0x4]
|
|
add r1, sp, 0xC
|
|
str r1, [sp, 0x8]
|
|
movs r0, 0x1
|
|
movs r1, 0x1
|
|
movs r3, 0x21
|
|
bl box_print
|
|
movs r0, 0x1
|
|
movs r1, 0x3
|
|
bl CopyWindowToVram
|
|
add sp, 0x20
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8174C98
|
|
|
|
thumb_func_start sub_8174EC4
|
|
sub_8174EC4: @ 8174EC4
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x8
|
|
movs r3, 0xC0
|
|
lsls r3, 19
|
|
movs r4, 0xC0
|
|
lsls r4, 9
|
|
add r0, sp, 0x4
|
|
mov r8, r0
|
|
mov r2, sp
|
|
movs r6, 0
|
|
ldr r1, =0x040000d4
|
|
movs r5, 0x80
|
|
lsls r5, 5
|
|
ldr r7, =0x81000800
|
|
movs r0, 0x81
|
|
lsls r0, 24
|
|
mov r12, r0
|
|
_08174EEA:
|
|
strh r6, [r2]
|
|
mov r0, sp
|
|
str r0, [r1]
|
|
str r3, [r1, 0x4]
|
|
str r7, [r1, 0x8]
|
|
ldr r0, [r1, 0x8]
|
|
adds r3, r5
|
|
subs r4, r5
|
|
cmp r4, r5
|
|
bhi _08174EEA
|
|
strh r6, [r2]
|
|
mov r2, sp
|
|
str r2, [r1]
|
|
str r3, [r1, 0x4]
|
|
lsrs r0, r4, 1
|
|
mov r2, r12
|
|
orrs r0, r2
|
|
str r0, [r1, 0x8]
|
|
ldr r0, [r1, 0x8]
|
|
movs r0, 0xE0
|
|
lsls r0, 19
|
|
movs r3, 0x80
|
|
lsls r3, 3
|
|
movs r4, 0
|
|
str r4, [sp, 0x4]
|
|
ldr r2, =0x040000d4
|
|
mov r1, r8
|
|
str r1, [r2]
|
|
str r0, [r2, 0x4]
|
|
lsrs r0, r3, 2
|
|
movs r1, 0x85
|
|
lsls r1, 24
|
|
orrs r0, r1
|
|
str r0, [r2, 0x8]
|
|
ldr r0, [r2, 0x8]
|
|
movs r1, 0xA0
|
|
lsls r1, 19
|
|
mov r0, sp
|
|
strh r4, [r0]
|
|
str r0, [r2]
|
|
str r1, [r2, 0x4]
|
|
lsrs r3, 1
|
|
movs r0, 0x81
|
|
lsls r0, 24
|
|
orrs r3, r0
|
|
str r3, [r2, 0x8]
|
|
ldr r0, [r2, 0x8]
|
|
bl sub_80A1A74
|
|
ldr r0, =gUnknown_085E54E8
|
|
movs r1, 0
|
|
movs r2, 0x20
|
|
bl gpu_pal_apply
|
|
add sp, 0x8
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8174EC4
|
|
|
|
thumb_func_start sub_8174F70
|
|
sub_8174F70: @ 8174F70
|
|
push {lr}
|
|
bl remove_some_task
|
|
bl ResetTasks
|
|
bl ResetAllObjectData
|
|
bl reset_temp_tile_data_buffers
|
|
bl dp13_810BB8C
|
|
bl ResetObjectPaletteAllocator
|
|
ldr r1, =gUnknown_0300301C
|
|
movs r0, 0x8
|
|
strb r0, [r1]
|
|
ldr r0, =gUnknown_085E5394
|
|
bl LoadCompressedObjectPic
|
|
ldr r0, =gUnknown_085E53A4
|
|
bl LoadCompressedObjectPalette
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8174F70
|
|
|
|
thumb_func_start sub_8174FAC
|
|
sub_8174FAC: @ 8174FAC
|
|
push {r4,lr}
|
|
movs r0, 0
|
|
bl ResetBgsAndClearDma3BusyFlags
|
|
ldr r1, =gUnknown_085E5374
|
|
movs r0, 0
|
|
movs r2, 0x3
|
|
bl InitBgsFromTemplates
|
|
ldr r4, =gUnknown_0203BCDC
|
|
ldr r1, [r4]
|
|
adds r1, 0x12
|
|
movs r0, 0x1
|
|
bl SetBgTilemapBuffer
|
|
ldr r1, [r4]
|
|
ldr r0, =0x00001012
|
|
adds r1, r0
|
|
movs r0, 0x3
|
|
bl SetBgTilemapBuffer
|
|
movs r0, 0
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl ChangeBgX
|
|
movs r0, 0
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl ChangeBgY
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl ChangeBgX
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl ChangeBgY
|
|
movs r0, 0x3
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl ChangeBgX
|
|
movs r0, 0x3
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl ChangeBgY
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8174FAC
|
|
|
|
thumb_func_start sub_8175024
|
|
sub_8175024: @ 8175024
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
ldr r0, =gUnknown_0203BCDC
|
|
ldr r0, [r0]
|
|
ldrh r0, [r0]
|
|
cmp r0, 0x4
|
|
bhi _08175108
|
|
lsls r0, 2
|
|
ldr r1, =_08175044
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_08175044:
|
|
.4byte _08175058
|
|
.4byte _08175070
|
|
.4byte _0817507C
|
|
.4byte _081750D2
|
|
.4byte _081750DC
|
|
_08175058:
|
|
ldr r1, =gUnknown_085E5508
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
movs r0, 0x1
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl decompress_and_copy_tile_data_to_vram
|
|
b _08175108
|
|
.pool
|
|
_08175070:
|
|
bl free_temp_tile_data_buffers_if_possible
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08175108
|
|
b _08175112
|
|
_0817507C:
|
|
movs r4, 0x20
|
|
str r4, [sp]
|
|
movs r0, 0x2
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0x1
|
|
movs r1, 0x1
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl FillBgTilemapBufferRect_Palette0
|
|
str r4, [sp]
|
|
movs r0, 0xB
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0x3
|
|
bl FillBgTilemapBufferRect_Palette0
|
|
str r4, [sp]
|
|
movs r0, 0x6
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0x1
|
|
movs r1, 0x1
|
|
movs r2, 0
|
|
movs r3, 0xE
|
|
bl FillBgTilemapBufferRect_Palette0
|
|
str r4, [sp]
|
|
str r4, [sp, 0x4]
|
|
movs r0, 0x3
|
|
movs r1, 0x2
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl FillBgTilemapBufferRect_Palette0
|
|
movs r0, 0x1
|
|
bl CopyBgTilemapBufferToVram
|
|
movs r0, 0x3
|
|
bl CopyBgTilemapBufferToVram
|
|
b _08175108
|
|
_081750D2:
|
|
bl sub_81971D0
|
|
bl sub_8197200
|
|
b _08175108
|
|
_081750DC:
|
|
movs r1, 0x82
|
|
lsls r1, 5
|
|
movs r0, 0
|
|
bl SetGpuReg
|
|
movs r0, 0
|
|
bl ShowBg
|
|
movs r0, 0x1
|
|
bl ShowBg
|
|
movs r0, 0x3
|
|
bl ShowBg
|
|
ldr r0, =gUnknown_0203BCDC
|
|
ldr r1, [r0]
|
|
movs r0, 0
|
|
strh r0, [r1]
|
|
b _08175114
|
|
.pool
|
|
_08175108:
|
|
ldr r0, =gUnknown_0203BCDC
|
|
ldr r1, [r0]
|
|
ldrh r0, [r1]
|
|
adds r0, 0x1
|
|
strh r0, [r1]
|
|
_08175112:
|
|
movs r0, 0x1
|
|
_08175114:
|
|
add sp, 0x8
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_8175024
|
|
|
|
thumb_func_start sub_8175120
|
|
sub_8175120: @ 8175120
|
|
push {r4,lr}
|
|
adds r2, r0, 0
|
|
ldr r1, [r2, 0x20]
|
|
ldr r0, [r2, 0x30]
|
|
cmp r1, r0
|
|
beq _08175176
|
|
ldrh r3, [r2, 0x20]
|
|
movs r1, 0x20
|
|
ldrsh r0, [r2, r1]
|
|
movs r4, 0x30
|
|
ldrsh r1, [r2, r4]
|
|
cmp r0, r1
|
|
bge _08175140
|
|
adds r0, r3, 0
|
|
adds r0, 0xF
|
|
strh r0, [r2, 0x20]
|
|
_08175140:
|
|
ldrh r3, [r2, 0x20]
|
|
movs r4, 0x20
|
|
ldrsh r0, [r2, r4]
|
|
cmp r0, r1
|
|
ble _08175150
|
|
adds r0, r3, 0
|
|
subs r0, 0xF
|
|
strh r0, [r2, 0x20]
|
|
_08175150:
|
|
ldrh r3, [r2, 0x22]
|
|
movs r1, 0x22
|
|
ldrsh r0, [r2, r1]
|
|
movs r4, 0x32
|
|
ldrsh r1, [r2, r4]
|
|
cmp r0, r1
|
|
bge _08175164
|
|
adds r0, r3, 0
|
|
adds r0, 0xA
|
|
strh r0, [r2, 0x22]
|
|
_08175164:
|
|
ldrh r3, [r2, 0x22]
|
|
movs r4, 0x22
|
|
ldrsh r0, [r2, r4]
|
|
cmp r0, r1
|
|
ble _0817519C
|
|
adds r0, r3, 0
|
|
subs r0, 0xA
|
|
strh r0, [r2, 0x22]
|
|
b _0817519C
|
|
_08175176:
|
|
ldrh r0, [r2, 0x3C]
|
|
lsls r1, r0, 16
|
|
movs r0, 0xCE
|
|
lsls r0, 17
|
|
cmp r1, r0
|
|
bne _08175190
|
|
lsrs r1, 16
|
|
adds r0, r2, 0
|
|
movs r2, 0x1
|
|
movs r3, 0x3
|
|
bl sub_806ED40
|
|
b _0817519C
|
|
_08175190:
|
|
lsrs r1, 16
|
|
adds r0, r2, 0
|
|
movs r2, 0
|
|
movs r3, 0x3
|
|
bl sub_806ED40
|
|
_0817519C:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8175120
|
|
|
|
thumb_func_start sub_81751A4
|
|
sub_81751A4: @ 81751A4
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
ldrh r1, [r5, 0x26]
|
|
movs r2, 0x26
|
|
ldrsh r0, [r5, r2]
|
|
cmp r0, 0x78
|
|
ble _081751BA
|
|
adds r0, r5, 0
|
|
bl RemoveObjectAndFreeTiles
|
|
b _081751F2
|
|
_081751BA:
|
|
adds r0, r1, 0x1
|
|
ldrh r1, [r5, 0x30]
|
|
adds r0, r1
|
|
strh r0, [r5, 0x26]
|
|
ldrh r4, [r5, 0x2E]
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
bl GenerateRandomNumber
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x3
|
|
ands r0, r1
|
|
adds r0, 0x8
|
|
ldr r1, =gUnknown_08329F40
|
|
lsls r4, 1
|
|
adds r4, r1
|
|
movs r2, 0
|
|
ldrsh r1, [r4, r2]
|
|
muls r0, r1
|
|
cmp r0, 0
|
|
bge _081751E8
|
|
adds r0, 0xFF
|
|
_081751E8:
|
|
asrs r0, 8
|
|
strh r0, [r5, 0x24]
|
|
ldrh r0, [r5, 0x2E]
|
|
adds r0, 0x4
|
|
strh r0, [r5, 0x2E]
|
|
_081751F2:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81751A4
|
|
|
|
thumb_func_start sub_81751FC
|
|
sub_81751FC: @ 81751FC
|
|
push {r4,lr}
|
|
bl GenerateRandomNumber
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0xF0
|
|
bl __umodsi3
|
|
adds r4, r0, 0
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
bl GenerateRandomNumber
|
|
adds r2, r0, 0
|
|
lsls r2, 16
|
|
lsrs r2, 16
|
|
movs r0, 0x7
|
|
ands r2, r0
|
|
negs r2, r2
|
|
ldr r0, =gUnknown_085E54D0
|
|
lsls r4, 16
|
|
asrs r4, 16
|
|
lsls r2, 16
|
|
asrs r2, 16
|
|
adds r1, r4, 0
|
|
movs r3, 0
|
|
bl AddObjectToFront
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
ldr r0, =gUnknown_02020630
|
|
adds r4, r1, r0
|
|
bl GenerateRandomNumber
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x11
|
|
bl __umodsi3
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r4, 0
|
|
bl StartObjectImageAnim
|
|
bl GenerateRandomNumber
|
|
movs r1, 0x3
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _08175274
|
|
movs r0, 0
|
|
b _08175276
|
|
.pool
|
|
_08175274:
|
|
movs r0, 0x1
|
|
_08175276:
|
|
strh r0, [r4, 0x30]
|
|
movs r0, 0
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_81751FC
|
|
|
|
thumb_func_start sub_8175280
|
|
sub_8175280: @ 8175280
|
|
push {r4,lr}
|
|
ldr r4, =gUnknown_020375E0
|
|
movs r0, 0xB4
|
|
strh r0, [r4]
|
|
ldr r0, =sub_8175364
|
|
movs r1, 0
|
|
bl CreateTask
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0xFF
|
|
beq _081752AA
|
|
ldr r1, =gTasks
|
|
lsls r0, r2, 2
|
|
adds r0, r2
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldrh r1, [r4]
|
|
strh r1, [r0, 0xA]
|
|
ldr r0, =gUnknown_020375E2
|
|
strh r2, [r0]
|
|
_081752AA:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8175280
|
|
|
|
thumb_func_start sub_81752C0
|
|
sub_81752C0: @ 81752C0
|
|
push {r4,lr}
|
|
ldr r0, =sub_8175364
|
|
bl FindTaskIdByFunc
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0xFF
|
|
beq _081752D4
|
|
bl DestroyTask
|
|
_081752D4:
|
|
bl sub_8152254
|
|
ldr r4, =0x000003e9
|
|
adds r0, r4, 0
|
|
bl FreeObjectTilesByTag
|
|
adds r0, r4, 0
|
|
bl FreeObjectPaletteByTag
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81752C0
|
|
|
|
thumb_func_start sub_81752F4
|
|
sub_81752F4: @ 81752F4
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
ldrh r1, [r5, 0xE]
|
|
movs r2, 0xE
|
|
ldrsh r0, [r5, r2]
|
|
cmp r0, 0x6E
|
|
ble _08175324
|
|
ldr r2, =gTasks
|
|
movs r0, 0x28
|
|
ldrsh r1, [r5, r0]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r0, r2
|
|
ldrh r1, [r0, 0x26]
|
|
subs r1, 0x1
|
|
strh r1, [r0, 0x26]
|
|
ldrb r0, [r5, 0x16]
|
|
bl sub_81525D0
|
|
b _08175358
|
|
.pool
|
|
_08175324:
|
|
adds r0, r1, 0x1
|
|
ldrh r1, [r5, 0x1C]
|
|
adds r0, r1
|
|
strh r0, [r5, 0xE]
|
|
ldrb r4, [r5, 0x1A]
|
|
bl GenerateRandomNumber
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x3
|
|
ands r0, r1
|
|
adds r0, 0x8
|
|
ldr r1, =gUnknown_08329F40
|
|
lsls r4, 1
|
|
adds r4, r1
|
|
movs r2, 0
|
|
ldrsh r1, [r4, r2]
|
|
muls r0, r1
|
|
cmp r0, 0
|
|
bge _0817534E
|
|
adds r0, 0xFF
|
|
_0817534E:
|
|
asrs r0, 8
|
|
strh r0, [r5, 0xC]
|
|
ldrh r0, [r5, 0x1A]
|
|
adds r0, 0x4
|
|
strh r0, [r5, 0x1A]
|
|
_08175358:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81752F4
|
|
|
|
thumb_func_start sub_8175364
|
|
sub_8175364: @ 8175364
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0xC
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
mov r8, r4
|
|
movs r7, 0
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
ldr r1, =gTasks + 0x8
|
|
adds r6, r0, r1
|
|
ldrh r0, [r6]
|
|
cmp r0, 0x1
|
|
beq _081753E0
|
|
cmp r0, 0x1
|
|
bgt _08175394
|
|
cmp r0, 0
|
|
beq _0817539C
|
|
b _081754B0
|
|
.pool
|
|
_08175394:
|
|
cmp r0, 0xFF
|
|
bne _0817539A
|
|
b _081754A0
|
|
_0817539A:
|
|
b _081754B0
|
|
_0817539C:
|
|
movs r0, 0x40
|
|
bl sub_81521C0
|
|
cmp r0, 0
|
|
bne _081753B8
|
|
adds r0, r4, 0
|
|
bl DestroyTask
|
|
ldr r0, =gUnknown_020375E0
|
|
strh r7, [r0]
|
|
ldr r1, =gUnknown_020375E2
|
|
ldr r2, =0x0000ffff
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
_081753B8:
|
|
ldr r0, =gUnknown_085E5394
|
|
bl LoadCompressedObjectPic
|
|
ldr r0, =gUnknown_085E53A4
|
|
bl LoadCompressedObjectPalette
|
|
ldrh r0, [r6]
|
|
adds r0, 0x1
|
|
strh r0, [r6]
|
|
b _081754B0
|
|
.pool
|
|
_081753E0:
|
|
ldrh r0, [r6, 0x2]
|
|
cmp r0, 0
|
|
beq _08175478
|
|
movs r1, 0x3
|
|
bl __umodsi3
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bne _08175478
|
|
bl GenerateRandomNumber
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0xF0
|
|
bl __umodsi3
|
|
adds r5, r0, 0
|
|
lsls r5, 16
|
|
asrs r5, 16
|
|
bl GenerateRandomNumber
|
|
adds r4, r0, 0
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
movs r0, 0x7
|
|
ands r4, r0
|
|
negs r4, r4
|
|
lsls r4, 16
|
|
asrs r4, 16
|
|
bl GenerateRandomNumber
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x11
|
|
bl __umodsi3
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, =gUnknown_085E53FC
|
|
ldr r2, =0x000003e9
|
|
str r4, [sp]
|
|
str r0, [sp, 0x4]
|
|
str r7, [sp, 0x8]
|
|
adds r0, r1, 0
|
|
adds r1, r2, 0
|
|
adds r3, r5, 0
|
|
bl sub_81524C4
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
cmp r7, 0xFF
|
|
beq _08175478
|
|
adds r4, r7, 0
|
|
ldr r1, =sub_81752F4
|
|
adds r0, r4, 0
|
|
bl sub_8152438
|
|
bl GenerateRandomNumber
|
|
movs r1, 0x3
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
bne _08175468
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
movs r2, 0x1
|
|
bl sub_8152474
|
|
_08175468:
|
|
adds r0, r4, 0
|
|
movs r1, 0x7
|
|
mov r2, r8
|
|
bl sub_8152474
|
|
ldrh r0, [r6, 0x1E]
|
|
adds r0, 0x1
|
|
strh r0, [r6, 0x1E]
|
|
_08175478:
|
|
bl sub_81522D4
|
|
ldrh r0, [r6, 0x2]
|
|
cmp r0, 0
|
|
beq _08175494
|
|
subs r0, 0x1
|
|
strh r0, [r6, 0x2]
|
|
b _081754B0
|
|
.pool
|
|
_08175494:
|
|
ldrh r0, [r6, 0x1E]
|
|
cmp r0, 0
|
|
bne _081754B0
|
|
movs r0, 0xFF
|
|
strh r0, [r6]
|
|
b _081754B0
|
|
_081754A0:
|
|
bl sub_81752C0
|
|
ldr r0, =gUnknown_020375E0
|
|
strh r7, [r0]
|
|
ldr r1, =gUnknown_020375E2
|
|
ldr r2, =0x0000ffff
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
_081754B0:
|
|
add sp, 0xC
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8175364
|
|
|
|
thumb_func_start sub_81754C8
|
|
sub_81754C8: @ 81754C8
|
|
push {lr}
|
|
bl LoadOamFromSprites
|
|
bl ProcessObjectCopyRequests
|
|
bl copy_pal_bg_faded_to_pal_ram
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_81754C8
|
|
|
|
thumb_func_start sub_81754DC
|
|
sub_81754DC: @ 81754DC
|
|
push {lr}
|
|
bl RunTasks
|
|
bl CallObjectCallbacks
|
|
ldr r0, =gUnknown_030022C0
|
|
ldrh r1, [r0, 0x2C]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08175522
|
|
ldr r0, =gUnknown_0203BCE4
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08175522
|
|
ldr r2, =gTasks
|
|
ldr r0, =gUnknown_0203BCE2
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r0, r2
|
|
ldr r1, [r0]
|
|
ldr r0, =sub_8175774
|
|
cmp r1, r0
|
|
bne _08175522
|
|
bl sub_81754C8
|
|
bl RunTasks
|
|
bl CallObjectCallbacks
|
|
ldr r1, =gUnknown_0203BCE5
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
_08175522:
|
|
bl PrepareSpritesForOamLoad
|
|
bl fade_and_return_progress_probably
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81754DC
|
|
|
|
thumb_func_start sub_8175548
|
|
sub_8175548: @ 8175548
|
|
push {lr}
|
|
movs r0, 0
|
|
bl ResetBgsAndClearDma3BusyFlags
|
|
ldr r1, =gUnknown_085E6F68
|
|
movs r0, 0
|
|
movs r2, 0x1
|
|
bl InitBgsFromTemplates
|
|
movs r0, 0x80
|
|
lsls r0, 4
|
|
bl AllocZeroed
|
|
adds r1, r0, 0
|
|
movs r0, 0
|
|
bl SetBgTilemapBuffer
|
|
ldr r0, =gUnknown_085E56F0
|
|
movs r1, 0x80
|
|
movs r2, 0x40
|
|
bl gpu_pal_apply
|
|
ldr r0, =gUnknown_085E6F6C
|
|
bl InitWindows
|
|
bl DeactivateAllTextPrinters
|
|
movs r0, 0
|
|
bl PutWindowTilemap
|
|
movs r0, 0
|
|
movs r1, 0x3
|
|
bl CopyWindowToVram
|
|
movs r0, 0
|
|
bl ShowBg
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8175548
|
|
|
|
thumb_func_start sub_81755A4
|
|
sub_81755A4: @ 81755A4
|
|
push {lr}
|
|
bl FreeAllWindowBuffers
|
|
movs r0, 0
|
|
bl GetBgTilemapBuffer
|
|
cmp r0, 0
|
|
beq _081755B8
|
|
bl Free
|
|
_081755B8:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_81755A4
|
|
|
|
thumb_func_start sub_81755BC
|
|
sub_81755BC: @ 81755BC
|
|
push {r4,r5,lr}
|
|
sub sp, 0x18
|
|
adds r4, r0, 0
|
|
lsls r1, 24
|
|
lsrs r5, r1, 24
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
add r1, sp, 0x14
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
cmp r2, 0x1
|
|
bne _081755DC
|
|
movs r0, 0x3
|
|
strb r0, [r1, 0x1]
|
|
movs r0, 0x4
|
|
b _081755E4
|
|
_081755DC:
|
|
add r1, sp, 0x14
|
|
movs r0, 0x1
|
|
strb r0, [r1, 0x1]
|
|
movs r0, 0x2
|
|
_081755E4:
|
|
strb r0, [r1, 0x2]
|
|
movs r0, 0x1
|
|
adds r1, r4, 0
|
|
movs r2, 0xF0
|
|
movs r3, 0x1
|
|
bl GetStringCenterAlignXOffsetWithLetterSpacing
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
movs r0, 0x1
|
|
str r0, [sp]
|
|
movs r0, 0
|
|
str r0, [sp, 0x4]
|
|
add r0, sp, 0x14
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
str r0, [sp, 0xC]
|
|
str r4, [sp, 0x10]
|
|
movs r0, 0
|
|
movs r1, 0x1
|
|
adds r3, r5, 0
|
|
bl AddTextPrinterParametrized2
|
|
add sp, 0x18
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_81755BC
|
|
|
|
thumb_func_start sub_8175620
|
|
sub_8175620: @ 8175620
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x4
|
|
bl sub_8175CE4
|
|
movs r0, 0
|
|
bl SetVBlankCallback
|
|
ldr r0, =0x02000000
|
|
movs r1, 0xE0
|
|
lsls r1, 9
|
|
bl InitHeap
|
|
bl sub_80A1A74
|
|
bl ResetTasks
|
|
bl sub_8175548
|
|
ldr r0, =sub_8175744
|
|
movs r1, 0
|
|
bl CreateTask
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
ldr r1, =gTasks
|
|
lsls r0, r7, 2
|
|
adds r0, r7
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
movs r1, 0
|
|
strh r1, [r0, 0x10]
|
|
strh r1, [r0, 0x16]
|
|
strh r1, [r0, 0x1E]
|
|
movs r1, 0x1
|
|
strh r1, [r0, 0x22]
|
|
_0817566A:
|
|
movs r0, 0
|
|
adds r1, r7, 0
|
|
bl sub_8176AB0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0817566A
|
|
ldr r5, =gTasks
|
|
lsls r4, r7, 2
|
|
adds r4, r7
|
|
lsls r4, 3
|
|
adds r4, r5
|
|
movs r0, 0xA
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r0, r5
|
|
movs r1, 0
|
|
mov r8, r1
|
|
movs r6, 0
|
|
movs r1, 0x28
|
|
strh r1, [r0, 0x8]
|
|
ldr r1, =0x0000fffc
|
|
movs r0, 0x12
|
|
bl SetGpuReg
|
|
ldr r0, =sub_8175DA0
|
|
movs r1, 0
|
|
bl CreateTask
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r5
|
|
strh r7, [r1, 0xA]
|
|
strh r0, [r4, 0x26]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
str r6, [sp]
|
|
movs r1, 0
|
|
movs r2, 0x10
|
|
movs r3, 0
|
|
bl pal_fade_maybe
|
|
movs r0, 0x1
|
|
bl EnableInterrupts
|
|
ldr r0, =sub_81754C8
|
|
bl SetVBlankCallback
|
|
ldr r0, =0x000001c7
|
|
bl m4aSongNumStart
|
|
ldr r0, =sub_81754DC
|
|
bl SetMainCallback2
|
|
ldr r0, =gUnknown_0203BCE5
|
|
mov r1, r8
|
|
strb r1, [r0]
|
|
ldr r4, =gUnknown_0203BCE8
|
|
movs r0, 0xEB
|
|
lsls r0, 2
|
|
bl AllocZeroed
|
|
str r0, [r4]
|
|
bl sub_8177388
|
|
ldr r1, [r4]
|
|
adds r0, r1, 0
|
|
adds r0, 0x8E
|
|
strh r6, [r0]
|
|
adds r0, 0x2
|
|
strh r6, [r0]
|
|
adds r0, 0x2
|
|
strh r6, [r0]
|
|
ldr r0, =gUnknown_0203BCE2
|
|
strh r7, [r0]
|
|
add sp, 0x4
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8175620
|
|
|
|
thumb_func_start sub_8175744
|
|
sub_8175744: @ 8175744
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
ldr r0, =gUnknown_02037FD4
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08175764
|
|
ldr r0, =gTasks
|
|
lsls r1, r2, 2
|
|
adds r1, r2
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldr r0, =sub_8175774
|
|
str r0, [r1]
|
|
_08175764:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8175744
|
|
|
|
thumb_func_start sub_8175774
|
|
sub_8175774: @ 8175774
|
|
push {r4,lr}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, =gTasks
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r4, r1, r2
|
|
movs r0, 0x10
|
|
ldrsh r1, [r4, r0]
|
|
cmp r1, 0
|
|
beq _081757B0
|
|
movs r3, 0xA
|
|
ldrsh r1, [r4, r3]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r0, r2
|
|
movs r1, 0x1E
|
|
strh r1, [r0, 0x8]
|
|
movs r0, 0x80
|
|
lsls r0, 1
|
|
strh r0, [r4, 0x20]
|
|
ldr r0, =sub_8175A9C
|
|
b _081757FA
|
|
.pool
|
|
_081757B0:
|
|
ldr r0, =gUnknown_0203BCE0
|
|
strh r1, [r0]
|
|
ldrh r2, [r4, 0x1E]
|
|
movs r3, 0x1E
|
|
ldrsh r0, [r4, r3]
|
|
cmp r0, 0x1
|
|
bne _081757E0
|
|
strh r2, [r4, 0x22]
|
|
strh r1, [r4, 0x1E]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
str r1, [sp]
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0x10
|
|
bl pal_fade_maybe
|
|
ldr r0, =sub_8175808
|
|
b _081757FA
|
|
.pool
|
|
_081757E0:
|
|
cmp r0, 0x2
|
|
bne _081757FC
|
|
strh r2, [r4, 0x22]
|
|
strh r1, [r4, 0x1E]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
str r1, [sp]
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0x10
|
|
bl pal_fade_maybe
|
|
ldr r0, =sub_81758A4
|
|
_081757FA:
|
|
str r0, [r4]
|
|
_081757FC:
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8175774
|
|
|
|
thumb_func_start sub_8175808
|
|
sub_8175808: @ 8175808
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r0, =gUnknown_02037FD4
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08175836
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
adds r0, r4, 0
|
|
bl sub_8176CA0
|
|
ldr r0, =gTasks
|
|
lsls r1, r4, 2
|
|
adds r1, r4
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldr r0, =c2_080C9BFC
|
|
str r0, [r1]
|
|
_08175836:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8175808
|
|
|
|
thumb_func_start c2_080C9BFC
|
|
c2_080C9BFC: @ 8175848
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
movs r0, 0
|
|
bl SetVBlankCallback
|
|
ldr r1, =gTasks
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r5, r0, r1
|
|
ldrb r0, [r5, 0x16]
|
|
adds r1, r4, 0
|
|
bl sub_8176AB0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08175890
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
movs r2, 0x10
|
|
movs r3, 0
|
|
bl pal_fade_maybe
|
|
movs r0, 0x1
|
|
bl EnableInterrupts
|
|
ldr r0, =sub_81754C8
|
|
bl SetVBlankCallback
|
|
ldr r0, =sub_8175744
|
|
str r0, [r5]
|
|
_08175890:
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end c2_080C9BFC
|
|
|
|
thumb_func_start sub_81758A4
|
|
sub_81758A4: @ 81758A4
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r0, =gUnknown_02037FD4
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _081758D2
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
adds r0, r4, 0
|
|
bl sub_8176CA0
|
|
ldr r0, =gTasks
|
|
lsls r1, r4, 2
|
|
adds r1, r4
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldr r0, =sub_81758E4
|
|
str r0, [r1]
|
|
_081758D2:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81758A4
|
|
|
|
thumb_func_start sub_81758E4
|
|
sub_81758E4: @ 81758E4
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
ldr r0, =gUnknown_030022C0
|
|
movs r1, 0x87
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
mov r8, r1
|
|
ldrb r7, [r1]
|
|
cmp r7, 0
|
|
beq _08175906
|
|
cmp r7, 0x1
|
|
beq _081759F0
|
|
_08175906:
|
|
bl ResetAllObjectData
|
|
bl dp13_810BB8C
|
|
bl ResetObjectPaletteAllocator
|
|
ldr r1, =gUnknown_0300301C
|
|
movs r0, 0x8
|
|
strb r0, [r1]
|
|
ldr r0, =gUnknown_085B0E04
|
|
movs r1, 0xC0
|
|
lsls r1, 19
|
|
bl LZ77UnCompVram
|
|
ldr r0, =gUnknown_085B0C0C
|
|
ldr r1, =0x06003800
|
|
bl LZ77UnCompVram
|
|
ldr r0, =gUnknown_085B0A02
|
|
movs r1, 0x1
|
|
movs r2, 0x3E
|
|
bl gpu_pal_apply
|
|
movs r1, 0
|
|
ldr r4, =0x0201c000
|
|
movs r3, 0x11
|
|
ldr r2, =0x000007ff
|
|
_0817593C:
|
|
adds r0, r1, r4
|
|
strb r3, [r0]
|
|
adds r0, r1, 0x1
|
|
lsls r0, 16
|
|
lsrs r1, r0, 16
|
|
cmp r1, r2
|
|
bls _0817593C
|
|
movs r1, 0
|
|
ldr r2, =0x0201d800
|
|
ldr r6, =gUnknown_085E701C
|
|
ldr r0, =0xfffff000
|
|
adds r5, r2, r0
|
|
movs r4, 0x22
|
|
ldr r3, =0x000007ff
|
|
_08175958:
|
|
adds r0, r1, r5
|
|
strb r4, [r0]
|
|
adds r0, r1, 0x1
|
|
lsls r0, 16
|
|
lsrs r1, r0, 16
|
|
cmp r1, r3
|
|
bls _08175958
|
|
movs r1, 0
|
|
ldr r5, =0x0201d000
|
|
movs r4, 0x33
|
|
ldr r3, =0x000007ff
|
|
_0817596E:
|
|
adds r0, r1, r5
|
|
strb r4, [r0]
|
|
adds r0, r1, 0x1
|
|
lsls r0, 16
|
|
lsrs r1, r0, 16
|
|
cmp r1, r3
|
|
bls _0817596E
|
|
movs r0, 0
|
|
strh r0, [r2]
|
|
ldr r1, =0x000053ff
|
|
adds r0, r1, 0
|
|
strh r0, [r2, 0x2]
|
|
ldr r1, =0x0000529f
|
|
adds r0, r1, 0
|
|
strh r0, [r2, 0x4]
|
|
ldr r1, =0x00007e94
|
|
adds r0, r1, 0
|
|
strh r0, [r2, 0x6]
|
|
adds r0, r6, 0
|
|
bl LoadObjectPic
|
|
ldr r0, =gUnknown_085E702C
|
|
bl LoadTaggedObjectPalette
|
|
ldr r1, =gUnknown_030022C0
|
|
movs r0, 0x87
|
|
lsls r0, 3
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
b _08175A7A
|
|
.pool
|
|
_081759F0:
|
|
ldr r0, =sub_81760FC
|
|
movs r1, 0
|
|
bl CreateTask
|
|
ldr r2, =gTasks
|
|
lsls r4, r6, 2
|
|
adds r4, r6
|
|
lsls r4, 3
|
|
adds r4, r2
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0
|
|
mov r9, r1
|
|
movs r5, 0
|
|
strh r0, [r4, 0xE]
|
|
movs r0, 0xE
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r0, r2
|
|
strh r7, [r0, 0x8]
|
|
movs r0, 0xE
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r0, r2
|
|
strh r6, [r0, 0xA]
|
|
movs r0, 0xE
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r0, r2
|
|
ldrh r1, [r4, 0x16]
|
|
strh r1, [r0, 0xC]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
str r5, [sp]
|
|
movs r1, 0
|
|
movs r2, 0x10
|
|
movs r3, 0
|
|
bl pal_fade_maybe
|
|
movs r0, 0x1C
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x1E
|
|
movs r1, 0x20
|
|
bl SetGpuReg
|
|
ldr r1, =0x00000703
|
|
movs r0, 0xE
|
|
bl SetGpuReg
|
|
movs r1, 0xCA
|
|
lsls r1, 5
|
|
movs r0, 0
|
|
bl SetGpuReg
|
|
mov r0, r9
|
|
mov r1, r8
|
|
strb r0, [r1]
|
|
ldr r0, =gUnknown_0203BD28
|
|
strh r5, [r0]
|
|
ldr r0, =sub_8175744
|
|
str r0, [r4]
|
|
_08175A7A:
|
|
add sp, 0x4
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81758E4
|
|
|
|
thumb_func_start sub_8175A9C
|
|
sub_8175A9C: @ 8175A9C
|
|
push {r4,lr}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, =gTasks
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r4, r1, r2
|
|
ldrh r0, [r4, 0x20]
|
|
movs r2, 0x20
|
|
ldrsh r1, [r4, r2]
|
|
cmp r1, 0
|
|
beq _08175AC4
|
|
subs r0, 0x1
|
|
strh r0, [r4, 0x20]
|
|
b _08175AD8
|
|
.pool
|
|
_08175AC4:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
str r1, [sp]
|
|
movs r1, 0xC
|
|
movs r2, 0
|
|
movs r3, 0x10
|
|
bl pal_fade_maybe
|
|
ldr r0, =sub_8175AE4
|
|
str r0, [r4]
|
|
_08175AD8:
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8175A9C
|
|
|
|
thumb_func_start sub_8175AE4
|
|
sub_8175AE4: @ 8175AE4
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r0, =gUnknown_02037FD4
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08175B0A
|
|
adds r0, r4, 0
|
|
bl sub_8176CA0
|
|
ldr r0, =gTasks
|
|
lsls r1, r4, 2
|
|
adds r1, r4
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldr r0, =sub_8175B1C
|
|
str r0, [r1]
|
|
_08175B0A:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8175AE4
|
|
|
|
thumb_func_start sub_8175B1C
|
|
sub_8175B1C: @ 8175B1C
|
|
push {r4,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
bl sub_8175CE4
|
|
bl sub_80A1A74
|
|
movs r1, 0xE0
|
|
lsls r1, 6
|
|
movs r0, 0
|
|
movs r2, 0
|
|
bl sub_8176D1C
|
|
bl ResetAllObjectData
|
|
bl ResetObjectPaletteAllocator
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
movs r1, 0x8
|
|
movs r2, 0x10
|
|
movs r3, 0
|
|
bl pal_fade_maybe
|
|
movs r1, 0xE0
|
|
lsls r1, 3
|
|
movs r0, 0x8
|
|
bl SetGpuReg
|
|
movs r0, 0x1
|
|
bl EnableInterrupts
|
|
movs r1, 0xA0
|
|
lsls r1, 1
|
|
movs r0, 0
|
|
bl SetGpuReg
|
|
ldr r1, =gTasks
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
movs r1, 0xEB
|
|
strh r1, [r0, 0x8]
|
|
ldr r1, =sub_8175B90
|
|
str r1, [r0]
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8175B1C
|
|
|
|
thumb_func_start sub_8175B90
|
|
sub_8175B90: @ 8175B90
|
|
push {r4,lr}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, =gTasks
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r4, r1, r2
|
|
ldrh r0, [r4, 0x8]
|
|
movs r2, 0x8
|
|
ldrsh r1, [r4, r2]
|
|
cmp r1, 0
|
|
beq _08175BB8
|
|
subs r0, 0x1
|
|
strh r0, [r4, 0x8]
|
|
b _08175BCC
|
|
.pool
|
|
_08175BB8:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
str r1, [sp]
|
|
movs r1, 0x6
|
|
movs r2, 0
|
|
movs r3, 0x10
|
|
bl pal_fade_maybe
|
|
ldr r0, =sub_8175BD8
|
|
str r0, [r4]
|
|
_08175BCC:
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8175B90
|
|
|
|
thumb_func_start sub_8175BD8
|
|
sub_8175BD8: @ 8175BD8
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r0, =gUnknown_02037FD4
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0
|
|
bne _08175C1E
|
|
movs r0, 0xE0
|
|
lsls r0, 6
|
|
movs r1, 0
|
|
bl sub_8176E40
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
str r4, [sp]
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl pal_fade_maybe
|
|
ldr r1, =gTasks
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
movs r1, 0xE1
|
|
lsls r1, 5
|
|
strh r1, [r0, 0x8]
|
|
ldr r1, =sub_8175C34
|
|
str r1, [r0]
|
|
_08175C1E:
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8175BD8
|
|
|
|
thumb_func_start sub_8175C34
|
|
sub_8175C34: @ 8175C34
|
|
push {r4,lr}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
ldr r0, =gUnknown_02037FD4
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08175CB8
|
|
ldr r1, =gTasks
|
|
lsls r0, r2, 2
|
|
adds r0, r2
|
|
lsls r0, 3
|
|
adds r4, r0, r1
|
|
movs r0, 0x8
|
|
ldrsh r1, [r4, r0]
|
|
cmp r1, 0
|
|
beq _08175C62
|
|
ldr r0, =gUnknown_030022C0
|
|
ldrh r0, [r0, 0x2E]
|
|
cmp r0, 0
|
|
beq _08175C94
|
|
_08175C62:
|
|
movs r0, 0x4
|
|
bl play_sound_effect
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
ldr r1, =0x0000ffff
|
|
str r1, [sp]
|
|
movs r1, 0x8
|
|
movs r2, 0
|
|
movs r3, 0x10
|
|
bl pal_fade_maybe
|
|
ldr r0, =sub_8175CC8
|
|
str r0, [r4]
|
|
b _08175CB8
|
|
.pool
|
|
_08175C94:
|
|
ldr r0, =0x00001be8
|
|
cmp r1, r0
|
|
bne _08175CA0
|
|
movs r0, 0x8
|
|
bl play_sound_effect
|
|
_08175CA0:
|
|
movs r0, 0x8
|
|
ldrsh r1, [r4, r0]
|
|
ldr r0, =0x00001ab8
|
|
cmp r1, r0
|
|
bne _08175CB2
|
|
movs r0, 0xE4
|
|
lsls r0, 1
|
|
bl m4aSongNumStart
|
|
_08175CB2:
|
|
ldrh r0, [r4, 0x8]
|
|
subs r0, 0x1
|
|
strh r0, [r4, 0x8]
|
|
_08175CB8:
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8175C34
|
|
|
|
thumb_func_start sub_8175CC8
|
|
sub_8175CC8: @ 8175CC8
|
|
push {lr}
|
|
ldr r0, =gUnknown_02037FD4
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08175CDC
|
|
movs r0, 0xFF
|
|
bl SoftReset
|
|
_08175CDC:
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8175CC8
|
|
|
|
thumb_func_start sub_8175CE4
|
|
sub_8175CE4: @ 8175CE4
|
|
push {lr}
|
|
sub sp, 0x8
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x1C
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x1E
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x18
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x1A
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x14
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x16
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x10
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x12
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x50
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x52
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x54
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
mov r1, sp
|
|
movs r0, 0
|
|
strh r0, [r1]
|
|
ldr r1, =0x040000d4
|
|
mov r0, sp
|
|
str r0, [r1]
|
|
movs r0, 0xC0
|
|
lsls r0, 19
|
|
str r0, [r1, 0x4]
|
|
ldr r0, =0x8100c000
|
|
str r0, [r1, 0x8]
|
|
ldr r0, [r1, 0x8]
|
|
movs r2, 0
|
|
str r2, [sp, 0x4]
|
|
add r0, sp, 0x4
|
|
str r0, [r1]
|
|
movs r0, 0xE0
|
|
lsls r0, 19
|
|
str r0, [r1, 0x4]
|
|
ldr r0, =0x85000100
|
|
str r0, [r1, 0x8]
|
|
ldr r0, [r1, 0x8]
|
|
mov r0, sp
|
|
strh r2, [r0]
|
|
str r0, [r1]
|
|
ldr r0, =0x05000002
|
|
str r0, [r1, 0x4]
|
|
ldr r0, =0x810001ff
|
|
str r0, [r1, 0x8]
|
|
ldr r0, [r1, 0x8]
|
|
add sp, 0x8
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8175CE4
|
|
|
|
thumb_func_start sub_8175DA0
|
|
sub_8175DA0: @ 8175DA0
|
|
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, =gTasks
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
movs r2, 0x8
|
|
ldrsh r0, [r0, r2]
|
|
adds r5, r1, 0
|
|
cmp r0, 0xA
|
|
bhi _08175E00
|
|
lsls r0, 2
|
|
ldr r1, =_08175DD4
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_08175DD4:
|
|
.4byte _08175E00
|
|
.4byte _08175E40
|
|
.4byte _08175E60
|
|
.4byte _08175F38
|
|
.4byte _08175F5C
|
|
.4byte _08175FC8
|
|
.4byte _08175E00
|
|
.4byte _08175E00
|
|
.4byte _08175E00
|
|
.4byte _08175E00
|
|
.4byte _08175FFC
|
|
_08175E00:
|
|
ldr r0, =gUnknown_02037FD4
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0
|
|
beq _08175E12
|
|
b _0817602A
|
|
_08175E12:
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r0, r5
|
|
movs r1, 0x1
|
|
strh r1, [r0, 0x8]
|
|
movs r1, 0x48
|
|
strh r1, [r0, 0xE]
|
|
movs r3, 0xA
|
|
ldrsh r1, [r0, r3]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r0, r5
|
|
strh r2, [r0, 0x24]
|
|
ldr r0, =gUnknown_0203BCE0
|
|
strh r2, [r0]
|
|
b _0817602A
|
|
.pool
|
|
_08175E40:
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r1, r0, r5
|
|
ldrh r2, [r1, 0xE]
|
|
movs r3, 0xE
|
|
ldrsh r0, [r1, r3]
|
|
cmp r0, 0
|
|
beq _08175E58
|
|
subs r0, r2, 0x1
|
|
strh r0, [r1, 0xE]
|
|
b _0817602A
|
|
_08175E58:
|
|
ldrh r0, [r1, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x8]
|
|
b _0817602A
|
|
_08175E60:
|
|
lsls r2, r4, 2
|
|
adds r0, r2, r4
|
|
lsls r0, 3
|
|
adds r3, r0, r5
|
|
movs r0, 0xA
|
|
ldrsh r1, [r3, r0]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r5, r0, r5
|
|
ldr r1, [r5]
|
|
ldr r0, =sub_8175774
|
|
mov r9, r2
|
|
cmp r1, r0
|
|
bne _08175F32
|
|
movs r1, 0xC
|
|
ldrsh r0, [r3, r1]
|
|
cmp r0, 0x38
|
|
bgt _08175F2C
|
|
movs r5, 0
|
|
ldr r2, =gUnknown_085E6AF4
|
|
mov r8, r2
|
|
adds r7, r3, 0
|
|
movs r6, 0xA0
|
|
lsls r6, 19
|
|
_08175E92:
|
|
movs r3, 0xC
|
|
ldrsh r1, [r7, r3]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
adds r0, r5
|
|
lsls r0, 2
|
|
add r0, r8
|
|
ldr r2, [r0]
|
|
ldr r0, [r2, 0x4]
|
|
lsrs r1, r6, 24
|
|
ldrb r2, [r2, 0x1]
|
|
bl sub_81755BC
|
|
movs r0, 0x80
|
|
lsls r0, 21
|
|
adds r6, r0
|
|
adds r5, 0x1
|
|
cmp r5, 0x4
|
|
ble _08175E92
|
|
movs r0, 0
|
|
movs r1, 0x2
|
|
bl CopyWindowToVram
|
|
ldr r3, =gTasks
|
|
mov r2, r9
|
|
adds r1, r2, r4
|
|
lsls r1, 3
|
|
adds r1, r3
|
|
ldrh r0, [r1, 0xC]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0xC]
|
|
ldrh r0, [r1, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x8]
|
|
movs r0, 0xA
|
|
ldrsh r2, [r1, r0]
|
|
lsls r0, r2, 2
|
|
adds r0, r2
|
|
lsls r0, 3
|
|
adds r0, r3
|
|
movs r2, 0x1
|
|
strh r2, [r0, 0x24]
|
|
movs r2, 0xA
|
|
ldrsh r1, [r1, r2]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r0, r3
|
|
movs r3, 0x22
|
|
ldrsh r0, [r0, r3]
|
|
cmp r0, 0x1
|
|
bne _08175F14
|
|
movs r0, 0xC0
|
|
lsls r0, 2
|
|
ldr r1, =0x0000328d
|
|
b _08175F1A
|
|
.pool
|
|
_08175F14:
|
|
movs r0, 0xC0
|
|
lsls r0, 2
|
|
ldr r1, =0x00001967
|
|
_08175F1A:
|
|
str r1, [sp]
|
|
movs r1, 0
|
|
movs r2, 0x10
|
|
movs r3, 0
|
|
bl pal_fade_maybe
|
|
b _0817602A
|
|
.pool
|
|
_08175F2C:
|
|
movs r0, 0xA
|
|
strh r0, [r3, 0x8]
|
|
b _0817602A
|
|
_08175F32:
|
|
movs r0, 0
|
|
strh r0, [r5, 0x24]
|
|
b _0817602A
|
|
_08175F38:
|
|
ldr r0, =gUnknown_02037FD4
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0817602A
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r0, r5
|
|
movs r1, 0x73
|
|
strh r1, [r0, 0xE]
|
|
ldrh r1, [r0, 0x8]
|
|
adds r1, 0x1
|
|
strh r1, [r0, 0x8]
|
|
b _0817602A
|
|
.pool
|
|
_08175F5C:
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r4, r0, r5
|
|
ldrh r1, [r4, 0xE]
|
|
movs r2, 0xE
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0
|
|
beq _08175F74
|
|
subs r0, r1, 0x1
|
|
strh r0, [r4, 0xE]
|
|
b _0817602A
|
|
_08175F74:
|
|
ldrb r0, [r4, 0xC]
|
|
ldrb r1, [r4, 0xA]
|
|
bl sub_817603C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08175F8A
|
|
ldrh r0, [r4, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x8]
|
|
b _0817602A
|
|
_08175F8A:
|
|
ldrh r0, [r4, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x8]
|
|
movs r3, 0xA
|
|
ldrsh r1, [r4, r3]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r0, r5
|
|
movs r1, 0x22
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0x1
|
|
bne _08175FB0
|
|
movs r0, 0xC0
|
|
lsls r0, 2
|
|
ldr r1, =0x0000328d
|
|
b _08175FB6
|
|
.pool
|
|
_08175FB0:
|
|
movs r0, 0xC0
|
|
lsls r0, 2
|
|
ldr r1, =0x00001967
|
|
_08175FB6:
|
|
str r1, [sp]
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0x10
|
|
bl pal_fade_maybe
|
|
b _0817602A
|
|
.pool
|
|
_08175FC8:
|
|
ldr r0, =gUnknown_02037FD4
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0817602A
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl FillWindowPixelBuffer
|
|
movs r0, 0
|
|
movs r1, 0x2
|
|
bl CopyWindowToVram
|
|
ldr r0, =gTasks
|
|
lsls r1, r4, 2
|
|
adds r1, r4
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
movs r0, 0x2
|
|
strh r0, [r1, 0x8]
|
|
b _0817602A
|
|
.pool
|
|
_08175FFC:
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r0, r5
|
|
movs r2, 0xA
|
|
ldrsh r1, [r0, r2]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r0, r5
|
|
movs r5, 0
|
|
movs r1, 0x1
|
|
strh r1, [r0, 0x10]
|
|
adds r0, r4, 0
|
|
bl DestroyTask
|
|
bl sub_81755A4
|
|
ldr r4, =gUnknown_0203BCE8
|
|
ldr r0, [r4]
|
|
bl Free
|
|
str r5, [r4]
|
|
_0817602A:
|
|
add sp, 0x4
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8175DA0
|
|
|
|
thumb_func_start sub_817603C
|
|
sub_817603C: @ 817603C
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
adds r6, r3, 0
|
|
lsls r1, 24
|
|
lsrs r2, r1, 24
|
|
adds r5, r2, 0
|
|
ldr r4, =gTasks
|
|
cmp r3, 0x6
|
|
bne _0817605C
|
|
lsls r0, r2, 2
|
|
adds r0, r2
|
|
lsls r0, 3
|
|
adds r0, r4
|
|
movs r1, 0x2
|
|
strh r1, [r0, 0x1E]
|
|
_0817605C:
|
|
cmp r3, 0xC
|
|
bne _0817606E
|
|
lsls r0, r2, 2
|
|
adds r0, r2
|
|
lsls r0, 3
|
|
adds r0, r4
|
|
movs r1, 0x1
|
|
strh r1, [r0, 0x16]
|
|
strh r1, [r0, 0x1E]
|
|
_0817606E:
|
|
cmp r3, 0x12
|
|
bne _0817607E
|
|
lsls r0, r2, 2
|
|
adds r0, r2
|
|
lsls r0, 3
|
|
adds r0, r4
|
|
movs r1, 0x2
|
|
strh r1, [r0, 0x1E]
|
|
_0817607E:
|
|
cmp r3, 0x18
|
|
bne _08176092
|
|
lsls r0, r2, 2
|
|
adds r0, r2
|
|
lsls r0, 3
|
|
adds r0, r4
|
|
movs r1, 0x2
|
|
strh r1, [r0, 0x16]
|
|
movs r1, 0x1
|
|
strh r1, [r0, 0x1E]
|
|
_08176092:
|
|
cmp r3, 0x1E
|
|
bne _081760A2
|
|
lsls r0, r2, 2
|
|
adds r0, r2
|
|
lsls r0, 3
|
|
adds r0, r4
|
|
movs r1, 0x2
|
|
strh r1, [r0, 0x1E]
|
|
_081760A2:
|
|
cmp r3, 0x24
|
|
bne _081760B6
|
|
lsls r0, r2, 2
|
|
adds r0, r2
|
|
lsls r0, 3
|
|
adds r0, r4
|
|
movs r1, 0x3
|
|
strh r1, [r0, 0x16]
|
|
movs r1, 0x1
|
|
strh r1, [r0, 0x1E]
|
|
_081760B6:
|
|
cmp r3, 0x2A
|
|
bne _081760C6
|
|
lsls r0, r2, 2
|
|
adds r0, r2
|
|
lsls r0, 3
|
|
adds r0, r4
|
|
movs r1, 0x2
|
|
strh r1, [r0, 0x1E]
|
|
_081760C6:
|
|
cmp r6, 0x30
|
|
bne _081760DA
|
|
lsls r0, r2, 2
|
|
adds r0, r2
|
|
lsls r0, 3
|
|
adds r0, r4
|
|
movs r1, 0x4
|
|
strh r1, [r0, 0x16]
|
|
movs r1, 0x1
|
|
strh r1, [r0, 0x1E]
|
|
_081760DA:
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
adds r0, r4
|
|
movs r1, 0x1E
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0
|
|
bne _081760F4
|
|
movs r0, 0
|
|
b _081760F6
|
|
.pool
|
|
_081760F4:
|
|
movs r0, 0x1
|
|
_081760F6:
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_817603C
|
|
|
|
thumb_func_start sub_81760FC
|
|
sub_81760FC: @ 81760FC
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r4, =gTasks
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
adds r2, r0, r4
|
|
movs r1, 0x8
|
|
ldrsh r0, [r2, r1]
|
|
cmp r0, 0x1
|
|
beq _0817612C
|
|
cmp r0, 0x1
|
|
bgt _0817611A
|
|
b _08176244
|
|
_0817611A:
|
|
cmp r0, 0x2
|
|
beq _08176158
|
|
cmp r0, 0x3
|
|
bne _08176124
|
|
b _08176230
|
|
_08176124:
|
|
b _08176244
|
|
.pool
|
|
_0817612C:
|
|
ldr r0, =gUnknown_0203BCE8
|
|
ldr r0, [r0]
|
|
adds r0, 0x90
|
|
ldrh r0, [r0]
|
|
cmp r0, 0
|
|
bne _0817614E
|
|
movs r3, 0xA
|
|
ldrsh r0, [r2, r3]
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r4
|
|
movs r3, 0x24
|
|
ldrsh r0, [r1, r3]
|
|
cmp r0, 0
|
|
bne _0817614E
|
|
b _08176244
|
|
_0817614E:
|
|
ldrh r0, [r2, 0x8]
|
|
adds r0, 0x1
|
|
b _08176242
|
|
.pool
|
|
_08176158:
|
|
ldr r6, =gUnknown_0203BCE8
|
|
ldr r3, [r6]
|
|
adds r0, r3, 0
|
|
adds r0, 0x8E
|
|
ldrh r0, [r0]
|
|
cmp r0, 0x47
|
|
beq _08176244
|
|
movs r0, 0xA
|
|
ldrsh r1, [r2, r0]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r0, r4
|
|
ldr r1, [r0]
|
|
ldr r0, =sub_8175774
|
|
cmp r1, r0
|
|
bne _08176244
|
|
adds r0, r3, 0
|
|
adds r0, 0x92
|
|
ldrh r0, [r0]
|
|
lsls r0, 1
|
|
adds r0, r3, r0
|
|
ldrh r0, [r0]
|
|
ldr r4, =gUnknown_085E6F7C
|
|
adds r1, r3, 0
|
|
adds r1, 0x90
|
|
ldrh r3, [r1]
|
|
lsls r2, r3, 1
|
|
adds r1, r2, r4
|
|
ldrb r1, [r1]
|
|
adds r4, 0x1
|
|
adds r2, r4
|
|
ldrb r2, [r2]
|
|
bl sub_8177224
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
ldr r0, [r6]
|
|
adds r1, r0, 0
|
|
adds r1, 0x92
|
|
ldrh r3, [r1]
|
|
adds r0, 0x94
|
|
ldrh r0, [r0]
|
|
subs r0, 0x1
|
|
cmp r3, r0
|
|
bge _081761D8
|
|
adds r0, r3, 0x1
|
|
strh r0, [r1]
|
|
ldr r1, =gUnknown_02020630
|
|
lsls r0, r2, 4
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
movs r1, 0x32
|
|
b _081761EA
|
|
.pool
|
|
_081761D8:
|
|
movs r0, 0
|
|
strh r0, [r1]
|
|
ldr r1, =gUnknown_02020630
|
|
lsls r0, r2, 4
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
movs r1, 0x80
|
|
lsls r1, 2
|
|
_081761EA:
|
|
strh r1, [r0, 0x34]
|
|
ldr r0, =gUnknown_0203BCE8
|
|
ldr r1, [r0]
|
|
adds r2, r1, 0
|
|
adds r2, 0x8E
|
|
ldrh r0, [r2]
|
|
adds r0, 0x1
|
|
strh r0, [r2]
|
|
adds r1, 0x90
|
|
ldrh r0, [r1]
|
|
cmp r0, 0x2
|
|
bne _08176210
|
|
movs r0, 0
|
|
b _08176212
|
|
.pool
|
|
_08176210:
|
|
adds r0, 0x1
|
|
_08176212:
|
|
strh r0, [r1]
|
|
ldr r0, =gTasks
|
|
lsls r1, r5, 2
|
|
adds r1, r5
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
movs r0, 0x32
|
|
strh r0, [r1, 0xE]
|
|
ldrh r0, [r1, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x8]
|
|
b _08176244
|
|
.pool
|
|
_08176230:
|
|
ldrh r1, [r2, 0xE]
|
|
movs r3, 0xE
|
|
ldrsh r0, [r2, r3]
|
|
cmp r0, 0
|
|
beq _08176240
|
|
subs r0, r1, 0x1
|
|
strh r0, [r2, 0xE]
|
|
b _08176244
|
|
_08176240:
|
|
movs r0, 0x1
|
|
_08176242:
|
|
strh r0, [r2, 0x8]
|
|
_08176244:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_81760FC
|
|
|
|
thumb_func_start sub_817624C
|
|
sub_817624C: @ 817624C
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r1, =gTasks
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
movs r2, 0x8
|
|
ldrsh r0, [r0, r2]
|
|
adds r6, r1, 0
|
|
cmp r0, 0x32
|
|
bls _08176268
|
|
b _08176514
|
|
_08176268:
|
|
lsls r0, 2
|
|
ldr r1, =_0817627C
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_0817627C:
|
|
.4byte _08176348
|
|
.4byte _0817636C
|
|
.4byte _081763C0
|
|
.4byte _081763D8
|
|
.4byte _08176414
|
|
.4byte _08176438
|
|
.4byte _08176484
|
|
.4byte _08176514
|
|
.4byte _08176514
|
|
.4byte _08176514
|
|
.4byte _08176490
|
|
.4byte _08176514
|
|
.4byte _08176514
|
|
.4byte _08176514
|
|
.4byte _08176514
|
|
.4byte _08176514
|
|
.4byte _08176514
|
|
.4byte _08176514
|
|
.4byte _08176514
|
|
.4byte _08176514
|
|
.4byte _081764B0
|
|
.4byte _08176514
|
|
.4byte _08176514
|
|
.4byte _08176514
|
|
.4byte _08176514
|
|
.4byte _08176514
|
|
.4byte _08176514
|
|
.4byte _08176514
|
|
.4byte _08176514
|
|
.4byte _08176514
|
|
.4byte _081764D4
|
|
.4byte _08176514
|
|
.4byte _08176514
|
|
.4byte _08176514
|
|
.4byte _08176514
|
|
.4byte _08176514
|
|
.4byte _08176514
|
|
.4byte _08176514
|
|
.4byte _08176514
|
|
.4byte _08176514
|
|
.4byte _08176514
|
|
.4byte _08176514
|
|
.4byte _08176514
|
|
.4byte _08176514
|
|
.4byte _08176514
|
|
.4byte _08176514
|
|
.4byte _08176514
|
|
.4byte _08176514
|
|
.4byte _08176514
|
|
.4byte _08176514
|
|
.4byte _08176508
|
|
_08176348:
|
|
lsls r4, r5, 2
|
|
adds r4, r5
|
|
lsls r4, 3
|
|
adds r4, r6
|
|
ldrh r0, [r4, 0x12]
|
|
lsls r0, 16
|
|
asrs r0, 17
|
|
movs r1, 0x7F
|
|
ands r0, r1
|
|
movs r1, 0xC
|
|
bl sine
|
|
ldr r1, =gUnknown_0203BD26
|
|
strh r0, [r1]
|
|
b _08176390
|
|
.pool
|
|
_0817636C:
|
|
ldr r7, =gUnknown_0203BD26
|
|
movs r3, 0
|
|
ldrsh r4, [r7, r3]
|
|
cmp r4, 0
|
|
beq _0817639C
|
|
lsls r4, r5, 2
|
|
adds r4, r5
|
|
lsls r4, 3
|
|
adds r4, r6
|
|
ldrh r0, [r4, 0x12]
|
|
lsls r0, 16
|
|
asrs r0, 17
|
|
movs r1, 0x7F
|
|
ands r0, r1
|
|
movs r1, 0xC
|
|
bl sine
|
|
strh r0, [r7]
|
|
_08176390:
|
|
ldrh r0, [r4, 0x12]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x12]
|
|
b _08176514
|
|
.pool
|
|
_0817639C:
|
|
ldr r3, =gUnknown_02020630
|
|
lsls r1, r5, 2
|
|
adds r1, r5
|
|
lsls r1, 3
|
|
adds r1, r6
|
|
movs r0, 0xC
|
|
ldrsh r2, [r1, r0]
|
|
lsls r0, r2, 4
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
movs r2, 0x2
|
|
strh r2, [r0, 0x2E]
|
|
strh r4, [r1, 0x12]
|
|
b _08176430
|
|
.pool
|
|
_081763C0:
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
adds r1, r0, r6
|
|
ldrh r2, [r1, 0x12]
|
|
movs r3, 0x12
|
|
ldrsh r0, [r1, r3]
|
|
cmp r0, 0x3F
|
|
bgt _08176430
|
|
adds r0, r2, 0x1
|
|
strh r0, [r1, 0x12]
|
|
b _0817644E
|
|
_081763D8:
|
|
ldr r3, =gUnknown_02020630
|
|
lsls r2, r5, 2
|
|
adds r2, r5
|
|
lsls r2, 3
|
|
adds r2, r6
|
|
movs r0, 0xC
|
|
ldrsh r1, [r2, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
movs r1, 0x3
|
|
strh r1, [r0, 0x2E]
|
|
movs r0, 0xE
|
|
ldrsh r1, [r2, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
movs r1, 0x1
|
|
strh r1, [r0, 0x2E]
|
|
movs r0, 0x78
|
|
strh r0, [r2, 0x10]
|
|
ldrh r0, [r2, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r2, 0x8]
|
|
b _08176514
|
|
.pool
|
|
_08176414:
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
adds r1, r0, r6
|
|
ldrh r2, [r1, 0x10]
|
|
movs r3, 0x10
|
|
ldrsh r0, [r1, r3]
|
|
cmp r0, 0
|
|
beq _0817642C
|
|
subs r0, r2, 0x1
|
|
strh r0, [r1, 0x10]
|
|
b _08176514
|
|
_0817642C:
|
|
movs r0, 0x40
|
|
strh r0, [r1, 0x12]
|
|
_08176430:
|
|
ldrh r0, [r1, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x8]
|
|
b _08176514
|
|
_08176438:
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
adds r4, r0, r6
|
|
ldrh r1, [r4, 0x12]
|
|
movs r2, 0x12
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0
|
|
ble _08176464
|
|
subs r0, r1, 0x1
|
|
strh r0, [r4, 0x12]
|
|
_0817644E:
|
|
movs r1, 0x7F
|
|
ands r0, r1
|
|
movs r1, 0x14
|
|
bl sine
|
|
ldr r1, =gUnknown_0203BD26
|
|
strh r0, [r1]
|
|
b _08176514
|
|
.pool
|
|
_08176464:
|
|
ldr r2, =gUnknown_02020630
|
|
movs r3, 0xC
|
|
ldrsh r1, [r4, r3]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
movs r1, 0x1
|
|
strh r1, [r0, 0x2E]
|
|
ldrh r0, [r4, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x8]
|
|
b _08176514
|
|
.pool
|
|
_08176484:
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
adds r0, r6
|
|
movs r1, 0x32
|
|
b _08176512
|
|
_08176490:
|
|
ldr r3, =gUnknown_02020630
|
|
lsls r1, r5, 2
|
|
adds r1, r5
|
|
lsls r1, 3
|
|
adds r1, r6
|
|
movs r0, 0xE
|
|
ldrsh r2, [r1, r0]
|
|
lsls r0, r2, 4
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
movs r2, 0x2
|
|
b _081764C8
|
|
.pool
|
|
_081764B0:
|
|
ldr r3, =gUnknown_02020630
|
|
lsls r1, r5, 2
|
|
adds r1, r5
|
|
lsls r1, 3
|
|
adds r1, r6
|
|
movs r0, 0xC
|
|
ldrsh r2, [r1, r0]
|
|
lsls r0, r2, 4
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
movs r2, 0x4
|
|
_081764C8:
|
|
strh r2, [r0, 0x2E]
|
|
movs r0, 0x32
|
|
strh r0, [r1, 0x8]
|
|
b _08176514
|
|
.pool
|
|
_081764D4:
|
|
ldr r3, =gUnknown_02020630
|
|
lsls r2, r5, 2
|
|
adds r2, r5
|
|
lsls r2, 3
|
|
adds r2, r6
|
|
movs r0, 0xC
|
|
ldrsh r1, [r2, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
movs r1, 0x5
|
|
strh r1, [r0, 0x2E]
|
|
movs r0, 0xE
|
|
ldrsh r1, [r2, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
movs r1, 0x3
|
|
strh r1, [r0, 0x2E]
|
|
movs r0, 0x32
|
|
strh r0, [r2, 0x8]
|
|
b _08176514
|
|
.pool
|
|
_08176508:
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
adds r0, r6
|
|
movs r1, 0
|
|
_08176512:
|
|
strh r1, [r0, 0x8]
|
|
_08176514:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_817624C
|
|
|
|
thumb_func_start sub_817651C
|
|
sub_817651C: @ 817651C
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
ldr r1, =gTasks
|
|
lsls r0, r2, 2
|
|
adds r0, r2
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
movs r3, 0x8
|
|
ldrsh r0, [r0, r3]
|
|
adds r4, r1, 0
|
|
cmp r0, 0x4
|
|
bhi _0817655C
|
|
lsls r0, 2
|
|
ldr r1, =_08176548
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_08176548:
|
|
.4byte _0817655C
|
|
.4byte _081765A0
|
|
.4byte _081765AC
|
|
.4byte _081765F4
|
|
.4byte _08176640
|
|
_0817655C:
|
|
lsls r0, r2, 2
|
|
adds r0, r2
|
|
lsls r0, 3
|
|
adds r2, r0, r4
|
|
movs r1, 0xA
|
|
ldrsh r0, [r2, r1]
|
|
ldr r5, =0x00007fff
|
|
cmp r0, r5
|
|
beq _081765A0
|
|
movs r3, 0xC
|
|
ldrsh r1, [r2, r3]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r3, r0, r4
|
|
movs r0, 0x26
|
|
ldrsh r1, [r3, r0]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r0, r4
|
|
movs r1, 0xC
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0x2
|
|
bne _081765A0
|
|
movs r1, 0xA
|
|
ldrsh r0, [r3, r1]
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r4
|
|
movs r0, 0x14
|
|
strh r0, [r1, 0x8]
|
|
strh r5, [r2, 0xA]
|
|
_081765A0:
|
|
movs r0, 0
|
|
bl sub_817B540
|
|
b _08176646
|
|
.pool
|
|
_081765AC:
|
|
lsls r0, r2, 2
|
|
adds r0, r2
|
|
lsls r0, 3
|
|
adds r2, r0, r4
|
|
movs r3, 0xA
|
|
ldrsh r0, [r2, r3]
|
|
ldr r5, =0x00007fff
|
|
cmp r0, r5
|
|
beq _08176638
|
|
movs r0, 0xC
|
|
ldrsh r1, [r2, r0]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r0, r4
|
|
movs r3, 0xA
|
|
ldrsh r1, [r0, r3]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r3, r0, r4
|
|
ldrh r1, [r3, 0x12]
|
|
movs r0, 0x80
|
|
negs r0, r0
|
|
ands r0, r1
|
|
movs r1, 0xA0
|
|
lsls r1, 2
|
|
cmp r0, r1
|
|
bne _08176638
|
|
movs r0, 0x1
|
|
strh r0, [r3, 0x8]
|
|
strh r5, [r2, 0xA]
|
|
b _08176638
|
|
.pool
|
|
_081765F4:
|
|
lsls r0, r2, 2
|
|
adds r0, r2
|
|
lsls r0, 3
|
|
adds r2, r0, r4
|
|
ldrh r3, [r2, 0xA]
|
|
movs r0, 0xA
|
|
ldrsh r1, [r2, r0]
|
|
ldr r5, =0x00007fff
|
|
cmp r1, r5
|
|
beq _08176638
|
|
movs r0, 0x92
|
|
lsls r0, 2
|
|
cmp r1, r0
|
|
bne _08176634
|
|
movs r3, 0xC
|
|
ldrsh r1, [r2, r3]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r0, r4
|
|
movs r3, 0xA
|
|
ldrsh r1, [r0, r3]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r0, r4
|
|
movs r1, 0xA
|
|
strh r1, [r0, 0x8]
|
|
strh r5, [r2, 0xA]
|
|
b _08176638
|
|
.pool
|
|
_08176634:
|
|
adds r0, r3, 0x1
|
|
strh r0, [r2, 0xA]
|
|
_08176638:
|
|
movs r0, 0x1
|
|
bl sub_817B540
|
|
b _08176646
|
|
_08176640:
|
|
movs r0, 0x2
|
|
bl sub_817B540
|
|
_08176646:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_817651C
|
|
|
|
thumb_func_start sub_817664C
|
|
sub_817664C: @ 817664C
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
lsls r1, 24
|
|
lsrs r7, r1, 24
|
|
cmp r0, 0x4
|
|
bls _08176662
|
|
b _081769E0
|
|
_08176662:
|
|
lsls r0, 2
|
|
ldr r1, =_08176670
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_08176670:
|
|
.4byte _08176684
|
|
.4byte _0817672C
|
|
.4byte _081767D8
|
|
.4byte _08176884
|
|
.4byte _08176934
|
|
_08176684:
|
|
ldr r5, =gUnknown_02020630
|
|
ldr r0, =gTasks
|
|
lsls r4, r7, 2
|
|
adds r4, r7
|
|
lsls r4, 3
|
|
adds r4, r0
|
|
movs r1, 0x12
|
|
ldrsh r0, [r4, r1]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r5
|
|
adds r1, 0x3E
|
|
ldrb r3, [r1]
|
|
movs r2, 0x5
|
|
negs r2, r2
|
|
adds r0, r2, 0
|
|
ands r0, r3
|
|
strb r0, [r1]
|
|
movs r0, 0x14
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
adds r0, 0x3E
|
|
ldrb r1, [r0]
|
|
ands r2, r1
|
|
strb r2, [r0]
|
|
movs r0, 0x12
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
movs r3, 0
|
|
movs r2, 0x88
|
|
lsls r2, 1
|
|
strh r2, [r0, 0x20]
|
|
movs r0, 0x14
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
strh r2, [r0, 0x20]
|
|
movs r0, 0x12
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
movs r2, 0x2E
|
|
strh r2, [r0, 0x22]
|
|
movs r0, 0x14
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
strh r2, [r0, 0x22]
|
|
movs r0, 0x12
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
strh r3, [r0, 0x2E]
|
|
movs r0, 0x14
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
strh r3, [r0, 0x2E]
|
|
movs r1, 0x80
|
|
lsls r1, 6
|
|
movs r0, 0
|
|
movs r2, 0x20
|
|
b _081769D4
|
|
.pool
|
|
_0817672C:
|
|
ldr r5, =gUnknown_02020630
|
|
ldr r0, =gTasks
|
|
lsls r4, r7, 2
|
|
adds r4, r7
|
|
lsls r4, 3
|
|
adds r4, r0
|
|
movs r1, 0x12
|
|
ldrsh r0, [r4, r1]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r5
|
|
adds r1, 0x3E
|
|
ldrb r3, [r1]
|
|
movs r2, 0x5
|
|
negs r2, r2
|
|
adds r0, r2, 0
|
|
ands r0, r3
|
|
strb r0, [r1]
|
|
movs r0, 0x14
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
adds r0, 0x3E
|
|
ldrb r1, [r0]
|
|
ands r2, r1
|
|
strb r2, [r0]
|
|
movs r0, 0x12
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
movs r3, 0
|
|
movs r1, 0x78
|
|
strh r1, [r0, 0x20]
|
|
movs r0, 0x14
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
movs r1, 0x88
|
|
lsls r1, 1
|
|
strh r1, [r0, 0x20]
|
|
movs r0, 0x12
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
movs r2, 0x2E
|
|
strh r2, [r0, 0x22]
|
|
movs r0, 0x14
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
strh r2, [r0, 0x22]
|
|
movs r0, 0x12
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
strh r3, [r0, 0x2E]
|
|
movs r0, 0x14
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
strh r3, [r0, 0x2E]
|
|
movs r1, 0x80
|
|
lsls r1, 6
|
|
movs r0, 0
|
|
movs r2, 0x20
|
|
b _081769D4
|
|
.pool
|
|
_081767D8:
|
|
ldr r5, =gUnknown_02020630
|
|
ldr r0, =gTasks
|
|
lsls r4, r7, 2
|
|
adds r4, r7
|
|
lsls r4, 3
|
|
adds r4, r0
|
|
movs r1, 0x12
|
|
ldrsh r0, [r4, r1]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r5
|
|
adds r1, 0x3E
|
|
ldrb r3, [r1]
|
|
movs r2, 0x5
|
|
negs r2, r2
|
|
adds r0, r2, 0
|
|
ands r0, r3
|
|
strb r0, [r1]
|
|
movs r0, 0x14
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
adds r0, 0x3E
|
|
ldrb r1, [r0]
|
|
ands r2, r1
|
|
strb r2, [r0]
|
|
movs r0, 0x12
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
movs r3, 0
|
|
movs r1, 0x78
|
|
strh r1, [r0, 0x20]
|
|
movs r0, 0x14
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
movs r1, 0x88
|
|
lsls r1, 1
|
|
strh r1, [r0, 0x20]
|
|
movs r0, 0x12
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
movs r2, 0x2E
|
|
strh r2, [r0, 0x22]
|
|
movs r0, 0x14
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
strh r2, [r0, 0x22]
|
|
movs r0, 0x12
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
strh r3, [r0, 0x2E]
|
|
movs r0, 0x14
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
strh r3, [r0, 0x2E]
|
|
movs r1, 0x80
|
|
lsls r1, 6
|
|
movs r2, 0x80
|
|
lsls r2, 2
|
|
movs r0, 0x1
|
|
b _081769D4
|
|
.pool
|
|
_08176884:
|
|
ldr r5, =gUnknown_02020630
|
|
ldr r0, =gTasks
|
|
lsls r4, r7, 2
|
|
adds r4, r7
|
|
lsls r4, 3
|
|
adds r4, r0
|
|
movs r1, 0x12
|
|
ldrsh r0, [r4, r1]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r5
|
|
adds r1, 0x3E
|
|
ldrb r3, [r1]
|
|
movs r2, 0x5
|
|
negs r2, r2
|
|
adds r0, r2, 0
|
|
ands r0, r3
|
|
strb r0, [r1]
|
|
movs r0, 0x14
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
adds r0, 0x3E
|
|
ldrb r1, [r0]
|
|
ands r2, r1
|
|
strb r2, [r0]
|
|
movs r0, 0x12
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
movs r3, 0
|
|
movs r1, 0x78
|
|
strh r1, [r0, 0x20]
|
|
movs r0, 0x14
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
ldr r1, =0x0000ffe0
|
|
strh r1, [r0, 0x20]
|
|
movs r0, 0x12
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
movs r2, 0x2E
|
|
strh r2, [r0, 0x22]
|
|
movs r0, 0x14
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
strh r2, [r0, 0x22]
|
|
movs r0, 0x12
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
strh r3, [r0, 0x2E]
|
|
movs r0, 0x14
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
strh r3, [r0, 0x2E]
|
|
movs r1, 0x80
|
|
lsls r1, 6
|
|
movs r2, 0x80
|
|
lsls r2, 2
|
|
movs r0, 0x1
|
|
b _081769D4
|
|
.pool
|
|
_08176934:
|
|
ldr r5, =gUnknown_02020630
|
|
ldr r0, =gTasks
|
|
lsls r4, r7, 2
|
|
adds r4, r7
|
|
lsls r4, 3
|
|
adds r4, r0
|
|
movs r1, 0x12
|
|
ldrsh r0, [r4, r1]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r5
|
|
adds r1, 0x3E
|
|
ldrb r3, [r1]
|
|
movs r2, 0x5
|
|
negs r2, r2
|
|
adds r0, r2, 0
|
|
ands r0, r3
|
|
strb r0, [r1]
|
|
movs r0, 0x14
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
adds r0, 0x3E
|
|
ldrb r1, [r0]
|
|
ands r2, r1
|
|
strb r2, [r0]
|
|
movs r0, 0x12
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
movs r3, 0
|
|
movs r1, 0x58
|
|
strh r1, [r0, 0x20]
|
|
movs r0, 0x14
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
movs r1, 0x98
|
|
strh r1, [r0, 0x20]
|
|
movs r0, 0x12
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
movs r2, 0x2E
|
|
strh r2, [r0, 0x22]
|
|
movs r0, 0x14
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
strh r2, [r0, 0x22]
|
|
movs r0, 0x12
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
strh r3, [r0, 0x2E]
|
|
movs r0, 0x14
|
|
ldrsh r1, [r4, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
strh r3, [r0, 0x2E]
|
|
movs r1, 0x80
|
|
lsls r1, 6
|
|
movs r2, 0x80
|
|
lsls r2, 2
|
|
movs r0, 0x2
|
|
_081769D4:
|
|
movs r3, 0x8
|
|
bl sub_817B3DC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0x8]
|
|
_081769E0:
|
|
ldr r0, =sub_817651C
|
|
movs r1, 0
|
|
bl CreateTask
|
|
ldr r6, =gTasks
|
|
lsls r1, r7, 2
|
|
adds r1, r7
|
|
lsls r1, 3
|
|
adds r5, r1, r6
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r4, 0
|
|
strh r0, [r5, 0xC]
|
|
movs r0, 0xC
|
|
ldrsh r1, [r5, r0]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r0, r6
|
|
mov r1, r8
|
|
strh r1, [r0, 0x8]
|
|
movs r0, 0xC
|
|
ldrsh r1, [r5, r0]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r0, r6
|
|
strh r4, [r0, 0xA]
|
|
movs r0, 0xC
|
|
ldrsh r1, [r5, r0]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r0, r6
|
|
strh r7, [r0, 0xC]
|
|
ldr r0, =sub_817624C
|
|
movs r1, 0
|
|
bl CreateTask
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r5, 0xA]
|
|
movs r0, 0xA
|
|
ldrsh r1, [r5, r0]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r0, r6
|
|
strh r4, [r0, 0x8]
|
|
movs r0, 0xA
|
|
ldrsh r1, [r5, r0]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r0, r6
|
|
strh r7, [r0, 0xA]
|
|
movs r0, 0xA
|
|
ldrsh r1, [r5, r0]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r0, r6
|
|
ldrh r1, [r5, 0x12]
|
|
strh r1, [r0, 0xC]
|
|
movs r0, 0xA
|
|
ldrsh r1, [r5, r0]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r0, r6
|
|
ldrh r1, [r5, 0x14]
|
|
strh r1, [r0, 0xE]
|
|
movs r0, 0xA
|
|
ldrsh r1, [r5, r0]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r0, r6
|
|
strh r4, [r0, 0x10]
|
|
mov r1, r8
|
|
cmp r1, 0x2
|
|
bne _08176A94
|
|
movs r1, 0xA
|
|
ldrsh r0, [r5, r1]
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r6
|
|
movs r0, 0x45
|
|
strh r0, [r1, 0x12]
|
|
_08176A94:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_817664C
|
|
|
|
thumb_func_start sub_8176AB0
|
|
sub_8176AB0: @ 8176AB0
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
lsls r1, 24
|
|
lsrs r5, r1, 24
|
|
ldr r0, =gUnknown_030022C0
|
|
movs r1, 0x87
|
|
lsls r1, 3
|
|
adds r6, r0, r1
|
|
ldrb r0, [r6]
|
|
cmp r0, 0x1
|
|
beq _08176B30
|
|
cmp r0, 0x1
|
|
ble _08176AD6
|
|
cmp r0, 0x2
|
|
beq _08176B54
|
|
cmp r0, 0x3
|
|
bne _08176AD6
|
|
b _08176C80
|
|
_08176AD6:
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x1C
|
|
movs r1, 0x8
|
|
bl SetGpuReg
|
|
movs r0, 0x1E
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x18
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x1A
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x14
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x16
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x50
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x52
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
bl ResetAllObjectData
|
|
bl ResetObjectPaletteAllocator
|
|
movs r0, 0x1
|
|
strb r0, [r6]
|
|
b _08176C96
|
|
.pool
|
|
_08176B30:
|
|
ldr r1, =gUnknown_0203BD24
|
|
movs r0, 0x22
|
|
strh r0, [r1]
|
|
ldr r1, =gUnknown_0203BD26
|
|
movs r0, 0
|
|
strh r0, [r1]
|
|
adds r0, r4, 0
|
|
bl sub_817B1C8
|
|
ldrb r0, [r6]
|
|
adds r0, 0x1
|
|
strb r0, [r6]
|
|
b _08176C96
|
|
.pool
|
|
_08176B54:
|
|
ldr r0, =gUnknown_03005D90
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x8]
|
|
cmp r0, 0
|
|
bne _08176BD8
|
|
ldr r0, =gUnknown_085F5334
|
|
bl LoadCompressedObjectPic
|
|
ldr r0, =gUnknown_085F53BC
|
|
bl LoadCompressedObjectPic
|
|
ldr r0, =gUnknown_085F5354
|
|
bl LoadCompressedObjectPic
|
|
ldr r0, =gUnknown_085F5384
|
|
bl LoadTaggedObjectPalettes
|
|
movs r0, 0x78
|
|
movs r1, 0x2E
|
|
bl sub_817B834
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
ldr r0, =gTasks
|
|
lsls r4, r5, 2
|
|
adds r4, r5
|
|
lsls r4, 3
|
|
adds r4, r0
|
|
strh r2, [r4, 0x12]
|
|
ldr r6, =gUnknown_02020630
|
|
lsls r0, r2, 4
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r5, r6, 0
|
|
adds r5, 0x1C
|
|
adds r2, r0, r5
|
|
ldr r1, =sub_8176EE8
|
|
str r1, [r2]
|
|
adds r6, 0x8
|
|
adds r0, r6
|
|
ldr r1, =gUnknown_085E6FD0
|
|
str r1, [r0]
|
|
movs r0, 0x88
|
|
lsls r0, 1
|
|
movs r1, 0x2E
|
|
bl sub_817B88C
|
|
b _08176C2C
|
|
.pool
|
|
_08176BD8:
|
|
ldr r0, =gUnknown_085F5344
|
|
bl LoadCompressedObjectPic
|
|
ldr r0, =gUnknown_085F53AC
|
|
bl LoadCompressedObjectPic
|
|
ldr r0, =gUnknown_085F5354
|
|
bl LoadCompressedObjectPic
|
|
ldr r0, =gUnknown_085F5384
|
|
bl LoadTaggedObjectPalettes
|
|
movs r0, 0x78
|
|
movs r1, 0x2E
|
|
bl sub_817B88C
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
ldr r0, =gTasks
|
|
lsls r4, r5, 2
|
|
adds r4, r5
|
|
lsls r4, 3
|
|
adds r4, r0
|
|
strh r2, [r4, 0x12]
|
|
ldr r6, =gUnknown_02020630
|
|
lsls r0, r2, 4
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r5, r6, 0
|
|
adds r5, 0x1C
|
|
adds r2, r0, r5
|
|
ldr r1, =sub_8176EE8
|
|
str r1, [r2]
|
|
adds r6, 0x8
|
|
adds r0, r6
|
|
ldr r1, =gUnknown_085E6FD0
|
|
str r1, [r0]
|
|
movs r0, 0x88
|
|
lsls r0, 1
|
|
movs r1, 0x2E
|
|
bl sub_817B834
|
|
_08176C2C:
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
strh r2, [r4, 0x14]
|
|
lsls r0, r2, 4
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r5, r0, r5
|
|
ldr r1, =sub_8176F90
|
|
str r1, [r5]
|
|
adds r0, r6
|
|
ldr r1, =gUnknown_085E7010
|
|
str r1, [r0]
|
|
ldr r1, =gUnknown_030022C0
|
|
movs r0, 0x87
|
|
lsls r0, 3
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
b _08176C96
|
|
.pool
|
|
_08176C80:
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_817664C
|
|
adds r0, r4, 0
|
|
bl sub_817B3A8
|
|
movs r0, 0
|
|
strb r0, [r6]
|
|
movs r0, 0x1
|
|
b _08176C98
|
|
_08176C96:
|
|
movs r0, 0
|
|
_08176C98:
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8176AB0
|
|
|
|
thumb_func_start sub_8176CA0
|
|
sub_8176CA0: @ 8176CA0
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, =gTasks
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r4, r1, r2
|
|
ldrh r1, [r4, 0x8]
|
|
movs r2, 0x8
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0
|
|
beq _08176CC6
|
|
lsls r0, r1, 24
|
|
lsrs r0, 24
|
|
bl DestroyTask
|
|
movs r0, 0
|
|
strh r0, [r4, 0x8]
|
|
_08176CC6:
|
|
ldrh r1, [r4, 0xA]
|
|
movs r2, 0xA
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0
|
|
beq _08176CDC
|
|
lsls r0, r1, 24
|
|
lsrs r0, 24
|
|
bl DestroyTask
|
|
movs r0, 0
|
|
strh r0, [r4, 0xA]
|
|
_08176CDC:
|
|
ldrh r1, [r4, 0xC]
|
|
movs r2, 0xC
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0
|
|
beq _08176CF2
|
|
lsls r0, r1, 24
|
|
lsrs r0, 24
|
|
bl DestroyTask
|
|
movs r0, 0
|
|
strh r0, [r4, 0xC]
|
|
_08176CF2:
|
|
ldrh r1, [r4, 0xE]
|
|
movs r2, 0xE
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0
|
|
beq _08176D08
|
|
lsls r0, r1, 24
|
|
lsrs r0, 24
|
|
bl DestroyTask
|
|
movs r0, 0
|
|
strh r0, [r4, 0xE]
|
|
_08176D08:
|
|
ldr r1, =gUnknown_0203BD28
|
|
movs r0, 0x1
|
|
strh r0, [r1]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8176CA0
|
|
|
|
thumb_func_start sub_8176D1C
|
|
sub_8176D1C: @ 8176D1C
|
|
push {r4-r7,lr}
|
|
adds r3, r0, 0
|
|
adds r4, r2, 0
|
|
lsls r3, 16
|
|
lsrs r3, 16
|
|
lsls r1, 16
|
|
lsrs r7, r1, 16
|
|
lsls r4, 16
|
|
lsrs r5, r4, 16
|
|
ldr r0, =gUnknown_085E5770
|
|
movs r6, 0xC0
|
|
lsls r6, 19
|
|
adds r3, r6
|
|
adds r1, r3, 0
|
|
bl LZ77UnCompVram
|
|
ldr r0, =gIntroCopyright_Pal
|
|
adds r1, r5, 0
|
|
movs r2, 0x20
|
|
bl gpu_pal_apply
|
|
lsrs r4, 20
|
|
lsls r4, 28
|
|
lsrs r4, 16
|
|
movs r1, 0
|
|
adds r4, 0x1
|
|
ldr r2, =0x000003ff
|
|
_08176D52:
|
|
lsls r0, r1, 1
|
|
adds r0, r7
|
|
adds r0, r6
|
|
strh r4, [r0]
|
|
adds r0, r1, 0x1
|
|
lsls r0, 16
|
|
lsrs r1, r0, 16
|
|
cmp r1, r2
|
|
bls _08176D52
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8176D1C
|
|
|
|
thumb_func_start sub_8176D78
|
|
sub_8176D78: @ 8176D78
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
adds r3, r2, 0
|
|
movs r0, 0x3F
|
|
ands r0, r2
|
|
adds r1, r0, 0
|
|
adds r1, 0x50
|
|
cmp r2, 0xFF
|
|
bne _08176D90
|
|
movs r0, 0x1
|
|
b _08176DB6
|
|
_08176D90:
|
|
movs r0, 0x80
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _08176DA0
|
|
movs r2, 0x80
|
|
lsls r2, 4
|
|
adds r0, r2, 0
|
|
orrs r1, r0
|
|
_08176DA0:
|
|
movs r0, 0x40
|
|
ands r3, r0
|
|
cmp r3, 0
|
|
beq _08176DB4
|
|
movs r2, 0x80
|
|
lsls r2, 3
|
|
adds r0, r2, 0
|
|
orrs r1, r0
|
|
lsls r0, r1, 16
|
|
lsrs r1, r0, 16
|
|
_08176DB4:
|
|
adds r0, r1, 0
|
|
_08176DB6:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8176D78
|
|
|
|
thumb_func_start sub_8176DBC
|
|
sub_8176DBC: @ 8176DBC
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0xC
|
|
str r0, [sp]
|
|
ldr r0, [sp, 0x2C]
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
mov r10, r1
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
str r2, [sp, 0x4]
|
|
lsls r3, 16
|
|
lsrs r3, 16
|
|
str r3, [sp, 0x8]
|
|
lsls r0, 16
|
|
lsrs r0, 20
|
|
lsls r0, 28
|
|
lsrs r0, 16
|
|
mov r9, r0
|
|
movs r5, 0
|
|
_08176DEA:
|
|
movs r4, 0
|
|
lsls r7, r5, 1
|
|
ldr r1, [sp, 0x4]
|
|
adds r0, r1, r5
|
|
adds r2, r5, 0x1
|
|
mov r8, r2
|
|
lsls r0, 6
|
|
ldr r1, [sp, 0x8]
|
|
adds r6, r0, r1
|
|
_08176DFC:
|
|
adds r0, r7, r5
|
|
adds r0, r4
|
|
ldr r2, [sp]
|
|
adds r0, r2, r0
|
|
ldrb r0, [r0]
|
|
bl sub_8176D78
|
|
mov r2, r10
|
|
adds r1, r2, r4
|
|
lsls r1, 1
|
|
adds r1, r6
|
|
movs r2, 0xC0
|
|
lsls r2, 19
|
|
adds r1, r2
|
|
add r0, r9
|
|
strh r0, [r1]
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0x2
|
|
bls _08176DFC
|
|
mov r1, r8
|
|
lsls r0, r1, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0x4
|
|
bls _08176DEA
|
|
add sp, 0xC
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8176DBC
|
|
|
|
thumb_func_start sub_8176E40
|
|
sub_8176E40: @ 8176E40
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
lsls r1, 16
|
|
lsrs r6, r1, 16
|
|
lsrs r1, 20
|
|
lsls r1, 28
|
|
lsrs r1, 16
|
|
movs r2, 0
|
|
ldr r7, =gUnknown_085E5BAC
|
|
movs r4, 0xC0
|
|
lsls r4, 19
|
|
adds r1, 0x1
|
|
ldr r3, =0x000003ff
|
|
_08176E5E:
|
|
lsls r0, r2, 1
|
|
adds r0, r5
|
|
adds r0, r4
|
|
strh r1, [r0]
|
|
adds r0, r2, 0x1
|
|
lsls r0, 16
|
|
lsrs r2, r0, 16
|
|
cmp r2, r3
|
|
bls _08176E5E
|
|
str r6, [sp]
|
|
adds r0, r7, 0
|
|
movs r1, 0x3
|
|
movs r2, 0x7
|
|
adds r3, r5, 0
|
|
bl sub_8176DBC
|
|
ldr r0, =gUnknown_085E5BBB
|
|
str r6, [sp]
|
|
movs r1, 0x7
|
|
movs r2, 0x7
|
|
adds r3, r5, 0
|
|
bl sub_8176DBC
|
|
ldr r4, =gUnknown_085E5BCA
|
|
str r6, [sp]
|
|
adds r0, r4, 0
|
|
movs r1, 0xB
|
|
movs r2, 0x7
|
|
adds r3, r5, 0
|
|
bl sub_8176DBC
|
|
str r6, [sp]
|
|
adds r0, r4, 0
|
|
movs r1, 0x10
|
|
movs r2, 0x7
|
|
adds r3, r5, 0
|
|
bl sub_8176DBC
|
|
ldr r0, =gUnknown_085E5BD9
|
|
str r6, [sp]
|
|
movs r1, 0x14
|
|
movs r2, 0x7
|
|
adds r3, r5, 0
|
|
bl sub_8176DBC
|
|
ldr r0, =gUnknown_085E5BE8
|
|
str r6, [sp]
|
|
movs r1, 0x18
|
|
movs r2, 0x7
|
|
adds r3, r5, 0
|
|
bl sub_8176DBC
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8176E40
|
|
|
|
thumb_func_start sub_8176EE8
|
|
sub_8176EE8: @ 8176EE8
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldr r0, =gUnknown_0203BD28
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0
|
|
beq _08176F04
|
|
adds r0, r4, 0
|
|
bl RemoveObjectAndFreeTiles
|
|
b _08176F88
|
|
.pool
|
|
_08176F04:
|
|
movs r2, 0x2E
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0x5
|
|
bhi _08176F88
|
|
lsls r0, 2
|
|
ldr r1, =_08176F1C
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_08176F1C:
|
|
.4byte _08176F34
|
|
.4byte _08176F3E
|
|
.4byte _08176F44
|
|
.4byte _08176F4E
|
|
.4byte _08176F58
|
|
.4byte _08176F6E
|
|
_08176F34:
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl StartObjectImageAnimIfDifferent
|
|
b _08176F88
|
|
_08176F3E:
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
b _08176F72
|
|
_08176F44:
|
|
adds r0, r4, 0
|
|
movs r1, 0x2
|
|
bl StartObjectImageAnimIfDifferent
|
|
b _08176F88
|
|
_08176F4E:
|
|
adds r0, r4, 0
|
|
movs r1, 0x3
|
|
bl StartObjectImageAnimIfDifferent
|
|
b _08176F88
|
|
_08176F58:
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl StartObjectImageAnimIfDifferent
|
|
ldrh r1, [r4, 0x20]
|
|
movs r2, 0x20
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0x78
|
|
ble _08176F88
|
|
subs r0, r1, 0x1
|
|
b _08176F86
|
|
_08176F6E:
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
_08176F72:
|
|
bl StartObjectImageAnimIfDifferent
|
|
ldrh r2, [r4, 0x20]
|
|
movs r0, 0x20
|
|
ldrsh r1, [r4, r0]
|
|
movs r0, 0x20
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
ble _08176F88
|
|
subs r0, r2, 0x1
|
|
_08176F86:
|
|
strh r0, [r4, 0x20]
|
|
_08176F88:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8176EE8
|
|
|
|
thumb_func_start sub_8176F90
|
|
sub_8176F90: @ 8176F90
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldr r0, =gUnknown_0203BD28
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0
|
|
beq _08176FAC
|
|
adds r0, r4, 0
|
|
bl RemoveObjectAndFreeTiles
|
|
b _08177048
|
|
.pool
|
|
_08176FAC:
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x1
|
|
beq _08176FD4
|
|
cmp r0, 0x1
|
|
bgt _08176FBE
|
|
cmp r0, 0
|
|
beq _08176FC8
|
|
b _08177048
|
|
_08176FBE:
|
|
cmp r0, 0x2
|
|
beq _08177010
|
|
cmp r0, 0x3
|
|
beq _0817702E
|
|
b _08177048
|
|
_08176FC8:
|
|
strh r0, [r4, 0x26]
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl StartObjectImageAnimIfDifferent
|
|
b _08177048
|
|
_08176FD4:
|
|
movs r1, 0x20
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0xC8
|
|
ble _08176FE6
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl StartObjectImageAnimIfDifferent
|
|
b _08176FEE
|
|
_08176FE6:
|
|
adds r0, r4, 0
|
|
movs r1, 0x2
|
|
bl StartObjectImageAnimIfDifferent
|
|
_08176FEE:
|
|
ldrh r2, [r4, 0x20]
|
|
movs r0, 0x20
|
|
ldrsh r1, [r4, r0]
|
|
movs r0, 0x20
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
ble _08177000
|
|
subs r0, r2, 0x2
|
|
strh r0, [r4, 0x20]
|
|
_08177000:
|
|
ldr r0, =gUnknown_0203BD26
|
|
ldrh r0, [r0]
|
|
negs r0, r0
|
|
strh r0, [r4, 0x26]
|
|
b _08177048
|
|
.pool
|
|
_08177010:
|
|
ldrh r0, [r4, 0x3C]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x3C]
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl StartObjectImageAnimIfDifferent
|
|
ldrh r1, [r4, 0x3C]
|
|
movs r0, 0x3
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08177048
|
|
ldrh r0, [r4, 0x20]
|
|
adds r0, 0x1
|
|
b _08177046
|
|
_0817702E:
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl StartObjectImageAnimIfDifferent
|
|
ldrh r2, [r4, 0x20]
|
|
movs r0, 0x20
|
|
ldrsh r1, [r4, r0]
|
|
movs r0, 0x20
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
ble _08177048
|
|
subs r0, r2, 0x1
|
|
_08177046:
|
|
strh r0, [r4, 0x20]
|
|
_08177048:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8176F90
|
|
|
|
thumb_func_start sub_8177050
|
|
sub_8177050: @ 8177050
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
ldr r0, =gUnknown_0203BD28
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0
|
|
beq _0817706C
|
|
ldrh r0, [r5, 0x3A]
|
|
bl sub_818D820
|
|
b _0817721C
|
|
.pool
|
|
_0817706C:
|
|
ldrh r0, [r5, 0x3C]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x3C]
|
|
movs r2, 0x2E
|
|
ldrsh r0, [r5, r2]
|
|
cmp r0, 0xA
|
|
bhi _081770B4
|
|
lsls r0, 2
|
|
ldr r1, =_08177088
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_08177088:
|
|
.4byte _081770B4
|
|
.4byte _0817710E
|
|
.4byte _08177190
|
|
.4byte _081771C6
|
|
.4byte _081770B4
|
|
.4byte _081770B4
|
|
.4byte _081770B4
|
|
.4byte _081770B4
|
|
.4byte _081770B4
|
|
.4byte _081771FE
|
|
.4byte _08177206
|
|
_081770B4:
|
|
ldrb r1, [r5, 0x1]
|
|
movs r0, 0x4
|
|
negs r0, r0
|
|
ands r0, r1
|
|
movs r1, 0x1
|
|
orrs r0, r1
|
|
strb r0, [r5, 0x1]
|
|
movs r0, 0x30
|
|
ldrsh r1, [r5, r0]
|
|
movs r0, 0x1F
|
|
ands r1, r0
|
|
lsls r1, 1
|
|
ldrb r2, [r5, 0x3]
|
|
movs r0, 0x3F
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r5, 0x3]
|
|
movs r0, 0x10
|
|
strh r0, [r5, 0x32]
|
|
ldrh r4, [r5, 0x30]
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
movs r0, 0x80
|
|
lsls r0, 9
|
|
movs r1, 0x10
|
|
bl __divsi3
|
|
adds r1, r0, 0
|
|
str r1, [sp]
|
|
adds r0, r4, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl SetSpriteTransformationMatrix
|
|
adds r2, r5, 0
|
|
adds r2, 0x3E
|
|
ldrb r1, [r2]
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
movs r0, 0x1
|
|
strh r0, [r5, 0x2E]
|
|
b _0817721C
|
|
_0817710E:
|
|
ldrh r1, [r5, 0x32]
|
|
movs r2, 0x32
|
|
ldrsh r0, [r5, r2]
|
|
cmp r0, 0xFF
|
|
bgt _08177144
|
|
adds r0, r1, 0
|
|
adds r0, 0x8
|
|
strh r0, [r5, 0x32]
|
|
ldrh r4, [r5, 0x30]
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
movs r0, 0x32
|
|
ldrsh r1, [r5, r0]
|
|
movs r0, 0x80
|
|
lsls r0, 9
|
|
bl __divsi3
|
|
adds r1, r0, 0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
str r1, [sp]
|
|
adds r0, r4, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl SetSpriteTransformationMatrix
|
|
b _0817714A
|
|
_08177144:
|
|
ldrh r0, [r5, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x2E]
|
|
_0817714A:
|
|
movs r2, 0x30
|
|
ldrsh r1, [r5, r2]
|
|
cmp r1, 0x2
|
|
beq _0817721C
|
|
cmp r1, 0x2
|
|
bgt _0817715C
|
|
cmp r1, 0x1
|
|
beq _08177162
|
|
b _0817721C
|
|
_0817715C:
|
|
cmp r1, 0x3
|
|
beq _0817717A
|
|
b _0817721C
|
|
_08177162:
|
|
ldrh r1, [r5, 0x3C]
|
|
movs r0, 0x3
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08177172
|
|
ldrh r0, [r5, 0x22]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x22]
|
|
_08177172:
|
|
ldrh r0, [r5, 0x20]
|
|
subs r0, 0x2
|
|
strh r0, [r5, 0x20]
|
|
b _0817721C
|
|
_0817717A:
|
|
ldrh r0, [r5, 0x3C]
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
bne _08177188
|
|
ldrh r0, [r5, 0x22]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x22]
|
|
_08177188:
|
|
ldrh r0, [r5, 0x20]
|
|
adds r0, 0x2
|
|
strh r0, [r5, 0x20]
|
|
b _0817721C
|
|
_08177190:
|
|
ldrh r1, [r5, 0x34]
|
|
movs r2, 0x34
|
|
ldrsh r0, [r5, r2]
|
|
cmp r0, 0
|
|
beq _081771A0
|
|
subs r0, r1, 0x1
|
|
strh r0, [r5, 0x34]
|
|
b _0817721C
|
|
_081771A0:
|
|
movs r1, 0xF4
|
|
lsls r1, 4
|
|
movs r0, 0x50
|
|
bl SetGpuReg
|
|
movs r0, 0x52
|
|
movs r1, 0x10
|
|
bl SetGpuReg
|
|
ldrb r1, [r5, 0x1]
|
|
movs r0, 0xD
|
|
negs r0, r0
|
|
ands r0, r1
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
strb r0, [r5, 0x1]
|
|
movs r0, 0x10
|
|
strh r0, [r5, 0x34]
|
|
b _081771FE
|
|
_081771C6:
|
|
ldrh r1, [r5, 0x34]
|
|
movs r2, 0x34
|
|
ldrsh r0, [r5, r2]
|
|
cmp r0, 0
|
|
beq _081771EC
|
|
subs r1, 0x1
|
|
strh r1, [r5, 0x34]
|
|
movs r0, 0x34
|
|
ldrsh r2, [r5, r0]
|
|
movs r0, 0x10
|
|
subs r0, r2
|
|
lsls r0, 8
|
|
adds r1, r0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
b _0817721C
|
|
_081771EC:
|
|
adds r2, r5, 0
|
|
adds r2, 0x3E
|
|
ldrb r0, [r2]
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
movs r0, 0x9
|
|
strh r0, [r5, 0x2E]
|
|
b _0817721C
|
|
_081771FE:
|
|
ldrh r0, [r5, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x2E]
|
|
b _0817721C
|
|
_08177206:
|
|
movs r0, 0x50
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x52
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
ldrh r0, [r5, 0x3A]
|
|
bl sub_818D820
|
|
_0817721C:
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8177050
|
|
|
|
thumb_func_start sub_8177224
|
|
sub_8177224: @ 8177224
|
|
push {r4-r7,lr}
|
|
adds r5, r3, 0
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
lsls r5, 16
|
|
lsrs r5, 16
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
lsls r2, 16
|
|
asrs r2, 16
|
|
adds r3, r5, 0
|
|
bl sub_80C0E9C
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
ldr r6, =gUnknown_02020630
|
|
lsls r1, r4, 4
|
|
adds r1, r4
|
|
lsls r1, 2
|
|
adds r2, r1, r6
|
|
ldrb r3, [r2, 0x5]
|
|
movs r0, 0xD
|
|
negs r0, r0
|
|
ands r0, r3
|
|
movs r3, 0x4
|
|
orrs r0, r3
|
|
strb r0, [r2, 0x5]
|
|
adds r0, r5, 0x1
|
|
strh r0, [r2, 0x30]
|
|
movs r0, 0x3E
|
|
adds r0, r2
|
|
mov r12, r0
|
|
ldrb r0, [r0]
|
|
orrs r0, r3
|
|
mov r3, r12
|
|
strb r0, [r3]
|
|
adds r0, r6, 0
|
|
adds r0, 0x1C
|
|
adds r1, r0
|
|
ldr r0, =sub_8177050
|
|
str r0, [r1]
|
|
strh r4, [r2, 0x3A]
|
|
ldr r0, =gUnknown_085E7068
|
|
movs r7, 0x20
|
|
ldrsh r1, [r2, r7]
|
|
movs r3, 0x22
|
|
ldrsh r2, [r2, r3]
|
|
movs r3, 0x1
|
|
bl AddObjectToFront
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
strh r4, [r0, 0x2E]
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
adds r1, r5, 0
|
|
bl StartObjectImageAnimIfDifferent
|
|
adds r0, r4, 0
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.pool
|
|
thumb_func_end sub_8177224
|
|
|
|
thumb_func_start sub_81772B8
|
|
sub_81772B8: @ 81772B8
|
|
push {r4,lr}
|
|
adds r3, r0, 0
|
|
ldr r4, =gUnknown_02020630
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r3, r1]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r4
|
|
movs r2, 0x2E
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, 0xA
|
|
beq _081772DC
|
|
ldr r0, =gUnknown_0203BD28
|
|
movs r2, 0
|
|
ldrsh r0, [r0, r2]
|
|
cmp r0, 0
|
|
beq _081772EC
|
|
_081772DC:
|
|
adds r0, r3, 0
|
|
bl RemoveObjectAndFreeTiles
|
|
b _08177380
|
|
.pool
|
|
_081772EC:
|
|
adds r0, r1, 0
|
|
adds r0, 0x3E
|
|
ldrb r0, [r0]
|
|
movs r1, 0x3E
|
|
adds r1, r3
|
|
mov r12, r1
|
|
movs r1, 0x4
|
|
ands r1, r0
|
|
mov r0, r12
|
|
ldrb r2, [r0]
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
mov r1, r12
|
|
strb r0, [r1]
|
|
movs r2, 0x2E
|
|
ldrsh r1, [r3, r2]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldrb r1, [r0, 0x1]
|
|
movs r0, 0xC
|
|
ands r0, r1
|
|
ldrb r2, [r3, 0x1]
|
|
movs r1, 0xD
|
|
negs r1, r1
|
|
ands r1, r2
|
|
orrs r1, r0
|
|
strb r1, [r3, 0x1]
|
|
movs r0, 0x2E
|
|
ldrsh r2, [r3, r0]
|
|
lsls r0, r2, 4
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldrb r0, [r0, 0x1]
|
|
lsls r0, 30
|
|
lsrs r0, 30
|
|
movs r2, 0x4
|
|
negs r2, r2
|
|
ands r1, r2
|
|
orrs r1, r0
|
|
strb r1, [r3, 0x1]
|
|
movs r2, 0x2E
|
|
ldrsh r1, [r3, r2]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldrb r0, [r0, 0x3]
|
|
movs r1, 0x3E
|
|
ands r1, r0
|
|
ldrb r2, [r3, 0x3]
|
|
movs r0, 0x3F
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r3, 0x3]
|
|
movs r0, 0x2E
|
|
ldrsh r1, [r3, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldrh r0, [r0, 0x20]
|
|
strh r0, [r3, 0x20]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldrh r0, [r0, 0x22]
|
|
strh r0, [r3, 0x22]
|
|
_08177380:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_81772B8
|
|
|
|
thumb_func_start sub_8177388
|
|
sub_8177388: @ 8177388
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
ldr r0, =0x00004023
|
|
bl VarGet
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
bl sub_8133EDC
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
bl SpeciesToNationalPokedexNum
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
mov r10, r0
|
|
movs r4, 0x1
|
|
movs r6, 0
|
|
ldr r5, =0x00000181
|
|
_081773B4:
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl pokedex_flag_operation
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _081773D4
|
|
ldr r0, =gUnknown_0203BCE8
|
|
ldr r0, [r0]
|
|
lsls r1, r6, 1
|
|
adds r0, 0x96
|
|
adds r0, r1
|
|
strh r4, [r0]
|
|
adds r0, r6, 0x1
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
_081773D4:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
cmp r4, r5
|
|
bls _081773B4
|
|
adds r4, r6, 0
|
|
ldr r0, =0x00000181
|
|
ldr r1, =gUnknown_0203BCE8
|
|
mov r8, r1
|
|
lsls r7, r4, 16
|
|
cmp r4, r0
|
|
bhi _08177406
|
|
mov r5, r8
|
|
movs r3, 0
|
|
adds r2, r0, 0
|
|
_081773F2:
|
|
ldr r0, [r5]
|
|
lsls r1, r4, 1
|
|
adds r0, 0x96
|
|
adds r0, r1
|
|
strh r3, [r0]
|
|
adds r0, r4, 0x1
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
cmp r4, r2
|
|
bls _081773F2
|
|
_08177406:
|
|
mov r2, r8
|
|
ldr r1, [r2]
|
|
ldr r2, =0x0000039a
|
|
adds r0, r1, r2
|
|
strh r6, [r0]
|
|
lsrs r0, r7, 16
|
|
cmp r0, 0x46
|
|
bhi _08177430
|
|
adds r0, r1, 0
|
|
adds r0, 0x94
|
|
strh r6, [r0]
|
|
b _08177436
|
|
.pool
|
|
_08177430:
|
|
adds r1, 0x94
|
|
movs r0, 0x47
|
|
strh r0, [r1]
|
|
_08177436:
|
|
movs r6, 0
|
|
ldr r0, =gUnknown_0203BCE8
|
|
mov r9, r0
|
|
ldr r1, =0x0000039a
|
|
mov r8, r1
|
|
movs r7, 0
|
|
b _08177450
|
|
.pool
|
|
_0817744C:
|
|
cmp r6, 0x46
|
|
bhi _081774AC
|
|
_08177450:
|
|
bl GenerateRandomNumber
|
|
mov r2, r9
|
|
ldr r4, [r2]
|
|
mov r1, r8
|
|
adds r5, r4, r1
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldrh r1, [r5]
|
|
bl __umodsi3
|
|
lsls r0, 16
|
|
lsrs r3, r0, 16
|
|
lsls r1, r6, 1
|
|
adds r1, r4, r1
|
|
lsls r0, r3, 1
|
|
adds r4, 0x96
|
|
adds r2, r4, r0
|
|
ldrh r0, [r2]
|
|
strh r0, [r1]
|
|
adds r0, r6, 0x1
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
strh r7, [r2]
|
|
ldrh r0, [r5]
|
|
subs r0, 0x1
|
|
strh r0, [r5]
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r3, r0
|
|
beq _081774A0
|
|
ldrh r0, [r5]
|
|
lsls r0, 1
|
|
adds r0, r4, r0
|
|
ldrh r0, [r0]
|
|
strh r0, [r2]
|
|
ldrh r0, [r5]
|
|
lsls r0, 1
|
|
adds r0, r4, r0
|
|
strh r7, [r0]
|
|
_081774A0:
|
|
mov r2, r9
|
|
ldr r0, [r2]
|
|
add r0, r8
|
|
ldrh r0, [r0]
|
|
cmp r0, 0
|
|
bne _0817744C
|
|
_081774AC:
|
|
ldr r1, =gUnknown_0203BCE8
|
|
ldr r2, [r1]
|
|
adds r3, r2, 0
|
|
adds r3, 0x94
|
|
ldrh r0, [r3]
|
|
mov r8, r1
|
|
cmp r0, 0x46
|
|
bhi _081774F8
|
|
adds r6, r0, 0
|
|
movs r3, 0
|
|
cmp r6, 0x46
|
|
bhi _081774EE
|
|
mov r4, r8
|
|
_081774C6:
|
|
ldr r2, [r4]
|
|
lsls r1, r6, 1
|
|
adds r1, r2, r1
|
|
lsls r0, r3, 1
|
|
adds r0, r2, r0
|
|
ldrh r0, [r0]
|
|
strh r0, [r1]
|
|
adds r0, r3, 0x1
|
|
lsls r0, 16
|
|
lsrs r3, r0, 16
|
|
adds r2, 0x94
|
|
ldrh r2, [r2]
|
|
cmp r3, r2
|
|
bne _081774E4
|
|
movs r3, 0
|
|
_081774E4:
|
|
adds r0, r6, 0x1
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
cmp r6, 0x46
|
|
bls _081774C6
|
|
_081774EE:
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
b _08177538
|
|
.pool
|
|
_081774F8:
|
|
movs r4, 0
|
|
ldrh r0, [r2]
|
|
cmp r0, r10
|
|
beq _08177516
|
|
adds r1, r2, 0
|
|
_08177502:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
lsls r0, r4, 1
|
|
adds r0, r1, r0
|
|
ldrh r0, [r0]
|
|
cmp r0, r10
|
|
beq _08177516
|
|
cmp r4, 0x46
|
|
bls _08177502
|
|
_08177516:
|
|
mov r0, r8
|
|
ldr r2, [r0]
|
|
adds r0, r2, 0
|
|
adds r0, 0x94
|
|
ldrh r0, [r0]
|
|
subs r0, 0x1
|
|
cmp r4, r0
|
|
bge _08177536
|
|
lsls r0, r4, 1
|
|
adds r0, r2, r0
|
|
adds r2, 0x8C
|
|
ldrh r1, [r2]
|
|
strh r1, [r0]
|
|
mov r1, r10
|
|
strh r1, [r2]
|
|
b _0817753E
|
|
_08177536:
|
|
adds r0, r2, 0
|
|
_08177538:
|
|
adds r0, 0x8C
|
|
mov r2, r10
|
|
strh r2, [r0]
|
|
_0817753E:
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
adds r0, 0x94
|
|
movs r1, 0x47
|
|
strh r1, [r0]
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8177388
|
|
|
|
.align 2, 0 @ Don't pad with nop.
|