mirror of
https://github.com/zeldaret/tmc
synced 2026-09-02 18:12:46 -04:00
Merge branch 'master' into tilemap-docs
This commit is contained in:
@@ -462,7 +462,7 @@
|
||||
.2byte \s
|
||||
.endm
|
||||
|
||||
.macro _0807E9F0
|
||||
.macro UpdateFusion
|
||||
.2byte 0x0456
|
||||
.endm
|
||||
|
||||
|
||||
@@ -1,131 +0,0 @@
|
||||
.syntax unified
|
||||
ldr r3, _08016DF0 @ =gScreen
|
||||
ldrh r1, [r3]
|
||||
ldrh r0, [r3, #6]
|
||||
ands r0, r1
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #0x13
|
||||
strh r0, [r1]
|
||||
adds r1, #8
|
||||
ldrh r0, [r3, #8]
|
||||
strh r0, [r1]
|
||||
adds r1, #2
|
||||
ldrh r0, [r3, #0x14]
|
||||
strh r0, [r1]
|
||||
adds r1, #2
|
||||
ldrh r0, [r3, #0x20]
|
||||
strh r0, [r1]
|
||||
adds r1, #2
|
||||
ldrh r0, [r3, #0x2c]
|
||||
strh r0, [r1]
|
||||
adds r1, #2
|
||||
ldrh r0, [r3, #0xa]
|
||||
strh r0, [r1]
|
||||
adds r1, #2
|
||||
ldrh r0, [r3, #0xc]
|
||||
strh r0, [r1]
|
||||
adds r1, #2
|
||||
ldrh r0, [r3, #0x16]
|
||||
strh r0, [r1]
|
||||
adds r1, #2
|
||||
ldrh r0, [r3, #0x18]
|
||||
strh r0, [r1]
|
||||
adds r1, #2
|
||||
ldrh r0, [r3, #0x22]
|
||||
strh r0, [r1]
|
||||
adds r1, #2
|
||||
ldrh r0, [r3, #0x24]
|
||||
strh r0, [r1]
|
||||
adds r1, #2
|
||||
ldrh r0, [r3, #0x2e]
|
||||
strh r0, [r1]
|
||||
adds r1, #2
|
||||
ldrh r0, [r3, #0x30]
|
||||
strh r0, [r1]
|
||||
adds r1, r3, #0
|
||||
adds r1, #0x38
|
||||
ldr r2, _08016DF4 @ =0x04000020
|
||||
ldrh r0, [r3, #0x38]
|
||||
strh r0, [r2]
|
||||
adds r2, #2
|
||||
ldrh r0, [r1, #2]
|
||||
strh r0, [r2]
|
||||
adds r2, #2
|
||||
ldrh r0, [r1, #4]
|
||||
strh r0, [r2]
|
||||
adds r2, #2
|
||||
ldrh r0, [r1, #6]
|
||||
strh r0, [r2]
|
||||
adds r2, #2
|
||||
ldrh r0, [r1, #8]
|
||||
strh r0, [r2]
|
||||
adds r2, #2
|
||||
ldrh r0, [r1, #0xa]
|
||||
strh r0, [r2]
|
||||
adds r2, #2
|
||||
ldrh r0, [r1, #0xc]
|
||||
strh r0, [r2]
|
||||
adds r2, #2
|
||||
ldrh r0, [r1, #0xe]
|
||||
strh r0, [r2]
|
||||
adds r1, #0x10
|
||||
adds r2, #2
|
||||
ldrh r0, [r1]
|
||||
strh r0, [r2]
|
||||
adds r2, #2
|
||||
ldrh r0, [r1, #2]
|
||||
strh r0, [r2]
|
||||
adds r2, #2
|
||||
ldrh r0, [r1, #4]
|
||||
strh r0, [r2]
|
||||
adds r2, #2
|
||||
ldrh r0, [r1, #6]
|
||||
strh r0, [r2]
|
||||
adds r2, #2
|
||||
ldrh r0, [r1, #8]
|
||||
strh r0, [r2]
|
||||
adds r2, #2
|
||||
ldrh r0, [r1, #0xa]
|
||||
strh r0, [r2]
|
||||
adds r2, #2
|
||||
ldrh r0, [r1, #0xc]
|
||||
strh r0, [r2]
|
||||
adds r2, #2
|
||||
ldrh r0, [r1, #0xe]
|
||||
strh r0, [r2]
|
||||
adds r1, #0x10
|
||||
adds r2, #2
|
||||
ldrh r0, [r1]
|
||||
strh r0, [r2]
|
||||
adds r2, #2
|
||||
ldrh r0, [r1, #2]
|
||||
strh r0, [r2]
|
||||
adds r2, #2
|
||||
ldrh r0, [r1, #4]
|
||||
strh r0, [r2]
|
||||
adds r2, #2
|
||||
ldrh r0, [r1, #6]
|
||||
strh r0, [r2]
|
||||
adds r2, #2
|
||||
ldrh r0, [r1, #8]
|
||||
strh r0, [r2]
|
||||
adds r2, #2
|
||||
ldrh r0, [r1, #0xa]
|
||||
strh r0, [r2]
|
||||
adds r2, #2
|
||||
ldrh r0, [r1, #0xc]
|
||||
strh r0, [r2]
|
||||
adds r2, #4
|
||||
ldrh r0, [r1, #0xe]
|
||||
strh r0, [r2]
|
||||
adds r2, #2
|
||||
ldrh r0, [r1, #0x10]
|
||||
strh r0, [r2]
|
||||
adds r2, #2
|
||||
ldrh r0, [r1, #0x12]
|
||||
strh r0, [r2]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_08016DF0: .4byte gScreen
|
||||
_08016DF4: .4byte 0x04000020
|
||||
.syntax divided
|
||||
@@ -1,454 +0,0 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sl
|
||||
mov r6, sb
|
||||
mov r5, r8
|
||||
push {r5, r6, r7}
|
||||
adds r6, r0, #0
|
||||
mov sl, r1
|
||||
cmp r6, #0
|
||||
bne _0801A58C
|
||||
ldr r0, _0801A588 @ =0x0000FFFF
|
||||
b _0801A8C2
|
||||
.align 2, 0
|
||||
_0801A588: .4byte 0x0000FFFF
|
||||
_0801A58C:
|
||||
adds r4, r6, #0
|
||||
adds r4, #0x38
|
||||
ldrb r0, [r4]
|
||||
bl GetLayerByIndex
|
||||
mov r8, r0
|
||||
ldr r0, _0801A668 @ =0x00005004
|
||||
add r0, r8
|
||||
mov ip, r0
|
||||
movs r5, #4
|
||||
movs r7, #2
|
||||
ldrb r0, [r6, #0x14]
|
||||
lsrs r0, r0, #1
|
||||
mov sb, r4
|
||||
cmp r0, #1
|
||||
beq _0801A678
|
||||
cmp r0, #1
|
||||
ble _0801A5BC
|
||||
cmp r0, #2
|
||||
bne _0801A5B6
|
||||
b _0801A73C
|
||||
_0801A5B6:
|
||||
cmp r0, #3
|
||||
bne _0801A5BC
|
||||
b _0801A7FC
|
||||
_0801A5BC:
|
||||
movs r1, #0x2e
|
||||
ldrsh r0, [r6, r1]
|
||||
ldr r2, _0801A66C @ =gRoomControls
|
||||
ldrh r1, [r2, #6]
|
||||
subs r0, r0, r1
|
||||
asrs r4, r0, #4
|
||||
movs r3, #0x3f
|
||||
ands r4, r3
|
||||
movs r1, #0x32
|
||||
ldrsh r0, [r6, r1]
|
||||
ldrh r1, [r2, #8]
|
||||
adds r1, #0xa
|
||||
subs r0, r0, r1
|
||||
asrs r0, r0, #4
|
||||
ands r0, r3
|
||||
lsls r0, r0, #6
|
||||
orrs r4, r0
|
||||
mov r2, r8
|
||||
adds r2, #4
|
||||
movs r3, #0xdc
|
||||
lsls r3, r3, #2
|
||||
lsls r0, r4, #1
|
||||
adds r1, r0, r2
|
||||
_0801A5EA:
|
||||
ldrh r0, [r1]
|
||||
lsls r0, r0, #1
|
||||
add r0, ip
|
||||
ldrh r0, [r0]
|
||||
cmp r0, r3
|
||||
beq _0801A600
|
||||
subs r1, #2
|
||||
subs r4, #1
|
||||
subs r5, #1
|
||||
cmp r5, #0
|
||||
bne _0801A5EA
|
||||
_0801A600:
|
||||
subs r4, #0x40
|
||||
movs r3, #0xdd
|
||||
lsls r3, r3, #2
|
||||
lsls r0, r4, #1
|
||||
adds r1, r0, r2
|
||||
_0801A60A:
|
||||
ldrh r0, [r1]
|
||||
lsls r0, r0, #1
|
||||
add r0, ip
|
||||
ldrh r0, [r0]
|
||||
cmp r0, r3
|
||||
bne _0801A620
|
||||
adds r7, #1
|
||||
subs r1, #0x80
|
||||
subs r4, #0x40
|
||||
cmp r7, #3
|
||||
bls _0801A60A
|
||||
_0801A620:
|
||||
mov r2, sl
|
||||
cmp r2, #0
|
||||
bne _0801A628
|
||||
b _0801A8C0
|
||||
_0801A628:
|
||||
mov r0, sb
|
||||
ldrb r1, [r0]
|
||||
adds r0, r4, #0
|
||||
bl GetMetaTileType
|
||||
adds r5, r0, #0
|
||||
ldr r1, _0801A670 @ =0xFFFFFC97
|
||||
adds r0, r5, r1
|
||||
cmp r0, #1
|
||||
bls _0801A63E
|
||||
b _0801A8B4
|
||||
_0801A63E:
|
||||
ldr r2, _0801A674 @ =0x00001FC4
|
||||
adds r0, r4, r2
|
||||
mov r2, r8
|
||||
adds r1, r2, r0
|
||||
movs r5, #0
|
||||
cmp r5, r7
|
||||
blo _0801A64E
|
||||
b _0801A8B6
|
||||
_0801A64E:
|
||||
ldrb r0, [r1]
|
||||
cmp r0, #0
|
||||
beq _0801A656
|
||||
b _0801A8B4
|
||||
_0801A656:
|
||||
adds r5, #1
|
||||
cmp r5, r7
|
||||
blo _0801A65E
|
||||
b _0801A8B6
|
||||
_0801A65E:
|
||||
adds r0, r1, r5
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
beq _0801A656
|
||||
b _0801A8B4
|
||||
.align 2, 0
|
||||
_0801A668: .4byte 0x00005004
|
||||
_0801A66C: .4byte gRoomControls
|
||||
_0801A670: .4byte 0xFFFFFC97
|
||||
_0801A674: .4byte 0x00001FC4
|
||||
_0801A678:
|
||||
movs r0, #0x2e
|
||||
ldrsh r1, [r6, r0]
|
||||
ldr r3, _0801A730 @ =gRoomControls
|
||||
ldrh r0, [r3, #6]
|
||||
subs r0, #0xa
|
||||
subs r1, r1, r0
|
||||
asrs r4, r1, #4
|
||||
movs r2, #0x3f
|
||||
ands r4, r2
|
||||
movs r1, #0x32
|
||||
ldrsh r0, [r6, r1]
|
||||
ldrh r1, [r3, #8]
|
||||
subs r0, r0, r1
|
||||
asrs r0, r0, #4
|
||||
ands r0, r2
|
||||
lsls r0, r0, #6
|
||||
orrs r4, r0
|
||||
mov r2, r8
|
||||
adds r2, #4
|
||||
mov r3, ip
|
||||
movs r6, #0xdc
|
||||
lsls r6, r6, #2
|
||||
lsls r0, r4, #1
|
||||
adds r1, r0, r2
|
||||
_0801A6A8:
|
||||
ldrh r0, [r1]
|
||||
lsls r0, r0, #1
|
||||
adds r0, r3, r0
|
||||
ldrh r0, [r0]
|
||||
cmp r0, r6
|
||||
beq _0801A6BE
|
||||
adds r1, #0x80
|
||||
adds r4, #0x40
|
||||
subs r5, #1
|
||||
cmp r5, #0
|
||||
bne _0801A6A8
|
||||
_0801A6BE:
|
||||
subs r4, #0x40
|
||||
movs r3, #0xdd
|
||||
lsls r3, r3, #2
|
||||
lsls r0, r4, #1
|
||||
adds r1, r0, r2
|
||||
_0801A6C8:
|
||||
ldrh r0, [r1]
|
||||
lsls r0, r0, #1
|
||||
add r0, ip
|
||||
ldrh r0, [r0]
|
||||
cmp r0, r3
|
||||
bne _0801A6DE
|
||||
adds r7, #1
|
||||
subs r1, #0x80
|
||||
subs r4, #0x40
|
||||
cmp r7, #3
|
||||
bls _0801A6C8
|
||||
_0801A6DE:
|
||||
mov r2, sl
|
||||
cmp r2, #0
|
||||
bne _0801A6E6
|
||||
b _0801A8C0
|
||||
_0801A6E6:
|
||||
mov r0, sb
|
||||
ldrb r1, [r0]
|
||||
adds r0, r4, #0
|
||||
bl GetMetaTileType
|
||||
adds r5, r0, #0
|
||||
ldr r0, _0801A734 @ =0x00000369
|
||||
cmp r5, r0
|
||||
beq _0801A700
|
||||
adds r0, #4
|
||||
cmp r5, r0
|
||||
beq _0801A700
|
||||
b _0801A8B4
|
||||
_0801A700:
|
||||
adds r0, r4, r7
|
||||
ldr r1, _0801A738 @ =0x00002004
|
||||
adds r0, r0, r1
|
||||
mov r2, r8
|
||||
adds r1, r2, r0
|
||||
movs r5, #0
|
||||
cmp r5, r7
|
||||
blo _0801A712
|
||||
b _0801A8B6
|
||||
_0801A712:
|
||||
ldrb r0, [r1]
|
||||
cmp r0, #0
|
||||
beq _0801A71A
|
||||
b _0801A8B4
|
||||
_0801A71A:
|
||||
adds r5, #1
|
||||
cmp r5, r7
|
||||
blo _0801A722
|
||||
b _0801A8B6
|
||||
_0801A722:
|
||||
lsls r0, r5, #6
|
||||
adds r0, r0, r1
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
beq _0801A71A
|
||||
b _0801A8B4
|
||||
.align 2, 0
|
||||
_0801A730: .4byte gRoomControls
|
||||
_0801A734: .4byte 0x00000369
|
||||
_0801A738: .4byte 0x00002004
|
||||
_0801A73C:
|
||||
movs r1, #0x2e
|
||||
ldrsh r0, [r6, r1]
|
||||
ldr r2, _0801A7E8 @ =gRoomControls
|
||||
ldrh r1, [r2, #6]
|
||||
subs r0, r0, r1
|
||||
asrs r4, r0, #4
|
||||
movs r3, #0x3f
|
||||
ands r4, r3
|
||||
movs r1, #0x32
|
||||
ldrsh r0, [r6, r1]
|
||||
ldrh r1, [r2, #8]
|
||||
subs r1, #0xa
|
||||
subs r0, r0, r1
|
||||
asrs r0, r0, #4
|
||||
ands r0, r3
|
||||
lsls r0, r0, #6
|
||||
orrs r4, r0
|
||||
mov r2, r8
|
||||
adds r2, #4
|
||||
mov r3, ip
|
||||
ldr r6, _0801A7EC @ =0x0000036F
|
||||
lsls r0, r4, #1
|
||||
adds r1, r0, r2
|
||||
_0801A76A:
|
||||
ldrh r0, [r1]
|
||||
lsls r0, r0, #1
|
||||
adds r0, r3, r0
|
||||
ldrh r0, [r0]
|
||||
cmp r0, r6
|
||||
beq _0801A780
|
||||
adds r1, #2
|
||||
adds r4, #1
|
||||
subs r5, #1
|
||||
cmp r5, #0
|
||||
bne _0801A76A
|
||||
_0801A780:
|
||||
subs r4, #1
|
||||
ldr r3, _0801A7F0 @ =0x00000372
|
||||
lsls r0, r4, #1
|
||||
adds r1, r0, r2
|
||||
_0801A788:
|
||||
ldrh r0, [r1]
|
||||
lsls r0, r0, #1
|
||||
add r0, ip
|
||||
ldrh r0, [r0]
|
||||
cmp r0, r3
|
||||
bne _0801A79E
|
||||
adds r7, #1
|
||||
subs r1, #2
|
||||
subs r4, #1
|
||||
cmp r7, #3
|
||||
bls _0801A788
|
||||
_0801A79E:
|
||||
mov r2, sl
|
||||
cmp r2, #0
|
||||
bne _0801A7A6
|
||||
b _0801A8C0
|
||||
_0801A7A6:
|
||||
mov r0, sb
|
||||
ldrb r1, [r0]
|
||||
adds r0, r4, #0
|
||||
bl GetMetaTileType
|
||||
adds r5, r0, #0
|
||||
ldr r0, _0801A7F4 @ =0x00000369
|
||||
cmp r5, r0
|
||||
beq _0801A7BE
|
||||
adds r0, #2
|
||||
cmp r5, r0
|
||||
bne _0801A8B4
|
||||
_0801A7BE:
|
||||
lsls r0, r7, #6
|
||||
adds r0, r4, r0
|
||||
ldr r1, _0801A7F8 @ =0x00002004
|
||||
adds r0, r0, r1
|
||||
mov r2, r8
|
||||
adds r1, r2, r0
|
||||
movs r5, #0
|
||||
cmp r5, r7
|
||||
bhs _0801A8B6
|
||||
ldrb r0, [r1]
|
||||
cmp r0, #0
|
||||
bne _0801A8B4
|
||||
_0801A7D6:
|
||||
adds r5, #1
|
||||
cmp r5, r7
|
||||
bhs _0801A8B6
|
||||
adds r0, r1, r5
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
beq _0801A7D6
|
||||
b _0801A8B4
|
||||
.align 2, 0
|
||||
_0801A7E8: .4byte gRoomControls
|
||||
_0801A7EC: .4byte 0x0000036F
|
||||
_0801A7F0: .4byte 0x00000372
|
||||
_0801A7F4: .4byte 0x00000369
|
||||
_0801A7F8: .4byte 0x00002004
|
||||
_0801A7FC:
|
||||
movs r0, #0x2e
|
||||
ldrsh r1, [r6, r0]
|
||||
ldr r3, _0801A890 @ =gRoomControls
|
||||
ldrh r0, [r3, #6]
|
||||
adds r0, #0xa
|
||||
subs r1, r1, r0
|
||||
asrs r4, r1, #4
|
||||
movs r2, #0x3f
|
||||
ands r4, r2
|
||||
movs r1, #0x32
|
||||
ldrsh r0, [r6, r1]
|
||||
ldrh r1, [r3, #8]
|
||||
subs r0, r0, r1
|
||||
asrs r0, r0, #4
|
||||
ands r0, r2
|
||||
lsls r0, r0, #6
|
||||
orrs r4, r0
|
||||
mov r2, r8
|
||||
adds r2, #4
|
||||
mov r3, ip
|
||||
ldr r6, _0801A894 @ =0x0000036F
|
||||
lsls r0, r4, #1
|
||||
adds r1, r0, r2
|
||||
_0801A82A:
|
||||
ldrh r0, [r1]
|
||||
lsls r0, r0, #1
|
||||
adds r0, r3, r0
|
||||
ldrh r0, [r0]
|
||||
cmp r0, r6
|
||||
beq _0801A840
|
||||
subs r1, #0x80
|
||||
subs r4, #0x40
|
||||
subs r5, #1
|
||||
cmp r5, #0
|
||||
bne _0801A82A
|
||||
_0801A840:
|
||||
subs r4, #1
|
||||
ldr r3, _0801A898 @ =0x00000372
|
||||
lsls r0, r4, #1
|
||||
adds r1, r0, r2
|
||||
_0801A848:
|
||||
ldrh r0, [r1]
|
||||
lsls r0, r0, #1
|
||||
add r0, ip
|
||||
ldrh r0, [r0]
|
||||
cmp r0, r3
|
||||
bne _0801A85E
|
||||
adds r7, #1
|
||||
subs r1, #2
|
||||
subs r4, #1
|
||||
cmp r7, #3
|
||||
bls _0801A848
|
||||
_0801A85E:
|
||||
mov r2, sl
|
||||
cmp r2, #0
|
||||
beq _0801A8C0
|
||||
mov r0, sb
|
||||
ldrb r1, [r0]
|
||||
adds r0, r4, #0
|
||||
bl GetMetaTileType
|
||||
adds r5, r0, #0
|
||||
ldr r0, _0801A89C @ =0x00000369
|
||||
cmp r5, r0
|
||||
beq _0801A87C
|
||||
adds r0, #3
|
||||
cmp r5, r0
|
||||
bne _0801A8B4
|
||||
_0801A87C:
|
||||
ldr r1, _0801A8A0 @ =0x00002003
|
||||
adds r0, r4, r1
|
||||
mov r2, r8
|
||||
adds r1, r2, r0
|
||||
movs r5, #0
|
||||
cmp r5, r7
|
||||
bhs _0801A8B6
|
||||
ldrb r0, [r1]
|
||||
b _0801A8B0
|
||||
.align 2, 0
|
||||
_0801A890: .4byte gRoomControls
|
||||
_0801A894: .4byte 0x0000036F
|
||||
_0801A898: .4byte 0x00000372
|
||||
_0801A89C: .4byte 0x00000369
|
||||
_0801A8A0: .4byte 0x00002003
|
||||
_0801A8A4:
|
||||
adds r5, #1
|
||||
cmp r5, r7
|
||||
bhs _0801A8B6
|
||||
lsls r0, r5, #6
|
||||
adds r0, r0, r1
|
||||
ldrb r0, [r0]
|
||||
_0801A8B0:
|
||||
cmp r0, #0
|
||||
beq _0801A8A4
|
||||
_0801A8B4:
|
||||
ldr r4, _0801A8CC @ =0x0000FFFF
|
||||
_0801A8B6:
|
||||
mov r0, sl
|
||||
cmp r0, #0
|
||||
beq _0801A8C0
|
||||
lsls r0, r7, #0xc
|
||||
orrs r4, r0
|
||||
_0801A8C0:
|
||||
adds r0, r4, #0
|
||||
_0801A8C2:
|
||||
pop {r3, r4, r5}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
mov sl, r5
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_0801A8CC: .4byte 0x0000FFFF
|
||||
.syntax divided
|
||||
@@ -1,264 +0,0 @@
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sb
|
||||
mov r6, r8
|
||||
push {r6, r7}
|
||||
adds r6, r0, #0
|
||||
adds r5, r1, #0
|
||||
ldr r1, _0807D2B0 @ =gRoomControls
|
||||
movs r0, #0xa
|
||||
ldrsh r2, [r1, r0]
|
||||
ldrh r0, [r1, #6]
|
||||
subs r3, r2, r0
|
||||
movs r0, #0xc
|
||||
ldrsh r2, [r1, r0]
|
||||
ldrh r0, [r1, #8]
|
||||
subs r4, r2, r0
|
||||
ldrb r0, [r1, #0x10]
|
||||
mov r8, r1
|
||||
cmp r0, #1
|
||||
beq _0807D330
|
||||
cmp r0, #1
|
||||
bgt _0807D2B4
|
||||
cmp r0, #0
|
||||
beq _0807D2BA
|
||||
b _0807D404
|
||||
.align 2, 0
|
||||
_0807D2B0: .4byte gRoomControls
|
||||
_0807D2B4:
|
||||
cmp r0, #2
|
||||
beq _0807D3A0
|
||||
b _0807D404
|
||||
_0807D2BA:
|
||||
mov r2, r8
|
||||
ldrh r1, [r2, #0x18]
|
||||
movs r0, #3
|
||||
ands r0, r1
|
||||
cmp r0, #1
|
||||
beq _0807D2C8
|
||||
b _0807D462
|
||||
_0807D2C8:
|
||||
movs r2, #0x1c
|
||||
asrs r3, r3, #4
|
||||
mov sb, r3
|
||||
movs r3, #0x40
|
||||
adds r3, r3, r5
|
||||
mov ip, r3
|
||||
ldr r4, _0807D328 @ =0x040000D4
|
||||
ldr r7, _0807D32C @ =0x80000020
|
||||
movs r0, #0xe8
|
||||
lsls r0, r0, #3
|
||||
adds r3, r5, r0
|
||||
subs r0, #0x80
|
||||
adds r1, r5, r0
|
||||
_0807D2E2:
|
||||
str r1, [r4]
|
||||
str r3, [r4, #4]
|
||||
str r7, [r4, #8]
|
||||
ldr r0, [r4, #8]
|
||||
subs r3, #0x40
|
||||
subs r1, #0x40
|
||||
subs r2, #1
|
||||
cmp r2, #0
|
||||
bgt _0807D2E2
|
||||
mov r1, r8
|
||||
ldrh r0, [r1, #0x20]
|
||||
lsrs r0, r0, #4
|
||||
subs r0, #1
|
||||
ldrh r1, [r1, #0x18]
|
||||
lsrs r1, r1, #2
|
||||
subs r0, r0, r1
|
||||
lsls r0, r0, #8
|
||||
mov r2, sb
|
||||
lsls r1, r2, #1
|
||||
adds r0, r0, r1
|
||||
lsls r0, r0, #1
|
||||
adds r6, r6, r0
|
||||
ldr r0, _0807D328 @ =0x040000D4
|
||||
str r6, [r0]
|
||||
str r5, [r0, #4]
|
||||
ldr r2, _0807D32C @ =0x80000020
|
||||
str r2, [r0, #8]
|
||||
ldr r1, [r0, #8]
|
||||
movs r3, #0x80
|
||||
lsls r3, r3, #1
|
||||
adds r1, r6, r3
|
||||
str r1, [r0]
|
||||
mov r1, ip
|
||||
b _0807D3F0
|
||||
.align 2, 0
|
||||
_0807D328: .4byte 0x040000D4
|
||||
_0807D32C: .4byte 0x80000020
|
||||
_0807D330:
|
||||
mov r2, r8
|
||||
ldrh r3, [r2, #0x18]
|
||||
movs r0, #3
|
||||
ands r0, r3
|
||||
cmp r0, #0
|
||||
beq _0807D33E
|
||||
b _0807D462
|
||||
_0807D33E:
|
||||
asrs r7, r4, #4
|
||||
movs r0, #0x3c
|
||||
adds r0, r0, r5
|
||||
mov sb, r0
|
||||
cmp r3, #0
|
||||
beq _0807D36A
|
||||
ldr r4, _0807D398 @ =0x040000D4
|
||||
ldr r1, _0807D39C @ =0x8000001E
|
||||
mov ip, r1
|
||||
adds r3, r5, #4
|
||||
adds r1, r5, #0
|
||||
movs r2, #0x15
|
||||
_0807D356:
|
||||
str r3, [r4]
|
||||
str r1, [r4, #4]
|
||||
mov r0, ip
|
||||
str r0, [r4, #8]
|
||||
ldr r0, [r4, #8]
|
||||
adds r3, #0x40
|
||||
adds r1, #0x40
|
||||
subs r2, #1
|
||||
cmp r2, #0
|
||||
bge _0807D356
|
||||
_0807D36A:
|
||||
lsls r1, r7, #8
|
||||
mov r2, r8
|
||||
ldrh r0, [r2, #0x18]
|
||||
lsrs r0, r0, #2
|
||||
lsls r0, r0, #1
|
||||
adds r1, r1, r0
|
||||
lsls r1, r1, #1
|
||||
adds r6, r6, r1
|
||||
mov r5, sb
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #1
|
||||
movs r2, #0x15
|
||||
_0807D382:
|
||||
ldrh r0, [r6]
|
||||
strh r0, [r5]
|
||||
ldrh r0, [r6, #2]
|
||||
strh r0, [r5, #2]
|
||||
adds r5, #0x40
|
||||
adds r6, r6, r1
|
||||
subs r2, #1
|
||||
cmp r2, #0
|
||||
bge _0807D382
|
||||
b _0807D462
|
||||
.align 2, 0
|
||||
_0807D398: .4byte 0x040000D4
|
||||
_0807D39C: .4byte 0x8000001E
|
||||
_0807D3A0:
|
||||
mov r0, r8
|
||||
ldrh r1, [r0, #0x18]
|
||||
movs r0, #3
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _0807D462
|
||||
lsls r2, r1, #0x10
|
||||
cmp r2, #0
|
||||
beq _0807D3C2
|
||||
ldr r1, _0807D3F8 @ =0x040000D4
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x80
|
||||
str r0, [r1]
|
||||
str r5, [r1, #4]
|
||||
ldr r0, _0807D3FC @ =0x800003C0
|
||||
str r0, [r1, #8]
|
||||
ldr r0, [r1, #8]
|
||||
_0807D3C2:
|
||||
lsrs r0, r2, #0x12
|
||||
lsls r0, r0, #8
|
||||
asrs r1, r3, #4
|
||||
lsls r1, r1, #1
|
||||
adds r0, r0, r1
|
||||
lsls r0, r0, #1
|
||||
adds r6, r6, r0
|
||||
ldr r0, _0807D3F8 @ =0x040000D4
|
||||
str r6, [r0]
|
||||
movs r2, #0xa0
|
||||
lsls r2, r2, #3
|
||||
adds r1, r5, r2
|
||||
str r1, [r0, #4]
|
||||
ldr r2, _0807D400 @ =0x80000020
|
||||
str r2, [r0, #8]
|
||||
ldr r1, [r0, #8]
|
||||
movs r3, #0x80
|
||||
lsls r3, r3, #1
|
||||
adds r1, r6, r3
|
||||
str r1, [r0]
|
||||
movs r3, #0xa8
|
||||
lsls r3, r3, #3
|
||||
adds r1, r5, r3
|
||||
_0807D3F0:
|
||||
str r1, [r0, #4]
|
||||
str r2, [r0, #8]
|
||||
ldr r0, [r0, #8]
|
||||
b _0807D462
|
||||
.align 2, 0
|
||||
_0807D3F8: .4byte 0x040000D4
|
||||
_0807D3FC: .4byte 0x800003C0
|
||||
_0807D400: .4byte 0x80000020
|
||||
_0807D404:
|
||||
mov r0, r8
|
||||
ldrh r1, [r0, #0x18]
|
||||
movs r0, #3
|
||||
ands r0, r1
|
||||
cmp r0, #1
|
||||
bne _0807D462
|
||||
movs r2, #0
|
||||
asrs r7, r4, #4
|
||||
mov ip, r5
|
||||
_0807D416:
|
||||
movs r1, #0x1d
|
||||
mov r3, ip
|
||||
adds r3, #0x3a
|
||||
_0807D41C:
|
||||
ldrh r0, [r3]
|
||||
strh r0, [r3, #4]
|
||||
subs r3, #2
|
||||
subs r1, #1
|
||||
cmp r1, #0
|
||||
bge _0807D41C
|
||||
movs r1, #0x40
|
||||
add ip, r1
|
||||
adds r2, #1
|
||||
cmp r2, #0x15
|
||||
ble _0807D416
|
||||
lsls r0, r7, #8
|
||||
mov r2, r8
|
||||
ldrh r1, [r2, #0x1e]
|
||||
lsrs r1, r1, #4
|
||||
subs r1, #1
|
||||
ldrh r2, [r2, #0x18]
|
||||
lsrs r2, r2, #2
|
||||
subs r1, r1, r2
|
||||
lsls r1, r1, #1
|
||||
adds r0, r0, r1
|
||||
lsls r0, r0, #1
|
||||
adds r6, r6, r0
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #1
|
||||
movs r2, #0x15
|
||||
_0807D450:
|
||||
ldrh r0, [r6]
|
||||
strh r0, [r5]
|
||||
ldrh r0, [r6, #2]
|
||||
strh r0, [r5, #2]
|
||||
adds r5, #0x40
|
||||
adds r6, r6, r1
|
||||
subs r2, #1
|
||||
cmp r2, #0
|
||||
bge _0807D450
|
||||
_0807D462:
|
||||
pop {r3, r4}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
|
||||
.syntax divided
|
||||
@@ -1,346 +0,0 @@
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sl
|
||||
mov r6, sb
|
||||
mov r5, r8
|
||||
push {r5, r6, r7}
|
||||
sub sp, #8
|
||||
str r0, [sp]
|
||||
str r1, [sp, #4]
|
||||
ldr r0, _0807D494 @ =gRoomControls
|
||||
ldrb r2, [r0, #0x10]
|
||||
mov sb, r0
|
||||
cmp r2, #1
|
||||
bne _0807D488
|
||||
b _0807D5C4
|
||||
_0807D488:
|
||||
cmp r2, #1
|
||||
bgt _0807D498
|
||||
cmp r2, #0
|
||||
beq _0807D4A4
|
||||
b _0807D6CC
|
||||
.align 2, 0
|
||||
_0807D494: .4byte gRoomControls
|
||||
_0807D498:
|
||||
cmp r2, #2
|
||||
beq _0807D4A4
|
||||
cmp r2, #3
|
||||
bne _0807D4A2
|
||||
b _0807D5C4
|
||||
_0807D4A2:
|
||||
b _0807D6CC
|
||||
_0807D4A4:
|
||||
mov r1, sb
|
||||
movs r2, #0xa
|
||||
ldrsh r0, [r1, r2]
|
||||
ldrh r1, [r1, #6]
|
||||
subs r5, r0, r1
|
||||
cmp r5, #7
|
||||
ble _0807D4B4
|
||||
subs r5, #8
|
||||
_0807D4B4:
|
||||
mov r3, sb
|
||||
ldr r0, [r3, #0x30]
|
||||
movs r2, #0x2e
|
||||
ldrsh r0, [r0, r2]
|
||||
subs r0, r0, r1
|
||||
subs r3, r0, #4
|
||||
mov r8, r3
|
||||
cmp r3, #7
|
||||
ble _0807D4CA
|
||||
subs r0, #0xc
|
||||
mov r8, r0
|
||||
_0807D4CA:
|
||||
mov r0, sb
|
||||
movs r2, #0xc
|
||||
ldrsh r1, [r0, r2]
|
||||
ldrh r0, [r0, #8]
|
||||
subs r1, r1, r0
|
||||
mov ip, r1
|
||||
cmp r1, #7
|
||||
ble _0807D4E0
|
||||
movs r3, #8
|
||||
rsbs r3, r3, #0
|
||||
add ip, r3
|
||||
_0807D4E0:
|
||||
mov r1, sb
|
||||
ldrh r0, [r1, #0x18]
|
||||
lsls r0, r0, #3
|
||||
mov r2, r8
|
||||
subs r0, r2, r0
|
||||
adds r7, r5, #0
|
||||
adds r7, #0xf8
|
||||
cmp r0, r5
|
||||
blt _0807D548
|
||||
mov r1, ip
|
||||
asrs r3, r1, #3
|
||||
lsls r1, r3, #8
|
||||
ldr r2, [sp]
|
||||
adds r1, r2, r1
|
||||
asrs r0, r0, #3
|
||||
lsls r2, r0, #1
|
||||
adds r4, r1, r2
|
||||
movs r1, #0x1f
|
||||
ands r0, r1
|
||||
lsls r0, r0, #1
|
||||
ldr r2, [sp, #4]
|
||||
adds r6, r2, r0
|
||||
ands r3, r1
|
||||
lsls r2, r3, #5
|
||||
mov r3, sb
|
||||
ldrh r0, [r3, #0x20]
|
||||
lsls r1, r0, #0x10
|
||||
lsrs r0, r1, #0x10
|
||||
cmp r0, #0xaf
|
||||
bhi _0807D520
|
||||
lsrs r3, r1, #0x13
|
||||
b _0807D522
|
||||
_0807D520:
|
||||
movs r3, #0x16
|
||||
_0807D522:
|
||||
adds r7, r5, #0
|
||||
adds r7, #0xf8
|
||||
cmp r3, #0
|
||||
ble _0807D548
|
||||
ldr r0, _0807D55C @ =0x000003FF
|
||||
mov sl, r0
|
||||
_0807D52E:
|
||||
lsls r0, r2, #1
|
||||
adds r0, r0, r6
|
||||
ldrh r1, [r4]
|
||||
strh r1, [r0]
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #1
|
||||
adds r4, r4, r1
|
||||
adds r2, #0x20
|
||||
mov r0, sl
|
||||
ands r2, r0
|
||||
subs r3, #1
|
||||
cmp r3, #0
|
||||
bgt _0807D52E
|
||||
_0807D548:
|
||||
mov r1, sb
|
||||
ldrh r0, [r1, #0x18]
|
||||
adds r0, #1
|
||||
lsls r0, r0, #3
|
||||
add r0, r8
|
||||
ldrh r2, [r1, #0x1e]
|
||||
cmp r7, r2
|
||||
blt _0807D560
|
||||
adds r1, r7, #0
|
||||
b _0807D566
|
||||
.align 2, 0
|
||||
_0807D55C: .4byte 0x000003FF
|
||||
_0807D560:
|
||||
movs r3, #0x80
|
||||
lsls r3, r3, #1
|
||||
adds r1, r5, r3
|
||||
_0807D566:
|
||||
cmp r0, r1
|
||||
blt _0807D56C
|
||||
b _0807D6CC
|
||||
_0807D56C:
|
||||
mov r1, ip
|
||||
asrs r3, r1, #3
|
||||
lsls r1, r3, #8
|
||||
ldr r2, [sp]
|
||||
adds r1, r2, r1
|
||||
asrs r0, r0, #3
|
||||
lsls r2, r0, #1
|
||||
adds r4, r1, r2
|
||||
movs r1, #0x1f
|
||||
ands r0, r1
|
||||
lsls r0, r0, #1
|
||||
ldr r2, [sp, #4]
|
||||
adds r6, r2, r0
|
||||
ands r3, r1
|
||||
lsls r2, r3, #5
|
||||
mov r3, sb
|
||||
ldrh r0, [r3, #0x20]
|
||||
lsls r1, r0, #0x10
|
||||
lsrs r0, r1, #0x10
|
||||
cmp r0, #0xaf
|
||||
bhi _0807D59A
|
||||
lsrs r3, r1, #0x13
|
||||
b _0807D59C
|
||||
_0807D59A:
|
||||
movs r3, #0x16
|
||||
_0807D59C:
|
||||
cmp r3, #0
|
||||
bgt _0807D5A2
|
||||
b _0807D6CC
|
||||
_0807D5A2:
|
||||
movs r7, #0x80
|
||||
lsls r7, r7, #1
|
||||
ldr r5, _0807D5C0 @ =0x000003FF
|
||||
_0807D5A8:
|
||||
lsls r0, r2, #1
|
||||
adds r0, r0, r6
|
||||
ldrh r1, [r4]
|
||||
strh r1, [r0]
|
||||
adds r4, r4, r7
|
||||
adds r2, #0x20
|
||||
ands r2, r5
|
||||
subs r3, #1
|
||||
cmp r3, #0
|
||||
bgt _0807D5A8
|
||||
b _0807D6CC
|
||||
.align 2, 0
|
||||
_0807D5C0: .4byte 0x000003FF
|
||||
_0807D5C4:
|
||||
mov r1, sb
|
||||
movs r2, #0xc
|
||||
ldrsh r0, [r1, r2]
|
||||
ldrh r2, [r1, #8]
|
||||
subs r5, r0, r2
|
||||
cmp r5, #7
|
||||
ble _0807D5D4
|
||||
subs r5, #8
|
||||
_0807D5D4:
|
||||
mov r3, sb
|
||||
movs r0, #0xa
|
||||
ldrsh r1, [r3, r0]
|
||||
ldrh r0, [r3, #6]
|
||||
subs r1, r1, r0
|
||||
mov r8, r1
|
||||
cmp r1, #7
|
||||
ble _0807D5EA
|
||||
movs r1, #8
|
||||
rsbs r1, r1, #0
|
||||
add r8, r1
|
||||
_0807D5EA:
|
||||
mov r3, sb
|
||||
ldr r0, [r3, #0x30]
|
||||
movs r1, #0x32
|
||||
ldrsh r0, [r0, r1]
|
||||
subs r0, r0, r2
|
||||
subs r2, r0, #4
|
||||
mov ip, r2
|
||||
cmp r2, #7
|
||||
ble _0807D600
|
||||
subs r0, #0xc
|
||||
mov ip, r0
|
||||
_0807D600:
|
||||
mov r3, sb
|
||||
ldrh r0, [r3, #0x18]
|
||||
lsls r0, r0, #3
|
||||
mov r1, ip
|
||||
subs r0, r1, r0
|
||||
adds r7, r5, #0
|
||||
adds r7, #0xa8
|
||||
movs r2, #0xb0
|
||||
adds r2, r2, r5
|
||||
mov sl, r2
|
||||
cmp r0, r5
|
||||
blt _0807D66A
|
||||
asrs r2, r0, #3
|
||||
lsls r0, r2, #8
|
||||
ldr r3, [sp]
|
||||
adds r0, r3, r0
|
||||
mov r1, r8
|
||||
asrs r3, r1, #3
|
||||
lsls r1, r3, #1
|
||||
adds r4, r0, r1
|
||||
movs r0, #0x1f
|
||||
ands r2, r0
|
||||
lsls r2, r2, #6
|
||||
ldr r1, [sp, #4]
|
||||
adds r6, r1, r2
|
||||
adds r2, r0, #0
|
||||
ands r2, r3
|
||||
mov r3, sb
|
||||
ldrh r0, [r3, #0x1e]
|
||||
lsls r1, r0, #0x10
|
||||
lsrs r0, r1, #0x10
|
||||
cmp r0, #0xff
|
||||
bhi _0807D646
|
||||
lsrs r3, r1, #0x13
|
||||
b _0807D648
|
||||
_0807D646:
|
||||
movs r3, #0x20
|
||||
_0807D648:
|
||||
adds r7, r5, #0
|
||||
adds r7, #0xa8
|
||||
adds r5, #0xb0
|
||||
mov sl, r5
|
||||
cmp r3, #0
|
||||
ble _0807D66A
|
||||
movs r5, #0x1f
|
||||
_0807D656:
|
||||
lsls r0, r2, #1
|
||||
adds r0, r0, r6
|
||||
ldrh r1, [r4]
|
||||
strh r1, [r0]
|
||||
adds r4, #2
|
||||
adds r2, #1
|
||||
ands r2, r5
|
||||
subs r3, #1
|
||||
cmp r3, #0
|
||||
bgt _0807D656
|
||||
_0807D66A:
|
||||
mov r1, sb
|
||||
ldrh r0, [r1, #0x18]
|
||||
adds r0, #1
|
||||
lsls r0, r0, #3
|
||||
add r0, ip
|
||||
mov r2, sl
|
||||
ldrh r1, [r1, #0x20]
|
||||
cmp r7, r1
|
||||
blt _0807D67E
|
||||
adds r2, r7, #0
|
||||
_0807D67E:
|
||||
cmp r0, r2
|
||||
bge _0807D6CC
|
||||
asrs r2, r0, #3
|
||||
lsls r0, r2, #8
|
||||
ldr r1, [sp]
|
||||
adds r0, r1, r0
|
||||
mov r1, r8
|
||||
asrs r3, r1, #3
|
||||
lsls r1, r3, #1
|
||||
adds r4, r0, r1
|
||||
movs r0, #0x1f
|
||||
ands r2, r0
|
||||
lsls r2, r2, #6
|
||||
ldr r1, [sp, #4]
|
||||
adds r6, r1, r2
|
||||
adds r2, r0, #0
|
||||
ands r2, r3
|
||||
mov r3, sb
|
||||
ldrh r0, [r3, #0x1e]
|
||||
lsls r1, r0, #0x10
|
||||
lsrs r0, r1, #0x10
|
||||
cmp r0, #0xff
|
||||
bhi _0807D6B0
|
||||
lsrs r3, r1, #0x13
|
||||
b _0807D6B2
|
||||
_0807D6B0:
|
||||
movs r3, #0x20
|
||||
_0807D6B2:
|
||||
cmp r3, #0
|
||||
ble _0807D6CC
|
||||
movs r5, #0x1f
|
||||
_0807D6B8:
|
||||
lsls r0, r2, #1
|
||||
adds r0, r0, r6
|
||||
ldrh r1, [r4]
|
||||
strh r1, [r0]
|
||||
adds r4, #2
|
||||
adds r2, #1
|
||||
ands r2, r5
|
||||
subs r3, #1
|
||||
cmp r3, #0
|
||||
bgt _0807D6B8
|
||||
_0807D6CC:
|
||||
add sp, #8
|
||||
pop {r3, r4, r5}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
mov sl, r5
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
|
||||
.syntax divided
|
||||
@@ -1,482 +0,0 @@
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sl
|
||||
mov r6, sb
|
||||
mov r5, r8
|
||||
push {r5, r6, r7}
|
||||
sub sp, #0x44
|
||||
str r0, [sp]
|
||||
str r1, [sp, #4]
|
||||
ldr r5, _0807D8BC @ =gRoomControls
|
||||
ldrh r0, [r5, #0x18]
|
||||
cmp r0, #0
|
||||
bne _0807D6F2
|
||||
b _0807DA62
|
||||
_0807D6F2:
|
||||
ldrh r0, [r5, #0x1a]
|
||||
cmp r0, #0
|
||||
bne _0807D6FA
|
||||
b _0807DA62
|
||||
_0807D6FA:
|
||||
movs r1, #0xa
|
||||
ldrsh r0, [r5, r1]
|
||||
ldrh r1, [r5, #6]
|
||||
subs r0, r0, r1
|
||||
movs r4, #0x10
|
||||
rsbs r4, r4, #0
|
||||
ands r0, r4
|
||||
str r0, [sp, #0x24]
|
||||
ldr r3, [r5, #0x30]
|
||||
movs r2, #0x2e
|
||||
ldrsh r0, [r3, r2]
|
||||
subs r0, r0, r1
|
||||
movs r2, #8
|
||||
rsbs r2, r2, #0
|
||||
ands r0, r2
|
||||
str r0, [sp, #0x14]
|
||||
ldr r1, [sp, #0x24]
|
||||
subs r0, r0, r1
|
||||
str r0, [sp, #0x1c]
|
||||
movs r1, #0xc
|
||||
ldrsh r0, [r5, r1]
|
||||
ldrh r1, [r5, #8]
|
||||
subs r0, r0, r1
|
||||
ands r0, r4
|
||||
str r0, [sp, #0x28]
|
||||
movs r4, #0x32
|
||||
ldrsh r0, [r3, r4]
|
||||
subs r0, r0, r1
|
||||
ands r0, r2
|
||||
str r0, [sp, #0x18]
|
||||
ldr r1, [sp, #0x28]
|
||||
subs r0, r0, r1
|
||||
str r0, [sp, #0x20]
|
||||
ldrh r0, [r5, #0x18]
|
||||
adds r2, r0, #0
|
||||
muls r2, r0, r2
|
||||
str r2, [sp, #0xc]
|
||||
ldrh r3, [r5, #0x1a]
|
||||
str r3, [sp, #8]
|
||||
adds r4, r3, #0
|
||||
muls r4, r3, r4
|
||||
str r4, [sp, #0x10]
|
||||
adds r4, r0, #0
|
||||
movs r0, #0
|
||||
mov sb, r0
|
||||
lsls r0, r4, #1
|
||||
rsbs r0, r0, #0
|
||||
adds r0, #1
|
||||
ldr r1, [sp, #0x10]
|
||||
muls r0, r1, r0
|
||||
lsls r6, r2, #1
|
||||
adds r7, r0, r6
|
||||
adds r2, r4, #0
|
||||
muls r2, r1, r2
|
||||
mov r8, r2
|
||||
mov r0, r8
|
||||
ldr r1, [sp, #0xc]
|
||||
bl __divsi3
|
||||
mov ip, r0
|
||||
cmp sb, ip
|
||||
ble _0807D778
|
||||
b _0807D8D8
|
||||
_0807D778:
|
||||
mov sl, r5
|
||||
ldr r3, [sp, #0xc]
|
||||
adds r0, r6, r3
|
||||
lsls r0, r0, #1
|
||||
str r0, [sp, #0x3c]
|
||||
mov r0, r8
|
||||
str r0, [sp, #0x40]
|
||||
ldr r1, [sp, #0x14]
|
||||
subs r1, r1, r4
|
||||
mov r8, r1
|
||||
ldr r2, [sp, #0x14]
|
||||
adds r6, r4, r2
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #1
|
||||
ldr r3, [sp, #0x24]
|
||||
adds r0, r3, r0
|
||||
str r0, [sp, #0x2c]
|
||||
_0807D79A:
|
||||
ldr r0, [sp, #0x28]
|
||||
adds r0, #0xb0
|
||||
ldr r1, [sp, #0x18]
|
||||
add r1, sb
|
||||
cmp r0, r1
|
||||
ble _0807D812
|
||||
ldr r0, [sp, #0x20]
|
||||
add r0, sb
|
||||
asrs r0, r0, #3
|
||||
movs r5, #0x1f
|
||||
ands r0, r5
|
||||
cmp r0, #0x1f
|
||||
beq _0807D812
|
||||
lsls r0, r0, #6
|
||||
ldr r3, [sp, #4]
|
||||
adds r2, r3, r0
|
||||
asrs r0, r1, #3
|
||||
lsls r0, r0, #8
|
||||
ldr r1, [sp]
|
||||
adds r3, r1, r0
|
||||
ldr r0, [sp, #0x2c]
|
||||
cmp r0, r6
|
||||
ble _0807D7EA
|
||||
ldr r0, [sp, #0x1c]
|
||||
adds r1, r0, r4
|
||||
asrs r1, r1, #3
|
||||
ands r1, r5
|
||||
lsls r1, r1, #1
|
||||
adds r1, r1, r2
|
||||
asrs r0, r6, #3
|
||||
lsls r0, r0, #1
|
||||
adds r0, r0, r3
|
||||
ldrh r0, [r0]
|
||||
strh r0, [r1]
|
||||
mov r1, sl
|
||||
ldrh r0, [r1, #0x1c]
|
||||
movs r1, #1
|
||||
orrs r0, r1
|
||||
mov r1, sl
|
||||
strh r0, [r1, #0x1c]
|
||||
_0807D7EA:
|
||||
ldr r0, [sp, #0x24]
|
||||
cmp r0, r8
|
||||
bge _0807D812
|
||||
ldr r0, [sp, #0x1c]
|
||||
subs r1, r0, r4
|
||||
asrs r1, r1, #3
|
||||
ands r1, r5
|
||||
lsls r1, r1, #1
|
||||
adds r1, r1, r2
|
||||
mov r2, r8
|
||||
asrs r0, r2, #3
|
||||
lsls r0, r0, #1
|
||||
adds r0, r0, r3
|
||||
ldrh r0, [r0]
|
||||
strh r0, [r1]
|
||||
mov r3, sl
|
||||
ldrh r0, [r3, #0x1c]
|
||||
movs r1, #2
|
||||
orrs r0, r1
|
||||
strh r0, [r3, #0x1c]
|
||||
_0807D812:
|
||||
ldr r0, [sp, #0x18]
|
||||
mov r2, sb
|
||||
subs r1, r0, r2
|
||||
adds r0, r1, #0
|
||||
adds r0, #8
|
||||
ldr r3, [sp, #0x28]
|
||||
cmp r3, r0
|
||||
bge _0807D88E
|
||||
ldr r3, [sp, #0x20]
|
||||
subs r0, r3, r2
|
||||
asrs r0, r0, #3
|
||||
movs r5, #0x1f
|
||||
ands r0, r5
|
||||
cmp r0, #0x1f
|
||||
beq _0807D88E
|
||||
lsls r0, r0, #6
|
||||
ldr r3, [sp, #4]
|
||||
adds r2, r3, r0
|
||||
asrs r0, r1, #3
|
||||
lsls r0, r0, #8
|
||||
ldr r1, [sp]
|
||||
adds r3, r1, r0
|
||||
ldr r0, [sp, #0x2c]
|
||||
cmp r0, r6
|
||||
ble _0807D866
|
||||
ldr r0, [sp, #0x1c]
|
||||
adds r1, r0, r4
|
||||
asrs r1, r1, #3
|
||||
ands r1, r5
|
||||
lsls r1, r1, #1
|
||||
adds r1, r1, r2
|
||||
asrs r0, r6, #3
|
||||
lsls r0, r0, #1
|
||||
adds r0, r0, r3
|
||||
ldrh r0, [r0]
|
||||
strh r0, [r1]
|
||||
mov r1, sl
|
||||
ldrh r0, [r1, #0x1c]
|
||||
movs r1, #4
|
||||
orrs r0, r1
|
||||
mov r1, sl
|
||||
strh r0, [r1, #0x1c]
|
||||
_0807D866:
|
||||
ldr r0, [sp, #0x24]
|
||||
cmp r0, r8
|
||||
bge _0807D88E
|
||||
ldr r0, [sp, #0x1c]
|
||||
subs r1, r0, r4
|
||||
asrs r1, r1, #3
|
||||
ands r1, r5
|
||||
lsls r1, r1, #1
|
||||
adds r1, r1, r2
|
||||
mov r2, r8
|
||||
asrs r0, r2, #3
|
||||
lsls r0, r0, #1
|
||||
adds r0, r0, r3
|
||||
ldrh r0, [r0]
|
||||
strh r0, [r1]
|
||||
mov r3, sl
|
||||
ldrh r0, [r3, #0x1c]
|
||||
movs r1, #8
|
||||
orrs r0, r1
|
||||
strh r0, [r3, #0x1c]
|
||||
_0807D88E:
|
||||
cmp r7, #0
|
||||
ble _0807D8C0
|
||||
lsls r0, r4, #2
|
||||
rsbs r0, r0, #0
|
||||
adds r0, #4
|
||||
ldr r1, [sp, #0x10]
|
||||
muls r0, r1, r0
|
||||
ldr r2, [sp, #0x3c]
|
||||
adds r0, r0, r2
|
||||
adds r7, r7, r0
|
||||
ldr r3, [sp, #0x40]
|
||||
subs r3, r3, r1
|
||||
str r3, [sp, #0x40]
|
||||
movs r0, #1
|
||||
add r8, r0
|
||||
subs r6, #1
|
||||
subs r4, #1
|
||||
adds r0, r3, #0
|
||||
ldr r1, [sp, #0xc]
|
||||
bl __divsi3
|
||||
mov ip, r0
|
||||
b _0807D8C4
|
||||
.align 2, 0
|
||||
_0807D8BC: .4byte gRoomControls
|
||||
_0807D8C0:
|
||||
ldr r1, [sp, #0x3c]
|
||||
adds r7, r7, r1
|
||||
_0807D8C4:
|
||||
ldr r2, [sp, #0xc]
|
||||
lsls r0, r2, #2
|
||||
ldr r3, [sp, #0x3c]
|
||||
adds r3, r3, r0
|
||||
str r3, [sp, #0x3c]
|
||||
movs r0, #1
|
||||
add sb, r0
|
||||
cmp sb, ip
|
||||
bgt _0807D8D8
|
||||
b _0807D79A
|
||||
_0807D8D8:
|
||||
movs r4, #0
|
||||
ldr r1, [sp, #8]
|
||||
mov sb, r1
|
||||
ldr r2, [sp, #0x10]
|
||||
lsls r6, r2, #1
|
||||
lsls r0, r1, #1
|
||||
rsbs r0, r0, #0
|
||||
adds r0, #1
|
||||
ldr r3, [sp, #0xc]
|
||||
muls r0, r3, r0
|
||||
adds r7, r6, r0
|
||||
mov r5, sb
|
||||
muls r5, r3, r5
|
||||
adds r0, r5, #0
|
||||
adds r1, r2, #0
|
||||
bl __divsi3
|
||||
mov ip, r0
|
||||
cmp r4, ip
|
||||
ble _0807D902
|
||||
b _0807DA62
|
||||
_0807D902:
|
||||
ldr r0, _0807DA40 @ =gRoomControls
|
||||
mov sl, r0
|
||||
ldr r1, [sp, #0x10]
|
||||
adds r0, r6, r1
|
||||
lsls r0, r0, #1
|
||||
str r0, [sp, #0x34]
|
||||
ldr r6, [sp, #0x14]
|
||||
mov r8, r6
|
||||
str r5, [sp, #0x38]
|
||||
movs r3, #0x80
|
||||
lsls r3, r3, #1
|
||||
ldr r2, [sp, #0x24]
|
||||
adds r3, r2, r3
|
||||
str r3, [sp, #0x30]
|
||||
_0807D91E:
|
||||
ldr r0, [sp, #0x28]
|
||||
adds r0, #0xb0
|
||||
ldr r1, [sp, #0x18]
|
||||
add r1, sb
|
||||
cmp r0, r1
|
||||
ble _0807D996
|
||||
ldr r0, [sp, #0x20]
|
||||
add r0, sb
|
||||
asrs r0, r0, #3
|
||||
movs r5, #0x1f
|
||||
ands r0, r5
|
||||
cmp r0, #0x1f
|
||||
beq _0807D996
|
||||
lsls r0, r0, #6
|
||||
ldr r3, [sp, #4]
|
||||
adds r2, r3, r0
|
||||
asrs r0, r1, #3
|
||||
lsls r0, r0, #8
|
||||
ldr r1, [sp]
|
||||
adds r3, r1, r0
|
||||
ldr r0, [sp, #0x30]
|
||||
cmp r0, r6
|
||||
ble _0807D96E
|
||||
ldr r0, [sp, #0x1c]
|
||||
adds r1, r0, r4
|
||||
asrs r1, r1, #3
|
||||
ands r1, r5
|
||||
lsls r1, r1, #1
|
||||
adds r1, r1, r2
|
||||
asrs r0, r6, #3
|
||||
lsls r0, r0, #1
|
||||
adds r0, r0, r3
|
||||
ldrh r0, [r0]
|
||||
strh r0, [r1]
|
||||
mov r1, sl
|
||||
ldrh r0, [r1, #0x1c]
|
||||
movs r1, #0x10
|
||||
orrs r0, r1
|
||||
mov r1, sl
|
||||
strh r0, [r1, #0x1c]
|
||||
_0807D96E:
|
||||
ldr r0, [sp, #0x24]
|
||||
cmp r0, r8
|
||||
bge _0807D996
|
||||
ldr r0, [sp, #0x1c]
|
||||
subs r1, r0, r4
|
||||
asrs r1, r1, #3
|
||||
ands r1, r5
|
||||
lsls r1, r1, #1
|
||||
adds r1, r1, r2
|
||||
mov r2, r8
|
||||
asrs r0, r2, #3
|
||||
lsls r0, r0, #1
|
||||
adds r0, r0, r3
|
||||
ldrh r0, [r0]
|
||||
strh r0, [r1]
|
||||
mov r3, sl
|
||||
ldrh r0, [r3, #0x1c]
|
||||
movs r1, #0x20
|
||||
orrs r0, r1
|
||||
strh r0, [r3, #0x1c]
|
||||
_0807D996:
|
||||
ldr r0, [sp, #0x18]
|
||||
mov r2, sb
|
||||
subs r1, r0, r2
|
||||
adds r0, r1, #0
|
||||
adds r0, #8
|
||||
ldr r3, [sp, #0x28]
|
||||
cmp r3, r0
|
||||
bge _0807DA12
|
||||
ldr r3, [sp, #0x20]
|
||||
subs r0, r3, r2
|
||||
asrs r0, r0, #3
|
||||
movs r5, #0x1f
|
||||
ands r0, r5
|
||||
cmp r0, #0x1f
|
||||
beq _0807DA12
|
||||
lsls r0, r0, #6
|
||||
ldr r3, [sp, #4]
|
||||
adds r2, r3, r0
|
||||
asrs r0, r1, #3
|
||||
lsls r0, r0, #8
|
||||
ldr r1, [sp]
|
||||
adds r3, r1, r0
|
||||
ldr r0, [sp, #0x30]
|
||||
cmp r0, r6
|
||||
ble _0807D9EA
|
||||
ldr r0, [sp, #0x1c]
|
||||
adds r1, r0, r4
|
||||
asrs r1, r1, #3
|
||||
ands r1, r5
|
||||
lsls r1, r1, #1
|
||||
adds r1, r1, r2
|
||||
asrs r0, r6, #3
|
||||
lsls r0, r0, #1
|
||||
adds r0, r0, r3
|
||||
ldrh r0, [r0]
|
||||
strh r0, [r1]
|
||||
mov r1, sl
|
||||
ldrh r0, [r1, #0x1c]
|
||||
movs r1, #0x40
|
||||
orrs r0, r1
|
||||
mov r1, sl
|
||||
strh r0, [r1, #0x1c]
|
||||
_0807D9EA:
|
||||
ldr r0, [sp, #0x24]
|
||||
cmp r0, r8
|
||||
bge _0807DA12
|
||||
ldr r0, [sp, #0x1c]
|
||||
subs r1, r0, r4
|
||||
asrs r1, r1, #3
|
||||
ands r1, r5
|
||||
lsls r1, r1, #1
|
||||
adds r1, r1, r2
|
||||
mov r2, r8
|
||||
asrs r0, r2, #3
|
||||
lsls r0, r0, #1
|
||||
adds r0, r0, r3
|
||||
ldrh r0, [r0]
|
||||
strh r0, [r1]
|
||||
mov r3, sl
|
||||
ldrh r0, [r3, #0x1c]
|
||||
movs r1, #0x80
|
||||
orrs r0, r1
|
||||
strh r0, [r3, #0x1c]
|
||||
_0807DA12:
|
||||
cmp r7, #0
|
||||
ble _0807DA44
|
||||
mov r1, sb
|
||||
lsls r0, r1, #2
|
||||
rsbs r0, r0, #0
|
||||
adds r0, #4
|
||||
ldr r2, [sp, #0xc]
|
||||
muls r0, r2, r0
|
||||
ldr r3, [sp, #0x34]
|
||||
adds r0, r3, r0
|
||||
adds r7, r7, r0
|
||||
ldr r0, [sp, #0x38]
|
||||
subs r0, r0, r2
|
||||
str r0, [sp, #0x38]
|
||||
movs r1, #1
|
||||
rsbs r1, r1, #0
|
||||
add sb, r1
|
||||
ldr r1, [sp, #0x10]
|
||||
bl __divsi3
|
||||
mov ip, r0
|
||||
b _0807DA48
|
||||
.align 2, 0
|
||||
_0807DA40: .4byte gRoomControls
|
||||
_0807DA44:
|
||||
ldr r2, [sp, #0x34]
|
||||
adds r7, r7, r2
|
||||
_0807DA48:
|
||||
ldr r3, [sp, #0x10]
|
||||
lsls r0, r3, #2
|
||||
ldr r1, [sp, #0x34]
|
||||
adds r1, r1, r0
|
||||
str r1, [sp, #0x34]
|
||||
movs r2, #1
|
||||
rsbs r2, r2, #0
|
||||
add r8, r2
|
||||
adds r6, #1
|
||||
adds r4, #1
|
||||
cmp r4, ip
|
||||
bgt _0807DA62
|
||||
b _0807D91E
|
||||
_0807DA62:
|
||||
add sp, #0x44
|
||||
pop {r3, r4, r5}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
mov sl, r5
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
|
||||
.syntax divided
|
||||
@@ -1,189 +0,0 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sl
|
||||
mov r6, sb
|
||||
mov r5, r8
|
||||
push {r5, r6, r7}
|
||||
sub sp, #0x20
|
||||
str r0, [sp]
|
||||
str r1, [sp, #4]
|
||||
mov sl, r2
|
||||
mov sb, r3
|
||||
ldr r0, _0801E3AC @ =gUnk_03003DE4
|
||||
ldrb r1, [r0]
|
||||
lsls r0, r1, #2
|
||||
adds r0, r0, r1
|
||||
lsls r0, r0, #9
|
||||
ldr r1, _0801E3B0 @ =gUnk_02017AA0
|
||||
adds r0, r0, r1
|
||||
movs r1, #0xa0
|
||||
lsls r1, r1, #4
|
||||
bl MemClear
|
||||
cmp sl, sb
|
||||
bge _0801E3DC
|
||||
movs r6, #0
|
||||
mov r8, sl
|
||||
mov r7, r8
|
||||
mov r0, r8
|
||||
lsls r1, r0, #1
|
||||
movs r0, #3
|
||||
subs r5, r0, r1
|
||||
cmp r6, r8
|
||||
ble _0801E35E
|
||||
b _0801E45E
|
||||
_0801E35E:
|
||||
mov r1, r8
|
||||
lsls r0, r1, #2
|
||||
ldr r4, _0801E3B4 @ =gUnk_02018EE0
|
||||
adds r0, r0, r4
|
||||
str r0, [sp, #0x10]
|
||||
mov r1, sb
|
||||
mov r0, r8
|
||||
muls r0, r1, r0
|
||||
str r0, [sp, #0x14]
|
||||
movs r3, #0
|
||||
_0801E372:
|
||||
adds r0, r3, #0
|
||||
mov r1, sl
|
||||
str r3, [sp, #0x18]
|
||||
bl Div
|
||||
adds r4, r0, #0
|
||||
lsls r4, r4, #0x10
|
||||
lsrs r4, r4, #0x10
|
||||
str r4, [sp, #0x1c]
|
||||
ldr r0, [sp, #0x14]
|
||||
mov r1, sl
|
||||
bl Div
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r0, r0, #0x10
|
||||
lsls r2, r6, #2
|
||||
ldr r4, _0801E3B4 @ =gUnk_02018EE0
|
||||
adds r1, r2, r4
|
||||
str r0, [r1]
|
||||
ldr r0, [sp, #0x1c]
|
||||
ldr r1, [sp, #0x10]
|
||||
str r0, [r1]
|
||||
ldr r3, [sp, #0x18]
|
||||
cmp r5, #0
|
||||
bge _0801E3B8
|
||||
adds r0, r5, #6
|
||||
adds r5, r0, r2
|
||||
b _0801E3D2
|
||||
.align 2, 0
|
||||
_0801E3AC: .4byte gUnk_03003DE4
|
||||
_0801E3B0: .4byte gUnk_02017AA0
|
||||
_0801E3B4: .4byte gUnk_02018EE0
|
||||
_0801E3B8:
|
||||
adds r1, r5, #0
|
||||
adds r1, #0xa
|
||||
subs r0, r6, r7
|
||||
lsls r0, r0, #2
|
||||
adds r5, r1, r0
|
||||
ldr r4, [sp, #0x10]
|
||||
subs r4, #4
|
||||
str r4, [sp, #0x10]
|
||||
ldr r0, [sp, #0x14]
|
||||
mov r1, sb
|
||||
subs r0, r0, r1
|
||||
str r0, [sp, #0x14]
|
||||
subs r7, #1
|
||||
_0801E3D2:
|
||||
add r3, sb
|
||||
adds r6, #1
|
||||
cmp r6, r7
|
||||
ble _0801E372
|
||||
b _0801E45E
|
||||
_0801E3DC:
|
||||
movs r6, #0
|
||||
mov r8, sb
|
||||
mov r7, r8
|
||||
mov r4, r8
|
||||
lsls r1, r4, #1
|
||||
movs r0, #3
|
||||
subs r5, r0, r1
|
||||
cmp r6, r8
|
||||
bgt _0801E45E
|
||||
lsls r0, r4, #2
|
||||
ldr r1, _0801E438 @ =gUnk_02018EE0
|
||||
adds r0, r0, r1
|
||||
str r0, [sp, #8]
|
||||
mov r0, sl
|
||||
mov r4, r8
|
||||
muls r4, r0, r4
|
||||
str r4, [sp, #0xc]
|
||||
movs r3, #0
|
||||
_0801E400:
|
||||
adds r0, r3, #0
|
||||
mov r1, sb
|
||||
str r3, [sp, #0x18]
|
||||
bl Div
|
||||
adds r4, r0, #0
|
||||
lsls r4, r4, #0x10
|
||||
lsrs r4, r4, #0x10
|
||||
str r4, [sp, #0x1c]
|
||||
ldr r0, [sp, #0xc]
|
||||
mov r1, sb
|
||||
bl Div
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r0, r0, #0x10
|
||||
lsls r2, r6, #2
|
||||
ldr r4, _0801E438 @ =gUnk_02018EE0
|
||||
adds r1, r2, r4
|
||||
str r0, [r1]
|
||||
ldr r0, [sp, #0x1c]
|
||||
ldr r1, [sp, #8]
|
||||
str r0, [r1]
|
||||
ldr r3, [sp, #0x18]
|
||||
cmp r5, #0
|
||||
bge _0801E43C
|
||||
adds r0, r5, #6
|
||||
adds r5, r0, r2
|
||||
b _0801E456
|
||||
.align 2, 0
|
||||
_0801E438: .4byte gUnk_02018EE0
|
||||
_0801E43C:
|
||||
adds r1, r5, #0
|
||||
adds r1, #0xa
|
||||
subs r0, r6, r7
|
||||
lsls r0, r0, #2
|
||||
adds r5, r1, r0
|
||||
ldr r4, [sp, #8]
|
||||
subs r4, #4
|
||||
str r4, [sp, #8]
|
||||
ldr r0, [sp, #0xc]
|
||||
mov r1, sl
|
||||
subs r0, r0, r1
|
||||
str r0, [sp, #0xc]
|
||||
subs r7, #1
|
||||
_0801E456:
|
||||
add r3, sl
|
||||
adds r6, #1
|
||||
cmp r6, r7
|
||||
ble _0801E400
|
||||
_0801E45E:
|
||||
ldr r0, [sp]
|
||||
ldr r1, [sp, #4]
|
||||
mov r2, r8
|
||||
bl sub_0801E290
|
||||
ldr r0, _0801E48C @ =gUnk_03003DE4
|
||||
ldrb r1, [r0]
|
||||
lsls r0, r1, #2
|
||||
adds r0, r0, r1
|
||||
lsls r0, r0, #9
|
||||
ldr r1, _0801E490 @ =gUnk_02017AA0
|
||||
adds r0, r0, r1
|
||||
ldr r1, _0801E494 @ =0x04000040
|
||||
ldr r2, _0801E498 @ =0xA2600001
|
||||
bl SetVBlankDMA
|
||||
add sp, #0x20
|
||||
pop {r3, r4, r5}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
mov sl, r5
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_0801E48C: .4byte gUnk_03003DE4
|
||||
_0801E490: .4byte gUnk_02017AA0
|
||||
_0801E494: .4byte 0x04000040
|
||||
_0801E498: .4byte 0xA2600001
|
||||
.syntax divided
|
||||
@@ -1,211 +0,0 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sl
|
||||
mov r6, sb
|
||||
mov r5, r8
|
||||
push {r5, r6, r7}
|
||||
sub sp, #8
|
||||
mov r8, r0
|
||||
str r1, [sp, #4]
|
||||
mov sb, r2
|
||||
adds r5, r3, #0
|
||||
ldr r0, _0801E5E4 @ =0x0000FFFF
|
||||
movs r2, #0xf0
|
||||
lsls r2, r2, #3
|
||||
ldr r1, _0801E5E8 @ =gUnk_02018EE0
|
||||
bl MemFill16
|
||||
adds r3, r5, #0
|
||||
subs r3, #0x40
|
||||
movs r2, #0xff
|
||||
ands r3, r2
|
||||
ldr r1, _0801E5EC @ =gSineTable
|
||||
adds r0, r3, #0
|
||||
adds r0, #0x40
|
||||
lsls r0, r0, #1
|
||||
adds r0, r0, r1
|
||||
movs r4, #0
|
||||
ldrsh r0, [r0, r4]
|
||||
mov r4, sb
|
||||
muls r4, r0, r4
|
||||
adds r0, r4, #0
|
||||
asrs r0, r0, #8
|
||||
mov r4, r8
|
||||
adds r7, r4, r0
|
||||
lsls r0, r3, #1
|
||||
adds r0, r0, r1
|
||||
movs r3, #0
|
||||
ldrsh r0, [r0, r3]
|
||||
mov r4, sb
|
||||
muls r4, r0, r4
|
||||
adds r0, r4, #0
|
||||
asrs r0, r0, #8
|
||||
ldr r3, [sp, #4]
|
||||
adds r3, r3, r0
|
||||
mov sl, r3
|
||||
adds r3, r5, #0
|
||||
adds r3, #0x68
|
||||
ands r3, r2
|
||||
adds r0, r3, #0
|
||||
adds r0, #0x40
|
||||
lsls r0, r0, #1
|
||||
adds r0, r0, r1
|
||||
movs r4, #0
|
||||
ldrsh r0, [r0, r4]
|
||||
mov r4, sb
|
||||
muls r4, r0, r4
|
||||
adds r0, r4, #0
|
||||
asrs r0, r0, #8
|
||||
mov r4, r8
|
||||
adds r6, r4, r0
|
||||
lsls r0, r3, #1
|
||||
adds r0, r0, r1
|
||||
movs r3, #0
|
||||
ldrsh r0, [r0, r3]
|
||||
mov r4, sb
|
||||
muls r4, r0, r4
|
||||
adds r0, r4, #0
|
||||
asrs r0, r0, #8
|
||||
ldr r3, [sp, #4]
|
||||
adds r4, r3, r0
|
||||
adds r3, r5, #0
|
||||
subs r3, #0xe8
|
||||
ands r3, r2
|
||||
adds r0, r3, #0
|
||||
adds r0, #0x40
|
||||
lsls r0, r0, #1
|
||||
adds r0, r0, r1
|
||||
movs r2, #0
|
||||
ldrsh r0, [r0, r2]
|
||||
mov r2, sb
|
||||
muls r2, r0, r2
|
||||
adds r0, r2, #0
|
||||
asrs r0, r0, #8
|
||||
mov r2, r8
|
||||
adds r5, r2, r0
|
||||
lsls r0, r3, #1
|
||||
adds r0, r0, r1
|
||||
movs r3, #0
|
||||
ldrsh r0, [r0, r3]
|
||||
mov r1, sb
|
||||
muls r1, r0, r1
|
||||
adds r0, r1, #0
|
||||
asrs r0, r0, #8
|
||||
ldr r2, [sp, #4]
|
||||
adds r2, r2, r0
|
||||
mov r8, r2
|
||||
movs r0, #0
|
||||
str r0, [sp]
|
||||
adds r0, r7, #0
|
||||
mov r1, sl
|
||||
adds r2, r6, #0
|
||||
adds r3, r4, #0
|
||||
bl sub_0801E64C
|
||||
movs r0, #1
|
||||
str r0, [sp]
|
||||
adds r0, r7, #0
|
||||
mov r1, sl
|
||||
adds r2, r5, #0
|
||||
mov r3, r8
|
||||
bl sub_0801E64C
|
||||
movs r0, #2
|
||||
str r0, [sp]
|
||||
adds r0, r6, #0
|
||||
adds r1, r4, #0
|
||||
adds r2, r5, #0
|
||||
mov r3, r8
|
||||
bl sub_0801E64C
|
||||
ldr r5, _0801E5F0 @ =gUnk_03003DE4
|
||||
ldrb r1, [r5]
|
||||
lsls r0, r1, #2
|
||||
adds r0, r0, r1
|
||||
lsls r0, r0, #9
|
||||
ldr r6, _0801E5F4 @ =gUnk_02017AA0
|
||||
adds r0, r0, r6
|
||||
movs r1, #0xa0
|
||||
lsls r1, r1, #4
|
||||
bl MemClear
|
||||
ldr r2, _0801E5E8 @ =gUnk_02018EE0
|
||||
ldrb r1, [r5]
|
||||
lsls r0, r1, #2
|
||||
adds r0, r0, r1
|
||||
lsls r0, r0, #9
|
||||
adds r1, r0, r6
|
||||
movs r3, #0xa0
|
||||
mov sl, r3
|
||||
_0801E5B0:
|
||||
ldr r7, [r2]
|
||||
ldr r6, [r2, #4]
|
||||
ldr r5, [r2, #8]
|
||||
adds r2, #0xc
|
||||
cmp r7, r6
|
||||
ble _0801E5C2
|
||||
adds r4, r7, #0
|
||||
adds r7, r6, #0
|
||||
adds r6, r4, #0
|
||||
_0801E5C2:
|
||||
cmp r7, r5
|
||||
ble _0801E5CC
|
||||
adds r4, r7, #0
|
||||
adds r7, r5, #0
|
||||
adds r5, r4, #0
|
||||
_0801E5CC:
|
||||
cmp r6, r5
|
||||
ble _0801E5D6
|
||||
adds r4, r6, #0
|
||||
adds r6, r5, #0
|
||||
adds r5, r4, #0
|
||||
_0801E5D6:
|
||||
movs r0, #1
|
||||
rsbs r0, r0, #0
|
||||
cmp r7, r0
|
||||
beq _0801E5F8
|
||||
strb r5, [r1]
|
||||
strb r7, [r1, #1]
|
||||
b _0801E60A
|
||||
.align 2, 0
|
||||
_0801E5E4: .4byte 0x0000FFFF
|
||||
_0801E5E8: .4byte gUnk_02018EE0
|
||||
_0801E5EC: .4byte gSineTable
|
||||
_0801E5F0: .4byte gUnk_03003DE4
|
||||
_0801E5F4: .4byte gUnk_02017AA0
|
||||
_0801E5F8:
|
||||
cmp r6, r7
|
||||
beq _0801E602
|
||||
strb r5, [r1]
|
||||
strb r6, [r1, #1]
|
||||
b _0801E60A
|
||||
_0801E602:
|
||||
cmp r5, r7
|
||||
beq _0801E60A
|
||||
strb r7, [r1, #1]
|
||||
strb r7, [r1]
|
||||
_0801E60A:
|
||||
movs r4, #1
|
||||
rsbs r4, r4, #0
|
||||
add sl, r4
|
||||
adds r1, #2
|
||||
mov r0, sl
|
||||
cmp r0, #0
|
||||
bgt _0801E5B0
|
||||
ldr r0, _0801E63C @ =gUnk_03003DE4
|
||||
ldrb r1, [r0]
|
||||
lsls r0, r1, #2
|
||||
adds r0, r0, r1
|
||||
lsls r0, r0, #9
|
||||
ldr r1, _0801E640 @ =gUnk_02017AA0
|
||||
adds r0, r0, r1
|
||||
ldr r1, _0801E644 @ =0x04000040
|
||||
ldr r2, _0801E648 @ =0xA2600001
|
||||
bl SetVBlankDMA
|
||||
add sp, #8
|
||||
pop {r3, r4, r5}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
mov sl, r5
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_0801E63C: .4byte gUnk_03003DE4
|
||||
_0801E640: .4byte gUnk_02017AA0
|
||||
_0801E644: .4byte 0x04000040
|
||||
_0801E648: .4byte 0xA2600001
|
||||
.syntax divided
|
||||
@@ -1,171 +0,0 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sl
|
||||
mov r6, sb
|
||||
mov r5, r8
|
||||
push {r5, r6, r7}
|
||||
mov ip, r0
|
||||
movs r0, #3
|
||||
add ip, r0
|
||||
subs r0, #7
|
||||
mov r1, ip
|
||||
ands r1, r0
|
||||
mov ip, r1
|
||||
ldr r6, _0801D90C @ =gzHeap
|
||||
mov sb, r6
|
||||
ldrh r7, [r6]
|
||||
movs r5, #1
|
||||
movs r3, #0x80
|
||||
lsls r3, r3, #5
|
||||
add r3, sb
|
||||
subs r4, r3, r1
|
||||
movs r2, #0
|
||||
b _0801D926
|
||||
.align 2, 0
|
||||
_0801D90C: .4byte gzHeap
|
||||
_0801D910:
|
||||
cmp r1, r4
|
||||
bhi _0801D918
|
||||
cmp r3, r0
|
||||
bls _0801D952
|
||||
_0801D918:
|
||||
cmp r4, r1
|
||||
bhi _0801D920
|
||||
cmp r0, r3
|
||||
bls _0801D952
|
||||
_0801D920:
|
||||
adds r0, r2, #1
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r2, r0, #0x10
|
||||
_0801D926:
|
||||
cmp r2, r7
|
||||
bhs _0801D94A
|
||||
lsls r0, r2, #2
|
||||
add r0, sb
|
||||
ldrh r1, [r0, #2]
|
||||
ldr r6, _0801D95C @ =gzHeap
|
||||
adds r1, r1, r6
|
||||
ldrh r0, [r0, #4]
|
||||
adds r0, r0, r6
|
||||
cmp r1, r4
|
||||
bhi _0801D940
|
||||
cmp r4, r0
|
||||
bls _0801D952
|
||||
_0801D940:
|
||||
cmp r1, r3
|
||||
bhi _0801D910
|
||||
cmp r3, r0
|
||||
bhi _0801D910
|
||||
movs r5, #0
|
||||
_0801D94A:
|
||||
lsls r0, r7, #2
|
||||
mov sl, r0
|
||||
cmp r5, #0
|
||||
bne _0801D9D8
|
||||
_0801D952:
|
||||
movs r1, #0
|
||||
mov r8, r1
|
||||
lsls r6, r7, #2
|
||||
mov sl, r6
|
||||
b _0801D970
|
||||
.align 2, 0
|
||||
_0801D95C: .4byte gzHeap
|
||||
_0801D960:
|
||||
movs r5, #0
|
||||
_0801D962:
|
||||
mov r0, r8
|
||||
adds r0, #1
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r0, r0, #0x10
|
||||
mov r8, r0
|
||||
cmp r8, r7
|
||||
bhs _0801D9D4
|
||||
_0801D970:
|
||||
mov r1, r8
|
||||
lsls r0, r1, #2
|
||||
add r0, sb
|
||||
ldrh r0, [r0, #2]
|
||||
ldr r6, _0801D994 @ =gzHeap
|
||||
adds r3, r0, r6
|
||||
mov r0, ip
|
||||
subs r4, r3, r0
|
||||
movs r5, #0
|
||||
mov r0, sl
|
||||
adds r0, #2
|
||||
add r0, sb
|
||||
adds r0, #4
|
||||
cmp r4, r0
|
||||
blo _0801D962
|
||||
movs r5, #1
|
||||
movs r2, #0
|
||||
b _0801D9AE
|
||||
.align 2, 0
|
||||
_0801D994: .4byte gzHeap
|
||||
_0801D998:
|
||||
cmp r1, r4
|
||||
bhi _0801D9A0
|
||||
cmp r3, r0
|
||||
bls _0801D960
|
||||
_0801D9A0:
|
||||
cmp r4, r1
|
||||
bhi _0801D9A8
|
||||
cmp r0, r3
|
||||
bls _0801D960
|
||||
_0801D9A8:
|
||||
adds r0, r2, #1
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r2, r0, #0x10
|
||||
_0801D9AE:
|
||||
cmp r2, r7
|
||||
bhs _0801D9D0
|
||||
lsls r0, r2, #2
|
||||
add r0, sb
|
||||
ldrh r1, [r0, #2]
|
||||
adds r1, r1, r6
|
||||
ldrh r0, [r0, #4]
|
||||
adds r0, r0, r6
|
||||
cmp r1, r4
|
||||
bhi _0801D9C6
|
||||
cmp r4, r0
|
||||
blo _0801D960
|
||||
_0801D9C6:
|
||||
cmp r1, r3
|
||||
bhs _0801D998
|
||||
cmp r3, r0
|
||||
bhi _0801D998
|
||||
movs r5, #0
|
||||
_0801D9D0:
|
||||
cmp r5, #0
|
||||
beq _0801D962
|
||||
_0801D9D4:
|
||||
cmp r5, #0
|
||||
beq _0801DA00
|
||||
_0801D9D8:
|
||||
ldr r0, _0801D9FC @ =gUnk_02035542
|
||||
mov r1, sl
|
||||
adds r2, r1, r0
|
||||
subs r3, r0, #2
|
||||
subs r1, r4, r3
|
||||
strh r1, [r2]
|
||||
adds r0, #2
|
||||
add r0, sl
|
||||
add r1, ip
|
||||
strh r1, [r0]
|
||||
adds r0, r7, #1
|
||||
strh r0, [r3]
|
||||
adds r0, r4, #0
|
||||
mov r1, ip
|
||||
bl MemClear
|
||||
adds r0, r4, #0
|
||||
b _0801DA02
|
||||
.align 2, 0
|
||||
_0801D9FC: .4byte gUnk_02035542
|
||||
_0801DA00:
|
||||
movs r0, #0
|
||||
_0801DA02:
|
||||
pop {r3, r4, r5}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
mov sl, r5
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.syntax divided
|
||||
@@ -1,365 +0,0 @@
|
||||
.syntax unified
|
||||
.ifdef JP
|
||||
push {r4, lr}
|
||||
adds r2, r0, #0
|
||||
lsls r1, r1, #3
|
||||
ldr r0, _08087FB0 @ =gUnk_080FC3E4
|
||||
adds r1, r1, r0
|
||||
movs r4, #0
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x7c
|
||||
ldrb r0, [r0]
|
||||
ldrb r3, [r1, #6]
|
||||
cmp r0, r3
|
||||
bhs _08088068
|
||||
ldrb r0, [r1, #6]
|
||||
cmp r0, #0x10
|
||||
beq _08087FC6
|
||||
cmp r0, #0x10
|
||||
bgt _08087FB4
|
||||
cmp r0, #8
|
||||
beq _08087FBC
|
||||
b _0808806A
|
||||
.align 2, 0
|
||||
_08087FB0: .4byte gUnk_080FC3E4
|
||||
_08087FB4:
|
||||
cmp r0, #0x20
|
||||
beq _08087FCA
|
||||
cmp r0, #0x40
|
||||
bne _0808806A
|
||||
_08087FBC:
|
||||
ldr r0, [r1]
|
||||
ldrh r1, [r1, #4]
|
||||
bl CheckLocalFlagByBank
|
||||
b _08088064EU
|
||||
_08087FC6:
|
||||
ldrh r0, [r1, #4]
|
||||
b _08088060EU
|
||||
_08087FCA:
|
||||
ldrh r0, [r1, #4]
|
||||
cmp r0, #4
|
||||
bhi _0808806A
|
||||
lsls r0, r0, #2
|
||||
ldr r1, _08087FDC @ =_08087FE0
|
||||
adds r0, r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_08087FDC: .4byte _08087FE0
|
||||
_08087FE0: @ jump table
|
||||
.4byte _08087FF4 @ case 0
|
||||
.4byte _0808800C @ case 1
|
||||
.4byte _0808801A @ case 2
|
||||
.4byte _08088032 @ case 3
|
||||
.4byte _0808804A @ case 4
|
||||
_08087FF4:
|
||||
movs r0, #0x20
|
||||
bl CheckKinstoneFused
|
||||
cmp r0, #0
|
||||
bne _08088068
|
||||
movs r0, #0x10
|
||||
bl CheckKinstoneFused
|
||||
cmp r0, #0
|
||||
bne _08088068
|
||||
movs r0, #0x19
|
||||
b _08088060EU
|
||||
_0808800C:
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x7c
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #4
|
||||
bls _0808806A
|
||||
movs r0, #0x28
|
||||
b _08088060EU
|
||||
_0808801A:
|
||||
movs r0, #0x54
|
||||
bl CheckKinstoneFused
|
||||
cmp r0, #0
|
||||
bne _08088068
|
||||
movs r0, #0x56
|
||||
bl CheckKinstoneFused
|
||||
cmp r0, #0
|
||||
bne _08088068
|
||||
movs r0, #0x3d
|
||||
b _08088060EU
|
||||
_08088032:
|
||||
movs r0, #0x3b
|
||||
bl CheckKinstoneFused
|
||||
cmp r0, #0
|
||||
bne _08088068
|
||||
movs r0, #0x4a
|
||||
bl CheckKinstoneFused
|
||||
cmp r0, #0
|
||||
bne _08088068
|
||||
movs r0, #0xd
|
||||
b _08088060EU
|
||||
_0808804A:
|
||||
movs r0, #0x49
|
||||
bl CheckKinstoneFused
|
||||
cmp r0, #0
|
||||
bne _08088068
|
||||
movs r0, #0x55
|
||||
bl CheckKinstoneFused
|
||||
cmp r0, #0
|
||||
bne _08088068
|
||||
movs r0, #0x3c
|
||||
_08088060EU:
|
||||
bl CheckKinstoneFused
|
||||
_08088064EU:
|
||||
cmp r0, #0
|
||||
beq _0808806A
|
||||
_08088068:
|
||||
movs r4, #1
|
||||
_0808806A:
|
||||
adds r0, r4, #0
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
.else
|
||||
.ifdef EU
|
||||
push {r4, lr}
|
||||
adds r2, r0, #0
|
||||
lsls r1, r1, #3
|
||||
ldr r0, _08087B44 @ =gUnk_080FC3E4
|
||||
adds r1, r1, r0
|
||||
movs r4, #0
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x7d
|
||||
ldrb r0, [r0]
|
||||
ldrb r3, [r1, #6]
|
||||
cmp r0, r3
|
||||
bhs _08087BFC
|
||||
ldrb r0, [r1, #6]
|
||||
cmp r0, #0x10
|
||||
beq _08087B5A
|
||||
cmp r0, #0x10
|
||||
bgt _08087B48
|
||||
cmp r0, #8
|
||||
beq _08087B50
|
||||
b _08087BFE
|
||||
.align 2, 0
|
||||
_08087B44: .4byte gUnk_080FC3E4
|
||||
_08087B48:
|
||||
cmp r0, #0x20
|
||||
beq _08087B5E
|
||||
cmp r0, #0x40
|
||||
bne _08087BFE
|
||||
_08087B50:
|
||||
ldr r0, [r1]
|
||||
ldrh r1, [r1, #4]
|
||||
bl CheckLocalFlagByBank
|
||||
b _08087BF8
|
||||
_08087B5A:
|
||||
ldrh r0, [r1, #4]
|
||||
b _08087BF4
|
||||
_08087B5E:
|
||||
ldrh r0, [r1, #4]
|
||||
cmp r0, #4
|
||||
bhi _08087BFE
|
||||
lsls r0, r0, #2
|
||||
ldr r1, _08087B70 @ =_08087B74
|
||||
adds r0, r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_08087B70: .4byte _08087B74
|
||||
_08087B74: @ jump table
|
||||
.4byte _08087B88 @ case 0
|
||||
.4byte _08087BA0 @ case 1
|
||||
.4byte _08087BAE @ case 2
|
||||
.4byte _08087BC6 @ case 3
|
||||
.4byte _08087BDE @ case 4
|
||||
_08087B88:
|
||||
movs r0, #0x20
|
||||
bl CheckKinstoneFused
|
||||
cmp r0, #0
|
||||
bne _08087BFC
|
||||
movs r0, #0x10
|
||||
bl CheckKinstoneFused
|
||||
cmp r0, #0
|
||||
bne _08087BFC
|
||||
movs r0, #0x19
|
||||
b _08087BF4
|
||||
_08087BA0:
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x7d
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #4
|
||||
bls _08087BFE
|
||||
movs r0, #0x28
|
||||
b _08087BF4
|
||||
_08087BAE:
|
||||
movs r0, #0x54
|
||||
bl CheckKinstoneFused
|
||||
cmp r0, #0
|
||||
bne _08087BFC
|
||||
movs r0, #0x56
|
||||
bl CheckKinstoneFused
|
||||
cmp r0, #0
|
||||
bne _08087BFC
|
||||
movs r0, #0x3d
|
||||
b _08087BF4
|
||||
_08087BC6:
|
||||
movs r0, #0x3b
|
||||
bl CheckKinstoneFused
|
||||
cmp r0, #0
|
||||
bne _08087BFC
|
||||
movs r0, #0x4a
|
||||
bl CheckKinstoneFused
|
||||
cmp r0, #0
|
||||
bne _08087BFC
|
||||
movs r0, #0xd
|
||||
b _08087BF4
|
||||
_08087BDE:
|
||||
movs r0, #0x49
|
||||
bl CheckKinstoneFused
|
||||
cmp r0, #0
|
||||
bne _08087BFC
|
||||
movs r0, #0x55
|
||||
bl CheckKinstoneFused
|
||||
cmp r0, #0
|
||||
bne _08087BFC
|
||||
movs r0, #0x3c
|
||||
_08087BF4:
|
||||
bl CheckKinstoneFused
|
||||
_08087BF8:
|
||||
cmp r0, #0
|
||||
beq _08087BFE
|
||||
_08087BFC:
|
||||
movs r4, #1
|
||||
_08087BFE:
|
||||
adds r0, r4, #0
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
.else
|
||||
push {r4, lr}
|
||||
adds r2, r0, #0
|
||||
lsls r1, r1, #3
|
||||
ldr r0, _08088188 @ =gUnk_080FC3E4
|
||||
adds r1, r1, r0
|
||||
movs r4, #0
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x7c
|
||||
ldrb r0, [r0]
|
||||
ldrb r3, [r1, #6]
|
||||
cmp r0, r3
|
||||
bhs _08088266
|
||||
ldrb r0, [r1, #6]
|
||||
cmp r0, #0x10
|
||||
beq _0808819E
|
||||
cmp r0, #0x10
|
||||
bgt _0808818C
|
||||
cmp r0, #8
|
||||
beq _08088194
|
||||
b _08088268
|
||||
.align 2, 0
|
||||
_08088188: .4byte gUnk_080FC3E4
|
||||
_0808818C:
|
||||
cmp r0, #0x20
|
||||
beq _080881A6
|
||||
cmp r0, #0x40
|
||||
bne _08088268
|
||||
_08088194:
|
||||
ldr r0, [r1]
|
||||
ldrh r1, [r1, #4]
|
||||
bl CheckLocalFlagByBank
|
||||
b _08088262
|
||||
_0808819E:
|
||||
ldrh r0, [r1, #4]
|
||||
.ifndef JP
|
||||
bl CheckKinstoneFused
|
||||
.endif
|
||||
b _08088262
|
||||
_080881A6:
|
||||
ldrh r0, [r1, #4]
|
||||
cmp r0, #5
|
||||
bhi _08088268
|
||||
lsls r0, r0, #2
|
||||
ldr r1, _080881B8 @ =_080881BC
|
||||
adds r0, r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_080881B8: .4byte _080881BC
|
||||
_080881BC: @ jump table
|
||||
.4byte _080881D4 @ case 0
|
||||
.4byte _080881F0 @ case 1
|
||||
.4byte _080881FE @ case 2
|
||||
.4byte _0808821A @ case 3
|
||||
.4byte _08088236 @ case 4
|
||||
.4byte _08088252 @ case 5
|
||||
_080881D4:
|
||||
movs r0, #0x20
|
||||
bl CheckKinstoneFused
|
||||
cmp r0, #0
|
||||
bne _08088266
|
||||
movs r0, #0x10
|
||||
bl CheckKinstoneFused
|
||||
cmp r0, #0
|
||||
bne _08088266
|
||||
movs r0, #0x19
|
||||
_080881EA:
|
||||
bl CheckKinstoneFused
|
||||
b _08088262
|
||||
_080881F0:
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x7c
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #4
|
||||
bls _08088268
|
||||
movs r0, #0x28
|
||||
b _080881EA
|
||||
_080881FE:
|
||||
movs r0, #0x54
|
||||
bl CheckKinstoneFused
|
||||
cmp r0, #0
|
||||
bne _08088266
|
||||
movs r0, #0x56
|
||||
bl CheckKinstoneFused
|
||||
cmp r0, #0
|
||||
bne _08088266
|
||||
movs r0, #0x3d
|
||||
bl CheckKinstoneFused
|
||||
b _08088262
|
||||
_0808821A:
|
||||
movs r0, #0x3b
|
||||
bl CheckKinstoneFused
|
||||
cmp r0, #0
|
||||
bne _08088266
|
||||
movs r0, #0x4a
|
||||
bl CheckKinstoneFused
|
||||
cmp r0, #0
|
||||
bne _08088266
|
||||
movs r0, #0xd
|
||||
bl CheckKinstoneFused
|
||||
b _08088262
|
||||
_08088236:
|
||||
movs r0, #0x49
|
||||
bl CheckKinstoneFused
|
||||
cmp r0, #0
|
||||
bne _08088266
|
||||
movs r0, #0x55
|
||||
bl CheckKinstoneFused
|
||||
cmp r0, #0
|
||||
bne _08088266
|
||||
movs r0, #0x3c
|
||||
bl CheckKinstoneFused
|
||||
b _08088262
|
||||
_08088252:
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x7c
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #1
|
||||
bls _08088268
|
||||
movs r0, #0x12
|
||||
bl CheckGlobalFlag
|
||||
_08088262:
|
||||
cmp r0, #0
|
||||
beq _08088268
|
||||
_08088266:
|
||||
movs r4, #1
|
||||
_08088268:
|
||||
adds r0, r4, #0
|
||||
pop {r4, pc}
|
||||
.endif
|
||||
.endif
|
||||
.syntax divided
|
||||
@@ -1,219 +0,0 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, r7, lr}
|
||||
adds r5, r0, #0
|
||||
adds r6, r1, #0
|
||||
ldr r4, _08076334 @ =gPlayerState
|
||||
ldrb r0, [r4, #5]
|
||||
movs r1, #0xcf
|
||||
ands r1, r0
|
||||
strb r1, [r4, #5]
|
||||
adds r0, r5, #0
|
||||
adds r1, r6, #0
|
||||
bl PlayerTryDropObject
|
||||
cmp r0, #0
|
||||
bne _080762F6
|
||||
b _08076486
|
||||
_080762F6:
|
||||
ldr r0, _08076338 @ =gPlayerEntity
|
||||
adds r1, r0, #0
|
||||
adds r1, #0x3d
|
||||
ldrb r1, [r1]
|
||||
lsls r1, r1, #0x18
|
||||
asrs r1, r1, #0x18
|
||||
adds r3, r0, #0
|
||||
cmp r1, #8
|
||||
bgt _0807636C
|
||||
adds r0, #0x42
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _0807636C
|
||||
ldr r2, [r5, #0x18]
|
||||
cmp r2, #0
|
||||
beq _08076340
|
||||
ldrh r1, [r2, #0xc]
|
||||
ldr r0, _0807633C @ =0x00000502
|
||||
cmp r1, r0
|
||||
bne _08076376
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x90
|
||||
ldrh r1, [r0]
|
||||
movs r0, #0x80
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _08076340
|
||||
movs r0, #6
|
||||
strb r0, [r2, #0xd]
|
||||
b _08076376
|
||||
.align 2, 0
|
||||
_08076334: .4byte gPlayerState
|
||||
_08076338: .4byte gPlayerEntity
|
||||
_0807633C: .4byte 0x00000502
|
||||
_08076340:
|
||||
ldr r2, _08076364 @ =gPlayerState
|
||||
adds r1, r2, #0
|
||||
adds r1, #0xa8
|
||||
movs r0, #5
|
||||
strb r0, [r1]
|
||||
ldr r0, _08076368 @ =gHUD
|
||||
adds r0, #0x2e
|
||||
movs r1, #8
|
||||
strb r1, [r0]
|
||||
ldrb r0, [r2, #2]
|
||||
cmp r0, #0
|
||||
beq _0807635A
|
||||
b _0807647E
|
||||
_0807635A:
|
||||
ldrb r0, [r2, #5]
|
||||
cmp r0, #1
|
||||
bne _08076394
|
||||
b _08076380
|
||||
.align 2, 0
|
||||
_08076364: .4byte gPlayerState
|
||||
_08076368: .4byte gHUD
|
||||
_0807636C:
|
||||
ldr r1, [r5, #0x18]
|
||||
cmp r1, #0
|
||||
beq _08076376
|
||||
movs r0, #6
|
||||
strb r0, [r1, #0xd]
|
||||
_08076376:
|
||||
adds r0, r5, #0
|
||||
adds r1, r6, #0
|
||||
bl PlayerCancelHoldItem
|
||||
b _08076486
|
||||
_08076380:
|
||||
adds r0, r3, #0
|
||||
movs r1, #6
|
||||
adds r2, r5, #0
|
||||
bl sub_0800875A
|
||||
cmp r0, #0
|
||||
beq _08076394
|
||||
adds r0, r5, #0
|
||||
movs r1, #0
|
||||
b _080763EC
|
||||
_08076394:
|
||||
ldr r1, _080763F4 @ =gUnk_0811BE38
|
||||
ldr r7, _080763F8 @ =gPlayerEntity
|
||||
ldrb r0, [r7, #0x14]
|
||||
lsrs r0, r0, #1
|
||||
lsls r3, r0, #1
|
||||
adds r1, r3, r1
|
||||
ldr r4, _080763FC @ =gPlayerState
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x90
|
||||
ldrh r0, [r1]
|
||||
ldrh r2, [r2]
|
||||
ands r0, r2
|
||||
cmp r0, #0
|
||||
beq _08076400
|
||||
adds r0, r5, #0
|
||||
bl UpdateItemAnim
|
||||
ldr r0, [r4, #0x30]
|
||||
movs r1, #8
|
||||
ands r0, r1
|
||||
movs r1, #0x94
|
||||
lsls r1, r1, #4
|
||||
cmp r0, #0
|
||||
bne _080763C8
|
||||
movs r1, #0xd0
|
||||
lsls r1, r1, #2
|
||||
_080763C8:
|
||||
ldrh r0, [r5, #0x10]
|
||||
cmp r1, r0
|
||||
beq _080763D4
|
||||
adds r0, r5, #0
|
||||
bl SetItemAnim
|
||||
_080763D4:
|
||||
ldrb r0, [r4, #5]
|
||||
movs r1, #0x10
|
||||
orrs r1, r0
|
||||
strb r1, [r4, #5]
|
||||
adds r2, r4, #0
|
||||
adds r2, #0xa8
|
||||
movs r0, #0x1a
|
||||
strb r0, [r2]
|
||||
cmp r1, #1
|
||||
beq _08076486
|
||||
ldr r1, [r5, #0x18]
|
||||
adds r0, r5, #0
|
||||
_080763EC:
|
||||
adds r2, r6, #0
|
||||
bl sub_08076088
|
||||
b _08076486
|
||||
.align 2, 0
|
||||
_080763F4: .4byte gUnk_0811BE38
|
||||
_080763F8: .4byte gPlayerEntity
|
||||
_080763FC: .4byte gPlayerState
|
||||
_08076400:
|
||||
ldr r0, _08076418 @ =gUnk_0811BE40
|
||||
adds r0, r3, r0
|
||||
ldrh r0, [r0]
|
||||
ands r0, r2
|
||||
cmp r0, #0
|
||||
beq _08076460
|
||||
ldrb r0, [r7, #0xf]
|
||||
cmp r0, #5
|
||||
bhi _0807641C
|
||||
adds r0, #1
|
||||
strb r0, [r7, #0xf]
|
||||
b _08076486
|
||||
.align 2, 0
|
||||
_08076418: .4byte gUnk_0811BE40
|
||||
_0807641C:
|
||||
ldrb r0, [r5, #0xa]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x35
|
||||
strb r0, [r1]
|
||||
ldrb r0, [r4, #6]
|
||||
movs r1, #0x80
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #6]
|
||||
ldrb r1, [r4, #5]
|
||||
movs r0, #0x20
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #5]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0xa8
|
||||
movs r0, #0x19
|
||||
strb r0, [r1]
|
||||
ldr r0, [r4, #0x30]
|
||||
movs r1, #8
|
||||
ands r0, r1
|
||||
ldr r1, _0807645C @ =0x0000093C
|
||||
cmp r0, #0
|
||||
bne _0807644C
|
||||
movs r1, #0xcf
|
||||
lsls r1, r1, #2
|
||||
_0807644C:
|
||||
ldrh r0, [r5, #0x10]
|
||||
cmp r1, r0
|
||||
bne _08076476
|
||||
adds r0, r5, #0
|
||||
bl UpdateItemAnim
|
||||
b _08076486
|
||||
.align 2, 0
|
||||
_0807645C: .4byte 0x0000093C
|
||||
_08076460:
|
||||
strb r0, [r7, #0xf]
|
||||
ldr r0, [r4, #0x30]
|
||||
movs r1, #8
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _08076472
|
||||
movs r1, #0xd0
|
||||
lsls r1, r1, #2
|
||||
b _08076476
|
||||
_08076472:
|
||||
movs r1, #0x94
|
||||
lsls r1, r1, #4
|
||||
_08076476:
|
||||
adds r0, r5, #0
|
||||
bl SetItemAnim
|
||||
b _08076486
|
||||
_0807647E:
|
||||
adds r0, r5, #0
|
||||
adds r1, r6, #0
|
||||
bl PlayerCancelHoldItem
|
||||
_08076486:
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.syntax divided
|
||||
@@ -1,112 +0,0 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sb
|
||||
mov r6, r8
|
||||
push {r6, r7}
|
||||
ldr r4, _080A4210 @ =gOamCmd
|
||||
movs r0, #0
|
||||
strh r0, [r4, #4]
|
||||
strh r0, [r4, #6]
|
||||
ldr r0, _080A4214 @ =gMenu
|
||||
ldrh r0, [r0, #0x10]
|
||||
ldr r1, _080A4218 @ =0x00000B21
|
||||
bl __divsi3
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r0, r0, #0x10
|
||||
movs r5, #3
|
||||
rsbs r5, r5, #0
|
||||
movs r1, #0xff
|
||||
mov r8, r1
|
||||
adds r7, r4, #0
|
||||
ldr r6, _080A421C @ =gSineTable
|
||||
rsbs r0, r0, #0
|
||||
adds r4, r0, #0
|
||||
subs r4, #0x45
|
||||
ldr r2, _080A4220 @ =gSave+0x12b
|
||||
mov sb, r2
|
||||
_080A4180:
|
||||
adds r2, r4, #0
|
||||
mov r3, r8
|
||||
ands r2, r3
|
||||
lsls r0, r2, #1
|
||||
adds r0, r0, r6
|
||||
movs r3, #0
|
||||
ldrsh r1, [r0, r3]
|
||||
lsls r0, r1, #4
|
||||
adds r0, r0, r1
|
||||
lsls r0, r0, #2
|
||||
cmp r0, #0
|
||||
bge _080A419A
|
||||
adds r0, #0xff
|
||||
_080A419A:
|
||||
asrs r0, r0, #8
|
||||
adds r0, #0x4f
|
||||
strh r0, [r7, #2]
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x40
|
||||
mov r1, r8
|
||||
ands r0, r1
|
||||
lsls r0, r0, #1
|
||||
adds r0, r0, r6
|
||||
movs r2, #0
|
||||
ldrsh r1, [r0, r2]
|
||||
lsls r0, r1, #5
|
||||
adds r0, r0, r1
|
||||
lsls r0, r0, #1
|
||||
cmp r0, #0
|
||||
bge _080A41BC
|
||||
adds r0, #0xff
|
||||
_080A41BC:
|
||||
asrs r0, r0, #8
|
||||
subs r0, #0x10
|
||||
strh r0, [r7]
|
||||
ldr r2, _080A4214 @ =gMenu
|
||||
ldr r0, [r2, #0x10]
|
||||
cmp r0, #0
|
||||
bge _080A41CE
|
||||
ldr r3, _080A4224 @ =0x0000FFFF
|
||||
adds r0, r0, r3
|
||||
_080A41CE:
|
||||
asrs r0, r0, #0x10
|
||||
adds r3, r0, r5
|
||||
cmp r3, #0
|
||||
blt _080A4200
|
||||
mov r1, sb
|
||||
adds r0, r3, r1
|
||||
ldrb r1, [r0]
|
||||
ldr r0, _080A4228 @ =gSave
|
||||
cmp r5, #0
|
||||
bne _080A41EE
|
||||
ldrb r2, [r2, #1]
|
||||
cmp r2, #4
|
||||
bgt _080A41EE
|
||||
cmp r2, #3
|
||||
blt _080A41EE
|
||||
subs r1, #1
|
||||
_080A41EE:
|
||||
cmp r1, #0
|
||||
ble _080A4200
|
||||
movs r2, #0x8c
|
||||
lsls r2, r2, #1
|
||||
adds r0, r0, r2
|
||||
adds r0, r3, r0
|
||||
ldrb r0, [r0]
|
||||
bl sub_080A42E0
|
||||
_080A4200:
|
||||
adds r4, #0x17
|
||||
adds r5, #1
|
||||
cmp r5, #3
|
||||
ble _080A4180
|
||||
pop {r3, r4}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_080A4210: .4byte gOamCmd
|
||||
_080A4214: .4byte gMenu
|
||||
_080A4218: .4byte 0x00000B21
|
||||
_080A421C: .4byte gSineTable
|
||||
_080A4220: .4byte gSave+0x12b
|
||||
_080A4224: .4byte 0x0000FFFF
|
||||
_080A4228: .4byte gSave
|
||||
.syntax divided
|
||||
@@ -1,66 +0,0 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, lr}
|
||||
mov ip, r0
|
||||
adds r5, r1, #0
|
||||
ldrb r1, [r0, #0xb]
|
||||
movs r0, #0x10
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0806650A
|
||||
mov r1, ip
|
||||
ldrh r0, [r1, #0x2e]
|
||||
adds r1, #0x86
|
||||
strh r0, [r1]
|
||||
mov r0, ip
|
||||
adds r0, #0x7e
|
||||
ldrh r2, [r0]
|
||||
adds r0, #4
|
||||
ldrh r0, [r0]
|
||||
adds r3, r2, r0
|
||||
subs r4, r2, r0
|
||||
movs r6, #0x2e
|
||||
ldrsh r0, [r5, r6]
|
||||
cmp r0, r3
|
||||
bge _080664C6
|
||||
cmp r0, r4
|
||||
ble _080664C6
|
||||
adds r2, r0, #0
|
||||
b _080664D2
|
||||
_080664C6:
|
||||
movs r2, #0x2e
|
||||
ldrsh r0, [r5, r2]
|
||||
adds r2, r4, #0
|
||||
cmp r0, r3
|
||||
blt _080664D2
|
||||
adds r2, r3, #0
|
||||
_080664D2:
|
||||
ldrh r0, [r1]
|
||||
cmp r0, r2
|
||||
bne _080664F0
|
||||
mov r1, ip
|
||||
adds r1, #0x84
|
||||
ldrh r0, [r1]
|
||||
cmp r0, #1
|
||||
bne _0806650A
|
||||
movs r0, #0
|
||||
strh r0, [r1]
|
||||
mov r0, ip
|
||||
movs r1, #2
|
||||
bl InitializeAnimation
|
||||
b _0806650A
|
||||
_080664F0:
|
||||
mov r6, ip
|
||||
strh r2, [r6, #0x2e]
|
||||
mov r1, ip
|
||||
adds r1, #0x84
|
||||
ldrh r0, [r1]
|
||||
cmp r0, #0
|
||||
bne _0806650A
|
||||
movs r0, #1
|
||||
strh r0, [r1]
|
||||
mov r0, ip
|
||||
movs r1, #6
|
||||
bl InitializeAnimation
|
||||
_0806650A:
|
||||
pop {r4, r5, r6, pc}
|
||||
.syntax divided
|
||||
@@ -1,144 +0,0 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sl
|
||||
mov r6, sb
|
||||
mov r5, r8
|
||||
push {r5, r6, r7}
|
||||
sub sp, #8
|
||||
mov sb, r0
|
||||
movs r6, #0
|
||||
ldr r0, [r0, #0x64]
|
||||
str r0, [sp, #4]
|
||||
mov r4, sb
|
||||
adds r4, #0x70
|
||||
ldr r0, _080A12F8 @ =gRoomControls
|
||||
movs r2, #0xd8
|
||||
lsls r2, r2, #2
|
||||
adds r1, r2, #0
|
||||
ldrh r3, [r0, #6]
|
||||
adds r1, r1, r3
|
||||
movs r7, #0xd4
|
||||
lsls r7, r7, #2
|
||||
adds r2, r7, #0
|
||||
ldrh r0, [r0, #8]
|
||||
adds r2, r2, r0
|
||||
lsls r1, r1, #0x10
|
||||
asrs r1, r1, #0x10
|
||||
mov r8, r1
|
||||
lsls r2, r2, #0x10
|
||||
asrs r3, r2, #0x10
|
||||
movs r0, #9
|
||||
mov sl, r0
|
||||
movs r1, #1
|
||||
rsbs r1, r1, #0
|
||||
adds r5, r1, #0
|
||||
_080A12B2:
|
||||
ldr r7, [sp, #4]
|
||||
ldr r2, [r7]
|
||||
movs r0, #0
|
||||
ldrsb r0, [r4, r0]
|
||||
cmp r0, #0
|
||||
bne _080A1300
|
||||
ldr r0, [r2, #4]
|
||||
cmp r0, #0
|
||||
beq _080A132C
|
||||
cmp r2, #0
|
||||
beq _080A132C
|
||||
movs r1, #0x2e
|
||||
ldrsh r0, [r2, r1]
|
||||
cmp r8, r0
|
||||
bgt _080A132E
|
||||
movs r7, #0x32
|
||||
ldrsh r0, [r2, r7]
|
||||
cmp r3, r0
|
||||
bgt _080A132E
|
||||
ldrb r0, [r2, #0xa]
|
||||
adds r0, #1
|
||||
strb r0, [r4]
|
||||
movs r0, #1
|
||||
strb r0, [r2, #0xb]
|
||||
adds r6, #1
|
||||
ldr r1, _080A12FC @ =CuccoMinigame_Sounds
|
||||
ldrb r0, [r2, #0xa]
|
||||
lsls r0, r0, #1
|
||||
adds r0, r0, r1
|
||||
ldrh r0, [r0]
|
||||
str r3, [sp]
|
||||
bl SoundReq
|
||||
ldr r3, [sp]
|
||||
b _080A132E
|
||||
.align 2, 0
|
||||
_080A12F8: .4byte gRoomControls
|
||||
_080A12FC: .4byte CuccoMinigame_Sounds
|
||||
_080A1300:
|
||||
cmp r0, #0
|
||||
ble _080A132E
|
||||
adds r6, #1
|
||||
ldr r0, [r2, #4]
|
||||
cmp r0, #0
|
||||
beq _080A132C
|
||||
cmp r2, #0
|
||||
beq _080A132C
|
||||
mov r1, r8
|
||||
adds r1, #4
|
||||
movs r7, #0x2e
|
||||
ldrsh r0, [r2, r7]
|
||||
cmp r1, r0
|
||||
ble _080A131E
|
||||
strh r1, [r2, #0x2e]
|
||||
_080A131E:
|
||||
adds r1, r3, #4
|
||||
movs r7, #0x32
|
||||
ldrsh r0, [r2, r7]
|
||||
cmp r1, r0
|
||||
ble _080A132E
|
||||
strh r1, [r2, #0x32]
|
||||
b _080A132E
|
||||
_080A132C:
|
||||
strb r5, [r4]
|
||||
_080A132E:
|
||||
movs r0, #1
|
||||
rsbs r0, r0, #0
|
||||
add sl, r0
|
||||
adds r4, #1
|
||||
ldr r1, [sp, #4]
|
||||
adds r1, #4
|
||||
str r1, [sp, #4]
|
||||
mov r2, sl
|
||||
cmp r2, #0
|
||||
bge _080A12B2
|
||||
mov r0, sb
|
||||
adds r0, #0x6a
|
||||
strh r6, [r0]
|
||||
ldr r0, _080A136C @ =gPlayerState
|
||||
adds r0, #0x27
|
||||
movs r1, #0xff
|
||||
strb r1, [r0]
|
||||
mov r1, sb
|
||||
adds r1, #0x68
|
||||
ldrh r0, [r1]
|
||||
subs r0, #1
|
||||
strh r0, [r1]
|
||||
lsls r0, r0, #0x10
|
||||
cmp r0, #0
|
||||
bgt _080A1370
|
||||
movs r0, #0xe2
|
||||
bl SoundReq
|
||||
bl sub_08050384
|
||||
b _080A1376
|
||||
.align 2, 0
|
||||
_080A136C: .4byte gPlayerState
|
||||
_080A1370:
|
||||
ldr r1, _080A1384 @ =gActiveScriptInfo
|
||||
movs r0, #0
|
||||
strb r0, [r1, #6]
|
||||
_080A1376:
|
||||
add sp, #8
|
||||
pop {r3, r4, r5}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
mov sl, r5
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_080A1384: .4byte gActiveScriptInfo
|
||||
.syntax divided
|
||||
@@ -1,315 +0,0 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sl
|
||||
mov r6, sb
|
||||
mov r5, r8
|
||||
push {r5, r6, r7}
|
||||
ldr r0, _080784FC @ =gPossibleInteraction
|
||||
ldrb r1, [r0]
|
||||
mov r8, r0
|
||||
cmp r1, #0
|
||||
beq _08078500
|
||||
ldr r0, [r0, #4]
|
||||
b _0807876A
|
||||
.align 2, 0
|
||||
_080784FC: .4byte gPossibleInteraction
|
||||
_08078500:
|
||||
ldr r2, _08078528 @ =gPlayerState
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x27
|
||||
adds r3, r2, #0
|
||||
adds r3, #0x26
|
||||
ldrb r1, [r0]
|
||||
ldrb r0, [r3]
|
||||
orrs r0, r1
|
||||
cmp r0, #0
|
||||
bne _08078598
|
||||
adds r1, r2, #0
|
||||
adds r1, #0xa8
|
||||
ldrb r0, [r1]
|
||||
cmp r0, #0
|
||||
bne _0807852C
|
||||
adds r0, r2, #0
|
||||
adds r0, #0xa9
|
||||
ldrb r0, [r0]
|
||||
b _0807852E
|
||||
.align 2, 0
|
||||
_08078528: .4byte gPlayerState
|
||||
_0807852C:
|
||||
ldrb r0, [r1]
|
||||
_0807852E:
|
||||
subs r0, #2
|
||||
cmp r0, #0x14
|
||||
bhi _080785B0
|
||||
lsls r0, r0, #2
|
||||
ldr r1, _08078540 @ =_08078544
|
||||
adds r0, r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_08078540: .4byte _08078544
|
||||
_08078544: @ jump table
|
||||
.4byte _08078598 @ case 0
|
||||
.4byte _08078598 @ case 1
|
||||
.4byte _080785B0 @ case 2
|
||||
.4byte _080785B0 @ case 3
|
||||
.4byte _080785B0 @ case 4
|
||||
.4byte _080785B0 @ case 5
|
||||
.4byte _080785B0 @ case 6
|
||||
.4byte _080785B0 @ case 7
|
||||
.4byte _080785B0 @ case 8
|
||||
.4byte _080785B0 @ case 9
|
||||
.4byte _080785B0 @ case 10
|
||||
.4byte _080785B0 @ case 11
|
||||
.4byte _080785B0 @ case 12
|
||||
.4byte _080785B0 @ case 13
|
||||
.4byte _080785B0 @ case 14
|
||||
.4byte _080785B0 @ case 15
|
||||
.4byte _08078598 @ case 16
|
||||
.4byte _080785B0 @ case 17
|
||||
.4byte _080785B0 @ case 18
|
||||
.4byte _08078598 @ case 19
|
||||
.4byte _08078598 @ case 20
|
||||
_08078598:
|
||||
movs r0, #0xff
|
||||
mov r1, r8
|
||||
strb r0, [r1, #3]
|
||||
ldr r0, _080785AC @ =gNoInteraction
|
||||
str r0, [r1, #4]
|
||||
movs r1, #1
|
||||
mov r2, r8
|
||||
strb r1, [r2]
|
||||
b _0807876A
|
||||
.align 2, 0
|
||||
_080785AC: .4byte gNoInteraction
|
||||
_080785B0:
|
||||
ldr r0, [r2, #0x30]
|
||||
movs r1, #0x80
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _080785F0
|
||||
bl HasDungeonSmallKey
|
||||
cmp r0, #0
|
||||
beq _080785C4
|
||||
movs r0, #1
|
||||
_080785C4:
|
||||
adds r7, r0, #0
|
||||
bl HasDungeonBigKey
|
||||
cmp r0, #0
|
||||
beq _080785D2
|
||||
movs r0, #2
|
||||
orrs r7, r0
|
||||
_080785D2:
|
||||
ldr r3, _080785E4 @ =gPlayerEntity
|
||||
ldrb r0, [r3, #0x14]
|
||||
movs r1, #6
|
||||
ands r1, r0
|
||||
ldr r0, _080785E8 @ =gPlayerInteractHitboxOffsetNormal
|
||||
adds r2, r1, r0
|
||||
ldr r5, _080785EC @ =gPossibleInteraction
|
||||
mov r8, r5
|
||||
b _080785FE
|
||||
.align 2, 0
|
||||
_080785E4: .4byte gPlayerEntity
|
||||
_080785E8: .4byte gPlayerInteractHitboxOffsetNormal
|
||||
_080785EC: .4byte gPossibleInteraction
|
||||
_080785F0:
|
||||
ldr r3, _08078624 @ =gPlayerEntity
|
||||
ldrb r0, [r3, #0x14]
|
||||
movs r1, #6
|
||||
ands r1, r0
|
||||
ldr r0, _08078628 @ =gPlayerInteractHitboxOffsetMinish
|
||||
adds r2, r1, r0
|
||||
movs r7, #0
|
||||
_080785FE:
|
||||
mov ip, r3
|
||||
mov r0, ip
|
||||
movs r3, #0x2e
|
||||
ldrsh r1, [r0, r3]
|
||||
movs r0, #0
|
||||
ldrsb r0, [r2, r0]
|
||||
adds r1, r1, r0
|
||||
mov sl, r1
|
||||
mov r5, ip
|
||||
movs r0, #0x32
|
||||
ldrsh r1, [r5, r0]
|
||||
movs r0, #1
|
||||
ldrsb r0, [r2, r0]
|
||||
adds r1, r1, r0
|
||||
mov sb, r1
|
||||
movs r6, #0
|
||||
ldr r5, _0807862C @ =gInteractableObjects
|
||||
b _08078724
|
||||
.align 2, 0
|
||||
_08078624: .4byte gPlayerEntity
|
||||
_08078628: .4byte gPlayerInteractHitboxOffsetMinish
|
||||
_0807862C: .4byte gInteractableObjects
|
||||
_08078630:
|
||||
ldrb r1, [r5]
|
||||
movs r3, #1
|
||||
adds r0, r3, #0
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _0807864E
|
||||
mov r0, ip
|
||||
adds r0, #0x38
|
||||
adds r1, r2, #0
|
||||
adds r1, #0x38
|
||||
ldrb r2, [r0]
|
||||
ldrb r0, [r1]
|
||||
ands r0, r2
|
||||
cmp r0, #0
|
||||
beq _08078714
|
||||
_0807864E:
|
||||
ldrb r1, [r5, #2]
|
||||
mov r2, ip
|
||||
ldrb r0, [r2, #0x14]
|
||||
lsrs r0, r0, #1
|
||||
asrs r1, r0
|
||||
ands r1, r3
|
||||
cmp r1, #0
|
||||
bne _08078714
|
||||
ldrb r0, [r5, #1]
|
||||
cmp r0, #0xa
|
||||
bhi _080786D4
|
||||
lsls r0, r0, #2
|
||||
ldr r1, _08078670 @ =_08078674
|
||||
adds r0, r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_08078670: .4byte _08078674
|
||||
_08078674: @ jump table
|
||||
.4byte _08078714 @ case 0
|
||||
.4byte _080786A0 @ case 1
|
||||
.4byte _080786C4 @ case 2
|
||||
.4byte _080786A0 @ case 3
|
||||
.4byte _080786A0 @ case 4
|
||||
.4byte _080786C8 @ case 5
|
||||
.4byte _080786CC @ case 6
|
||||
.4byte _080786B4 @ case 7
|
||||
.4byte _080786A0 @ case 8
|
||||
.4byte _080786A0 @ case 9
|
||||
.4byte _080786D4 @ case 10
|
||||
_080786A0:
|
||||
ldr r0, _080786B0 @ =gPlayerState
|
||||
ldr r0, [r0, #0x30]
|
||||
movs r1, #0x80
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _08078714
|
||||
b _080786D4
|
||||
.align 2, 0
|
||||
_080786B0: .4byte gPlayerState
|
||||
_080786B4:
|
||||
ldr r0, _080786C0 @ =gPlayerState
|
||||
ldr r0, [r0, #0x30]
|
||||
movs r1, #0x80
|
||||
ands r0, r1
|
||||
b _080786D0
|
||||
.align 2, 0
|
||||
_080786C0: .4byte gPlayerState
|
||||
_080786C4:
|
||||
ldrb r0, [r5, #3]
|
||||
b _080786D0
|
||||
_080786C8:
|
||||
movs r0, #1
|
||||
b _080786CE
|
||||
_080786CC:
|
||||
movs r0, #2
|
||||
_080786CE:
|
||||
ands r0, r7
|
||||
_080786D0:
|
||||
cmp r0, #0
|
||||
beq _08078714
|
||||
_080786D4:
|
||||
ldr r0, [r5, #8]
|
||||
movs r1, #0x2e
|
||||
ldrsh r3, [r0, r1]
|
||||
movs r2, #0x32
|
||||
ldrsh r4, [r0, r2]
|
||||
ldr r1, [r5, #4]
|
||||
cmp r1, #0
|
||||
beq _080786F4
|
||||
movs r0, #0
|
||||
ldrsb r0, [r1, r0]
|
||||
adds r3, r3, r0
|
||||
movs r0, #1
|
||||
ldrsb r0, [r1, r0]
|
||||
adds r4, r4, r0
|
||||
adds r2, r1, #2
|
||||
b _080786F8
|
||||
_080786F4:
|
||||
ldr r0, [r0, #0x48]
|
||||
adds r2, r0, #6
|
||||
_080786F8:
|
||||
ldrb r1, [r2]
|
||||
mov r5, sl
|
||||
adds r0, r1, r5
|
||||
subs r0, r0, r3
|
||||
lsls r1, r1, #1
|
||||
cmp r0, r1
|
||||
bhs _08078714
|
||||
ldrb r1, [r2, #1]
|
||||
mov r2, sb
|
||||
adds r0, r1, r2
|
||||
subs r0, r0, r4
|
||||
lsls r1, r1, #1
|
||||
cmp r0, r1
|
||||
blo _0807873A
|
||||
_08078714:
|
||||
adds r6, #1
|
||||
cmp r6, #0x1f
|
||||
bhi _08078758
|
||||
lsls r0, r6, #1
|
||||
adds r0, r0, r6
|
||||
lsls r0, r0, #2
|
||||
ldr r3, _08078754 @ =gInteractableObjects
|
||||
adds r5, r0, r3
|
||||
_08078724:
|
||||
ldr r2, [r5, #8]
|
||||
cmp r2, #0
|
||||
beq _08078714
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x39
|
||||
ldrb r0, [r0]
|
||||
lsls r0, r0, #0x18
|
||||
asrs r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
blt _0807873A
|
||||
b _08078630
|
||||
_0807873A:
|
||||
cmp r6, #0x1f
|
||||
bhi _08078758
|
||||
mov r5, r8
|
||||
strb r6, [r5, #3]
|
||||
lsls r0, r6, #1
|
||||
adds r0, r0, r6
|
||||
lsls r0, r0, #2
|
||||
mov r1, r8
|
||||
adds r1, #8
|
||||
adds r0, r0, r1
|
||||
str r0, [r5, #4]
|
||||
b _08078762
|
||||
.align 2, 0
|
||||
_08078754: .4byte gInteractableObjects
|
||||
_08078758:
|
||||
movs r0, #0xff
|
||||
mov r1, r8
|
||||
strb r0, [r1, #3]
|
||||
ldr r0, _08078774 @ =gNoInteraction
|
||||
str r0, [r1, #4]
|
||||
_08078762:
|
||||
movs r0, #1
|
||||
mov r2, r8
|
||||
strb r0, [r2]
|
||||
ldr r0, [r2, #4]
|
||||
_0807876A:
|
||||
pop {r3, r4, r5}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
mov sl, r5
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_08078774: .4byte gNoInteraction
|
||||
.syntax divided
|
||||
@@ -1,116 +0,0 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
ldr r1, _080789BC @ =gCarriedEntity
|
||||
ldrb r0, [r1]
|
||||
cmp r0, #0
|
||||
beq _080789C0
|
||||
ldrb r0, [r1, #1]
|
||||
b _08078A88
|
||||
.align 2, 0
|
||||
_080789BC: .4byte gCarriedEntity
|
||||
_080789C0:
|
||||
ldr r0, _08078A5C @ =gPlayerState
|
||||
ldr r0, [r0, #0x30]
|
||||
movs r1, #0x80
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _08078A56
|
||||
ldr r0, _08078A60 @ =gPlayerEntity
|
||||
bl GetCollisionDataAtEntity
|
||||
adds r4, r0, #0
|
||||
cmp r4, #0xf
|
||||
bls _080789E6
|
||||
ldr r0, _08078A64 @ =gUnk_080084BC
|
||||
adds r1, r4, #0
|
||||
subs r1, #0x10
|
||||
adds r1, r1, r0
|
||||
ldrb r0, [r1]
|
||||
cmp r0, #0xf
|
||||
beq _08078A56
|
||||
_080789E6:
|
||||
ldr r0, _08078A5C @ =gPlayerState
|
||||
ldrb r0, [r0, #0x12]
|
||||
cmp r0, #0x12
|
||||
beq _08078A56
|
||||
ldr r3, _08078A68 @ =gCarriedEntity
|
||||
movs r0, #1
|
||||
strb r0, [r3]
|
||||
ldrb r4, [r3, #2]
|
||||
cmp r4, #0
|
||||
beq _08078A2E
|
||||
ldr r2, _08078A60 @ =gPlayerEntity
|
||||
ldrb r1, [r2, #0x14]
|
||||
movs r0, #6
|
||||
ands r0, r1
|
||||
ldr r1, _08078A6C @ =gUnk_0811BFE0
|
||||
adds r6, r0, r1
|
||||
adds r7, r2, #0
|
||||
adds r3, #8
|
||||
mov r8, r3
|
||||
_08078A0C:
|
||||
lsls r0, r4, #2
|
||||
mov r1, r8
|
||||
adds r5, r0, r1
|
||||
ldr r1, [r5]
|
||||
cmp r1, #0
|
||||
beq _08078A26
|
||||
ldrb r2, [r6]
|
||||
ldrb r3, [r6, #1]
|
||||
adds r0, r7, #0
|
||||
bl sub_0807A180
|
||||
cmp r0, #0
|
||||
bne _08078A74
|
||||
_08078A26:
|
||||
subs r4, #1
|
||||
ldr r7, _08078A60 @ =gPlayerEntity
|
||||
cmp r4, #0
|
||||
bne _08078A0C
|
||||
_08078A2E:
|
||||
ldr r0, _08078A60 @ =gPlayerEntity
|
||||
ldrb r1, [r0, #0x14]
|
||||
movs r2, #6
|
||||
ands r2, r1
|
||||
ldr r1, _08078A70 @ =gUnk_08007DF4
|
||||
adds r2, r2, r1
|
||||
movs r1, #0
|
||||
ldrsb r1, [r2, r1]
|
||||
ldrb r2, [r2, #1]
|
||||
lsls r2, r2, #0x18
|
||||
asrs r2, r2, #0x18
|
||||
bl sub_080B1A0C
|
||||
ldr r4, _08078A68 @ =gCarriedEntity
|
||||
strh r0, [r4, #4]
|
||||
movs r1, #6
|
||||
bl sub_0806FC24
|
||||
cmp r0, #0
|
||||
bne _08078A84
|
||||
_08078A56:
|
||||
movs r0, #0
|
||||
b _08078A88
|
||||
.align 2, 0
|
||||
_08078A5C: .4byte gPlayerState
|
||||
_08078A60: .4byte gPlayerEntity
|
||||
_08078A64: .4byte gUnk_080084BC
|
||||
_08078A68: .4byte gCarriedEntity
|
||||
_08078A6C: .4byte gUnk_0811BFE0
|
||||
_08078A70: .4byte gUnk_08007DF4
|
||||
_08078A74:
|
||||
mov r0, r8
|
||||
subs r0, #8
|
||||
ldr r1, [r5]
|
||||
str r1, [r0, #8]
|
||||
movs r1, #2
|
||||
strb r1, [r0, #1]
|
||||
movs r0, #2
|
||||
b _08078A88
|
||||
_08078A84:
|
||||
movs r0, #1
|
||||
strb r0, [r4, #1]
|
||||
_08078A88:
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
.syntax divided
|
||||
@@ -1,139 +0,0 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, lr}
|
||||
ldr r5, _08079344 @ =gPlayerEntity
|
||||
adds r3, r5, #0
|
||||
adds r3, #0x42
|
||||
ldrb r0, [r3]
|
||||
cmp r0, #0
|
||||
beq _080793E0
|
||||
ldrb r2, [r5, #0xc]
|
||||
cmp r2, #0xb
|
||||
beq _08079338
|
||||
ldr r0, _08079348 @ =gPlayerState
|
||||
ldrb r1, [r0, #0x1e]
|
||||
adds r6, r0, #0
|
||||
cmp r1, #0
|
||||
bne _08079338
|
||||
ldrb r0, [r6, #5]
|
||||
subs r0, #1
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
cmp r0, #3
|
||||
bls _08079338
|
||||
ldrb r0, [r6, #2]
|
||||
cmp r0, #0
|
||||
bne _08079338
|
||||
ldrb r0, [r6, #0x12]
|
||||
cmp r0, #0xff
|
||||
beq _08079338
|
||||
ldrb r1, [r6, #7]
|
||||
movs r0, #0x80
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _08079338
|
||||
adds r0, r6, #0
|
||||
adds r0, #0x26
|
||||
ldrb r1, [r0]
|
||||
movs r0, #0xf
|
||||
ands r0, r1
|
||||
subs r0, #1
|
||||
cmp r0, #0
|
||||
bgt _08079338
|
||||
cmp r2, #3
|
||||
beq _08079338
|
||||
ldr r1, [r6, #0x30]
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #0xb
|
||||
ands r1, r0
|
||||
cmp r1, #0
|
||||
beq _0807934C
|
||||
_08079338:
|
||||
adds r1, r5, #0
|
||||
adds r1, #0x42
|
||||
movs r0, #0
|
||||
strb r0, [r1]
|
||||
b _080793E0
|
||||
.align 2, 0
|
||||
_08079344: .4byte gPlayerEntity
|
||||
_08079348: .4byte gPlayerState
|
||||
_0807934C:
|
||||
cmp r2, #0x1d
|
||||
bne _0807935E
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x3e
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0x10
|
||||
beq _0807935E
|
||||
strb r1, [r3]
|
||||
b _080793E0
|
||||
_0807935E:
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x42
|
||||
ldrb r3, [r0]
|
||||
movs r1, #0
|
||||
ldrsb r1, [r0, r1]
|
||||
adds r2, r0, #0
|
||||
cmp r1, #0
|
||||
ble _08079372
|
||||
subs r0, r3, #1
|
||||
b _08079374
|
||||
_08079372:
|
||||
adds r0, r3, #1
|
||||
_08079374:
|
||||
strb r0, [r2]
|
||||
ldrb r0, [r2]
|
||||
cmp r0, #0
|
||||
beq _080793E0
|
||||
adds r4, r6, #0
|
||||
ldrb r0, [r4, #7]
|
||||
movs r1, #0xdf
|
||||
ands r1, r0
|
||||
strb r1, [r4, #7]
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x3d
|
||||
ldrb r0, [r0]
|
||||
lsls r0, r0, #0x18
|
||||
asrs r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
ble _080793CA
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x26
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _080793CA
|
||||
ldr r0, [r4, #0x30]
|
||||
movs r1, #0x80
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _080793CA
|
||||
ldrb r0, [r4, #2]
|
||||
cmp r0, #0
|
||||
bne _080793CA
|
||||
bl ResetActiveItems
|
||||
ldr r0, [r4, #0x30]
|
||||
movs r1, #8
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _080793C4
|
||||
movs r0, #0x8a
|
||||
lsls r0, r0, #1
|
||||
strh r0, [r4, #8]
|
||||
b _080793CA
|
||||
_080793C4:
|
||||
movs r0, #0x83
|
||||
lsls r0, r0, #3
|
||||
strh r0, [r6, #8]
|
||||
_080793CA:
|
||||
movs r1, #0xa0
|
||||
lsls r1, r1, #2
|
||||
adds r4, r5, #0
|
||||
adds r4, #0x3e
|
||||
ldrb r2, [r4]
|
||||
adds r0, r5, #0
|
||||
bl sub_080027EA
|
||||
ldrb r0, [r4]
|
||||
bl sub_0807A5B8
|
||||
_080793E0:
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
.syntax divided
|
||||
@@ -1,257 +0,0 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sl
|
||||
mov r6, sb
|
||||
mov r5, r8
|
||||
push {r5, r6, r7}
|
||||
sub sp, #4
|
||||
adds r4, r0, #0
|
||||
ldr r0, _0807A364 @ =gRoomControls
|
||||
mov r8, r0
|
||||
ldrb r0, [r0, #4]
|
||||
cmp r0, #8
|
||||
bne _0807A312
|
||||
b _0807A4F2
|
||||
_0807A312:
|
||||
bl sub_08079778
|
||||
orrs r0, r4
|
||||
cmp r0, #0
|
||||
bne _0807A31E
|
||||
b _0807A4F2
|
||||
_0807A31E:
|
||||
ldr r7, _0807A368 @ =gPlayerEntity
|
||||
ldrb r1, [r7, #0x14]
|
||||
movs r0, #2
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0807A36C
|
||||
movs r1, #0x2e
|
||||
ldrsh r2, [r7, r1]
|
||||
mov r6, r8
|
||||
ldrh r0, [r6, #6]
|
||||
subs r2, r2, r0
|
||||
asrs r2, r2, #4
|
||||
movs r3, #0x3f
|
||||
ands r2, r3
|
||||
movs r0, #0x32
|
||||
ldrsh r1, [r7, r0]
|
||||
ldr r0, [r7, #0x48]
|
||||
ldrb r5, [r0, #5]
|
||||
adds r0, r1, r5
|
||||
ldrh r4, [r6, #8]
|
||||
subs r0, r0, r4
|
||||
asrs r0, r0, #4
|
||||
ands r0, r3
|
||||
lsls r0, r0, #6
|
||||
orrs r0, r2
|
||||
lsls r7, r0, #1
|
||||
subs r1, r1, r5
|
||||
subs r1, r1, r4
|
||||
asrs r1, r1, #4
|
||||
ands r1, r3
|
||||
lsls r1, r1, #6
|
||||
orrs r2, r1
|
||||
lsls r6, r2, #1
|
||||
b _0807A3A2
|
||||
.align 2, 0
|
||||
_0807A364: .4byte gRoomControls
|
||||
_0807A368: .4byte gPlayerEntity
|
||||
_0807A36C:
|
||||
movs r1, #0x2e
|
||||
ldrsh r3, [r7, r1]
|
||||
ldr r0, [r7, #0x48]
|
||||
ldrb r6, [r0, #2]
|
||||
adds r1, r3, r6
|
||||
mov r2, r8
|
||||
ldrh r5, [r2, #6]
|
||||
subs r1, r1, r5
|
||||
asrs r1, r1, #4
|
||||
movs r4, #0x3f
|
||||
ands r1, r4
|
||||
movs r2, #0x32
|
||||
ldrsh r0, [r7, r2]
|
||||
mov r7, r8
|
||||
ldrh r2, [r7, #8]
|
||||
subs r0, r0, r2
|
||||
asrs r0, r0, #4
|
||||
ands r0, r4
|
||||
lsls r0, r0, #6
|
||||
orrs r1, r0
|
||||
lsls r7, r1, #1
|
||||
subs r3, r3, r6
|
||||
subs r3, r3, r5
|
||||
asrs r3, r3, #4
|
||||
ands r3, r4
|
||||
orrs r3, r0
|
||||
lsls r6, r3, #1
|
||||
_0807A3A2:
|
||||
movs r0, #0
|
||||
mov sb, r0
|
||||
ldr r1, _0807A3F4 @ =gPlayerEntity
|
||||
mov sl, r1
|
||||
_0807A3AA:
|
||||
movs r2, #0
|
||||
mov r8, r2
|
||||
mov r0, sl
|
||||
mov r1, sp
|
||||
adds r2, r7, #0
|
||||
bl sub_08004202
|
||||
adds r7, r0, #0
|
||||
lsrs r4, r7, #1
|
||||
adds r0, r4, #0
|
||||
movs r1, #1
|
||||
bl GetCollisionDataAtMetaTilePos
|
||||
cmp r0, #0
|
||||
beq _0807A3FC
|
||||
lsls r0, r4, #0x10
|
||||
lsrs r0, r0, #0x10
|
||||
mov r1, sl
|
||||
adds r1, #0x38
|
||||
ldrb r1, [r1]
|
||||
bl GetVvvAtMetaTilePos
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r0, r0, #0x10
|
||||
mov r2, sl
|
||||
ldrb r1, [r2, #0x14]
|
||||
lsrs r1, r1, #1
|
||||
lsls r1, r1, #2
|
||||
ldr r2, _0807A3F8 @ =gUnk_0811C1D8
|
||||
adds r1, r1, r2
|
||||
ldr r1, [r1]
|
||||
bl FindValueForKey
|
||||
cmp r0, #0
|
||||
beq _0807A468
|
||||
b _0807A400
|
||||
.align 2, 0
|
||||
_0807A3F4: .4byte gPlayerEntity
|
||||
_0807A3F8: .4byte gUnk_0811C1D8
|
||||
_0807A3FC:
|
||||
movs r0, #1
|
||||
mov r8, r0
|
||||
_0807A400:
|
||||
ldr r5, _0807A444 @ =gPlayerEntity
|
||||
adds r0, r5, #0
|
||||
mov r1, sp
|
||||
adds r2, r6, #0
|
||||
bl sub_08004202
|
||||
adds r6, r0, #0
|
||||
lsrs r4, r6, #1
|
||||
adds r0, r4, #0
|
||||
movs r1, #1
|
||||
bl GetCollisionDataAtMetaTilePos
|
||||
cmp r0, #0
|
||||
beq _0807A44C
|
||||
lsls r0, r4, #0x10
|
||||
lsrs r0, r0, #0x10
|
||||
adds r1, r5, #0
|
||||
adds r1, #0x38
|
||||
ldrb r1, [r1]
|
||||
bl GetVvvAtMetaTilePos
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r0, r0, #0x10
|
||||
ldrb r1, [r5, #0x14]
|
||||
lsrs r1, r1, #1
|
||||
lsls r1, r1, #2
|
||||
ldr r2, _0807A448 @ =gUnk_0811C1D8
|
||||
adds r1, r1, r2
|
||||
ldr r1, [r1]
|
||||
bl FindValueForKey
|
||||
cmp r0, #0
|
||||
beq _0807A468
|
||||
b _0807A450
|
||||
.align 2, 0
|
||||
_0807A444: .4byte gPlayerEntity
|
||||
_0807A448: .4byte gUnk_0811C1D8
|
||||
_0807A44C:
|
||||
movs r0, #1
|
||||
add r8, r0
|
||||
_0807A450:
|
||||
mov r1, r8
|
||||
cmp r1, #2
|
||||
bne _0807A45E
|
||||
mov r2, sb
|
||||
cmp r2, #0
|
||||
bne _0807A46E
|
||||
b _0807A4F2
|
||||
_0807A45E:
|
||||
movs r0, #1
|
||||
add sb, r0
|
||||
mov r1, sb
|
||||
cmp r1, #1
|
||||
bls _0807A3AA
|
||||
_0807A468:
|
||||
mov r2, sb
|
||||
cmp r2, #0
|
||||
beq _0807A4F2
|
||||
_0807A46E:
|
||||
bl AreaIsDungeon
|
||||
cmp r0, #0
|
||||
beq _0807A4B0
|
||||
ldr r4, _0807A4AC @ =gPlayerEntity
|
||||
adds r0, r4, #0
|
||||
mov r1, sp
|
||||
adds r2, r7, #0
|
||||
bl sub_08004202
|
||||
adds r7, r0, #0
|
||||
lsrs r0, r7, #1
|
||||
movs r1, #2
|
||||
bl GetCollisionDataAtMetaTilePos
|
||||
cmp r0, #0
|
||||
bne _0807A4F2
|
||||
adds r0, r4, #0
|
||||
mov r1, sp
|
||||
adds r2, r6, #0
|
||||
bl sub_08004202
|
||||
adds r6, r0, #0
|
||||
lsrs r0, r6, #1
|
||||
movs r1, #2
|
||||
_0807A4A0:
|
||||
bl GetCollisionDataAtMetaTilePos
|
||||
cmp r0, #0
|
||||
beq _0807A4EC
|
||||
b _0807A4F2
|
||||
.align 2, 0
|
||||
_0807A4AC: .4byte gPlayerEntity
|
||||
_0807A4B0:
|
||||
mov r0, sb
|
||||
cmp r0, #2
|
||||
bne _0807A4C2
|
||||
ldr r0, _0807A4E8 @ =gPlayerEntity
|
||||
mov r1, sp
|
||||
adds r2, r7, #0
|
||||
bl sub_08004202
|
||||
adds r7, r0, #0
|
||||
_0807A4C2:
|
||||
lsrs r0, r7, #1
|
||||
movs r1, #1
|
||||
bl GetCollisionDataAtMetaTilePos
|
||||
cmp r0, #0
|
||||
bne _0807A4F2
|
||||
mov r1, sb
|
||||
cmp r1, #2
|
||||
bne _0807A4E0
|
||||
ldr r0, _0807A4E8 @ =gPlayerEntity
|
||||
mov r1, sp
|
||||
adds r2, r6, #0
|
||||
bl sub_08004202
|
||||
adds r6, r0, #0
|
||||
_0807A4E0:
|
||||
lsrs r0, r6, #1
|
||||
movs r1, #1
|
||||
b _0807A4A0
|
||||
.align 2, 0
|
||||
_0807A4E8: .4byte gPlayerEntity
|
||||
_0807A4EC:
|
||||
mov r0, sb
|
||||
adds r0, #1
|
||||
b _0807A4F4
|
||||
_0807A4F2:
|
||||
movs r0, #0
|
||||
_0807A4F4:
|
||||
add sp, #4
|
||||
pop {r3, r4, r5}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
mov sl, r5
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.syntax divided
|
||||
@@ -1,123 +0,0 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
bl ClearBgAnimations
|
||||
bl sub_0807BFA8
|
||||
ldr r7, _0807C0B8 @ =0x0000FFFF
|
||||
ldr r6, _0807C0BC @ =gMapBottom+0x5004
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #5
|
||||
mov r8, r0
|
||||
adds r0, r7, #0
|
||||
adds r1, r6, #0
|
||||
mov r2, r8
|
||||
bl MemFill16
|
||||
movs r5, #0
|
||||
strh r5, [r6]
|
||||
ldr r4, _0807C0C0 @ =gMapTop+0x5004
|
||||
adds r0, r7, #0
|
||||
adds r1, r4, #0
|
||||
mov r2, r8
|
||||
bl MemFill16
|
||||
strh r5, [r4]
|
||||
ldr r2, _0807C0C4 @ =gRoomControls
|
||||
ldr r0, _0807C0C8 @ =gArea
|
||||
ldr r1, _0807C0CC @ =0x0000085C
|
||||
adds r4, r0, r1
|
||||
ldr r0, [r4]
|
||||
ldr r1, [r2, #0x34]
|
||||
ldr r0, [r0, #8]
|
||||
cmp r1, r0
|
||||
beq _0807C01C
|
||||
str r0, [r2, #0x34]
|
||||
bl LoadMapData
|
||||
_0807C01C:
|
||||
ldr r0, [r4]
|
||||
ldr r0, [r0, #0x10]
|
||||
bl LoadMapData
|
||||
ldr r1, _0807C0D0 @ =gPaletteBuffer
|
||||
adds r0, r1, #0
|
||||
adds r0, #0x60
|
||||
movs r2, #0xa8
|
||||
lsls r2, r2, #2
|
||||
adds r1, r1, r2
|
||||
movs r2, #0x20
|
||||
bl MemCopy
|
||||
ldr r2, _0807C0D4 @ =gUsedPalettes
|
||||
ldr r0, [r2]
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #0xe
|
||||
orrs r0, r1
|
||||
str r0, [r2]
|
||||
ldr r0, [r4]
|
||||
ldr r0, [r0, #0x14]
|
||||
cmp r0, #0
|
||||
beq _0807C04E
|
||||
bl LoadBgAnimations
|
||||
_0807C04E:
|
||||
adds r5, r6, #0
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #5
|
||||
adds r6, r5, r0
|
||||
adds r0, r7, #0
|
||||
adds r1, r6, #0
|
||||
mov r2, r8
|
||||
bl MemFill16
|
||||
movs r2, #0
|
||||
ldr r3, _0807C0D8 @ =0x000007FF
|
||||
adds r4, r7, #0
|
||||
_0807C066:
|
||||
ldrh r0, [r5]
|
||||
cmp r0, r3
|
||||
bhi _0807C078
|
||||
lsls r0, r0, #1
|
||||
adds r1, r0, r6
|
||||
ldrh r0, [r1]
|
||||
cmp r0, r4
|
||||
bne _0807C078
|
||||
strh r2, [r1]
|
||||
_0807C078:
|
||||
adds r2, #1
|
||||
adds r5, #2
|
||||
cmp r2, r3
|
||||
ble _0807C066
|
||||
movs r2, #0x80
|
||||
lsls r2, r2, #5
|
||||
ldr r5, _0807C0C0 @ =gMapTop+0x5004
|
||||
adds r6, r5, r2
|
||||
ldr r4, _0807C0B8 @ =0x0000FFFF
|
||||
adds r0, r4, #0
|
||||
adds r1, r6, #0
|
||||
bl MemFill16
|
||||
movs r2, #0
|
||||
ldr r3, _0807C0D8 @ =0x000007FF
|
||||
_0807C096:
|
||||
ldrh r0, [r5]
|
||||
cmp r0, r3
|
||||
bhi _0807C0A8
|
||||
lsls r0, r0, #1
|
||||
adds r1, r0, r6
|
||||
ldrh r0, [r1]
|
||||
cmp r0, r4
|
||||
bne _0807C0A8
|
||||
strh r2, [r1]
|
||||
_0807C0A8:
|
||||
adds r2, #1
|
||||
adds r5, #2
|
||||
cmp r2, r3
|
||||
ble _0807C096
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_0807C0B8: .4byte 0x0000FFFF
|
||||
_0807C0BC: .4byte gMapBottom+0x5004
|
||||
_0807C0C0: .4byte gMapTop+0x5004
|
||||
_0807C0C4: .4byte gRoomControls
|
||||
_0807C0C8: .4byte gArea
|
||||
_0807C0CC: .4byte 0x0000085C
|
||||
_0807C0D0: .4byte gPaletteBuffer
|
||||
_0807C0D4: .4byte gUsedPalettes
|
||||
_0807C0D8: .4byte 0x000007FF
|
||||
.syntax divided
|
||||
@@ -1,98 +0,0 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sb
|
||||
mov r6, r8
|
||||
push {r6, r7}
|
||||
mov r8, r0
|
||||
adds r4, r1, #0
|
||||
mov ip, r2
|
||||
mov r0, ip
|
||||
muls r0, r4, r0
|
||||
lsls r0, r0, #1
|
||||
add r0, r8
|
||||
subs r7, r0, #2
|
||||
mov r0, ip
|
||||
subs r0, #1
|
||||
lsls r0, r0, #7
|
||||
add r0, r8
|
||||
lsls r3, r4, #1
|
||||
subs r1, r3, #2
|
||||
adds r0, r0, r1
|
||||
movs r5, #0
|
||||
cmp r5, ip
|
||||
bhs _0807C906
|
||||
mov sb, r3
|
||||
_0807C8DE:
|
||||
movs r2, #0
|
||||
adds r6, r0, #0
|
||||
subs r6, #0x80
|
||||
cmp r2, r4
|
||||
bhs _0807C8FA
|
||||
adds r1, r7, #0
|
||||
adds r3, r0, #0
|
||||
_0807C8EC:
|
||||
ldrh r0, [r1]
|
||||
strh r0, [r3]
|
||||
subs r1, #2
|
||||
subs r3, #2
|
||||
adds r2, #1
|
||||
cmp r2, r4
|
||||
blo _0807C8EC
|
||||
_0807C8FA:
|
||||
adds r0, r6, #0
|
||||
mov r1, sb
|
||||
subs r7, r7, r1
|
||||
adds r5, #1
|
||||
cmp r5, ip
|
||||
blo _0807C8DE
|
||||
_0807C906:
|
||||
movs r0, #0x40
|
||||
subs r6, r0, r4
|
||||
movs r5, #0
|
||||
lsls r0, r4, #1
|
||||
mov r2, ip
|
||||
lsls r7, r2, #7
|
||||
mov r2, r8
|
||||
adds r1, r2, r0
|
||||
_0807C916:
|
||||
lsls r0, r5, #7
|
||||
adds r0, r1, r0
|
||||
movs r2, #0
|
||||
adds r3, r5, #1
|
||||
cmp r2, r6
|
||||
bhs _0807C92E
|
||||
movs r4, #0
|
||||
_0807C924:
|
||||
strh r4, [r0]
|
||||
adds r0, #2
|
||||
adds r2, #1
|
||||
cmp r2, r6
|
||||
blo _0807C924
|
||||
_0807C92E:
|
||||
adds r5, r3, #0
|
||||
cmp r5, #0x3f
|
||||
bls _0807C916
|
||||
movs r0, #0x40
|
||||
mov r1, ip
|
||||
subs r6, r0, r1
|
||||
mov r2, r8
|
||||
adds r0, r2, r7
|
||||
movs r5, #0
|
||||
cmp r5, r6
|
||||
bhs _0807C956
|
||||
adds r4, r0, #0
|
||||
_0807C946:
|
||||
adds r0, r4, #0
|
||||
movs r1, #0x80
|
||||
bl MemClear
|
||||
adds r4, #0x80
|
||||
adds r5, #1
|
||||
cmp r5, r6
|
||||
blo _0807C946
|
||||
_0807C956:
|
||||
pop {r3, r4}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
.syntax divided
|
||||
@@ -1,290 +0,0 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sl
|
||||
mov r6, sb
|
||||
mov r5, r8
|
||||
push {r5, r6, r7}
|
||||
sub sp, #0x38
|
||||
ldr r1, _080804F0 @ =gRoomControls
|
||||
movs r2, #0xa
|
||||
ldrsh r0, [r1, r2]
|
||||
ldrh r2, [r1, #6]
|
||||
subs r0, r0, r2
|
||||
str r0, [sp, #0x18]
|
||||
ldr r3, [r1, #0x30]
|
||||
movs r4, #0x2e
|
||||
ldrsh r0, [r3, r4]
|
||||
subs r0, r0, r2
|
||||
str r0, [sp, #0x10]
|
||||
movs r2, #0xc
|
||||
ldrsh r0, [r1, r2]
|
||||
ldrh r1, [r1, #8]
|
||||
subs r0, r0, r1
|
||||
str r0, [sp, #0x1c]
|
||||
movs r4, #0x32
|
||||
ldrsh r0, [r3, r4]
|
||||
subs r0, r0, r1
|
||||
str r0, [sp, #0x14]
|
||||
movs r0, #0x3c
|
||||
str r0, [sp, #8]
|
||||
_08080408:
|
||||
movs r7, #0
|
||||
ldr r1, [sp, #8]
|
||||
adds r1, #6
|
||||
str r1, [sp, #8]
|
||||
adds r2, r1, #0
|
||||
muls r2, r1, r2
|
||||
mov sl, r2
|
||||
lsls r4, r1, #1
|
||||
adds r0, r4, #0
|
||||
movs r1, #3
|
||||
bl __divsi3
|
||||
str r0, [sp, #0xc]
|
||||
adds r1, r0, #0
|
||||
muls r1, r0, r1
|
||||
mov sb, r1
|
||||
movs r2, #0
|
||||
str r2, [sp, #4]
|
||||
rsbs r4, r4, #0
|
||||
adds r4, #1
|
||||
mov r0, sb
|
||||
muls r0, r4, r0
|
||||
mov r4, sl
|
||||
lsls r5, r4, #1
|
||||
adds r4, r0, r5
|
||||
ldr r0, [sp, #8]
|
||||
mov r6, sb
|
||||
muls r6, r0, r6
|
||||
adds r0, r6, #0
|
||||
mov r1, sl
|
||||
bl __divsi3
|
||||
adds r2, r0, #0
|
||||
cmp r7, r2
|
||||
bgt _08080506
|
||||
ldr r1, [sp, #0x18]
|
||||
adds r1, #0xf8
|
||||
str r1, [sp, #0x20]
|
||||
mov r1, sl
|
||||
adds r0, r5, r1
|
||||
lsls r3, r0, #1
|
||||
str r6, [sp, #0x2c]
|
||||
ldr r0, [sp, #8]
|
||||
lsls r1, r0, #2
|
||||
rsbs r1, r1, #0
|
||||
adds r1, #4
|
||||
mov r8, r1
|
||||
rsbs r0, r0, #0
|
||||
adds r0, #8
|
||||
ldr r1, [sp, #0x10]
|
||||
adds r6, r0, r1
|
||||
ldr r0, [sp, #8]
|
||||
adds r5, r0, r1
|
||||
mov r0, r8
|
||||
mov r1, sb
|
||||
muls r1, r0, r1
|
||||
mov r8, r1
|
||||
_0808047A:
|
||||
ldr r1, [sp, #0x1c]
|
||||
adds r1, #0xa8
|
||||
mov ip, r1
|
||||
ldr r0, [sp, #0x14]
|
||||
ldr r1, [sp, #4]
|
||||
adds r0, r0, r1
|
||||
str r0, [sp, #0x34]
|
||||
cmp ip, r0
|
||||
ble _080804A0
|
||||
ldr r0, [sp, #0x20]
|
||||
cmp r0, r5
|
||||
ble _08080496
|
||||
movs r0, #1
|
||||
orrs r7, r0
|
||||
_08080496:
|
||||
ldr r1, [sp, #0x18]
|
||||
cmp r1, r6
|
||||
bge _080804A0
|
||||
movs r0, #2
|
||||
orrs r7, r0
|
||||
_080804A0:
|
||||
ldr r0, [sp, #0x14]
|
||||
ldr r1, [sp, #4]
|
||||
subs r0, r0, r1
|
||||
mov ip, r0
|
||||
adds r0, #8
|
||||
ldr r1, [sp, #0x1c]
|
||||
cmp r1, r0
|
||||
bge _080804C4
|
||||
ldr r0, [sp, #0x20]
|
||||
cmp r0, r5
|
||||
ble _080804BA
|
||||
movs r0, #4
|
||||
orrs r7, r0
|
||||
_080804BA:
|
||||
ldr r1, [sp, #0x18]
|
||||
cmp r1, r6
|
||||
bge _080804C4
|
||||
movs r0, #8
|
||||
orrs r7, r0
|
||||
_080804C4:
|
||||
cmp r4, #0
|
||||
ble _080804F4
|
||||
mov r2, r8
|
||||
adds r0, r2, r3
|
||||
adds r4, r4, r0
|
||||
ldr r0, [sp, #0x2c]
|
||||
mov r1, sb
|
||||
subs r0, r0, r1
|
||||
str r0, [sp, #0x2c]
|
||||
lsls r0, r1, #2
|
||||
add r8, r0
|
||||
adds r6, #1
|
||||
subs r5, #1
|
||||
ldr r0, [sp, #0x2c]
|
||||
mov r1, sl
|
||||
str r3, [sp, #0x30]
|
||||
bl __divsi3
|
||||
adds r2, r0, #0
|
||||
ldr r3, [sp, #0x30]
|
||||
b _080804F6
|
||||
.align 2, 0
|
||||
_080804F0: .4byte gRoomControls
|
||||
_080804F4:
|
||||
adds r4, r4, r3
|
||||
_080804F6:
|
||||
mov r1, sl
|
||||
lsls r0, r1, #2
|
||||
adds r3, r3, r0
|
||||
ldr r0, [sp, #4]
|
||||
adds r0, #1
|
||||
str r0, [sp, #4]
|
||||
cmp r0, r2
|
||||
ble _0808047A
|
||||
_08080506:
|
||||
movs r1, #0
|
||||
str r1, [sp]
|
||||
ldr r2, [sp, #0xc]
|
||||
str r2, [sp, #4]
|
||||
mov r4, sb
|
||||
lsls r6, r4, #1
|
||||
lsls r0, r2, #1
|
||||
rsbs r0, r0, #0
|
||||
adds r0, #1
|
||||
mov r1, sl
|
||||
muls r1, r0, r1
|
||||
adds r0, r1, #0
|
||||
adds r4, r6, r0
|
||||
mov r5, sl
|
||||
muls r5, r2, r5
|
||||
adds r0, r5, #0
|
||||
mov r1, sb
|
||||
bl __divsi3
|
||||
adds r2, r0, #0
|
||||
ldr r0, [sp]
|
||||
cmp r0, r2
|
||||
bgt _080805E4
|
||||
ldr r1, [sp, #0x18]
|
||||
adds r1, #0xf8
|
||||
str r1, [sp, #0x24]
|
||||
mov r1, sb
|
||||
adds r0, r6, r1
|
||||
lsls r0, r0, #1
|
||||
mov r8, r0
|
||||
ldr r3, [sp, #0x10]
|
||||
adds r3, #8
|
||||
ldr r6, [sp, #0x10]
|
||||
str r5, [sp, #0x28]
|
||||
ldr r1, [sp, #4]
|
||||
lsls r0, r1, #2
|
||||
rsbs r0, r0, #0
|
||||
adds r0, #4
|
||||
mov r5, sl
|
||||
muls r5, r0, r5
|
||||
_08080556:
|
||||
ldr r0, [sp, #0x1c]
|
||||
adds r0, #0xa8
|
||||
mov ip, r0
|
||||
ldr r1, [sp, #0x14]
|
||||
ldr r0, [sp, #4]
|
||||
adds r1, r1, r0
|
||||
str r1, [sp, #0x34]
|
||||
cmp ip, r1
|
||||
ble _0808057C
|
||||
ldr r1, [sp, #0x24]
|
||||
cmp r1, r6
|
||||
ble _08080572
|
||||
movs r0, #0x10
|
||||
orrs r7, r0
|
||||
_08080572:
|
||||
ldr r0, [sp, #0x18]
|
||||
cmp r0, r3
|
||||
bge _0808057C
|
||||
movs r0, #0x20
|
||||
orrs r7, r0
|
||||
_0808057C:
|
||||
ldr r1, [sp, #0x14]
|
||||
ldr r0, [sp, #4]
|
||||
subs r1, r1, r0
|
||||
mov ip, r1
|
||||
mov r0, ip
|
||||
adds r0, #8
|
||||
ldr r1, [sp, #0x1c]
|
||||
cmp r1, r0
|
||||
bge _080805A2
|
||||
ldr r0, [sp, #0x24]
|
||||
cmp r0, r6
|
||||
ble _08080598
|
||||
movs r0, #0x40
|
||||
orrs r7, r0
|
||||
_08080598:
|
||||
ldr r1, [sp, #0x18]
|
||||
cmp r1, r3
|
||||
bge _080805A2
|
||||
movs r0, #0x80
|
||||
orrs r7, r0
|
||||
_080805A2:
|
||||
cmp r4, #0
|
||||
ble _080805CE
|
||||
mov r2, r8
|
||||
adds r0, r2, r5
|
||||
adds r4, r4, r0
|
||||
ldr r0, [sp, #0x28]
|
||||
mov r1, sl
|
||||
subs r0, r0, r1
|
||||
str r0, [sp, #0x28]
|
||||
lsls r0, r1, #2
|
||||
adds r5, r5, r0
|
||||
ldr r2, [sp, #4]
|
||||
subs r2, #1
|
||||
str r2, [sp, #4]
|
||||
ldr r0, [sp, #0x28]
|
||||
mov r1, sb
|
||||
str r3, [sp, #0x30]
|
||||
bl __divsi3
|
||||
adds r2, r0, #0
|
||||
ldr r3, [sp, #0x30]
|
||||
b _080805D0
|
||||
_080805CE:
|
||||
add r4, r8
|
||||
_080805D0:
|
||||
mov r1, sb
|
||||
lsls r0, r1, #2
|
||||
add r8, r0
|
||||
subs r3, #1
|
||||
adds r6, #1
|
||||
ldr r0, [sp]
|
||||
adds r0, #1
|
||||
str r0, [sp]
|
||||
cmp r0, r2
|
||||
ble _08080556
|
||||
_080805E4:
|
||||
cmp r7, #0
|
||||
beq _080805EA
|
||||
b _08080408
|
||||
_080805EA:
|
||||
ldr r0, [sp, #8]
|
||||
add sp, #0x38
|
||||
pop {r3, r4, r5}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
mov sl, r5
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.syntax divided
|
||||
@@ -1,138 +0,0 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sl
|
||||
mov r6, sb
|
||||
mov r5, r8
|
||||
push {r5, r6, r7}
|
||||
mov sl, r0
|
||||
mov r8, r1
|
||||
lsls r0, r1, #4
|
||||
movs r1, #0xa0
|
||||
lsls r1, r1, #1
|
||||
adds r0, r0, r1
|
||||
mov ip, r0
|
||||
mov r2, sl
|
||||
lsls r0, r2, #4
|
||||
adds r3, r0, r1
|
||||
ldr r1, _080AE30C @ =gGFXSlots
|
||||
lsls r0, r2, #1
|
||||
add r0, sl
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r1
|
||||
ldrb r0, [r0, #5]
|
||||
lsls r0, r0, #4
|
||||
adds r7, r3, r0
|
||||
movs r4, #0
|
||||
ldr r6, _080AE310 @ =gUnk_020000C0
|
||||
mov sb, r6
|
||||
ldr r0, _080AE314 @ =gPlayerEntity
|
||||
adds r2, r0, #0
|
||||
adds r2, #0x26
|
||||
adds r5, r0, #0
|
||||
_080AE254:
|
||||
ldr r0, [r5, #4]
|
||||
cmp r0, #0
|
||||
beq _080AE276
|
||||
ldrb r0, [r2]
|
||||
cmp sl, r0
|
||||
bne _080AE264
|
||||
mov r1, r8
|
||||
strb r1, [r2]
|
||||
_080AE264:
|
||||
ldrh r0, [r2, #0x3a]
|
||||
cmp r3, r0
|
||||
bhi _080AE276
|
||||
cmp r7, r0
|
||||
bls _080AE276
|
||||
subs r0, r0, r3
|
||||
mov r6, ip
|
||||
adds r1, r0, r6
|
||||
strh r1, [r2, #0x3a]
|
||||
_080AE276:
|
||||
adds r2, #0x88
|
||||
adds r5, #0x88
|
||||
adds r4, #1
|
||||
cmp r4, #0x4f
|
||||
bls _080AE254
|
||||
movs r0, #0
|
||||
_080AE282:
|
||||
movs r4, #0
|
||||
adds r1, r0, #1
|
||||
mov r8, r1
|
||||
lsls r5, r0, #6
|
||||
_080AE28A:
|
||||
lsls r0, r4, #4
|
||||
add r0, sb
|
||||
adds r2, r5, r0
|
||||
ldrb r1, [r2]
|
||||
movs r0, #1
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _080AE2B4
|
||||
movs r0, #2
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _080AE2B4
|
||||
ldrh r1, [r2, #0xa]
|
||||
cmp r3, r1
|
||||
bhi _080AE2B4
|
||||
cmp r7, r1
|
||||
bls _080AE2B4
|
||||
subs r0, r1, r3
|
||||
mov r6, ip
|
||||
adds r1, r0, r6
|
||||
strh r1, [r2, #0xa]
|
||||
_080AE2B4:
|
||||
adds r4, #1
|
||||
cmp r4, #3
|
||||
bls _080AE28A
|
||||
mov r0, r8
|
||||
cmp r0, #0x2f
|
||||
bls _080AE282
|
||||
movs r4, #0
|
||||
ldr r0, _080AE318 @ =0xFFFFFC00
|
||||
mov sl, r0
|
||||
ldr r5, _080AE31C @ =gOAMControls
|
||||
adds r5, #0x24
|
||||
ldr r1, _080AE320 @ =0x000003FF
|
||||
mov sb, r1
|
||||
movs r2, #1
|
||||
mov r8, r2
|
||||
_080AE2D2:
|
||||
ldrh r2, [r5]
|
||||
lsls r0, r2, #0x16
|
||||
lsrs r1, r0, #0x16
|
||||
cmp r3, r1
|
||||
bhi _080AE2F8
|
||||
cmp r7, r1
|
||||
bls _080AE2F8
|
||||
subs r0, r1, r3
|
||||
mov r6, ip
|
||||
adds r1, r0, r6
|
||||
mov r0, sb
|
||||
ands r1, r0
|
||||
mov r0, sl
|
||||
ands r0, r2
|
||||
orrs r0, r1
|
||||
strh r0, [r5]
|
||||
mov r2, r8
|
||||
ldr r1, _080AE31C @ =gOAMControls
|
||||
strb r2, [r1]
|
||||
_080AE2F8:
|
||||
adds r5, #8
|
||||
adds r4, #1
|
||||
cmp r4, #0x7f
|
||||
bls _080AE2D2
|
||||
pop {r3, r4, r5}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
mov sl, r5
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_080AE30C: .4byte gGFXSlots
|
||||
_080AE310: .4byte gUnk_020000C0
|
||||
_080AE314: .4byte gPlayerEntity
|
||||
_080AE318: .4byte 0xFFFFFC00
|
||||
_080AE31C: .4byte gOAMControls
|
||||
_080AE320: .4byte 0x000003FF
|
||||
.syntax divided
|
||||
@@ -1,570 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
||||
@
|
||||
@ Please leave this file as a tutorial.
|
||||
@
|
||||
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
||||
|
||||
thumb_func_start EvilSpirit
|
||||
EvilSpirit: @ 0x08086284
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldr r1, _080862B4 @ =gUnk_08120668
|
||||
ldrb r0, [r4, #0xc]
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r1
|
||||
ldr r1, [r0]
|
||||
adds r0, r4, #0
|
||||
bl _call_via_r1
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x41
|
||||
movs r0, #0
|
||||
strb r0, [r1]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x76
|
||||
ldrh r1, [r0]
|
||||
adds r0, #4
|
||||
ldrh r2, [r0]
|
||||
adds r0, r4, #0
|
||||
movs r3, #0
|
||||
bl SetAffineInfo
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_080862B4: .4byte gUnk_08120668
|
||||
|
||||
thumb_func_start sub_080862B8
|
||||
sub_080862B8: @ 0x080862B8
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
movs r0, #0x63
|
||||
bl CheckLocalFlag
|
||||
cmp r0, #0
|
||||
beq _080862CA
|
||||
bl DeleteThisEntity
|
||||
_080862CA:
|
||||
movs r3, #1
|
||||
strb r3, [r4, #0xc]
|
||||
ldr r1, _08086350 @ =gUnk_08120678
|
||||
ldrb r0, [r4, #0xa]
|
||||
lsls r0, r0, #1
|
||||
adds r0, r0, r1
|
||||
ldrh r0, [r0]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x7c
|
||||
strh r0, [r1]
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x76
|
||||
strh r0, [r2]
|
||||
ldrh r0, [r1]
|
||||
subs r1, #2
|
||||
strh r0, [r1]
|
||||
ldrb r0, [r4, #0xa]
|
||||
cmp r0, #0
|
||||
bne _08086354
|
||||
adds r1, #6
|
||||
ldr r0, [r4, #0x2c]
|
||||
str r0, [r1]
|
||||
adds r1, #4
|
||||
ldr r0, [r4, #0x30]
|
||||
str r0, [r1]
|
||||
ldrb r1, [r4, #0x19]
|
||||
movs r0, #0x3f
|
||||
ands r0, r1
|
||||
strb r0, [r4, #0x19]
|
||||
str r4, [r4, #0x50]
|
||||
ldrb r0, [r4, #0x10]
|
||||
movs r1, #0x80
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x10]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x3c
|
||||
movs r0, #7
|
||||
strb r0, [r1]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x3f
|
||||
strb r3, [r0]
|
||||
subs r1, #1
|
||||
movs r0, #4
|
||||
strb r0, [r1]
|
||||
movs r2, #0
|
||||
_08086324:
|
||||
adds r5, r2, #1
|
||||
adds r0, r4, #0
|
||||
movs r1, #0x18
|
||||
adds r2, r5, #0
|
||||
movs r3, #0
|
||||
bl CreateObjectWithParent
|
||||
adds r1, r0, #0
|
||||
str r1, [r4, #0x54]
|
||||
cmp r1, #0
|
||||
beq _08086346
|
||||
ldr r0, [r4, #0x50]
|
||||
str r0, [r1, #0x50]
|
||||
ldr r0, [r4, #0x54]
|
||||
str r4, [r0, #0x54]
|
||||
ldr r0, [r4, #0x54]
|
||||
str r0, [r4, #0x50]
|
||||
_08086346:
|
||||
adds r2, r5, #0
|
||||
cmp r2, #3
|
||||
bls _08086324
|
||||
b _08086360
|
||||
.align 2, 0
|
||||
_08086350: .4byte gUnk_08120678
|
||||
_08086354:
|
||||
ldrb r0, [r4, #0x19]
|
||||
movs r1, #0x3f
|
||||
ands r1, r0
|
||||
movs r0, #0x40
|
||||
orrs r1, r0
|
||||
strb r1, [r4, #0x19]
|
||||
_08086360:
|
||||
ldrb r1, [r4, #0xa]
|
||||
adds r0, r4, #0
|
||||
bl InitializeAnimation
|
||||
adds r0, r4, #0
|
||||
bl sub_08086370
|
||||
pop {r4, r5, pc}
|
||||
|
||||
thumb_func_start sub_08086370
|
||||
sub_08086370: @ 0x08086370
|
||||
push {r4, r5, r6, lr}
|
||||
adds r6, r0, #0
|
||||
ldrb r2, [r6, #0xa]
|
||||
cmp r2, #0
|
||||
beq _08086440
|
||||
ldr r0, [r6, #0x54]
|
||||
adds r0, #0x7f
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _080863B6
|
||||
adds r1, r6, #0
|
||||
adds r1, #0x7c
|
||||
ldrh r0, [r1]
|
||||
adds r2, r6, #0
|
||||
adds r2, #0x76
|
||||
strh r0, [r2]
|
||||
ldrh r0, [r1]
|
||||
subs r1, #2
|
||||
strh r0, [r1]
|
||||
movs r0, #0xc0
|
||||
lsls r0, r0, #2
|
||||
strh r0, [r6, #0x24]
|
||||
ldr r2, [r6, #0x50]
|
||||
ldr r0, [r2, #0x2c]
|
||||
ldr r1, [r6, #0x2c]
|
||||
subs r0, r0, r1
|
||||
ldr r1, [r2, #0x30]
|
||||
ldr r2, [r6, #0x30]
|
||||
subs r1, r1, r2
|
||||
bl CalculateDirectionFromOffsets
|
||||
movs r1, #0x80
|
||||
eors r0, r1
|
||||
strb r0, [r6, #0x15]
|
||||
b _08086428
|
||||
_080863B6:
|
||||
movs r0, #0xc0
|
||||
lsls r0, r0, #3
|
||||
strh r0, [r6, #0x24]
|
||||
ldr r2, _080863E8 @ =gPlayerEntity
|
||||
ldr r0, [r2, #0x2c]
|
||||
ldr r1, [r6, #0x2c]
|
||||
subs r0, r0, r1
|
||||
ldr r1, [r2, #0x30]
|
||||
ldr r2, [r6, #0x30]
|
||||
subs r1, r1, r2
|
||||
bl CalculateDirectionFromOffsets
|
||||
adds r1, r0, #0
|
||||
movs r0, #0x80
|
||||
eors r1, r0
|
||||
ldrb r2, [r6, #0x15]
|
||||
cmp r1, r2
|
||||
beq _080863F0
|
||||
subs r0, r1, r2
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
cmp r0, #0x80
|
||||
bls _080863EC
|
||||
adds r0, r2, #3
|
||||
b _080863EE
|
||||
.align 2, 0
|
||||
_080863E8: .4byte gPlayerEntity
|
||||
_080863EC:
|
||||
subs r0, r2, #3
|
||||
_080863EE:
|
||||
strb r0, [r6, #0x15]
|
||||
_080863F0:
|
||||
ldr r0, _0808640C @ =gPlayerEntity
|
||||
ldrb r1, [r0, #0x14]
|
||||
movs r0, #2
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _08086410
|
||||
adds r0, r6, #0
|
||||
adds r0, #0x7c
|
||||
ldrh r0, [r0]
|
||||
adds r0, #0x40
|
||||
adds r1, r6, #0
|
||||
adds r1, #0x76
|
||||
b _08086426
|
||||
.align 2, 0
|
||||
_0808640C: .4byte gPlayerEntity
|
||||
_08086410:
|
||||
adds r0, r6, #0
|
||||
adds r0, #0x7c
|
||||
ldrh r1, [r0]
|
||||
subs r1, #0x20
|
||||
adds r2, r6, #0
|
||||
adds r2, #0x76
|
||||
strh r1, [r2]
|
||||
ldrh r0, [r0]
|
||||
adds r0, #0x50
|
||||
adds r1, r6, #0
|
||||
adds r1, #0x7a
|
||||
_08086426:
|
||||
strh r0, [r1]
|
||||
_08086428:
|
||||
ldr r1, [r6, #0x50]
|
||||
ldr r0, [r1, #0x2c]
|
||||
str r0, [r6, #0x2c]
|
||||
ldr r0, [r1, #0x30]
|
||||
str r0, [r6, #0x30]
|
||||
movs r0, #0x24
|
||||
ldrsh r1, [r6, r0]
|
||||
ldrb r2, [r6, #0x15]
|
||||
adds r0, r6, #0
|
||||
bl LinearMoveAngle
|
||||
b _0808654A
|
||||
_08086440:
|
||||
adds r0, r6, #0
|
||||
adds r0, #0x41
|
||||
ldrb r1, [r0]
|
||||
movs r0, #0x7f
|
||||
ands r0, r1
|
||||
cmp r0, #0x13
|
||||
bne _08086498
|
||||
ldrb r0, [r6, #0x15]
|
||||
adds r0, #1
|
||||
strb r0, [r6, #0x15]
|
||||
ldrb r0, [r6, #0x1d]
|
||||
subs r0, #1
|
||||
strb r0, [r6, #0x1d]
|
||||
adds r2, r6, #0
|
||||
adds r2, #0x7f
|
||||
movs r0, #1
|
||||
strb r0, [r2]
|
||||
ldr r0, _08086480 @ =gPlayerEntity
|
||||
ldrb r1, [r0, #0x14]
|
||||
movs r0, #2
|
||||
ands r0, r1
|
||||
adds r3, r2, #0
|
||||
cmp r0, #0
|
||||
bne _08086484
|
||||
adds r0, r6, #0
|
||||
adds r0, #0x7c
|
||||
ldrh r0, [r0]
|
||||
adds r0, #0x10
|
||||
adds r1, r6, #0
|
||||
adds r1, #0x76
|
||||
strh r0, [r1]
|
||||
b _080864BC
|
||||
.align 2, 0
|
||||
_08086480: .4byte gPlayerEntity
|
||||
_08086484:
|
||||
adds r1, r6, #0
|
||||
adds r1, #0x7c
|
||||
ldrh r0, [r1]
|
||||
subs r0, #0x20
|
||||
adds r2, r6, #0
|
||||
adds r2, #0x76
|
||||
strh r0, [r2]
|
||||
ldrh r0, [r1]
|
||||
adds r0, #0x30
|
||||
b _080864B6
|
||||
_08086498:
|
||||
ldrb r0, [r6, #0x15]
|
||||
adds r0, #2
|
||||
strb r0, [r6, #0x15]
|
||||
movs r0, #0xf0
|
||||
strb r0, [r6, #0x1d]
|
||||
adds r3, r6, #0
|
||||
adds r3, #0x7f
|
||||
strb r2, [r3]
|
||||
adds r1, r6, #0
|
||||
adds r1, #0x7c
|
||||
ldrh r0, [r1]
|
||||
adds r2, r6, #0
|
||||
adds r2, #0x76
|
||||
strh r0, [r2]
|
||||
ldrh r0, [r1]
|
||||
_080864B6:
|
||||
subs r1, #2
|
||||
strh r0, [r1]
|
||||
adds r1, r2, #0
|
||||
_080864BC:
|
||||
ldrb r2, [r6, #0x1d]
|
||||
cmp r2, #0
|
||||
bne _080864CA
|
||||
movs r0, #2
|
||||
strb r0, [r6, #0xc]
|
||||
strb r2, [r3]
|
||||
b _0808654A
|
||||
_080864CA:
|
||||
ldrb r0, [r6, #0x15]
|
||||
adds r0, #0x40
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
blt _080864E0
|
||||
ldrh r2, [r1]
|
||||
movs r3, #0
|
||||
ldrsh r0, [r1, r3]
|
||||
cmp r0, #0
|
||||
ble _080864EE
|
||||
b _080864EA
|
||||
_080864E0:
|
||||
ldrh r2, [r1]
|
||||
movs r3, #0
|
||||
ldrsh r0, [r1, r3]
|
||||
cmp r0, #0
|
||||
bge _080864EE
|
||||
_080864EA:
|
||||
rsbs r0, r2, #0
|
||||
strh r0, [r1]
|
||||
_080864EE:
|
||||
ldr r5, _0808654C @ =gSineTable
|
||||
ldrb r0, [r6, #0x15]
|
||||
lsls r0, r0, #1
|
||||
adds r0, r0, r5
|
||||
movs r1, #0
|
||||
ldrsh r0, [r0, r1]
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #6
|
||||
bl FixedMul
|
||||
lsls r0, r0, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
movs r4, #0x80
|
||||
lsls r4, r4, #1
|
||||
adds r1, r4, #0
|
||||
bl FixedDiv
|
||||
adds r1, r6, #0
|
||||
adds r1, #0x80
|
||||
lsls r0, r0, #0x10
|
||||
asrs r0, r0, #8
|
||||
ldr r1, [r1]
|
||||
adds r1, r1, r0
|
||||
str r1, [r6, #0x2c]
|
||||
ldrb r0, [r6, #0x15]
|
||||
adds r0, #0x40
|
||||
lsls r0, r0, #1
|
||||
adds r0, r0, r5
|
||||
movs r3, #0
|
||||
ldrsh r0, [r0, r3]
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #5
|
||||
bl FixedMul
|
||||
lsls r0, r0, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
adds r1, r4, #0
|
||||
bl FixedDiv
|
||||
adds r1, r6, #0
|
||||
adds r1, #0x84
|
||||
lsls r0, r0, #0x10
|
||||
asrs r0, r0, #8
|
||||
ldr r1, [r1]
|
||||
subs r1, r1, r0
|
||||
str r1, [r6, #0x30]
|
||||
_0808654A:
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_0808654C: .4byte gSineTable
|
||||
|
||||
thumb_func_start sub_08086550
|
||||
sub_08086550: @ 0x08086550
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
adds r0, #0x41
|
||||
ldrb r1, [r0]
|
||||
movs r0, #0x7f
|
||||
ands r0, r1
|
||||
cmp r0, #0x13
|
||||
beq _08086566
|
||||
movs r0, #3
|
||||
strb r0, [r4, #0xc]
|
||||
b _08086592
|
||||
_08086566:
|
||||
adds r0, r4, #0
|
||||
bl sub_0806F3E4
|
||||
cmp r0, #0
|
||||
beq _08086592
|
||||
movs r0, #0x63
|
||||
bl SetLocalFlag
|
||||
movs r0, #0
|
||||
bl SetRoomFlag
|
||||
movs r5, #0
|
||||
_0808657E:
|
||||
ldr r0, [r4, #0x54]
|
||||
ldr r1, [r0, #0x50]
|
||||
str r1, [r4, #0x54]
|
||||
bl DeleteEntity
|
||||
adds r5, #1
|
||||
cmp r5, #3
|
||||
bls _0808657E
|
||||
bl DeleteThisEntity
|
||||
_08086592:
|
||||
pop {r4, r5, pc}
|
||||
|
||||
thumb_func_start sub_08086594
|
||||
sub_08086594: @ 0x08086594
|
||||
push {r4, r5, r6, r7, lr}
|
||||
adds r7, r0, #0
|
||||
adds r0, #0x80
|
||||
ldr r0, [r0]
|
||||
ldr r1, [r7, #0x2c]
|
||||
subs r0, r0, r1
|
||||
adds r1, r7, #0
|
||||
adds r1, #0x84
|
||||
ldr r1, [r1]
|
||||
ldr r2, [r7, #0x30]
|
||||
subs r1, r1, r2
|
||||
bl CalculateDirectionFromOffsets
|
||||
strb r0, [r7, #0x15]
|
||||
adds r0, r7, #0
|
||||
adds r0, #0x41
|
||||
ldrb r1, [r0]
|
||||
movs r0, #0x7f
|
||||
ands r0, r1
|
||||
cmp r0, #0x13
|
||||
bne _08086608
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #1
|
||||
strh r0, [r7, #0x24]
|
||||
ldrb r0, [r7, #0x1d]
|
||||
subs r0, #1
|
||||
strb r0, [r7, #0x1d]
|
||||
adds r2, r7, #0
|
||||
adds r2, #0x7f
|
||||
movs r0, #1
|
||||
strb r0, [r2]
|
||||
ldr r0, _080865EC @ =gPlayerEntity
|
||||
ldrb r1, [r0, #0x14]
|
||||
movs r0, #2
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _080865F0
|
||||
adds r0, r7, #0
|
||||
adds r0, #0x7c
|
||||
ldrh r0, [r0]
|
||||
adds r0, #0x10
|
||||
adds r1, r7, #0
|
||||
adds r1, #0x76
|
||||
b _0808662A
|
||||
.align 2, 0
|
||||
_080865EC: .4byte gPlayerEntity
|
||||
_080865F0:
|
||||
adds r0, r7, #0
|
||||
adds r0, #0x7c
|
||||
ldrh r1, [r0]
|
||||
subs r1, #0x20
|
||||
adds r3, r7, #0
|
||||
adds r3, #0x76
|
||||
strh r1, [r3]
|
||||
ldrh r0, [r0]
|
||||
adds r0, #0x30
|
||||
adds r1, r7, #0
|
||||
adds r1, #0x7a
|
||||
b _0808662A
|
||||
_08086608:
|
||||
movs r1, #0
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #2
|
||||
strh r0, [r7, #0x24]
|
||||
movs r0, #0xf0
|
||||
strb r0, [r7, #0x1d]
|
||||
adds r2, r7, #0
|
||||
adds r2, #0x7f
|
||||
strb r1, [r2]
|
||||
adds r1, r7, #0
|
||||
adds r1, #0x7c
|
||||
ldrh r0, [r1]
|
||||
adds r3, r7, #0
|
||||
adds r3, #0x76
|
||||
strh r0, [r3]
|
||||
ldrh r0, [r1]
|
||||
subs r1, #2
|
||||
_0808662A:
|
||||
strh r0, [r1]
|
||||
ldrb r1, [r7, #0x1d]
|
||||
cmp r1, #0
|
||||
bne _0808663A
|
||||
movs r0, #2
|
||||
strb r0, [r7, #0xc]
|
||||
strb r1, [r2]
|
||||
b _080866B8
|
||||
_0808663A:
|
||||
movs r0, #0x24
|
||||
ldrsh r1, [r7, r0]
|
||||
ldrb r2, [r7, #0x15]
|
||||
adds r0, r7, #0
|
||||
bl LinearMoveAngle
|
||||
ldrb r0, [r7, #0x15]
|
||||
movs r1, #0x80
|
||||
eors r0, r1
|
||||
strb r0, [r7, #0x15]
|
||||
ldr r6, _080866BC @ =gSineTable
|
||||
ldrb r0, [r7, #0x15]
|
||||
lsls r0, r0, #1
|
||||
adds r0, r0, r6
|
||||
movs r1, #0
|
||||
ldrsh r0, [r0, r1]
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #6
|
||||
bl FixedMul
|
||||
lsls r0, r0, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
movs r5, #0x80
|
||||
lsls r5, r5, #1
|
||||
adds r1, r5, #0
|
||||
bl FixedDiv
|
||||
adds r1, r7, #0
|
||||
adds r1, #0x80
|
||||
lsls r0, r0, #0x10
|
||||
asrs r0, r0, #8
|
||||
ldr r4, [r1]
|
||||
adds r4, r4, r0
|
||||
ldrb r0, [r7, #0x15]
|
||||
adds r0, #0x40
|
||||
lsls r0, r0, #1
|
||||
adds r0, r0, r6
|
||||
movs r1, #0
|
||||
ldrsh r0, [r0, r1]
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #5
|
||||
bl FixedMul
|
||||
lsls r0, r0, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
adds r1, r5, #0
|
||||
bl FixedDiv
|
||||
adds r1, r7, #0
|
||||
adds r1, #0x84
|
||||
lsls r0, r0, #0x10
|
||||
asrs r0, r0, #8
|
||||
ldr r2, [r1]
|
||||
subs r2, r2, r0
|
||||
adds r0, r7, #0
|
||||
adds r1, r4, #0
|
||||
movs r3, #2
|
||||
bl EntityWithinDistance
|
||||
cmp r0, #0
|
||||
beq _080866B8
|
||||
movs r0, #1
|
||||
strb r0, [r7, #0xc]
|
||||
_080866B8:
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_080866BC: .4byte gSineTable
|
||||
Reference in New Issue
Block a user