mirror of
https://github.com/zeldaret/tmc
synced 2026-09-04 02:29:33 -04:00
Merge playerUtils
Merge all player utils files, split asm into functions and decompile a bunch of functions.
This commit is contained in:
@@ -1,223 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_0805ED30
|
||||
sub_0805ED30: @ 0x0805ED30
|
||||
push {r4, lr}
|
||||
ldr r2, _0805ED50 @ =gPlayerState
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x9c
|
||||
ldr r0, [r0]
|
||||
adds r4, r2, #0
|
||||
cmp r0, #0
|
||||
beq _0805ED88
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x90
|
||||
ldr r2, [r1, #0xc]
|
||||
ldrh r0, [r1, #8]
|
||||
cmp r0, #0
|
||||
bne _0805ED7E
|
||||
movs r4, #0
|
||||
b _0805ED62
|
||||
.align 2, 0
|
||||
_0805ED50: .4byte gPlayerState
|
||||
_0805ED54:
|
||||
cmp r0, #2
|
||||
beq _0805ED5E
|
||||
strh r3, [r1, #8]
|
||||
ldrh r0, [r2, #2]
|
||||
strh r0, [r1, #0xa]
|
||||
_0805ED5E:
|
||||
adds r2, #4
|
||||
b _0805ED7C
|
||||
_0805ED62:
|
||||
ldrh r3, [r2]
|
||||
lsrs r0, r3, #0xe
|
||||
cmp r0, #1
|
||||
bne _0805ED72
|
||||
movs r3, #2
|
||||
ldrsh r0, [r2, r3]
|
||||
adds r2, r2, r0
|
||||
b _0805ED62
|
||||
_0805ED72:
|
||||
cmp r0, #3
|
||||
bne _0805ED54
|
||||
strh r4, [r1, #8]
|
||||
strh r4, [r1, #0xa]
|
||||
movs r2, #0
|
||||
_0805ED7C:
|
||||
str r2, [r1, #0xc]
|
||||
_0805ED7E:
|
||||
ldrh r0, [r1, #8]
|
||||
subs r0, #1
|
||||
strh r0, [r1, #8]
|
||||
ldrh r1, [r1, #0xa]
|
||||
b _0805EDCA
|
||||
_0805ED88:
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x8b
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #3
|
||||
bgt _0805ED98
|
||||
cmp r0, #0
|
||||
blt _0805ED98
|
||||
movs r1, #0
|
||||
_0805ED98:
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x8b
|
||||
ldrb r0, [r2]
|
||||
cmp r0, #1
|
||||
beq _0805EDB4
|
||||
cmp r0, #1
|
||||
bgt _0805EDAC
|
||||
cmp r0, #0
|
||||
beq _0805EDC6
|
||||
b _0805EDCA
|
||||
_0805EDAC:
|
||||
cmp r0, #3
|
||||
bgt _0805EDCA
|
||||
movs r1, #0
|
||||
b _0805EDCA
|
||||
_0805EDB4:
|
||||
movs r0, #0
|
||||
strb r0, [r2]
|
||||
ldr r0, _0805EDF8 @ =gInput
|
||||
ldrh r0, [r0]
|
||||
bl sub_0805EE04
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x90
|
||||
strh r0, [r1]
|
||||
_0805EDC6:
|
||||
ldr r0, _0805EDF8 @ =gInput
|
||||
ldrh r1, [r0]
|
||||
_0805EDCA:
|
||||
adds r0, r1, #0
|
||||
bl sub_0805EE04
|
||||
ldr r3, _0805EDFC @ =gPlayerState
|
||||
adds r1, r3, #0
|
||||
adds r1, #0x90
|
||||
ldrh r2, [r1]
|
||||
strh r0, [r1]
|
||||
adds r1, r0, #0
|
||||
bics r1, r2
|
||||
adds r2, r3, #0
|
||||
adds r2, #0x92
|
||||
strh r1, [r2]
|
||||
ldr r2, _0805EE00 @ =gUnk_08109202
|
||||
movs r1, #0xf0
|
||||
lsls r1, r1, #4
|
||||
ands r1, r0
|
||||
lsrs r1, r1, #8
|
||||
adds r1, r1, r2
|
||||
ldrb r0, [r1]
|
||||
strb r0, [r3, #0xd]
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_0805EDF8: .4byte gInput
|
||||
_0805EDFC: .4byte gPlayerState
|
||||
_0805EE00: .4byte gUnk_08109202
|
||||
|
||||
thumb_func_start sub_0805EE04
|
||||
sub_0805EE04: @ 0x0805EE04
|
||||
push {r4, r5, lr}
|
||||
adds r2, r0, #0
|
||||
movs r5, #0x80
|
||||
lsls r5, r5, #2
|
||||
ands r0, r5
|
||||
rsbs r0, r0, #0
|
||||
asrs r1, r0, #0x1f
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #5
|
||||
ands r1, r0
|
||||
movs r4, #0x80
|
||||
lsls r4, r4, #1
|
||||
adds r0, r2, #0
|
||||
ands r0, r4
|
||||
cmp r0, #0
|
||||
beq _0805EE32
|
||||
movs r0, #0x20
|
||||
orrs r1, r0
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #8
|
||||
orrs r1, r0
|
||||
movs r0, #0x80
|
||||
orrs r1, r0
|
||||
_0805EE32:
|
||||
movs r0, #1
|
||||
ands r0, r2
|
||||
cmp r0, #0
|
||||
beq _0805EE42
|
||||
movs r0, #8
|
||||
orrs r1, r0
|
||||
movs r0, #0x41
|
||||
orrs r1, r0
|
||||
_0805EE42:
|
||||
movs r3, #2
|
||||
adds r0, r2, #0
|
||||
ands r0, r3
|
||||
cmp r0, #0
|
||||
beq _0805EE52
|
||||
movs r0, #0x10
|
||||
orrs r1, r0
|
||||
orrs r1, r3
|
||||
_0805EE52:
|
||||
movs r0, #0x10
|
||||
ands r0, r2
|
||||
cmp r0, #0
|
||||
beq _0805EE5C
|
||||
orrs r1, r4
|
||||
_0805EE5C:
|
||||
movs r0, #0x20
|
||||
ands r0, r2
|
||||
cmp r0, #0
|
||||
beq _0805EE66
|
||||
orrs r1, r5
|
||||
_0805EE66:
|
||||
movs r0, #0x40
|
||||
ands r0, r2
|
||||
cmp r0, #0
|
||||
beq _0805EE74
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #3
|
||||
orrs r1, r0
|
||||
_0805EE74:
|
||||
movs r0, #0x80
|
||||
ands r0, r2
|
||||
cmp r0, #0
|
||||
beq _0805EE82
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #4
|
||||
orrs r1, r0
|
||||
_0805EE82:
|
||||
adds r0, r1, #0
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_0805EE88
|
||||
sub_0805EE88: @ 0x0805EE88
|
||||
push {lr}
|
||||
ldr r1, _0805EEB0 @ =gRoomTransition
|
||||
adds r0, r1, #0
|
||||
adds r0, #0x2f
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
beq _0805EEAC
|
||||
ldr r1, [r1]
|
||||
movs r0, #3
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _0805EEAC
|
||||
movs r0, #0xc
|
||||
ands r1, r0
|
||||
lsrs r0, r1, #2
|
||||
adds r0, #0x2f
|
||||
bl LoadPaletteGroup
|
||||
_0805EEAC:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_0805EEB0: .4byte gRoomTransition
|
||||
|
||||
@@ -1,967 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_08077FEC
|
||||
sub_08077FEC: @ 0x08077FEC
|
||||
push {lr}
|
||||
ldr r0, _08078000 @ =gPlayerState + 0xA0
|
||||
ldr r2, _08078004 @ =gUnk_0811BFE8
|
||||
ldrb r1, [r0]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r2
|
||||
ldr r1, [r1]
|
||||
bl _call_via_r1
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_08078000: .4byte gPlayerState + 0xA0
|
||||
_08078004: .4byte gUnk_0811BFE8
|
||||
|
||||
thumb_func_start sub_08078008
|
||||
sub_08078008: @ 0x08078008
|
||||
push {r4, r5, r6, lr}
|
||||
adds r4, r0, #0
|
||||
ldr r6, _08078060 @ =gSave
|
||||
adds r5, r6, #0
|
||||
adds r5, #0xb4
|
||||
ldrb r0, [r5]
|
||||
bl ItemIsSword
|
||||
cmp r0, #0
|
||||
bne _0807802C
|
||||
adds r5, r6, #0
|
||||
adds r5, #0xb5
|
||||
ldrb r0, [r5]
|
||||
bl ItemIsSword
|
||||
movs r2, #0
|
||||
cmp r0, #0
|
||||
beq _0807802E
|
||||
_0807802C:
|
||||
ldrb r2, [r5]
|
||||
_0807802E:
|
||||
subs r0, r2, #1
|
||||
cmp r0, #1
|
||||
bhi _08078036
|
||||
movs r2, #0
|
||||
_08078036:
|
||||
cmp r2, #0
|
||||
beq _08078068
|
||||
ldr r0, _08078064 @ =gPlayerState
|
||||
ldrb r1, [r0, #0x1b]
|
||||
movs r0, #0x20
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _08078068
|
||||
ldrb r0, [r4, #1]
|
||||
adds r0, #1
|
||||
strb r0, [r4, #1]
|
||||
lsls r0, r0, #0x18
|
||||
asrs r0, r0, #0x18
|
||||
cmp r0, #0x14
|
||||
ble _0807806C
|
||||
movs r0, #0xa
|
||||
strb r0, [r4, #1]
|
||||
movs r0, #3
|
||||
strb r0, [r4]
|
||||
strb r2, [r4, #2]
|
||||
b _0807806C
|
||||
.align 2, 0
|
||||
_08078060: .4byte gSave
|
||||
_08078064: .4byte gPlayerState
|
||||
_08078068:
|
||||
movs r0, #0
|
||||
strb r0, [r4, #1]
|
||||
_0807806C:
|
||||
movs r0, #0
|
||||
pop {r4, r5, r6, pc}
|
||||
|
||||
thumb_func_start sub_08078070
|
||||
sub_08078070: @ 0x08078070
|
||||
push {lr}
|
||||
adds r2, r0, #0
|
||||
ldr r3, _08078098 @ =gPlayerState
|
||||
ldrb r1, [r3, #0x1b]
|
||||
movs r0, #0x20
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _080780D6
|
||||
adds r0, r3, #0
|
||||
adds r0, #0xac
|
||||
ldrh r1, [r0]
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #3
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0807809C
|
||||
ldrh r0, [r2, #4]
|
||||
adds r0, #0xc
|
||||
b _080780A0
|
||||
.align 2, 0
|
||||
_08078098: .4byte gPlayerState
|
||||
_0807809C:
|
||||
ldrh r0, [r2, #4]
|
||||
adds r0, #6
|
||||
_080780A0:
|
||||
strh r0, [r2, #4]
|
||||
movs r0, #4
|
||||
ldrsh r1, [r2, r0]
|
||||
ldr r0, _080780BC @ =0x0000031F
|
||||
cmp r1, r0
|
||||
ble _080780C0
|
||||
adds r0, #1
|
||||
strh r0, [r2, #4]
|
||||
movs r0, #4
|
||||
strb r0, [r2]
|
||||
movs r0, #0xd8
|
||||
bl SoundReq
|
||||
b _080780DA
|
||||
.align 2, 0
|
||||
_080780BC: .4byte 0x0000031F
|
||||
_080780C0:
|
||||
movs r1, #4
|
||||
ldrsh r0, [r2, r1]
|
||||
movs r1, #0x14
|
||||
bl Mod
|
||||
cmp r0, #0
|
||||
bne _080780DA
|
||||
movs r0, #0xd7
|
||||
bl SoundReq
|
||||
b _080780DA
|
||||
_080780D6:
|
||||
movs r0, #1
|
||||
strb r0, [r2]
|
||||
_080780DA:
|
||||
movs r0, #1
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_080780E0
|
||||
sub_080780E0: @ 0x080780E0
|
||||
push {lr}
|
||||
adds r2, r0, #0
|
||||
ldr r0, _080780F4 @ =gPlayerState
|
||||
ldrb r1, [r0, #0x1b]
|
||||
movs r0, #0x40
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _080780F8
|
||||
movs r0, #5
|
||||
b _08078102
|
||||
.align 2, 0
|
||||
_080780F4: .4byte gPlayerState
|
||||
_080780F8:
|
||||
movs r0, #0x20
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _08078104
|
||||
movs r0, #1
|
||||
_08078102:
|
||||
strb r0, [r2]
|
||||
_08078104:
|
||||
movs r0, #1
|
||||
pop {pc}
|
||||
|
||||
thumb_func_start sub_08078108
|
||||
sub_08078108: @ 0x08078108
|
||||
push {lr}
|
||||
adds r1, r0, #0
|
||||
ldrh r0, [r1, #4]
|
||||
subs r0, #1
|
||||
strh r0, [r1, #4]
|
||||
lsls r0, r0, #0x10
|
||||
cmp r0, #0
|
||||
bge _08078120
|
||||
movs r0, #0
|
||||
strh r0, [r1, #4]
|
||||
movs r0, #2
|
||||
strb r0, [r1]
|
||||
_08078120:
|
||||
movs r0, #1
|
||||
pop {pc}
|
||||
|
||||
thumb_func_start sub_08078124
|
||||
sub_08078124: @ 0x08078124
|
||||
push {lr}
|
||||
adds r1, r0, #0
|
||||
ldrh r0, [r1, #4]
|
||||
subs r0, #0x10
|
||||
strh r0, [r1, #4]
|
||||
lsls r0, r0, #0x10
|
||||
cmp r0, #0
|
||||
bge _0807813C
|
||||
movs r0, #0
|
||||
strh r0, [r1, #4]
|
||||
movs r0, #2
|
||||
strb r0, [r1]
|
||||
_0807813C:
|
||||
movs r0, #1
|
||||
pop {pc}
|
||||
|
||||
thumb_func_start sub_08078140
|
||||
sub_08078140: @ 0x08078140
|
||||
push {lr}
|
||||
adds r1, r0, #0
|
||||
ldrb r0, [r1, #1]
|
||||
subs r0, #1
|
||||
movs r2, #0
|
||||
strb r0, [r1, #1]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
blt _08078156
|
||||
movs r0, #0
|
||||
b _0807815C
|
||||
_08078156:
|
||||
strb r2, [r1, #1]
|
||||
strb r2, [r1]
|
||||
movs r0, #1
|
||||
_0807815C:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start ForceSetPlayerState
|
||||
ForceSetPlayerState: @ 0x08078160
|
||||
push {lr}
|
||||
ldr r1, _08078178 @ =gPlayerState
|
||||
adds r1, #0xa8
|
||||
strb r0, [r1]
|
||||
ldr r2, _0807817C @ =gPlayerEntity
|
||||
ldrb r1, [r2, #0x10]
|
||||
movs r0, #0x7f
|
||||
ands r0, r1
|
||||
strb r0, [r2, #0x10]
|
||||
bl sub_08078B48
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_08078178: .4byte gPlayerState
|
||||
_0807817C: .4byte gPlayerEntity
|
||||
|
||||
thumb_func_start sub_08078180
|
||||
sub_08078180: @ 0x08078180
|
||||
push {r4, r5, r6, lr}
|
||||
ldr r0, _080781C8 @ =gUnk_0200AF00
|
||||
adds r1, r0, #0
|
||||
adds r1, #0x2f
|
||||
ldrb r1, [r1]
|
||||
adds r6, r0, #0
|
||||
cmp r1, #0
|
||||
beq _08078192
|
||||
b _080782BC
|
||||
_08078192:
|
||||
movs r4, #0
|
||||
ldr r5, _080781CC @ =gPlayerState
|
||||
ldrb r0, [r5, #2]
|
||||
cmp r0, #0
|
||||
beq _0807819E
|
||||
b _080782B6
|
||||
_0807819E:
|
||||
ldr r0, [r5, #0x30]
|
||||
ldr r1, _080781D0 @ =0x00104D00
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _080781AA
|
||||
b _080782B6
|
||||
_080781AA:
|
||||
ldrb r0, [r5, #5]
|
||||
subs r0, #1
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
cmp r0, #3
|
||||
bhi _080781D4
|
||||
adds r1, r6, #0
|
||||
adds r1, #0x2e
|
||||
ldrb r0, [r1]
|
||||
movs r4, #3
|
||||
cmp r0, #0
|
||||
bne _080781C4
|
||||
b _080782B6
|
||||
_080781C4:
|
||||
adds r4, r0, #0
|
||||
b _080782B6
|
||||
.align 2, 0
|
||||
_080781C8: .4byte gUnk_0200AF00
|
||||
_080781CC: .4byte gPlayerState
|
||||
_080781D0: .4byte 0x00104D00
|
||||
_080781D4:
|
||||
adds r1, r6, #0
|
||||
adds r1, #0x2d
|
||||
ldrb r0, [r1]
|
||||
cmp r0, #0
|
||||
bne _080781C4
|
||||
bl sub_080784E4
|
||||
adds r1, r0, #0
|
||||
ldr r0, [r1, #8]
|
||||
adds r0, #0x39
|
||||
ldrb r0, [r0]
|
||||
lsls r0, r0, #0x18
|
||||
asrs r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _08078278
|
||||
ldrb r0, [r1, #1]
|
||||
subs r0, #1
|
||||
cmp r0, #9
|
||||
bhi _080782B6
|
||||
lsls r0, r0, #2
|
||||
ldr r1, _08078204 @ =_08078208
|
||||
adds r0, r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_08078204: .4byte _08078208
|
||||
_08078208: @ jump table
|
||||
.4byte _08078230 @ case 0
|
||||
.4byte _080782B6 @ case 1
|
||||
.4byte _08078254 @ case 2
|
||||
.4byte _080782B6 @ case 3
|
||||
.4byte _08078254 @ case 4
|
||||
.4byte _08078254 @ case 5
|
||||
.4byte _08078230 @ case 6
|
||||
.4byte _0807823C @ case 7
|
||||
.4byte _08078260 @ case 8
|
||||
.4byte _0807826C @ case 9
|
||||
_08078230:
|
||||
movs r4, #7
|
||||
ldr r6, _08078238 @ =gUnk_0200AF00
|
||||
b _080782B6
|
||||
.align 2, 0
|
||||
_08078238: .4byte gUnk_0200AF00
|
||||
_0807823C:
|
||||
ldr r0, _0807824C @ =gRoomVars
|
||||
ldrb r0, [r0, #6]
|
||||
ldr r6, _08078250 @ =gUnk_0200AF00
|
||||
cmp r0, #0
|
||||
bne _080782B6
|
||||
movs r4, #9
|
||||
b _080782B6
|
||||
.align 2, 0
|
||||
_0807824C: .4byte gRoomVars
|
||||
_08078250: .4byte gUnk_0200AF00
|
||||
_08078254:
|
||||
movs r4, #6
|
||||
ldr r6, _0807825C @ =gUnk_0200AF00
|
||||
b _080782B6
|
||||
.align 2, 0
|
||||
_0807825C: .4byte gUnk_0200AF00
|
||||
_08078260:
|
||||
movs r4, #5
|
||||
ldr r6, _08078268 @ =gUnk_0200AF00
|
||||
b _080782B6
|
||||
.align 2, 0
|
||||
_08078268: .4byte gUnk_0200AF00
|
||||
_0807826C:
|
||||
movs r4, #2
|
||||
ldr r6, _08078274 @ =gUnk_0200AF00
|
||||
b _080782B6
|
||||
.align 2, 0
|
||||
_08078274: .4byte gUnk_0200AF00
|
||||
_08078278:
|
||||
bl sub_080789A8
|
||||
cmp r0, #0
|
||||
beq _080782A4
|
||||
adds r0, r5, #0
|
||||
adds r0, #0xa8
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0xe
|
||||
beq _080782BC
|
||||
ldr r1, _080782A0 @ =gUnk_03003BE0
|
||||
ldrb r0, [r1, #1]
|
||||
movs r4, #9
|
||||
cmp r0, #2
|
||||
bne _080782B6
|
||||
ldr r0, [r1, #8]
|
||||
ldrb r0, [r0, #0x16]
|
||||
cmp r0, #1
|
||||
bne _080782B6
|
||||
movs r4, #8
|
||||
b _080782B6
|
||||
.align 2, 0
|
||||
_080782A0: .4byte gUnk_03003BE0
|
||||
_080782A4:
|
||||
adds r0, r5, #0
|
||||
adds r0, #0xa8
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #1
|
||||
bne _080782B6
|
||||
ldrb r0, [r5, #0x1a]
|
||||
cmp r0, #0
|
||||
bne _080782B6
|
||||
movs r4, #0xc
|
||||
_080782B6:
|
||||
adds r0, r6, #0
|
||||
adds r0, #0x2c
|
||||
strb r4, [r0]
|
||||
_080782BC:
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_080782C0
|
||||
sub_080782C0: @ 0x080782C0
|
||||
push {r4, r5, r6, lr}
|
||||
ldr r1, _080782D8 @ =gPlayerState
|
||||
adds r2, r1, #0
|
||||
adds r2, #0xa8
|
||||
ldrb r0, [r2]
|
||||
adds r4, r1, #0
|
||||
cmp r0, #0
|
||||
bne _080782DC
|
||||
adds r0, r4, #0
|
||||
adds r0, #0xa9
|
||||
ldrb r0, [r0]
|
||||
b _080782DE
|
||||
.align 2, 0
|
||||
_080782D8: .4byte gPlayerState
|
||||
_080782DC:
|
||||
ldrb r0, [r2]
|
||||
_080782DE:
|
||||
subs r0, #2
|
||||
cmp r0, #0x14
|
||||
bhi _08078348
|
||||
lsls r0, r0, #2
|
||||
ldr r1, _080782F0 @ =_080782F4
|
||||
adds r0, r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_080782F0: .4byte _080782F4
|
||||
_080782F4: @ jump table
|
||||
.4byte _080784AC @ case 0
|
||||
.4byte _080784AC @ case 1
|
||||
.4byte _08078348 @ case 2
|
||||
.4byte _08078348 @ case 3
|
||||
.4byte _08078348 @ case 4
|
||||
.4byte _08078348 @ case 5
|
||||
.4byte _08078348 @ case 6
|
||||
.4byte _08078348 @ case 7
|
||||
.4byte _08078348 @ case 8
|
||||
.4byte _08078348 @ case 9
|
||||
.4byte _080784AC @ case 10
|
||||
.4byte _08078348 @ case 11
|
||||
.4byte _08078348 @ case 12
|
||||
.4byte _08078348 @ case 13
|
||||
.4byte _08078348 @ case 14
|
||||
.4byte _08078348 @ case 15
|
||||
.4byte _080784AC @ case 16
|
||||
.4byte _08078348 @ case 17
|
||||
.4byte _08078348 @ case 18
|
||||
.4byte _080784AC @ case 19
|
||||
.4byte _080784AC @ case 20
|
||||
_08078348:
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x27
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x26
|
||||
ldrb r1, [r0]
|
||||
ldrb r0, [r2]
|
||||
orrs r0, r1
|
||||
cmp r0, #0
|
||||
beq _0807835C
|
||||
b _080784AC
|
||||
_0807835C:
|
||||
ldrb r0, [r4, #0x12]
|
||||
cmp r0, #1
|
||||
bne _08078376
|
||||
ldrb r0, [r4, #0x14]
|
||||
cmp r0, #0
|
||||
bne _0807836A
|
||||
b _080784AC
|
||||
_0807836A:
|
||||
bl CanDispEzloMessage
|
||||
cmp r0, #0
|
||||
beq _08078374
|
||||
b _080784C4
|
||||
_08078374:
|
||||
b _080784AC
|
||||
_08078376:
|
||||
ldr r0, [r4, #0x30]
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #7
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _08078384
|
||||
b _080784AC
|
||||
_08078384:
|
||||
bl CanDispEzloMessage
|
||||
cmp r0, #0
|
||||
beq _0807838E
|
||||
b _080784C4
|
||||
_0807838E:
|
||||
bl sub_080784E4
|
||||
ldr r6, [r0, #8]
|
||||
cmp r6, #0
|
||||
bne _0807839A
|
||||
b _080784AC
|
||||
_0807839A:
|
||||
ldrb r0, [r4, #5]
|
||||
cmp r0, #0
|
||||
beq _080783B6
|
||||
cmp r0, #4
|
||||
beq _080783A6
|
||||
b _080784AC
|
||||
_080783A6:
|
||||
ldr r0, _08078400 @ =gPlayerEntity
|
||||
ldr r0, [r0, #0x74]
|
||||
ldr r0, [r0, #0x54]
|
||||
ldrh r1, [r0, #8]
|
||||
ldr r0, _08078404 @ =0x00000206
|
||||
cmp r1, r0
|
||||
beq _080783B6
|
||||
b _080784AC
|
||||
_080783B6:
|
||||
ldr r2, _08078408 @ =gPlayerState
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x92
|
||||
ldrh r1, [r0]
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #5
|
||||
ands r0, r1
|
||||
adds r4, r2, #0
|
||||
cmp r0, #0
|
||||
beq _0807842C
|
||||
ldr r5, _0807840C @ =gUnk_03003DF0
|
||||
ldr r0, [r5, #4]
|
||||
ldrb r0, [r0, #3]
|
||||
subs r0, #1
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
cmp r0, #0x63
|
||||
bhi _0807842C
|
||||
movs r0, #0
|
||||
bl sub_0801E738
|
||||
ldr r0, _08078410 @ =gSave
|
||||
ldr r1, _08078414 @ =0x0000012B
|
||||
adds r0, r0, r1
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
beq _08078418
|
||||
ldr r1, [r5, #4]
|
||||
ldrb r0, [r1, #3]
|
||||
strb r0, [r5, #2]
|
||||
ldr r0, [r1, #8]
|
||||
adds r0, #0x39
|
||||
movs r1, #2
|
||||
strb r1, [r0]
|
||||
movs r0, #7
|
||||
strb r0, [r4, #0xc]
|
||||
b _08078420
|
||||
.align 2, 0
|
||||
_08078400: .4byte gPlayerEntity
|
||||
_08078404: .4byte 0x00000206
|
||||
_08078408: .4byte gPlayerState
|
||||
_0807840C: .4byte gUnk_03003DF0
|
||||
_08078410: .4byte gSave
|
||||
_08078414: .4byte 0x0000012B
|
||||
_08078418:
|
||||
ldr r0, _08078428 @ =0x00000B65
|
||||
movs r1, #0
|
||||
bl CreateEzloHint
|
||||
_08078420:
|
||||
movs r0, #0x13
|
||||
bl ForceSetPlayerState
|
||||
b _080784C4
|
||||
.align 2, 0
|
||||
_08078428: .4byte 0x00000B65
|
||||
_0807842C:
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x92
|
||||
ldrh r1, [r0]
|
||||
movs r0, #0x88
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _080784AC
|
||||
ldr r0, _08078450 @ =gUnk_03003DF0
|
||||
ldr r0, [r0, #4]
|
||||
ldrb r0, [r0, #1]
|
||||
cmp r0, #0xa
|
||||
bhi _080784C4
|
||||
lsls r0, r0, #2
|
||||
ldr r1, _08078454 @ =_08078458
|
||||
adds r0, r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_08078450: .4byte gUnk_03003DF0
|
||||
_08078454: .4byte _08078458
|
||||
_08078458: @ jump table
|
||||
.4byte _080784C4 @ case 0
|
||||
.4byte _08078484 @ case 1
|
||||
.4byte _080784C4 @ case 2
|
||||
.4byte _0807848E @ case 3
|
||||
.4byte _080784C4 @ case 4
|
||||
.4byte _0807848E @ case 5
|
||||
.4byte _08078484 @ case 6
|
||||
.4byte _0807848E @ case 7
|
||||
.4byte _080784A4 @ case 8
|
||||
.4byte _08078484 @ case 9
|
||||
.4byte _08078484 @ case 10
|
||||
_08078484:
|
||||
movs r0, #7
|
||||
strb r0, [r4, #0xc]
|
||||
movs r0, #0x13
|
||||
bl ForceSetPlayerState
|
||||
_0807848E:
|
||||
adds r1, r6, #0
|
||||
adds r1, #0x39
|
||||
movs r2, #0
|
||||
movs r0, #1
|
||||
strb r0, [r1]
|
||||
ldr r0, _080784A0 @ =gUnk_03003DF0
|
||||
strb r2, [r0, #2]
|
||||
b _080784C4
|
||||
.align 2, 0
|
||||
_080784A0: .4byte gUnk_03003DF0
|
||||
_080784A4:
|
||||
ldr r2, _080784B0 @ =gRoomVars
|
||||
ldrb r0, [r2, #6]
|
||||
cmp r0, #0
|
||||
beq _080784B4
|
||||
_080784AC:
|
||||
movs r0, #0
|
||||
b _080784C6
|
||||
.align 2, 0
|
||||
_080784B0: .4byte gRoomVars
|
||||
_080784B4:
|
||||
adds r1, r6, #0
|
||||
adds r1, #0x39
|
||||
movs r0, #1
|
||||
strb r0, [r1]
|
||||
ldrb r0, [r6, #0xa]
|
||||
strb r0, [r2, #6]
|
||||
ldrb r0, [r6, #0xb]
|
||||
strb r0, [r2, #7]
|
||||
_080784C4:
|
||||
movs r0, #1
|
||||
_080784C6:
|
||||
pop {r4, r5, r6, pc}
|
||||
|
||||
thumb_func_start sub_080784C8
|
||||
sub_080784C8: @ 0x080784C8
|
||||
push {r4, lr}
|
||||
ldr r4, _080784DC @ =gUnk_03003DF0
|
||||
movs r1, #0xc4
|
||||
lsls r1, r1, #1
|
||||
adds r0, r4, #0
|
||||
bl MemClear
|
||||
ldr r0, _080784E0 @ =gUnk_0811C000
|
||||
str r0, [r4, #4]
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_080784DC: .4byte gUnk_03003DF0
|
||||
_080784E0: .4byte gUnk_0811C000
|
||||
|
||||
thumb_func_start sub_080784E4
|
||||
sub_080784E4: @ 0x080784E4
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sl
|
||||
mov r6, sb
|
||||
mov r5, r8
|
||||
push {r5, r6, r7}
|
||||
ldr r0, _080784FC @ =gUnk_03003DF0
|
||||
ldrb r1, [r0]
|
||||
mov r8, r0
|
||||
cmp r1, #0
|
||||
beq _08078500
|
||||
ldr r0, [r0, #4]
|
||||
b _0807876A
|
||||
.align 2, 0
|
||||
_080784FC: .4byte gUnk_03003DF0
|
||||
_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 @ =gUnk_0811C000
|
||||
str r0, [r1, #4]
|
||||
movs r1, #1
|
||||
mov r2, r8
|
||||
strb r1, [r2]
|
||||
b _0807876A
|
||||
.align 2, 0
|
||||
_080785AC: .4byte gUnk_0811C000
|
||||
_080785B0:
|
||||
ldr r0, [r2, #0x30]
|
||||
movs r1, #0x80
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _080785F0
|
||||
bl HasDungeonMap
|
||||
cmp r0, #0
|
||||
beq _080785C4
|
||||
movs r0, #1
|
||||
_080785C4:
|
||||
adds r7, r0, #0
|
||||
bl HasDungeonCompass
|
||||
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 @ =gUnk_0811C00C
|
||||
adds r2, r1, r0
|
||||
ldr r5, _080785EC @ =gUnk_03003DF0
|
||||
mov r8, r5
|
||||
b _080785FE
|
||||
.align 2, 0
|
||||
_080785E4: .4byte gPlayerEntity
|
||||
_080785E8: .4byte gUnk_0811C00C
|
||||
_080785EC: .4byte gUnk_03003DF0
|
||||
_080785F0:
|
||||
ldr r3, _08078624 @ =gPlayerEntity
|
||||
ldrb r0, [r3, #0x14]
|
||||
movs r1, #6
|
||||
ands r1, r0
|
||||
ldr r0, _08078628 @ =gUnk_0811C014
|
||||
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 @ =gUnk_03003DF8
|
||||
b _08078724
|
||||
.align 2, 0
|
||||
_08078624: .4byte gPlayerEntity
|
||||
_08078628: .4byte gUnk_0811C014
|
||||
_0807862C: .4byte gUnk_03003DF8
|
||||
_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 @ =gUnk_03003DF8
|
||||
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 gUnk_03003DF8
|
||||
_08078758:
|
||||
movs r0, #0xff
|
||||
mov r1, r8
|
||||
strb r0, [r1, #3]
|
||||
ldr r0, _08078774 @ =gUnk_0811C000
|
||||
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 gUnk_0811C000
|
||||
-6292
File diff suppressed because it is too large
Load Diff
-1997
File diff suppressed because it is too large
Load Diff
@@ -1,153 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_0807CAA0
|
||||
sub_0807CAA0: @ 0x0807CAA0
|
||||
push {r4, lr}
|
||||
adds r3, r0, #0
|
||||
lsrs r4, r3, #2
|
||||
ldr r0, _0807CAC4 @ =gUnk_02002B32
|
||||
adds r4, r4, r0
|
||||
movs r0, #3
|
||||
ands r3, r0
|
||||
lsls r3, r3, #1
|
||||
lsls r1, r3
|
||||
ldrb r2, [r4]
|
||||
lsls r0, r3
|
||||
ands r0, r2
|
||||
eors r2, r0
|
||||
orrs r2, r1
|
||||
strb r2, [r4]
|
||||
lsrs r0, r3
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_0807CAC4: .4byte gUnk_02002B32
|
||||
|
||||
thumb_func_start sub_0807CAC8
|
||||
sub_0807CAC8: @ 0x0807CAC8
|
||||
ldr r2, _0807CAE0 @ =gSave
|
||||
ldr r1, _0807CAE4 @ =gArea
|
||||
ldr r3, _0807CAE8 @ =0x0000047C
|
||||
adds r2, r2, r3
|
||||
ldrb r1, [r1, #3]
|
||||
adds r2, r2, r1
|
||||
movs r1, #1
|
||||
lsls r1, r0
|
||||
ldrb r0, [r2]
|
||||
orrs r1, r0
|
||||
strb r1, [r2]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_0807CAE0: .4byte gSave
|
||||
_0807CAE4: .4byte gArea
|
||||
_0807CAE8: .4byte 0x0000047C
|
||||
|
||||
thumb_func_start sub_0807CAEC
|
||||
sub_0807CAEC: @ 0x0807CAEC
|
||||
adds r2, r0, #0
|
||||
ldr r0, _0807CB04 @ =gSave
|
||||
ldr r1, _0807CB08 @ =gArea
|
||||
ldr r3, _0807CB0C @ =0x0000047C
|
||||
adds r0, r0, r3
|
||||
ldrb r1, [r1, #3]
|
||||
adds r0, r0, r1
|
||||
ldrb r0, [r0]
|
||||
asrs r0, r2
|
||||
movs r1, #1
|
||||
ands r0, r1
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_0807CB04: .4byte gSave
|
||||
_0807CB08: .4byte gArea
|
||||
_0807CB0C: .4byte 0x0000047C
|
||||
|
||||
thumb_func_start CheckLocalFlagByBank
|
||||
CheckLocalFlagByBank: @ 0x0807CB10
|
||||
push {lr}
|
||||
adds r2, r0, #0
|
||||
ldr r0, _0807CB20 @ =gGlobalFlags
|
||||
adds r2, r2, r1
|
||||
adds r1, r2, #0
|
||||
bl ReadBit
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_0807CB20: .4byte gGlobalFlags
|
||||
|
||||
thumb_func_start sub_0807CB24
|
||||
sub_0807CB24: @ 0x0807CB24
|
||||
push {lr}
|
||||
adds r2, r0, #0
|
||||
adds r3, r1, #0
|
||||
cmp r2, #0x11
|
||||
bhi _0807CB84
|
||||
lsls r0, r2, #2
|
||||
ldr r1, _0807CB38 @ =_0807CB3C
|
||||
adds r0, r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_0807CB38: .4byte _0807CB3C
|
||||
_0807CB3C: @ jump table
|
||||
.4byte _0807CB84 @ case 0
|
||||
.4byte _0807CB88 @ case 1
|
||||
.4byte _0807CB88 @ case 2
|
||||
.4byte _0807CB88 @ case 3
|
||||
.4byte _0807CB88 @ case 4
|
||||
.4byte _0807CB88 @ case 5
|
||||
.4byte _0807CB88 @ case 6
|
||||
.4byte _0807CB88 @ case 7
|
||||
.4byte _0807CB88 @ case 8
|
||||
.4byte _0807CB88 @ case 9
|
||||
.4byte _0807CB88 @ case 10
|
||||
.4byte _0807CB88 @ case 11
|
||||
.4byte _0807CB88 @ case 12
|
||||
.4byte _0807CB88 @ case 13
|
||||
.4byte _0807CB84 @ case 14
|
||||
.4byte _0807CBA0 @ case 15
|
||||
.4byte _0807CBAE @ case 16
|
||||
.4byte _0807CBBC @ case 17
|
||||
_0807CB84:
|
||||
movs r1, #0
|
||||
b _0807CBCA
|
||||
_0807CB88:
|
||||
ldr r0, _0807CB9C @ =gLocalFlagBanks
|
||||
lsls r1, r2, #1
|
||||
adds r1, r1, r0
|
||||
ldrh r0, [r1]
|
||||
adds r1, r3, #0
|
||||
bl CheckLocalFlagByBank
|
||||
_0807CB96:
|
||||
adds r1, r0, #0
|
||||
b _0807CBCA
|
||||
.align 2, 0
|
||||
_0807CB9C: .4byte gLocalFlagBanks
|
||||
_0807CBA0:
|
||||
adds r0, r3, #0
|
||||
bl GetInventoryValue
|
||||
cmp r0, #0
|
||||
beq _0807CB96
|
||||
movs r0, #1
|
||||
b _0807CB96
|
||||
_0807CBAE:
|
||||
adds r0, r3, #0
|
||||
bl GetInventoryValue
|
||||
movs r1, #0
|
||||
cmp r0, #1
|
||||
bne _0807CBCA
|
||||
b _0807CBC8
|
||||
_0807CBBC:
|
||||
adds r0, r3, #0
|
||||
bl GetInventoryValue
|
||||
movs r1, #0
|
||||
cmp r0, #2
|
||||
bne _0807CBCA
|
||||
_0807CBC8:
|
||||
movs r1, #1
|
||||
_0807CBCA:
|
||||
adds r0, r1, #0
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
@@ -1,101 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_080300E8
|
||||
sub_080300E8: @ 0x080300E8
|
||||
push {lr}
|
||||
ldr r1, _08030110 @ =gRoomTransition
|
||||
adds r3, r1, #0
|
||||
adds r3, #0xae
|
||||
ldrh r0, [r3]
|
||||
cmp r0, #0xff
|
||||
beq _0803010C
|
||||
lsls r0, r0, #2
|
||||
adds r1, #0x6c
|
||||
adds r0, r0, r1
|
||||
ldr r2, _08030114 @ =gPlayerEntity
|
||||
ldrh r1, [r0]
|
||||
strh r1, [r2, #0x2e]
|
||||
ldrh r0, [r0, #2]
|
||||
adds r0, #0xc
|
||||
strh r0, [r2, #0x32]
|
||||
movs r0, #0xff
|
||||
strh r0, [r3]
|
||||
_0803010C:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_08030110: .4byte gRoomTransition
|
||||
_08030114: .4byte gPlayerEntity
|
||||
|
||||
thumb_func_start sub_08030118
|
||||
sub_08030118: @ 0x08030118
|
||||
push {lr}
|
||||
adds r2, r0, #0
|
||||
ldr r0, _0803013C @ =gRoomTransition
|
||||
adds r0, #0xac
|
||||
ldrh r0, [r0]
|
||||
asrs r0, r2
|
||||
movs r1, #1
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _08030140
|
||||
movs r0, #0xc0
|
||||
lsls r0, r0, #2
|
||||
adds r1, r2, #0
|
||||
adds r1, #0x67
|
||||
bl SetLocalFlagByBank
|
||||
b _0803014C
|
||||
.align 2, 0
|
||||
_0803013C: .4byte gRoomTransition
|
||||
_08030140:
|
||||
movs r0, #0xc0
|
||||
lsls r0, r0, #2
|
||||
adds r1, r2, #0
|
||||
adds r1, #0x67
|
||||
bl ClearLocalFlagByBank
|
||||
_0803014C:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_08030150
|
||||
sub_08030150: @ 0x08030150
|
||||
push {r4, r5, lr}
|
||||
mov ip, r0
|
||||
ldr r2, _08030194 @ =gRoomTransition
|
||||
adds r5, r2, #0
|
||||
adds r5, #0xac
|
||||
mov r3, ip
|
||||
adds r3, #0x80
|
||||
ldrb r4, [r3]
|
||||
movs r0, #1
|
||||
lsls r0, r4
|
||||
ldrh r1, [r5]
|
||||
bics r1, r0
|
||||
mov r0, ip
|
||||
adds r0, #0x84
|
||||
ldr r0, [r0]
|
||||
lsls r0, r4
|
||||
orrs r1, r0
|
||||
strh r1, [r5]
|
||||
ldrb r0, [r3]
|
||||
lsls r0, r0, #2
|
||||
adds r2, #0x6c
|
||||
adds r0, r0, r2
|
||||
mov r4, ip
|
||||
ldrh r1, [r4, #0x2e]
|
||||
strh r1, [r0]
|
||||
ldrb r0, [r3]
|
||||
lsls r0, r0, #1
|
||||
adds r0, #1
|
||||
lsls r0, r0, #1
|
||||
adds r0, r0, r2
|
||||
ldrh r1, [r4, #0x32]
|
||||
strh r1, [r0]
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_08030194: .4byte gRoomTransition
|
||||
@@ -1,23 +0,0 @@
|
||||
|
||||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start GetInventoryValue
|
||||
GetInventoryValue: @ 0x0807CA84
|
||||
adds r2, r0, #0
|
||||
lsrs r0, r2, #2
|
||||
ldr r1, _0807CA9C @ =gUnk_02002B32
|
||||
adds r0, r0, r1
|
||||
ldrb r0, [r0]
|
||||
movs r1, #3
|
||||
ands r2, r1
|
||||
lsls r2, r2, #1
|
||||
asrs r0, r2
|
||||
ands r0, r1
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_0807CA9C: .4byte gUnk_02002B32
|
||||
@@ -705,7 +705,7 @@
|
||||
.2byte \s
|
||||
.endm
|
||||
|
||||
.macro _0807F078 a:req, b:req
|
||||
.macro SetInventoryValue a:req, b:req
|
||||
.2byte 0x0c85
|
||||
.2byte \a
|
||||
.2byte \b
|
||||
|
||||
@@ -0,0 +1,88 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
adds r5, r0, #0
|
||||
adds r6, r1, #0
|
||||
mov r8, r2
|
||||
movs r1, #0x2e
|
||||
ldrsh r0, [r5, r1]
|
||||
adds r0, r0, r6
|
||||
ldr r2, _0807A288 @ =gRoomControls
|
||||
ldrh r1, [r2, #6]
|
||||
subs r1, r0, r1
|
||||
lsrs r4, r1, #4
|
||||
movs r3, #0x3f
|
||||
ands r4, r3
|
||||
movs r7, #0x32
|
||||
ldrsh r1, [r5, r7]
|
||||
add r1, r8
|
||||
ldrh r2, [r2, #8]
|
||||
subs r2, r1, r2
|
||||
asrs r2, r2, #4
|
||||
ands r2, r3
|
||||
lsls r2, r2, #6
|
||||
orrs r4, r2
|
||||
ldr r2, _0807A28C @ =gPlayerEntity
|
||||
adds r2, #0x38
|
||||
ldrb r2, [r2]
|
||||
bl GetTileTypeByPos
|
||||
adds r2, r0, #0
|
||||
ldr r1, _0807A290 @ =gPlayerState
|
||||
ldrh r0, [r1, #0x24]
|
||||
cmp r2, r0
|
||||
beq _0807A23A
|
||||
adds r3, r1, #0
|
||||
adds r3, #0x37
|
||||
movs r0, #0
|
||||
strb r0, [r3]
|
||||
ldrh r7, [r1, #0x24]
|
||||
cmp r2, r7
|
||||
bne _0807A242
|
||||
_0807A23A:
|
||||
adds r3, r1, #0
|
||||
ldrh r0, [r3, #0x22]
|
||||
cmp r4, r0
|
||||
beq _0807A24E
|
||||
_0807A242:
|
||||
ldr r0, _0807A290 @ =gPlayerState
|
||||
movs r1, #0
|
||||
strh r4, [r0, #0x22]
|
||||
strh r2, [r0, #0x24]
|
||||
strb r1, [r0, #0x11]
|
||||
adds r3, r0, #0
|
||||
_0807A24E:
|
||||
adds r2, r3, #0
|
||||
ldrb r1, [r2, #0x11]
|
||||
adds r0, r1, #0
|
||||
cmp r0, #0xff
|
||||
beq _0807A25C
|
||||
adds r0, r1, #1
|
||||
strb r0, [r2, #0x11]
|
||||
_0807A25C:
|
||||
adds r2, #0x37
|
||||
ldrb r1, [r2]
|
||||
adds r0, r1, #0
|
||||
cmp r0, #0xff
|
||||
beq _0807A26A
|
||||
adds r0, r1, #1
|
||||
strb r0, [r2]
|
||||
_0807A26A:
|
||||
ldrb r0, [r3, #0x12]
|
||||
strb r0, [r3, #0x13]
|
||||
adds r0, r5, #0
|
||||
adds r1, r6, #0
|
||||
mov r2, r8
|
||||
bl sub_080002B4
|
||||
adds r2, r0, #0
|
||||
ldr r1, _0807A294 @ =gUnk_08007CAC
|
||||
bl sub_08007DD6
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_0807A288: .4byte gRoomControls
|
||||
_0807A28C: .4byte gPlayerEntity
|
||||
_0807A290: .4byte gPlayerState
|
||||
_0807A294: .4byte gUnk_08007CAC
|
||||
.syntax divided
|
||||
@@ -0,0 +1,383 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sb
|
||||
mov r6, r8
|
||||
push {r6, r7}
|
||||
bl sub_0807BFA8
|
||||
ldr r7, _0807C158 @ =gRoomControls
|
||||
ldrb r1, [r7, #0xf]
|
||||
movs r0, #0xfc
|
||||
ands r0, r1
|
||||
strb r0, [r7, #0xf]
|
||||
ldr r5, _0807C15C @ =gMapDataTop
|
||||
movs r6, #0x80
|
||||
lsls r6, r6, #6
|
||||
adds r0, r5, #0
|
||||
adds r1, r6, #0
|
||||
bl MemClear
|
||||
adds r0, r5, r6
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #5
|
||||
bl MemClear
|
||||
ldr r0, _0807C160 @ =gUnk_02019EE0
|
||||
movs r4, #0x80
|
||||
lsls r4, r4, #8
|
||||
adds r1, r4, #0
|
||||
bl MemClear
|
||||
ldr r0, _0807C164 @ =gMapDataTopSpecial
|
||||
adds r1, r4, #0
|
||||
bl MemClear
|
||||
ldr r0, _0807C168 @ =gArea
|
||||
ldr r1, _0807C16C @ =0x0000085C
|
||||
adds r0, r0, r1
|
||||
ldr r0, [r0]
|
||||
ldr r0, [r0, #0xc]
|
||||
bl sub_080197D4
|
||||
ldr r2, _0807C170 @ =gMapBottom
|
||||
ldrh r1, [r2, #4]
|
||||
ldr r0, _0807C174 @ =0x0000FFFF
|
||||
cmp r1, r0
|
||||
beq _0807C178
|
||||
adds r0, r2, #4
|
||||
ldrh r1, [r7, #0x1e]
|
||||
lsrs r1, r1, #4
|
||||
ldrh r2, [r7, #0x20]
|
||||
lsrs r2, r2, #4
|
||||
bl sub_0807C8B0
|
||||
ldrh r1, [r7, #0x1e]
|
||||
lsrs r1, r1, #4
|
||||
ldrh r2, [r7, #0x20]
|
||||
lsrs r2, r2, #4
|
||||
adds r0, r5, #0
|
||||
bl sub_0807C8B0
|
||||
movs r2, #0
|
||||
mov sb, r2
|
||||
b _0807C184
|
||||
.align 2, 0
|
||||
_0807C158: .4byte gRoomControls
|
||||
_0807C15C: .4byte gMapDataTop
|
||||
_0807C160: .4byte gUnk_02019EE0
|
||||
_0807C164: .4byte gMapDataTopSpecial
|
||||
_0807C168: .4byte gArea
|
||||
_0807C16C: .4byte 0x0000085C
|
||||
_0807C170: .4byte gMapBottom
|
||||
_0807C174: .4byte 0x0000FFFF
|
||||
_0807C178:
|
||||
adds r0, r2, #4
|
||||
adds r1, r6, #0
|
||||
bl MemClear
|
||||
movs r3, #1
|
||||
mov sb, r3
|
||||
_0807C184:
|
||||
ldr r0, _0807C1B0 @ =gRoomTransition
|
||||
adds r0, #0x2d
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _0807C1BC
|
||||
ldr r0, _0807C1B4 @ =gMapDataBottom
|
||||
movs r2, #0xc0
|
||||
lsls r2, r2, #6
|
||||
adds r1, r0, r2
|
||||
movs r4, #0x80
|
||||
lsls r4, r4, #6
|
||||
adds r2, r4, #0
|
||||
bl MemCopy
|
||||
ldr r0, _0807C1B8 @ =gMapDataTop
|
||||
movs r3, #0xc0
|
||||
lsls r3, r3, #6
|
||||
adds r1, r0, r3
|
||||
adds r2, r4, #0
|
||||
bl MemCopy
|
||||
b _0807C26C
|
||||
.align 2, 0
|
||||
_0807C1B0: .4byte gRoomTransition
|
||||
_0807C1B4: .4byte gMapDataBottom
|
||||
_0807C1B8: .4byte gMapDataTop
|
||||
_0807C1BC:
|
||||
cmp r0, #2
|
||||
bne _0807C26C
|
||||
ldr r4, _0807C278 @ =gMapDataBottom
|
||||
movs r0, #0xb0
|
||||
lsls r0, r0, #8
|
||||
adds r0, r0, r4
|
||||
mov r8, r0
|
||||
movs r5, #0x80
|
||||
lsls r5, r5, #5
|
||||
adds r0, r4, #0
|
||||
mov r1, r8
|
||||
adds r2, r5, #0
|
||||
bl MemCopy
|
||||
movs r1, #0xc0
|
||||
lsls r1, r1, #6
|
||||
adds r6, r4, r1
|
||||
adds r0, r6, #0
|
||||
adds r1, r4, #0
|
||||
adds r2, r5, #0
|
||||
bl MemCopy
|
||||
mov r0, r8
|
||||
adds r1, r6, #0
|
||||
adds r2, r5, #0
|
||||
bl MemCopy
|
||||
adds r6, r4, r5
|
||||
adds r0, r6, #0
|
||||
mov r1, r8
|
||||
adds r2, r5, #0
|
||||
bl MemCopy
|
||||
movs r2, #0x80
|
||||
lsls r2, r2, #7
|
||||
adds r4, r4, r2
|
||||
adds r0, r4, #0
|
||||
adds r1, r6, #0
|
||||
adds r2, r5, #0
|
||||
bl MemCopy
|
||||
mov r0, r8
|
||||
adds r1, r4, #0
|
||||
adds r2, r5, #0
|
||||
bl MemCopy
|
||||
ldr r4, _0807C27C @ =gMapDataTop
|
||||
movs r3, #0xb0
|
||||
lsls r3, r3, #8
|
||||
adds r3, r3, r4
|
||||
mov r8, r3
|
||||
adds r0, r4, #0
|
||||
mov r1, r8
|
||||
adds r2, r5, #0
|
||||
bl MemCopy
|
||||
movs r0, #0xc0
|
||||
lsls r0, r0, #6
|
||||
adds r6, r4, r0
|
||||
adds r0, r6, #0
|
||||
adds r1, r4, #0
|
||||
adds r2, r5, #0
|
||||
bl MemCopy
|
||||
mov r0, r8
|
||||
adds r1, r6, #0
|
||||
adds r2, r5, #0
|
||||
bl MemCopy
|
||||
adds r6, r4, r5
|
||||
adds r0, r6, #0
|
||||
mov r1, r8
|
||||
adds r2, r5, #0
|
||||
bl MemCopy
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #7
|
||||
adds r4, r4, r1
|
||||
adds r0, r4, #0
|
||||
adds r1, r6, #0
|
||||
adds r2, r5, #0
|
||||
bl MemCopy
|
||||
mov r0, r8
|
||||
adds r1, r4, #0
|
||||
adds r2, r5, #0
|
||||
bl MemCopy
|
||||
_0807C26C:
|
||||
mov r2, sb
|
||||
cmp r2, #0
|
||||
bne _0807C280
|
||||
bl sub_0807BBE4
|
||||
b _0807C2A0
|
||||
.align 2, 0
|
||||
_0807C278: .4byte gMapDataBottom
|
||||
_0807C27C: .4byte gMapDataTop
|
||||
_0807C280:
|
||||
ldr r0, _0807C2CC @ =gUnk_02027EB4
|
||||
ldrh r1, [r7, #0x1e]
|
||||
lsrs r1, r1, #4
|
||||
ldrh r2, [r7, #0x20]
|
||||
lsrs r2, r2, #4
|
||||
bl sub_0807C69C
|
||||
ldr r0, _0807C2D0 @ =gUnk_0200D654
|
||||
ldrh r1, [r7, #0x1e]
|
||||
lsrs r1, r1, #4
|
||||
ldrh r2, [r7, #0x20]
|
||||
lsrs r2, r2, #4
|
||||
bl sub_0807C69C
|
||||
bl sub_0807C460
|
||||
_0807C2A0:
|
||||
bl sub_0807BC84
|
||||
ldr r4, _0807C2D4 @ =gMapBottom
|
||||
adds r0, r4, #0
|
||||
bl sub_08080B60
|
||||
ldr r5, _0807C2D8 @ =gMapTop
|
||||
adds r0, r5, #0
|
||||
bl sub_08080B60
|
||||
mov r3, sb
|
||||
cmp r3, #0
|
||||
bne _0807C2E4
|
||||
ldr r0, _0807C2DC @ =gUnk_02019EE0
|
||||
adds r1, r4, #0
|
||||
bl sub_0801AB08
|
||||
ldr r0, _0807C2E0 @ =gMapDataTopSpecial
|
||||
adds r1, r5, #0
|
||||
bl sub_0801AB08
|
||||
b _0807C326
|
||||
.align 2, 0
|
||||
_0807C2CC: .4byte gUnk_02027EB4
|
||||
_0807C2D0: .4byte gUnk_0200D654
|
||||
_0807C2D4: .4byte gMapBottom
|
||||
_0807C2D8: .4byte gMapTop
|
||||
_0807C2DC: .4byte gUnk_02019EE0
|
||||
_0807C2E0: .4byte gMapDataTopSpecial
|
||||
_0807C2E4:
|
||||
ldr r4, _0807C34C @ =gUnk_02019EE0
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #7
|
||||
adds r5, r4, r0
|
||||
adds r6, r0, #0
|
||||
adds r0, r4, #0
|
||||
adds r1, r5, #0
|
||||
adds r2, r6, #0
|
||||
bl MemCopy
|
||||
adds r0, r4, #0
|
||||
adds r1, r5, #0
|
||||
bl sub_0807C5F4
|
||||
adds r0, r5, #0
|
||||
adds r1, r6, #0
|
||||
bl MemClear
|
||||
ldr r4, _0807C350 @ =gMapDataTopSpecial
|
||||
adds r5, r4, r6
|
||||
adds r0, r4, #0
|
||||
adds r1, r5, #0
|
||||
adds r2, r6, #0
|
||||
bl MemCopy
|
||||
adds r0, r4, #0
|
||||
adds r1, r5, #0
|
||||
bl sub_0807C5F4
|
||||
adds r0, r5, #0
|
||||
adds r1, r6, #0
|
||||
bl MemClear
|
||||
_0807C326:
|
||||
mov r1, sb
|
||||
cmp r1, #0
|
||||
bne _0807C332
|
||||
ldrb r0, [r7, #4]
|
||||
cmp r0, #0x71
|
||||
bne _0807C33A
|
||||
_0807C332:
|
||||
ldrb r1, [r7, #0xf]
|
||||
movs r0, #1
|
||||
orrs r0, r1
|
||||
strb r0, [r7, #0xf]
|
||||
_0807C33A:
|
||||
ldrb r0, [r7, #4]
|
||||
subs r0, #0x20
|
||||
cmp r0, #0x18
|
||||
bhi _0807C400
|
||||
lsls r0, r0, #2
|
||||
ldr r1, _0807C354 @ =_0807C358
|
||||
adds r0, r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_0807C34C: .4byte gUnk_02019EE0
|
||||
_0807C350: .4byte gMapDataTopSpecial
|
||||
_0807C354: .4byte _0807C358
|
||||
_0807C358: @ jump table
|
||||
.4byte _0807C3BC @ case 0
|
||||
.4byte _0807C3E4 @ case 1
|
||||
.4byte _0807C3E4 @ case 2
|
||||
.4byte _0807C3E4 @ case 3
|
||||
.4byte _0807C3E4 @ case 4
|
||||
.4byte _0807C3E4 @ case 5
|
||||
.4byte _0807C400 @ case 6
|
||||
.4byte _0807C3E4 @ case 7
|
||||
.4byte _0807C3E4 @ case 8
|
||||
.4byte _0807C400 @ case 9
|
||||
.4byte _0807C400 @ case 10
|
||||
.4byte _0807C400 @ case 11
|
||||
.4byte _0807C400 @ case 12
|
||||
.4byte _0807C3BC @ case 13
|
||||
.4byte _0807C400 @ case 14
|
||||
.4byte _0807C400 @ case 15
|
||||
.4byte _0807C3E4 @ case 16
|
||||
.4byte _0807C400 @ case 17
|
||||
.4byte _0807C400 @ case 18
|
||||
.4byte _0807C400 @ case 19
|
||||
.4byte _0807C400 @ case 20
|
||||
.4byte _0807C400 @ case 21
|
||||
.4byte _0807C400 @ case 22
|
||||
.4byte _0807C400 @ case 23
|
||||
.4byte _0807C3E4 @ case 24
|
||||
_0807C3BC:
|
||||
ldr r0, _0807C3D8 @ =gMapBottom
|
||||
ldr r2, [r0]
|
||||
cmp r2, #0
|
||||
beq _0807C3CC
|
||||
ldrh r1, [r2]
|
||||
movs r0, #0x80
|
||||
orrs r0, r1
|
||||
strh r0, [r2]
|
||||
_0807C3CC:
|
||||
ldr r2, _0807C3DC @ =gScreen
|
||||
ldrh r1, [r2]
|
||||
ldr r0, _0807C3E0 @ =0x0000FDFF
|
||||
ands r0, r1
|
||||
strh r0, [r2]
|
||||
b _0807C444
|
||||
.align 2, 0
|
||||
_0807C3D8: .4byte gMapBottom
|
||||
_0807C3DC: .4byte gScreen
|
||||
_0807C3E0: .4byte 0x0000FDFF
|
||||
_0807C3E4:
|
||||
ldr r0, _0807C3F8 @ =gMapTop
|
||||
ldr r1, [r0]
|
||||
cmp r1, #0
|
||||
beq _0807C3F2
|
||||
ldr r0, _0807C3FC @ =gUnk_080B77C0
|
||||
ldrh r0, [r0, #4]
|
||||
strh r0, [r1]
|
||||
_0807C3F2:
|
||||
bl sub_0807C5B0
|
||||
b _0807C444
|
||||
.align 2, 0
|
||||
_0807C3F8: .4byte gMapTop
|
||||
_0807C3FC: .4byte gUnk_080B77C0
|
||||
_0807C400:
|
||||
ldr r0, _0807C44C @ =gMapBottom
|
||||
ldr r1, [r0]
|
||||
cmp r1, #0
|
||||
beq _0807C40E
|
||||
ldr r0, _0807C450 @ =gUnk_080B77C0
|
||||
ldrh r0, [r0]
|
||||
strh r0, [r1]
|
||||
_0807C40E:
|
||||
ldr r0, _0807C454 @ =gMapTop
|
||||
ldr r1, [r0]
|
||||
cmp r1, #0
|
||||
beq _0807C41C
|
||||
ldr r0, _0807C450 @ =gUnk_080B77C0
|
||||
ldrh r0, [r0, #2]
|
||||
strh r0, [r1]
|
||||
_0807C41C:
|
||||
ldr r2, _0807C458 @ =gScreen
|
||||
ldrh r0, [r2]
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #4
|
||||
ands r1, r0
|
||||
movs r3, #0xba
|
||||
lsls r3, r3, #5
|
||||
adds r0, r3, #0
|
||||
movs r3, #0
|
||||
orrs r1, r0
|
||||
strh r1, [r2]
|
||||
ldr r0, _0807C45C @ =gArea
|
||||
ldrb r0, [r0, #0xc]
|
||||
cmp r0, #0
|
||||
beq _0807C444
|
||||
movs r3, #0xa0
|
||||
lsls r3, r3, #8
|
||||
adds r0, r3, #0
|
||||
orrs r1, r0
|
||||
strh r1, [r2]
|
||||
_0807C444:
|
||||
pop {r3, r4}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_0807C44C: .4byte gMapBottom
|
||||
_0807C450: .4byte gUnk_080B77C0
|
||||
_0807C454: .4byte gMapTop
|
||||
_0807C458: .4byte gScreen
|
||||
_0807C45C: .4byte gArea
|
||||
.syntax divided
|
||||
@@ -0,0 +1,268 @@
|
||||
.syntax unified
|
||||
push {r4, lr}
|
||||
ldr r3, _08079954 @ =gPlayerState
|
||||
ldr r2, [r3, #0x30]
|
||||
movs r0, #8
|
||||
ands r0, r2
|
||||
mov ip, r3
|
||||
cmp r0, #0
|
||||
beq _080799E4
|
||||
ldrb r0, [r3, #5]
|
||||
cmp r0, #0
|
||||
beq _0807995C
|
||||
ldr r4, _08079958 @ =0x0000092C
|
||||
b _08079AD8
|
||||
.align 2, 0
|
||||
_08079954: .4byte gPlayerState
|
||||
_08079958: .4byte 0x0000092C
|
||||
_0807995C:
|
||||
mov r0, ip
|
||||
adds r0, #0x3d
|
||||
mov r3, ip
|
||||
ldrb r1, [r3, #0x1c]
|
||||
ldrb r0, [r0]
|
||||
orrs r0, r1
|
||||
cmp r0, #0
|
||||
beq _0807996E
|
||||
b _08079B14
|
||||
_0807996E:
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #0x12
|
||||
ands r0, r2
|
||||
cmp r0, #0
|
||||
bne _08079A1E
|
||||
mov r4, ip
|
||||
ldrb r0, [r4, #3]
|
||||
cmp r0, #0
|
||||
beq _08079988
|
||||
ldr r4, _08079984 @ =0x00000414
|
||||
b _08079AD8
|
||||
.align 2, 0
|
||||
_08079984: .4byte 0x00000414
|
||||
_08079988:
|
||||
mov r0, ip
|
||||
adds r0, #0x21
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _08079A5C
|
||||
mov r0, ip
|
||||
adds r0, #0x26
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _08079A6C
|
||||
mov r0, ip
|
||||
ldrb r1, [r0, #0x1b]
|
||||
movs r0, #0x48
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _080799AA
|
||||
b _08079B14
|
||||
_080799AA:
|
||||
cmp r1, #0
|
||||
beq _080799B0
|
||||
b _08079AA4
|
||||
_080799B0:
|
||||
mov r1, ip
|
||||
ldrb r0, [r1, #4]
|
||||
cmp r0, #0
|
||||
beq _080799BA
|
||||
b _08079B14
|
||||
_080799BA:
|
||||
movs r0, #0x20
|
||||
ands r2, r0
|
||||
cmp r2, #0
|
||||
beq _080799D0
|
||||
ldr r0, _080799D8 @ =gArea
|
||||
ldrb r0, [r0, #0x17]
|
||||
cmp r0, #4
|
||||
bne _080799CC
|
||||
b _08079AD4
|
||||
_080799CC:
|
||||
cmp r0, #5
|
||||
bne _080799DC
|
||||
_080799D0:
|
||||
movs r4, #0x80
|
||||
lsls r4, r4, #3
|
||||
b _08079AD8
|
||||
.align 2, 0
|
||||
_080799D8: .4byte gArea
|
||||
_080799DC:
|
||||
ldr r4, _080799E0 @ =0x000002C2
|
||||
b _08079AD8
|
||||
.align 2, 0
|
||||
_080799E0: .4byte 0x000002C2
|
||||
_080799E4:
|
||||
mov r4, ip
|
||||
ldrb r0, [r4, #5]
|
||||
cmp r0, #0
|
||||
beq _080799F2
|
||||
movs r4, #0xd4
|
||||
lsls r4, r4, #2
|
||||
b _08079AD8
|
||||
_080799F2:
|
||||
mov r0, ip
|
||||
adds r0, #0x3d
|
||||
mov r4, ip
|
||||
ldrb r1, [r4, #0x1c]
|
||||
ldrb r0, [r0]
|
||||
orrs r0, r1
|
||||
cmp r0, #0
|
||||
beq _08079A04
|
||||
b _08079B14
|
||||
_08079A04:
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #0xc
|
||||
ands r0, r2
|
||||
cmp r0, #0
|
||||
beq _08079A14
|
||||
movs r4, #0x8b
|
||||
lsls r4, r4, #4
|
||||
b _08079AD8
|
||||
_08079A14:
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #0x12
|
||||
ands r0, r2
|
||||
cmp r0, #0
|
||||
beq _08079A24
|
||||
_08079A1E:
|
||||
movs r4, #0x81
|
||||
lsls r4, r4, #4
|
||||
b _08079AD8
|
||||
_08079A24:
|
||||
mov r1, ip
|
||||
ldrb r0, [r1, #0x1e]
|
||||
cmp r0, #0
|
||||
beq _08079A32
|
||||
movs r4, #0xa6
|
||||
lsls r4, r4, #2
|
||||
b _08079AD8
|
||||
_08079A32:
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #5
|
||||
ands r0, r2
|
||||
cmp r0, #0
|
||||
beq _08079A44
|
||||
ldr r4, _08079A40 @ =0x0000070C
|
||||
b _08079AD8
|
||||
.align 2, 0
|
||||
_08079A40: .4byte 0x0000070C
|
||||
_08079A44:
|
||||
mov r4, ip
|
||||
ldrb r0, [r4, #3]
|
||||
cmp r0, #0
|
||||
beq _08079A52
|
||||
movs r4, #0xb2
|
||||
lsls r4, r4, #1
|
||||
b _08079AD8
|
||||
_08079A52:
|
||||
mov r0, ip
|
||||
adds r0, #0x21
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
beq _08079A62
|
||||
_08079A5C:
|
||||
movs r4, #0xa0
|
||||
lsls r4, r4, #2
|
||||
b _08079AD8
|
||||
_08079A62:
|
||||
mov r0, ip
|
||||
adds r0, #0x26
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
beq _08079A72
|
||||
_08079A6C:
|
||||
movs r4, #0xa3
|
||||
lsls r4, r4, #2
|
||||
b _08079AD8
|
||||
_08079A72:
|
||||
mov r0, ip
|
||||
ldrb r1, [r0, #0x1b]
|
||||
movs r0, #0x48
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _08079B14
|
||||
movs r0, #0x20
|
||||
ands r2, r0
|
||||
cmp r2, #0
|
||||
beq _08079AA0
|
||||
ldr r0, _08079A98 @ =gArea
|
||||
ldrb r0, [r0, #0x17]
|
||||
ldr r4, _08079A9C @ =0x000002C2
|
||||
cmp r0, #4
|
||||
bne _08079AD8
|
||||
movs r4, #0xa6
|
||||
lsls r4, r4, #3
|
||||
b _08079AD8
|
||||
.align 2, 0
|
||||
_08079A98: .4byte gArea
|
||||
_08079A9C: .4byte 0x000002C2
|
||||
_08079AA0:
|
||||
cmp r1, #0
|
||||
beq _08079AAA
|
||||
_08079AA4:
|
||||
movs r4, #0xb4
|
||||
lsls r4, r4, #1
|
||||
b _08079AD8
|
||||
_08079AAA:
|
||||
ldrb r0, [r3, #4]
|
||||
cmp r0, #0
|
||||
bne _08079B14
|
||||
ldr r0, [r3, #0x30]
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #0x10
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _08079AD4
|
||||
ldr r0, _08079ACC @ =gUnk_03000B80
|
||||
adds r0, #0x63
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _08079B14
|
||||
ldr r4, _08079AD0 @ =0x00000604
|
||||
b _08079AD8
|
||||
.align 2, 0
|
||||
_08079ACC: .4byte gUnk_03000B80
|
||||
_08079AD0: .4byte 0x00000604
|
||||
_08079AD4:
|
||||
movs r4, #0x80
|
||||
lsls r4, r4, #1
|
||||
_08079AD8:
|
||||
mov r1, ip
|
||||
strh r4, [r1, #8]
|
||||
ldrb r0, [r1, #5]
|
||||
cmp r0, #0
|
||||
bne _08079B10
|
||||
movs r3, #0
|
||||
movs r2, #0
|
||||
ldr r1, _08079B18 @ =gUnk_03000B80
|
||||
_08079AE8:
|
||||
ldrb r0, [r1, #0xf]
|
||||
cmp r0, r3
|
||||
bls _08079AF0
|
||||
adds r3, r0, #0
|
||||
_08079AF0:
|
||||
adds r1, #0x1c
|
||||
adds r2, #1
|
||||
cmp r2, #3
|
||||
bls _08079AE8
|
||||
mov r2, ip
|
||||
ldrb r0, [r2, #0xe]
|
||||
cmp r0, r3
|
||||
blo _08079B14
|
||||
lsls r0, r4, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
ldrb r3, [r2]
|
||||
cmp r0, r3
|
||||
bne _08079B10
|
||||
ldr r0, _08079B1C @ =gPlayerEntity
|
||||
bl UpdateAnimationSingleFrame
|
||||
_08079B10:
|
||||
ldr r0, _08079B20 @ =gPlayerState
|
||||
strb r4, [r0]
|
||||
_08079B14:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_08079B18: .4byte gUnk_03000B80
|
||||
_08079B1C: .4byte gPlayerEntity
|
||||
_08079B20: .4byte gPlayerState
|
||||
.syntax divided
|
||||
@@ -0,0 +1,100 @@
|
||||
.syntax unified
|
||||
push {r4, r5, lr}
|
||||
ldr r4, _08079498 @ =gPlayerEntity
|
||||
movs r1, #0
|
||||
movs r0, #0x19
|
||||
strb r0, [r4, #0xc]
|
||||
str r1, [r4, #0x34]
|
||||
str r1, [r4, #0x20]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x42
|
||||
strb r1, [r0]
|
||||
bl sub_08078EE4
|
||||
ldr r2, _0807949C @ =gPlayerState
|
||||
ldr r1, [r2, #0x30]
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #0xa
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _08079514
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #9
|
||||
ands r1, r0
|
||||
cmp r1, #0
|
||||
beq _080794E4
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x84
|
||||
ldr r1, [r0]
|
||||
ldrh r0, [r1, #0x2e]
|
||||
strh r0, [r4, #0x2e]
|
||||
ldrh r0, [r1, #0x32]
|
||||
strh r0, [r4, #0x32]
|
||||
b _08079514
|
||||
.align 2, 0
|
||||
_08079498: .4byte gPlayerEntity
|
||||
_0807949C: .4byte gPlayerState
|
||||
_080794A0:
|
||||
ldr r2, _080794DC @ =gPlayerEntity
|
||||
ldr r0, [r4]
|
||||
lsrs r0, r0, #0x1e
|
||||
adds r1, r2, #0
|
||||
adds r1, #0x38
|
||||
strb r0, [r1]
|
||||
ldr r3, _080794E0 @ =gRoomControls
|
||||
ldr r0, [r4]
|
||||
movs r1, #0x3f
|
||||
ands r0, r1
|
||||
lsls r0, r0, #4
|
||||
ldrh r1, [r3, #6]
|
||||
adds r0, r0, r1
|
||||
adds r0, #8
|
||||
strh r0, [r2, #0x2e]
|
||||
ldr r0, [r4]
|
||||
movs r1, #0xfc
|
||||
lsls r1, r1, #4
|
||||
ands r0, r1
|
||||
lsrs r0, r0, #2
|
||||
ldrh r3, [r3, #8]
|
||||
adds r0, r0, r3
|
||||
adds r0, #8
|
||||
strh r0, [r2, #0x32]
|
||||
ldrb r1, [r2, #0x10]
|
||||
movs r0, #0x80
|
||||
orrs r0, r1
|
||||
strb r0, [r2, #0x10]
|
||||
b _08079514
|
||||
.align 2, 0
|
||||
_080794DC: .4byte gPlayerEntity
|
||||
_080794E0: .4byte gRoomControls
|
||||
_080794E4:
|
||||
movs r5, #0
|
||||
ldr r1, [r2, #0x40]
|
||||
movs r0, #1
|
||||
rsbs r0, r0, #0
|
||||
cmp r1, r0
|
||||
beq _08079514
|
||||
adds r4, r2, #0
|
||||
adds r4, #0x40
|
||||
_080794F4:
|
||||
ldr r1, [r4]
|
||||
ldrh r0, [r4]
|
||||
lsrs r1, r1, #0x1e
|
||||
bl sub_080002E0
|
||||
cmp r0, #0xf
|
||||
bne _080794A0
|
||||
adds r4, #4
|
||||
adds r5, #1
|
||||
cmp r5, #0xf
|
||||
bhi _08079514
|
||||
ldr r1, [r4]
|
||||
movs r0, #1
|
||||
rsbs r0, r0, #0
|
||||
cmp r1, r0
|
||||
bne _080794F4
|
||||
_08079514:
|
||||
ldr r0, _0807951C @ =gPlayerEntity
|
||||
bl UpdateSpriteForCollisionLayer
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_0807951C: .4byte gPlayerEntity
|
||||
.syntax divided
|
||||
@@ -0,0 +1,21 @@
|
||||
.syntax unified
|
||||
push {r4, lr}
|
||||
adds r3, r0, #0
|
||||
lsrs r4, r3, #2
|
||||
ldr r0, _0807CAC4 @ =gUnk_02002B32
|
||||
adds r4, r4, r0
|
||||
movs r0, #3
|
||||
ands r3, r0
|
||||
lsls r3, r3, #1
|
||||
lsls r1, r3
|
||||
ldrb r2, [r4]
|
||||
lsls r0, r3
|
||||
ands r0, r2
|
||||
eors r2, r0
|
||||
orrs r2, r1
|
||||
strb r2, [r4]
|
||||
lsrs r0, r3
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_0807CAC4: .4byte gUnk_02002B32
|
||||
.syntax divided
|
||||
@@ -0,0 +1,135 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, r7, lr}
|
||||
adds r5, r0, #0
|
||||
adds r4, r1, #0
|
||||
adds r6, r2, #0
|
||||
ldr r0, _0807B3A0 @ =0x000007FF
|
||||
cmp r5, r0
|
||||
bhi _0807B410
|
||||
adds r0, r4, #0
|
||||
adds r1, r6, #0
|
||||
bl DeleteLoadedTileEntity
|
||||
adds r0, r6, #0
|
||||
bl GetLayerByIndex
|
||||
adds r2, r0, #0
|
||||
lsls r1, r5, #1
|
||||
ldr r3, _0807B3A4 @ =0x00006004
|
||||
adds r0, r2, r3
|
||||
adds r0, r0, r1
|
||||
ldrh r0, [r0]
|
||||
mov ip, r0
|
||||
lsls r1, r4, #1
|
||||
adds r0, r2, #4
|
||||
adds r0, r0, r1
|
||||
mov r1, ip
|
||||
strh r1, [r0]
|
||||
ldr r0, _0807B3A8 @ =gUnk_080B3E80
|
||||
adds r0, r5, r0
|
||||
ldrb r3, [r0]
|
||||
ldr r1, _0807B3AC @ =0x00002004
|
||||
adds r0, r2, r1
|
||||
adds r0, r0, r4
|
||||
strb r3, [r0]
|
||||
ldr r7, _0807B3B0 @ =gRoomControls
|
||||
ldrb r1, [r7, #0xf]
|
||||
movs r0, #2
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0807B36C
|
||||
ldr r0, _0807B3B4 @ =gMapBottom
|
||||
ldr r1, _0807B3AC @ =0x00002004
|
||||
adds r0, r0, r1
|
||||
adds r0, r4, r0
|
||||
strb r3, [r0]
|
||||
_0807B36C:
|
||||
ldr r3, _0807B3B8 @ =0x0000B004
|
||||
adds r1, r2, r3
|
||||
adds r1, r1, r4
|
||||
ldr r0, _0807B3BC @ =gUnk_080B37A0
|
||||
adds r0, r5, r0
|
||||
ldrb r0, [r0]
|
||||
strb r0, [r1]
|
||||
ldrb r1, [r7, #0xf]
|
||||
movs r0, #1
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _0807B430
|
||||
movs r1, #0x3f
|
||||
ands r1, r4
|
||||
lsls r1, r1, #1
|
||||
movs r0, #0xfc
|
||||
lsls r0, r0, #4
|
||||
ands r0, r4
|
||||
lsls r0, r0, #2
|
||||
adds r1, r1, r0
|
||||
cmp r6, #2
|
||||
beq _0807B3C4
|
||||
lsls r1, r1, #1
|
||||
ldr r0, _0807B3C0 @ =gUnk_02019EE0
|
||||
b _0807B3C8
|
||||
.align 2, 0
|
||||
_0807B3A0: .4byte 0x000007FF
|
||||
_0807B3A4: .4byte 0x00006004
|
||||
_0807B3A8: .4byte gUnk_080B3E80
|
||||
_0807B3AC: .4byte 0x00002004
|
||||
_0807B3B0: .4byte gRoomControls
|
||||
_0807B3B4: .4byte gMapBottom
|
||||
_0807B3B8: .4byte 0x0000B004
|
||||
_0807B3BC: .4byte gUnk_080B37A0
|
||||
_0807B3C0: .4byte gUnk_02019EE0
|
||||
_0807B3C4:
|
||||
lsls r1, r1, #1
|
||||
ldr r0, _0807B400 @ =gMapDataTopSpecial
|
||||
_0807B3C8:
|
||||
adds r3, r1, r0
|
||||
mov r1, ip
|
||||
lsls r0, r1, #3
|
||||
ldr r1, _0807B404 @ =0x00007004
|
||||
adds r0, r0, r1
|
||||
adds r0, r2, r0
|
||||
ldrh r1, [r0]
|
||||
strh r1, [r3]
|
||||
ldrh r1, [r0, #2]
|
||||
strh r1, [r3, #2]
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #1
|
||||
adds r2, r3, r1
|
||||
ldrh r1, [r0, #4]
|
||||
strh r1, [r2]
|
||||
movs r2, #0x81
|
||||
lsls r2, r2, #1
|
||||
adds r1, r3, r2
|
||||
ldrh r0, [r0, #6]
|
||||
strh r0, [r1]
|
||||
ldr r0, _0807B408 @ =gRoomControls
|
||||
ldrh r0, [r0]
|
||||
cmp r0, #1
|
||||
beq _0807B430
|
||||
ldr r1, _0807B40C @ =gUpdateVisibleTiles
|
||||
movs r0, #1
|
||||
strb r0, [r1]
|
||||
b _0807B430
|
||||
.align 2, 0
|
||||
_0807B400: .4byte gMapDataTopSpecial
|
||||
_0807B404: .4byte 0x00007004
|
||||
_0807B408: .4byte gRoomControls
|
||||
_0807B40C: .4byte gUpdateVisibleTiles
|
||||
_0807B410:
|
||||
ldr r0, _0807B424 @ =0x00003FFF
|
||||
cmp r5, r0
|
||||
bls _0807B428
|
||||
adds r0, r5, #0
|
||||
adds r1, r4, #0
|
||||
adds r2, r6, #0
|
||||
bl SetTile
|
||||
b _0807B430
|
||||
.align 2, 0
|
||||
_0807B424: .4byte 0x00003FFF
|
||||
_0807B428:
|
||||
adds r0, r4, #0
|
||||
adds r1, r6, #0
|
||||
bl sub_0807BA8C
|
||||
_0807B430:
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
.syntax divided
|
||||
@@ -0,0 +1,118 @@
|
||||
.syntax unified
|
||||
push {r4, lr}
|
||||
ldr r3, _080777D0 @ =gPlayerState
|
||||
adds r0, r3, #0
|
||||
adds r0, #0x92
|
||||
ldrh r1, [r0]
|
||||
movs r4, #0x80
|
||||
adds r0, r4, #0
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _08077870
|
||||
ldr r1, [r3, #0x30]
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #0xf
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _080777D4
|
||||
adds r1, r3, #0
|
||||
adds r1, #0xa0
|
||||
movs r0, #1
|
||||
strb r0, [r1]
|
||||
bl DeleteClones
|
||||
_080777CC:
|
||||
movs r0, #1
|
||||
b _0807787C
|
||||
.align 2, 0
|
||||
_080777D0: .4byte gPlayerState
|
||||
_080777D4:
|
||||
ldr r2, _080777F4 @ =gArea
|
||||
ldrb r0, [r2, #0x18]
|
||||
cmp r0, #2
|
||||
beq _080777FC
|
||||
cmp r0, #3
|
||||
beq _08077810
|
||||
ldr r0, _080777F8 @ =gUnk_0200AF00
|
||||
adds r0, #0x2c
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0xc
|
||||
bne _0807787A
|
||||
adds r2, r3, #0
|
||||
ldrb r0, [r2, #0x1c]
|
||||
cmp r0, #0
|
||||
bne _0807787A
|
||||
b _08077838
|
||||
.align 2, 0
|
||||
_080777F4: .4byte gArea
|
||||
_080777F8: .4byte gUnk_0200AF00
|
||||
_080777FC:
|
||||
ldrb r0, [r2, #0x1a]
|
||||
cmp r0, #0
|
||||
bne _080777CC
|
||||
ldr r1, _0807780C @ =gPlayerEntity
|
||||
ldrb r0, [r1, #0xd]
|
||||
adds r0, #1
|
||||
strb r0, [r1, #0xd]
|
||||
b _080777CC
|
||||
.align 2, 0
|
||||
_0807780C: .4byte gPlayerEntity
|
||||
_08077810:
|
||||
ldrb r0, [r2, #0x1a]
|
||||
cmp r0, #0
|
||||
bne _0807787A
|
||||
ands r1, r4
|
||||
cmp r1, #0
|
||||
beq _0807787A
|
||||
ldr r0, _08077834 @ =gPlayerEntity
|
||||
ldrb r1, [r0, #0xd]
|
||||
adds r1, #1
|
||||
strb r1, [r0, #0xd]
|
||||
ldrb r2, [r0, #0x10]
|
||||
movs r1, #0x7f
|
||||
ands r1, r2
|
||||
strb r1, [r0, #0x10]
|
||||
movs r1, #0xb4
|
||||
bl RequestPriorityDuration
|
||||
b _080777CC
|
||||
.align 2, 0
|
||||
_08077834: .4byte gPlayerEntity
|
||||
_08077838:
|
||||
ldrb r0, [r2, #0x12]
|
||||
cmp r0, #0x11
|
||||
beq _0807787A
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x90
|
||||
ldrh r1, [r0]
|
||||
movs r0, #0xf0
|
||||
lsls r0, r0, #4
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0807787A
|
||||
ldr r0, [r2, #0x30]
|
||||
ldr r1, _0807786C @ =0x00040400
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _0807787A
|
||||
ldrb r0, [r2, #2]
|
||||
cmp r0, #0
|
||||
bne _0807787A
|
||||
ldrb r0, [r2, #4]
|
||||
cmp r0, #0
|
||||
bne _0807787A
|
||||
movs r0, #0x18
|
||||
strb r0, [r2, #0xc]
|
||||
b _0807787A
|
||||
.align 2, 0
|
||||
_0807786C: .4byte 0x00040400
|
||||
_08077870:
|
||||
ldr r0, [r3, #0x30]
|
||||
movs r1, #0x20
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _080777CC
|
||||
_0807787A:
|
||||
movs r0, #0
|
||||
_0807787C:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
.syntax divided
|
||||
@@ -0,0 +1,40 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, lr}
|
||||
adds r4, r0, #0
|
||||
adds r6, r1, #0
|
||||
subs r0, r4, #1
|
||||
cmp r0, #0x1e
|
||||
bhi _080778C0
|
||||
lsls r0, r4, #1
|
||||
adds r0, r0, r4
|
||||
lsls r0, r0, #2
|
||||
ldr r1, _080778C4 @ =gUnk_0811BE48
|
||||
adds r5, r0, r1
|
||||
ldr r1, _080778C8 @ =gPlayerState + 0x90
|
||||
ldrb r0, [r5]
|
||||
cmp r0, #0
|
||||
beq _080778A0
|
||||
adds r1, #2
|
||||
_080778A0:
|
||||
ldrh r0, [r1]
|
||||
ands r0, r6
|
||||
cmp r0, #0
|
||||
bne _080778AC
|
||||
cmp r2, #0
|
||||
beq _080778C0
|
||||
_080778AC:
|
||||
adds r0, r4, #0
|
||||
bl sub_0807794C
|
||||
adds r1, r0, #0
|
||||
cmp r1, #0
|
||||
beq _080778C0
|
||||
ldrb r0, [r5, #1]
|
||||
strb r0, [r1, #9]
|
||||
strb r4, [r1, #1]
|
||||
strb r6, [r1, #3]
|
||||
_080778C0:
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_080778C4: .4byte gUnk_0811BE48
|
||||
_080778C8: .4byte gPlayerState + 0x90
|
||||
.syntax divided
|
||||
@@ -0,0 +1,64 @@
|
||||
.syntax unified
|
||||
push {lr}
|
||||
ldr r2, _08077920 @ =gPlayerState
|
||||
ldr r0, [r2, #0x30]
|
||||
ldr r1, _08077924 @ =0x000400A0
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _0807791C
|
||||
ldr r0, _08077928 @ =gPlayerEntity
|
||||
adds r0, #0x79
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _080778FA
|
||||
ldrb r0, [r2, #5]
|
||||
cmp r0, #0
|
||||
bne _080778FA
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x92
|
||||
ldrh r1, [r0]
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #8
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0807791C
|
||||
_080778FA:
|
||||
bl sub_080789A8
|
||||
cmp r0, #0
|
||||
bne _08077910
|
||||
ldr r0, _08077920 @ =gPlayerState
|
||||
adds r0, #0x90
|
||||
ldrh r1, [r0]
|
||||
ldr r0, _0807792C @ =0x00000F03
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _0807791C
|
||||
_08077910:
|
||||
movs r0, #0x1b
|
||||
bl sub_0807794C
|
||||
adds r1, r0, #0
|
||||
cmp r1, #0
|
||||
bne _08077930
|
||||
_0807791C:
|
||||
movs r0, #0
|
||||
b _08077940
|
||||
.align 2, 0
|
||||
_08077920: .4byte gPlayerState
|
||||
_08077924: .4byte 0x000400A0
|
||||
_08077928: .4byte gPlayerEntity
|
||||
_0807792C: .4byte 0x00000F03
|
||||
_08077930:
|
||||
movs r0, #0x1b
|
||||
strb r0, [r1, #1]
|
||||
ldr r0, _08077944 @ =gUnk_0811BE48
|
||||
ldr r2, _08077948 @ =0x00000145
|
||||
adds r0, r0, r2
|
||||
ldrb r0, [r0]
|
||||
strb r0, [r1, #9]
|
||||
movs r0, #1
|
||||
_08077940:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_08077944: .4byte gUnk_0811BE48
|
||||
_08077948: .4byte 0x00000145
|
||||
.syntax divided
|
||||
@@ -0,0 +1,56 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, lr}
|
||||
adds r4, r0, #0
|
||||
ldr r6, _08078060 @ =gSave
|
||||
adds r5, r6, #0
|
||||
adds r5, #0xb4
|
||||
ldrb r0, [r5]
|
||||
bl ItemIsSword
|
||||
cmp r0, #0
|
||||
bne _0807802C
|
||||
adds r5, r6, #0
|
||||
adds r5, #0xb5
|
||||
ldrb r0, [r5]
|
||||
bl ItemIsSword
|
||||
movs r2, #0
|
||||
cmp r0, #0
|
||||
beq _0807802E
|
||||
_0807802C:
|
||||
ldrb r2, [r5]
|
||||
_0807802E:
|
||||
subs r0, r2, #1
|
||||
cmp r0, #1
|
||||
bhi _08078036
|
||||
movs r2, #0
|
||||
_08078036:
|
||||
cmp r2, #0
|
||||
beq _08078068
|
||||
ldr r0, _08078064 @ =gPlayerState
|
||||
ldrb r1, [r0, #0x1b]
|
||||
movs r0, #0x20
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _08078068
|
||||
ldrb r0, [r4, #1]
|
||||
adds r0, #1
|
||||
strb r0, [r4, #1]
|
||||
lsls r0, r0, #0x18
|
||||
asrs r0, r0, #0x18
|
||||
cmp r0, #0x14
|
||||
ble _0807806C
|
||||
movs r0, #0xa
|
||||
strb r0, [r4, #1]
|
||||
movs r0, #3
|
||||
strb r0, [r4]
|
||||
strb r2, [r4, #2]
|
||||
b _0807806C
|
||||
.align 2, 0
|
||||
_08078060: .4byte gSave
|
||||
_08078064: .4byte gPlayerState
|
||||
_08078068:
|
||||
movs r0, #0
|
||||
strb r0, [r4, #1]
|
||||
_0807806C:
|
||||
movs r0, #0
|
||||
pop {r4, r5, r6, pc}
|
||||
.syntax divided
|
||||
@@ -0,0 +1,157 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, lr}
|
||||
ldr r0, _080781C8 @ =gUnk_0200AF00
|
||||
adds r1, r0, #0
|
||||
adds r1, #0x2f
|
||||
ldrb r1, [r1]
|
||||
adds r6, r0, #0
|
||||
cmp r1, #0
|
||||
beq _08078192
|
||||
b _080782BC
|
||||
_08078192:
|
||||
movs r4, #0
|
||||
ldr r5, _080781CC @ =gPlayerState
|
||||
ldrb r0, [r5, #2]
|
||||
cmp r0, #0
|
||||
beq _0807819E
|
||||
b _080782B6
|
||||
_0807819E:
|
||||
ldr r0, [r5, #0x30]
|
||||
ldr r1, _080781D0 @ =0x00104D00
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _080781AA
|
||||
b _080782B6
|
||||
_080781AA:
|
||||
ldrb r0, [r5, #5]
|
||||
subs r0, #1
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
cmp r0, #3
|
||||
bhi _080781D4
|
||||
adds r1, r6, #0
|
||||
adds r1, #0x2e
|
||||
ldrb r0, [r1]
|
||||
movs r4, #3
|
||||
cmp r0, #0
|
||||
bne _080781C4
|
||||
b _080782B6
|
||||
_080781C4:
|
||||
adds r4, r0, #0
|
||||
b _080782B6
|
||||
.align 2, 0
|
||||
_080781C8: .4byte gUnk_0200AF00
|
||||
_080781CC: .4byte gPlayerState
|
||||
_080781D0: .4byte 0x00104D00
|
||||
_080781D4:
|
||||
adds r1, r6, #0
|
||||
adds r1, #0x2d
|
||||
ldrb r0, [r1]
|
||||
cmp r0, #0
|
||||
bne _080781C4
|
||||
bl sub_080784E4
|
||||
adds r1, r0, #0
|
||||
ldr r0, [r1, #8]
|
||||
adds r0, #0x39
|
||||
ldrb r0, [r0]
|
||||
lsls r0, r0, #0x18
|
||||
asrs r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _08078278
|
||||
ldrb r0, [r1, #1]
|
||||
subs r0, #1
|
||||
cmp r0, #9
|
||||
bhi _080782B6
|
||||
lsls r0, r0, #2
|
||||
ldr r1, _08078204 @ =_08078208
|
||||
adds r0, r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_08078204: .4byte _08078208
|
||||
_08078208: @ jump table
|
||||
.4byte _08078230 @ case 0
|
||||
.4byte _080782B6 @ case 1
|
||||
.4byte _08078254 @ case 2
|
||||
.4byte _080782B6 @ case 3
|
||||
.4byte _08078254 @ case 4
|
||||
.4byte _08078254 @ case 5
|
||||
.4byte _08078230 @ case 6
|
||||
.4byte _0807823C @ case 7
|
||||
.4byte _08078260 @ case 8
|
||||
.4byte _0807826C @ case 9
|
||||
_08078230:
|
||||
movs r4, #7
|
||||
ldr r6, _08078238 @ =gUnk_0200AF00
|
||||
b _080782B6
|
||||
.align 2, 0
|
||||
_08078238: .4byte gUnk_0200AF00
|
||||
_0807823C:
|
||||
ldr r0, _0807824C @ =gRoomVars
|
||||
ldrb r0, [r0, #6]
|
||||
ldr r6, _08078250 @ =gUnk_0200AF00
|
||||
cmp r0, #0
|
||||
bne _080782B6
|
||||
movs r4, #9
|
||||
b _080782B6
|
||||
.align 2, 0
|
||||
_0807824C: .4byte gRoomVars
|
||||
_08078250: .4byte gUnk_0200AF00
|
||||
_08078254:
|
||||
movs r4, #6
|
||||
ldr r6, _0807825C @ =gUnk_0200AF00
|
||||
b _080782B6
|
||||
.align 2, 0
|
||||
_0807825C: .4byte gUnk_0200AF00
|
||||
_08078260:
|
||||
movs r4, #5
|
||||
ldr r6, _08078268 @ =gUnk_0200AF00
|
||||
b _080782B6
|
||||
.align 2, 0
|
||||
_08078268: .4byte gUnk_0200AF00
|
||||
_0807826C:
|
||||
movs r4, #2
|
||||
ldr r6, _08078274 @ =gUnk_0200AF00
|
||||
b _080782B6
|
||||
.align 2, 0
|
||||
_08078274: .4byte gUnk_0200AF00
|
||||
_08078278:
|
||||
bl sub_080789A8
|
||||
cmp r0, #0
|
||||
beq _080782A4
|
||||
adds r0, r5, #0
|
||||
adds r0, #0xa8
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0xe
|
||||
beq _080782BC
|
||||
ldr r1, _080782A0 @ =gUnk_03003BE0
|
||||
ldrb r0, [r1, #1]
|
||||
movs r4, #9
|
||||
cmp r0, #2
|
||||
bne _080782B6
|
||||
ldr r0, [r1, #8]
|
||||
ldrb r0, [r0, #0x16]
|
||||
cmp r0, #1
|
||||
bne _080782B6
|
||||
movs r4, #8
|
||||
b _080782B6
|
||||
.align 2, 0
|
||||
_080782A0: .4byte gUnk_03003BE0
|
||||
_080782A4:
|
||||
adds r0, r5, #0
|
||||
adds r0, #0xa8
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #1
|
||||
bne _080782B6
|
||||
ldrb r0, [r5, #0x1a]
|
||||
cmp r0, #0
|
||||
bne _080782B6
|
||||
movs r4, #0xc
|
||||
_080782B6:
|
||||
adds r0, r6, #0
|
||||
adds r0, #0x2c
|
||||
strb r4, [r0]
|
||||
_080782BC:
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
.syntax divided
|
||||
@@ -0,0 +1,238 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, lr}
|
||||
ldr r1, _080782D8 @ =gPlayerState
|
||||
adds r2, r1, #0
|
||||
adds r2, #0xa8
|
||||
ldrb r0, [r2]
|
||||
adds r4, r1, #0
|
||||
cmp r0, #0
|
||||
bne _080782DC
|
||||
adds r0, r4, #0
|
||||
adds r0, #0xa9
|
||||
ldrb r0, [r0]
|
||||
b _080782DE
|
||||
.align 2, 0
|
||||
_080782D8: .4byte gPlayerState
|
||||
_080782DC:
|
||||
ldrb r0, [r2]
|
||||
_080782DE:
|
||||
subs r0, #2
|
||||
cmp r0, #0x14
|
||||
bhi _08078348
|
||||
lsls r0, r0, #2
|
||||
ldr r1, _080782F0 @ =_080782F4
|
||||
adds r0, r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_080782F0: .4byte _080782F4
|
||||
_080782F4: @ jump table
|
||||
.4byte _080784AC @ case 0
|
||||
.4byte _080784AC @ case 1
|
||||
.4byte _08078348 @ case 2
|
||||
.4byte _08078348 @ case 3
|
||||
.4byte _08078348 @ case 4
|
||||
.4byte _08078348 @ case 5
|
||||
.4byte _08078348 @ case 6
|
||||
.4byte _08078348 @ case 7
|
||||
.4byte _08078348 @ case 8
|
||||
.4byte _08078348 @ case 9
|
||||
.4byte _080784AC @ case 10
|
||||
.4byte _08078348 @ case 11
|
||||
.4byte _08078348 @ case 12
|
||||
.4byte _08078348 @ case 13
|
||||
.4byte _08078348 @ case 14
|
||||
.4byte _08078348 @ case 15
|
||||
.4byte _080784AC @ case 16
|
||||
.4byte _08078348 @ case 17
|
||||
.4byte _08078348 @ case 18
|
||||
.4byte _080784AC @ case 19
|
||||
.4byte _080784AC @ case 20
|
||||
_08078348:
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x27
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x26
|
||||
ldrb r1, [r0]
|
||||
ldrb r0, [r2]
|
||||
orrs r0, r1
|
||||
cmp r0, #0
|
||||
beq _0807835C
|
||||
b _080784AC
|
||||
_0807835C:
|
||||
ldrb r0, [r4, #0x12]
|
||||
cmp r0, #1
|
||||
bne _08078376
|
||||
ldrb r0, [r4, #0x14]
|
||||
cmp r0, #0
|
||||
bne _0807836A
|
||||
b _080784AC
|
||||
_0807836A:
|
||||
bl CanDispEzloMessage
|
||||
cmp r0, #0
|
||||
beq _08078374
|
||||
b _080784C4
|
||||
_08078374:
|
||||
b _080784AC
|
||||
_08078376:
|
||||
ldr r0, [r4, #0x30]
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #7
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _08078384
|
||||
b _080784AC
|
||||
_08078384:
|
||||
bl CanDispEzloMessage
|
||||
cmp r0, #0
|
||||
beq _0807838E
|
||||
b _080784C4
|
||||
_0807838E:
|
||||
bl sub_080784E4
|
||||
ldr r6, [r0, #8]
|
||||
cmp r6, #0
|
||||
bne _0807839A
|
||||
b _080784AC
|
||||
_0807839A:
|
||||
ldrb r0, [r4, #5]
|
||||
cmp r0, #0
|
||||
beq _080783B6
|
||||
cmp r0, #4
|
||||
beq _080783A6
|
||||
b _080784AC
|
||||
_080783A6:
|
||||
ldr r0, _08078400 @ =gPlayerEntity
|
||||
ldr r0, [r0, #0x74]
|
||||
ldr r0, [r0, #0x54]
|
||||
ldrh r1, [r0, #8]
|
||||
ldr r0, _08078404 @ =0x00000206
|
||||
cmp r1, r0
|
||||
beq _080783B6
|
||||
b _080784AC
|
||||
_080783B6:
|
||||
ldr r2, _08078408 @ =gPlayerState
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x92
|
||||
ldrh r1, [r0]
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #5
|
||||
ands r0, r1
|
||||
adds r4, r2, #0
|
||||
cmp r0, #0
|
||||
beq _0807842C
|
||||
ldr r5, _0807840C @ =gUnk_03003DF0
|
||||
ldr r0, [r5, #4]
|
||||
ldrb r0, [r0, #3]
|
||||
subs r0, #1
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
cmp r0, #0x63
|
||||
bhi _0807842C
|
||||
movs r0, #0
|
||||
bl sub_0801E738
|
||||
ldr r0, _08078410 @ =gSave
|
||||
ldr r1, _08078414 @ =0x0000012B
|
||||
adds r0, r0, r1
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
beq _08078418
|
||||
ldr r1, [r5, #4]
|
||||
ldrb r0, [r1, #3]
|
||||
strb r0, [r5, #2]
|
||||
ldr r0, [r1, #8]
|
||||
adds r0, #0x39
|
||||
movs r1, #2
|
||||
strb r1, [r0]
|
||||
movs r0, #7
|
||||
strb r0, [r4, #0xc]
|
||||
b _08078420
|
||||
.align 2, 0
|
||||
_08078400: .4byte gPlayerEntity
|
||||
_08078404: .4byte 0x00000206
|
||||
_08078408: .4byte gPlayerState
|
||||
_0807840C: .4byte gUnk_03003DF0
|
||||
_08078410: .4byte gSave
|
||||
_08078414: .4byte 0x0000012B
|
||||
_08078418:
|
||||
ldr r0, _08078428 @ =0x00000B65
|
||||
movs r1, #0
|
||||
bl CreateEzloHint
|
||||
_08078420:
|
||||
movs r0, #0x13
|
||||
bl ForceSetPlayerState
|
||||
b _080784C4
|
||||
.align 2, 0
|
||||
_08078428: .4byte 0x00000B65
|
||||
_0807842C:
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x92
|
||||
ldrh r1, [r0]
|
||||
movs r0, #0x88
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _080784AC
|
||||
ldr r0, _08078450 @ =gUnk_03003DF0
|
||||
ldr r0, [r0, #4]
|
||||
ldrb r0, [r0, #1]
|
||||
cmp r0, #0xa
|
||||
bhi _080784C4
|
||||
lsls r0, r0, #2
|
||||
ldr r1, _08078454 @ =_08078458
|
||||
adds r0, r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_08078450: .4byte gUnk_03003DF0
|
||||
_08078454: .4byte _08078458
|
||||
_08078458: @ jump table
|
||||
.4byte _080784C4 @ case 0
|
||||
.4byte _08078484 @ case 1
|
||||
.4byte _080784C4 @ case 2
|
||||
.4byte _0807848E @ case 3
|
||||
.4byte _080784C4 @ case 4
|
||||
.4byte _0807848E @ case 5
|
||||
.4byte _08078484 @ case 6
|
||||
.4byte _0807848E @ case 7
|
||||
.4byte _080784A4 @ case 8
|
||||
.4byte _08078484 @ case 9
|
||||
.4byte _08078484 @ case 10
|
||||
_08078484:
|
||||
movs r0, #7
|
||||
strb r0, [r4, #0xc]
|
||||
movs r0, #0x13
|
||||
bl ForceSetPlayerState
|
||||
_0807848E:
|
||||
adds r1, r6, #0
|
||||
adds r1, #0x39
|
||||
movs r2, #0
|
||||
movs r0, #1
|
||||
strb r0, [r1]
|
||||
ldr r0, _080784A0 @ =gUnk_03003DF0
|
||||
strb r2, [r0, #2]
|
||||
b _080784C4
|
||||
.align 2, 0
|
||||
_080784A0: .4byte gUnk_03003DF0
|
||||
_080784A4:
|
||||
ldr r2, _080784B0 @ =gRoomVars
|
||||
ldrb r0, [r2, #6]
|
||||
cmp r0, #0
|
||||
beq _080784B4
|
||||
_080784AC:
|
||||
movs r0, #0
|
||||
b _080784C6
|
||||
.align 2, 0
|
||||
_080784B0: .4byte gRoomVars
|
||||
_080784B4:
|
||||
adds r1, r6, #0
|
||||
adds r1, #0x39
|
||||
movs r0, #1
|
||||
strb r0, [r1]
|
||||
ldrb r0, [r6, #0xa]
|
||||
strb r0, [r2, #6]
|
||||
ldrb r0, [r6, #0xb]
|
||||
strb r0, [r2, #7]
|
||||
_080784C4:
|
||||
movs r0, #1
|
||||
_080784C6:
|
||||
pop {r4, r5, r6, pc}
|
||||
.syntax divided
|
||||
@@ -0,0 +1,315 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sl
|
||||
mov r6, sb
|
||||
mov r5, r8
|
||||
push {r5, r6, r7}
|
||||
ldr r0, _080784FC @ =gUnk_03003DF0
|
||||
ldrb r1, [r0]
|
||||
mov r8, r0
|
||||
cmp r1, #0
|
||||
beq _08078500
|
||||
ldr r0, [r0, #4]
|
||||
b _0807876A
|
||||
.align 2, 0
|
||||
_080784FC: .4byte gUnk_03003DF0
|
||||
_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 @ =gUnk_0811C000
|
||||
str r0, [r1, #4]
|
||||
movs r1, #1
|
||||
mov r2, r8
|
||||
strb r1, [r2]
|
||||
b _0807876A
|
||||
.align 2, 0
|
||||
_080785AC: .4byte gUnk_0811C000
|
||||
_080785B0:
|
||||
ldr r0, [r2, #0x30]
|
||||
movs r1, #0x80
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _080785F0
|
||||
bl HasDungeonMap
|
||||
cmp r0, #0
|
||||
beq _080785C4
|
||||
movs r0, #1
|
||||
_080785C4:
|
||||
adds r7, r0, #0
|
||||
bl HasDungeonCompass
|
||||
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 @ =gUnk_0811C00C
|
||||
adds r2, r1, r0
|
||||
ldr r5, _080785EC @ =gUnk_03003DF0
|
||||
mov r8, r5
|
||||
b _080785FE
|
||||
.align 2, 0
|
||||
_080785E4: .4byte gPlayerEntity
|
||||
_080785E8: .4byte gUnk_0811C00C
|
||||
_080785EC: .4byte gUnk_03003DF0
|
||||
_080785F0:
|
||||
ldr r3, _08078624 @ =gPlayerEntity
|
||||
ldrb r0, [r3, #0x14]
|
||||
movs r1, #6
|
||||
ands r1, r0
|
||||
ldr r0, _08078628 @ =gUnk_0811C014
|
||||
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 @ =gUnk_03003DF8
|
||||
b _08078724
|
||||
.align 2, 0
|
||||
_08078624: .4byte gPlayerEntity
|
||||
_08078628: .4byte gUnk_0811C014
|
||||
_0807862C: .4byte gUnk_03003DF8
|
||||
_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 @ =gUnk_03003DF8
|
||||
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 gUnk_03003DF8
|
||||
_08078758:
|
||||
movs r0, #0xff
|
||||
mov r1, r8
|
||||
strb r0, [r1, #3]
|
||||
ldr r0, _08078774 @ =gUnk_0811C000
|
||||
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 gUnk_0811C000
|
||||
.syntax divided
|
||||
@@ -0,0 +1,20 @@
|
||||
.syntax unified
|
||||
push {lr}
|
||||
adds r3, r0, #0
|
||||
ldr r2, _08078950 @ =gUnk_03003BE0
|
||||
ldrb r0, [r2, #2]
|
||||
cmp r0, #0x1f
|
||||
bhi _0807894C
|
||||
lsls r0, r0, #2
|
||||
adds r1, r2, #0
|
||||
adds r1, #0xc
|
||||
adds r0, r0, r1
|
||||
str r3, [r0]
|
||||
ldrb r0, [r2, #2]
|
||||
adds r0, #1
|
||||
strb r0, [r2, #2]
|
||||
_0807894C:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_08078950: .4byte gUnk_03003BE0
|
||||
.syntax divided
|
||||
@@ -0,0 +1,47 @@
|
||||
.syntax unified
|
||||
push {r4, r5, lr}
|
||||
adds r5, r0, #0
|
||||
movs r4, #0
|
||||
ldr r0, _08078970 @ =gUnk_03003BE0
|
||||
ldrb r1, [r0, #2]
|
||||
adds r2, r0, #0
|
||||
cmp r4, r1
|
||||
bhs _080789A6
|
||||
ldr r0, [r2, #0xc]
|
||||
cmp r0, r5
|
||||
bne _08078974
|
||||
subs r0, r1, #1
|
||||
b _0807898C
|
||||
.align 2, 0
|
||||
_08078970: .4byte gUnk_03003BE0
|
||||
_08078974:
|
||||
adds r4, #1
|
||||
ldrb r3, [r2, #2]
|
||||
cmp r4, r3
|
||||
bhs _080789A6
|
||||
lsls r0, r4, #2
|
||||
adds r1, r2, #0
|
||||
adds r1, #0xc
|
||||
adds r0, r0, r1
|
||||
ldr r0, [r0]
|
||||
cmp r0, r5
|
||||
bne _08078974
|
||||
subs r0, r3, #1
|
||||
_0807898C:
|
||||
strb r0, [r2, #2]
|
||||
ldrb r0, [r2, #2]
|
||||
cmp r4, r0
|
||||
bhs _080789A6
|
||||
lsls r0, r4, #2
|
||||
adds r0, #0xc
|
||||
adds r1, r0, r2
|
||||
_0807899A:
|
||||
ldr r0, [r1, #4]
|
||||
stm r1!, {r0}
|
||||
adds r4, #1
|
||||
ldrb r0, [r2, #2]
|
||||
cmp r4, r0
|
||||
blo _0807899A
|
||||
_080789A6:
|
||||
pop {r4, r5, pc}
|
||||
.syntax divided
|
||||
@@ -0,0 +1,116 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
ldr r1, _080789BC @ =gUnk_03003BE0
|
||||
ldrb r0, [r1]
|
||||
cmp r0, #0
|
||||
beq _080789C0
|
||||
ldrb r0, [r1, #1]
|
||||
b _08078A88
|
||||
.align 2, 0
|
||||
_080789BC: .4byte gUnk_03003BE0
|
||||
_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 sub_080002D0
|
||||
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 @ =gUnk_03003BE0
|
||||
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_0800029C
|
||||
ldr r4, _08078A68 @ =gUnk_03003BE0
|
||||
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 gUnk_03003BE0
|
||||
_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
|
||||
@@ -0,0 +1,73 @@
|
||||
.syntax unified
|
||||
push {r4, r5, lr}
|
||||
adds r5, r0, #0
|
||||
ldr r4, [r5, #0x70]
|
||||
ldrh r0, [r5, #0x36]
|
||||
subs r0, #1
|
||||
strh r0, [r4, #0x36]
|
||||
ldrb r1, [r5, #0x1b]
|
||||
lsrs r1, r1, #6
|
||||
lsls r1, r1, #6
|
||||
ldrb r2, [r4, #0x1b]
|
||||
movs r0, #0x3f
|
||||
ands r0, r2
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x1b]
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x38
|
||||
ldrb r1, [r0]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x38
|
||||
strb r1, [r0]
|
||||
ldr r1, _08078D28 @ =gUnk_0811C01C
|
||||
ldr r0, _08078D2C @ =gPlayerState
|
||||
ldr r0, [r0, #0x2c]
|
||||
ldrb r0, [r0, #0x1e]
|
||||
adds r0, r0, r1
|
||||
ldrb r2, [r0]
|
||||
ldr r3, _08078D30 @ =gUnk_0811C0B0
|
||||
ldrb r1, [r4, #0x1c]
|
||||
movs r0, #0x30
|
||||
ands r0, r1
|
||||
lsrs r0, r0, #2
|
||||
adds r0, r0, r3
|
||||
lsls r2, r2, #1
|
||||
ldr r0, [r0]
|
||||
adds r2, r0, r2
|
||||
ldrb r0, [r5, #0x18]
|
||||
lsls r0, r0, #0x19
|
||||
cmp r0, #0
|
||||
bge _08078D34
|
||||
movs r1, #0
|
||||
ldrsb r1, [r2, r1]
|
||||
ldrh r0, [r5, #0x2e]
|
||||
subs r0, r0, r1
|
||||
b _08078D3C
|
||||
.align 2, 0
|
||||
_08078D28: .4byte gUnk_0811C01C
|
||||
_08078D2C: .4byte gPlayerState
|
||||
_08078D30: .4byte gUnk_0811C0B0
|
||||
_08078D34:
|
||||
movs r0, #0
|
||||
ldrsb r0, [r2, r0]
|
||||
ldrh r1, [r5, #0x2e]
|
||||
adds r0, r0, r1
|
||||
_08078D3C:
|
||||
strh r0, [r4, #0x2e]
|
||||
movs r0, #1
|
||||
ldrsb r0, [r2, r0]
|
||||
ldrh r1, [r5, #0x32]
|
||||
adds r0, r0, r1
|
||||
strh r0, [r4, #0x32]
|
||||
adds r0, r5, #0
|
||||
movs r1, #0
|
||||
adds r2, r4, #0
|
||||
bl sub_0806FEBC
|
||||
ldr r1, [r4, #0x50]
|
||||
cmp r1, #0
|
||||
beq _08078D5E
|
||||
adds r0, r4, #0
|
||||
bl CopyPosition
|
||||
_08078D5E:
|
||||
pop {r4, r5, pc}
|
||||
.syntax divided
|
||||
@@ -0,0 +1,152 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, lr}
|
||||
ldr r1, _08078DCC @ =gPlayerEntity
|
||||
ldr r0, [r1, #0x74]
|
||||
ldr r4, [r0, #0x54]
|
||||
ldrb r0, [r4, #0xc]
|
||||
adds r6, r1, #0
|
||||
cmp r0, #2
|
||||
beq _08078D72
|
||||
b _08078E82
|
||||
_08078D72:
|
||||
adds r0, r6, #0
|
||||
adds r0, #0x63
|
||||
ldrb r0, [r0]
|
||||
lsls r0, r0, #0x18
|
||||
asrs r0, r0, #0x18
|
||||
ldrh r1, [r6, #0x36]
|
||||
adds r0, r0, r1
|
||||
strh r0, [r4, #0x36]
|
||||
ldrb r1, [r6, #0x1b]
|
||||
lsrs r1, r1, #6
|
||||
lsls r1, r1, #6
|
||||
ldrb r2, [r4, #0x1b]
|
||||
movs r0, #0x3f
|
||||
ands r0, r2
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x1b]
|
||||
adds r0, r6, #0
|
||||
adds r0, #0x38
|
||||
ldrb r1, [r0]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x38
|
||||
strb r1, [r0]
|
||||
adds r0, r6, #0
|
||||
adds r0, #0x5a
|
||||
ldrb r0, [r0]
|
||||
movs r2, #0x7f
|
||||
ands r2, r0
|
||||
ldr r1, _08078DD0 @ =gUnk_0811C0E8
|
||||
ldrb r0, [r4, #0x16]
|
||||
lsrs r0, r0, #4
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r1
|
||||
ldr r1, [r0]
|
||||
ldrb r0, [r6, #0x18]
|
||||
lsls r0, r0, #0x19
|
||||
cmp r0, #0
|
||||
bge _08078DD4
|
||||
adds r2, r1, r2
|
||||
movs r1, #0
|
||||
ldrsb r1, [r2, r1]
|
||||
ldrh r0, [r6, #0x2e]
|
||||
subs r0, r0, r1
|
||||
strh r0, [r4, #0x2e]
|
||||
adds r1, r2, #0
|
||||
b _08078DE0
|
||||
.align 2, 0
|
||||
_08078DCC: .4byte gPlayerEntity
|
||||
_08078DD0: .4byte gUnk_0811C0E8
|
||||
_08078DD4:
|
||||
adds r1, r1, r2
|
||||
movs r0, #0
|
||||
ldrsb r0, [r1, r0]
|
||||
ldrh r2, [r6, #0x2e]
|
||||
adds r0, r0, r2
|
||||
strh r0, [r4, #0x2e]
|
||||
_08078DE0:
|
||||
movs r0, #1
|
||||
ldrsb r0, [r1, r0]
|
||||
ldrh r1, [r4, #0x36]
|
||||
adds r0, r0, r1
|
||||
strh r0, [r4, #0x36]
|
||||
adds r5, r6, #0
|
||||
ldrh r0, [r5, #0x32]
|
||||
strh r0, [r4, #0x32]
|
||||
adds r0, r5, #0
|
||||
adds r1, r4, #0
|
||||
bl SortEntityAbove
|
||||
ldr r0, _08078E34 @ =gPlayerState
|
||||
ldrb r0, [r0, #5]
|
||||
cmp r0, #4
|
||||
bne _08078E4C
|
||||
ldrb r1, [r5, #0x19]
|
||||
lsrs r1, r1, #6
|
||||
lsls r1, r1, #6
|
||||
ldrb r2, [r4, #0x19]
|
||||
movs r0, #0x3f
|
||||
ands r0, r2
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x19]
|
||||
adds r0, r4, #0
|
||||
bl sub_0806F8DC
|
||||
ldrb r1, [r4, #0x16]
|
||||
movs r0, #0xf
|
||||
ands r0, r1
|
||||
cmp r0, #2
|
||||
bne _08078E82
|
||||
ldr r0, _08078E38 @ =gRoomTransition
|
||||
ldr r1, [r0]
|
||||
movs r0, #3
|
||||
ands r1, r0
|
||||
cmp r1, #1
|
||||
beq _08078E3C
|
||||
cmp r1, #3
|
||||
beq _08078E44
|
||||
b _08078E82
|
||||
.align 2, 0
|
||||
_08078E34: .4byte gPlayerState
|
||||
_08078E38: .4byte gRoomTransition
|
||||
_08078E3C:
|
||||
ldrh r0, [r4, #0x2e]
|
||||
adds r0, #1
|
||||
strh r0, [r4, #0x2e]
|
||||
b _08078E82
|
||||
_08078E44:
|
||||
ldrh r0, [r4, #0x2e]
|
||||
subs r0, #1
|
||||
strh r0, [r4, #0x2e]
|
||||
b _08078E82
|
||||
_08078E4C:
|
||||
ldrb r0, [r5, #0x14]
|
||||
lsrs r0, r0, #1
|
||||
cmp r0, #0
|
||||
beq _08078E62
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x29
|
||||
ldrb r1, [r0]
|
||||
lsls r1, r1, #0x1d
|
||||
lsrs r1, r1, #0x1d
|
||||
subs r1, #1
|
||||
b _08078E6E
|
||||
_08078E62:
|
||||
adds r0, r6, #0
|
||||
adds r0, #0x29
|
||||
ldrb r1, [r0]
|
||||
lsls r1, r1, #0x1d
|
||||
lsrs r1, r1, #0x1d
|
||||
adds r1, #1
|
||||
_08078E6E:
|
||||
adds r3, r4, #0
|
||||
adds r3, #0x29
|
||||
movs r0, #7
|
||||
ands r1, r0
|
||||
ldrb r2, [r3]
|
||||
movs r0, #8
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r2
|
||||
orrs r0, r1
|
||||
strb r0, [r3]
|
||||
_08078E82:
|
||||
pop {r4, r5, r6, pc}
|
||||
.syntax divided
|
||||
@@ -0,0 +1,99 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, lr}
|
||||
adds r4, r0, #0
|
||||
ldr r5, _08078FE0 @ =gPlayerState
|
||||
ldrb r1, [r5, #6]
|
||||
movs r6, #0x80
|
||||
adds r0, r6, #0
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _08078FCA
|
||||
adds r1, r5, #0
|
||||
adds r1, #0x35
|
||||
movs r0, #0xff
|
||||
strb r0, [r1]
|
||||
_08078FCA:
|
||||
adds r0, r4, #0
|
||||
bl sub_08079064
|
||||
ldr r1, [r5, #0x30]
|
||||
movs r0, #8
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _08078FE4
|
||||
movs r2, #0x58
|
||||
b _08078FFA
|
||||
.align 2, 0
|
||||
_08078FE0: .4byte gPlayerState
|
||||
_08078FE4:
|
||||
ands r1, r6
|
||||
cmp r1, #0
|
||||
beq _08078FEE
|
||||
movs r2, #0x18
|
||||
b _08078FFA
|
||||
_08078FEE:
|
||||
ldrh r0, [r5, #8]
|
||||
lsrs r0, r0, #8
|
||||
movs r2, #0xb8
|
||||
cmp r0, #7
|
||||
bne _08078FFA
|
||||
movs r2, #0x34
|
||||
_08078FFA:
|
||||
ldr r0, _08079014 @ =gPlayerState
|
||||
adds r3, r0, #0
|
||||
ldrb r1, [r0, #8]
|
||||
cmp r2, r1
|
||||
bls _08079040
|
||||
ldrb r0, [r4, #0x14]
|
||||
adds r2, r0, #0
|
||||
cmp r2, #4
|
||||
bls _08079018
|
||||
ldrb r0, [r4, #0x18]
|
||||
movs r1, #0x40
|
||||
orrs r0, r1
|
||||
b _08079020
|
||||
.align 2, 0
|
||||
_08079014: .4byte gPlayerState
|
||||
_08079018:
|
||||
ldrb r1, [r4, #0x18]
|
||||
movs r0, #0x41
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
_08079020:
|
||||
strb r0, [r4, #0x18]
|
||||
ldr r0, [r3, #0x30]
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #0xc
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _08079036
|
||||
ldrh r1, [r3, #8]
|
||||
ldrb r0, [r4, #0x14]
|
||||
adds r2, r1, r0
|
||||
b _08079042
|
||||
_08079036:
|
||||
lsls r0, r2, #0x18
|
||||
lsrs r0, r0, #0x19
|
||||
ldrh r3, [r3, #8]
|
||||
adds r2, r0, r3
|
||||
b _08079042
|
||||
_08079040:
|
||||
ldrh r2, [r0, #8]
|
||||
_08079042:
|
||||
ldrh r0, [r4, #0x12]
|
||||
lsls r0, r0, #8
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x58
|
||||
ldrb r1, [r1]
|
||||
orrs r0, r1
|
||||
cmp r2, r0
|
||||
beq _08079062
|
||||
lsrs r0, r2, #8
|
||||
strh r0, [r4, #0x12]
|
||||
movs r0, #0xff
|
||||
ands r2, r0
|
||||
adds r0, r4, #0
|
||||
adds r1, r2, #0
|
||||
bl InitAnimationForceUpdate
|
||||
_08079062:
|
||||
pop {r4, r5, r6, pc}
|
||||
.syntax divided
|
||||
@@ -0,0 +1,68 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, lr}
|
||||
adds r6, r0, #0
|
||||
ldr r0, _0807909C @ =gPlayerState
|
||||
ldr r1, [r0, #0x30]
|
||||
ldr r2, _080790A0 @ =0x00100080
|
||||
ands r1, r2
|
||||
adds r5, r0, #0
|
||||
cmp r1, #0
|
||||
bne _080790DE
|
||||
movs r3, #0
|
||||
movs r2, #0
|
||||
ldr r1, _080790A4 @ =gUnk_03000B80
|
||||
_0807907C:
|
||||
ldrb r0, [r1, #0xf]
|
||||
cmp r0, r3
|
||||
bls _08079086
|
||||
adds r3, r0, #0
|
||||
ldrh r4, [r1, #0x10]
|
||||
_08079086:
|
||||
adds r1, #0x1c
|
||||
adds r2, #1
|
||||
cmp r2, #3
|
||||
bls _0807907C
|
||||
adds r2, r5, #0
|
||||
ldrb r0, [r2, #0xe]
|
||||
cmp r0, r3
|
||||
bhs _080790A8
|
||||
strh r4, [r2, #8]
|
||||
b _080790DE
|
||||
.align 2, 0
|
||||
_0807909C: .4byte gPlayerState
|
||||
_080790A0: .4byte 0x00100080
|
||||
_080790A4: .4byte gUnk_03000B80
|
||||
_080790A8:
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x26
|
||||
ldrb r1, [r0]
|
||||
movs r0, #0x80
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _080790C0
|
||||
ldr r0, _080790BC @ =0x000002BE
|
||||
strh r0, [r2, #8]
|
||||
b _080790DE
|
||||
.align 2, 0
|
||||
_080790BC: .4byte 0x000002BE
|
||||
_080790C0:
|
||||
ldrh r1, [r5, #8]
|
||||
movs r0, #0xc1
|
||||
lsls r0, r0, #3
|
||||
cmp r1, r0
|
||||
beq _080790D8
|
||||
movs r0, #0x82
|
||||
lsls r0, r0, #1
|
||||
cmp r1, r0
|
||||
beq _080790D8
|
||||
ldr r0, _080790E0 @ =0x00000404
|
||||
cmp r1, r0
|
||||
bne _080790DE
|
||||
_080790D8:
|
||||
adds r0, r6, #0
|
||||
bl sub_080790E4
|
||||
_080790DE:
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_080790E0: .4byte 0x00000404
|
||||
.syntax divided
|
||||
@@ -0,0 +1,139 @@
|
||||
.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 ResetPlayer
|
||||
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
|
||||
@@ -0,0 +1,57 @@
|
||||
.syntax unified
|
||||
push {r4, r5, lr}
|
||||
adds r5, r0, #0
|
||||
ldr r0, _080793FC @ =gPlayerState
|
||||
adds r0, #0x26
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _08079408
|
||||
ldr r1, _08079400 @ =gUnk_0811C0F8
|
||||
ldr r0, _08079404 @ =gPlayerEntity
|
||||
ldrb r0, [r0, #0x14]
|
||||
lsrs r0, r0, #1
|
||||
b _08079410
|
||||
.align 2, 0
|
||||
_080793FC: .4byte gPlayerState
|
||||
_08079400: .4byte gUnk_0811C0F8
|
||||
_08079404: .4byte gPlayerEntity
|
||||
_08079408:
|
||||
ldr r1, _08079448 @ =gUnk_0811C0F8
|
||||
ldr r0, _0807944C @ =gPlayerEntity
|
||||
ldrb r0, [r0, #0x15]
|
||||
lsrs r0, r0, #2
|
||||
_08079410:
|
||||
lsls r0, r0, #1
|
||||
adds r0, r0, r1
|
||||
ldrh r4, [r0]
|
||||
bl sub_08079778
|
||||
cmp r0, #0
|
||||
beq _08079454
|
||||
ldr r0, _08079450 @ =gPlayerState
|
||||
adds r0, #0x90
|
||||
ldrh r0, [r0]
|
||||
ands r0, r4
|
||||
cmp r0, #0
|
||||
beq _08079454
|
||||
cmp r5, #0
|
||||
beq _08079442
|
||||
bl sub_0807A500
|
||||
ldr r1, _0807944C @ =gPlayerEntity
|
||||
adds r1, #0x38
|
||||
ldrb r1, [r1]
|
||||
adds r2, r5, #0
|
||||
bl sub_080002F0
|
||||
cmp r0, #0
|
||||
beq _08079454
|
||||
_08079442:
|
||||
movs r0, #1
|
||||
b _08079456
|
||||
.align 2, 0
|
||||
_08079448: .4byte gUnk_0811C0F8
|
||||
_0807944C: .4byte gPlayerEntity
|
||||
_08079450: .4byte gPlayerState
|
||||
_08079454:
|
||||
movs r0, #0
|
||||
_08079456:
|
||||
pop {r4, r5, pc}
|
||||
.syntax divided
|
||||
@@ -0,0 +1,218 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sb
|
||||
mov r6, r8
|
||||
push {r6, r7}
|
||||
ldr r0, _080795A8 @ =gUnk_03004030
|
||||
ldrb r0, [r0, #8]
|
||||
cmp r0, #0
|
||||
beq _08079562
|
||||
b _080796FC
|
||||
_08079562:
|
||||
ldr r2, _080795AC @ =gPlayerState
|
||||
ldrb r0, [r2, #0x1e]
|
||||
cmp r0, #0
|
||||
beq _08079576
|
||||
ldr r0, [r2, #0x30]
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #3
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _080795B4
|
||||
_08079576:
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x26
|
||||
ldrb r0, [r0]
|
||||
ldr r1, _080795B0 @ =gPlayerEntity
|
||||
mov r8, r1
|
||||
cmp r0, #0
|
||||
bne _080795A0
|
||||
ldrb r1, [r2, #0x1b]
|
||||
movs r0, #0x40
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _080795A0
|
||||
mov r3, r8
|
||||
ldrb r1, [r3, #0x15]
|
||||
ldrb r2, [r2, #0xd]
|
||||
cmp r1, r2
|
||||
bne _080795A0
|
||||
movs r0, #0x80
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _080795B4
|
||||
_080795A0:
|
||||
movs r0, #0
|
||||
mov r5, r8
|
||||
strb r0, [r5, #0xf]
|
||||
b _080796FE
|
||||
.align 2, 0
|
||||
_080795A8: .4byte gUnk_03004030
|
||||
_080795AC: .4byte gPlayerState
|
||||
_080795B0: .4byte gPlayerEntity
|
||||
_080795B4:
|
||||
bl sub_08079778
|
||||
cmp r0, #0
|
||||
bne _080795BE
|
||||
b _080796FC
|
||||
_080795BE:
|
||||
ldr r3, _08079610 @ =gPlayerEntity
|
||||
ldrb r2, [r3, #0x14]
|
||||
movs r0, #6
|
||||
ands r0, r2
|
||||
ldr r1, _08079614 @ =gUnk_0811C100
|
||||
adds r1, r0, r1
|
||||
movs r0, #2
|
||||
ands r0, r2
|
||||
mov r8, r3
|
||||
cmp r0, #0
|
||||
beq _0807961C
|
||||
movs r6, #0x2e
|
||||
ldrsh r2, [r3, r6]
|
||||
movs r0, #0
|
||||
ldrsb r0, [r1, r0]
|
||||
adds r2, r2, r0
|
||||
ldr r4, _08079618 @ =gRoomControls
|
||||
ldrh r0, [r4, #6]
|
||||
subs r2, r2, r0
|
||||
asrs r2, r2, #4
|
||||
movs r3, #0x3f
|
||||
ands r2, r3
|
||||
mov r0, r8
|
||||
movs r5, #0x32
|
||||
ldrsh r1, [r0, r5]
|
||||
ldr r0, [r0, #0x48]
|
||||
ldrb r5, [r0, #3]
|
||||
adds r0, r1, r5
|
||||
ldrh r4, [r4, #8]
|
||||
subs r0, r0, r4
|
||||
asrs r0, r0, #4
|
||||
ands r0, r3
|
||||
lsls r7, r0, #6
|
||||
orrs r7, r2
|
||||
subs r1, r1, r5
|
||||
subs r1, r1, r4
|
||||
asrs r1, r1, #4
|
||||
ands r1, r3
|
||||
lsls r4, r1, #6
|
||||
orrs r4, r2
|
||||
b _0807965E
|
||||
.align 2, 0
|
||||
_08079610: .4byte gPlayerEntity
|
||||
_08079614: .4byte gUnk_0811C100
|
||||
_08079618: .4byte gRoomControls
|
||||
_0807961C:
|
||||
mov r6, r8
|
||||
movs r0, #0x2e
|
||||
ldrsh r2, [r6, r0]
|
||||
ldr r0, [r6, #0x48]
|
||||
ldrb r0, [r0, #4]
|
||||
mov ip, r0
|
||||
adds r0, r2, r0
|
||||
ldr r4, _080796EC @ =gRoomControls
|
||||
ldrh r3, [r4, #6]
|
||||
mov sb, r3
|
||||
subs r0, r0, r3
|
||||
asrs r7, r0, #4
|
||||
movs r3, #0x3f
|
||||
ands r7, r3
|
||||
movs r5, #0x32
|
||||
ldrsh r0, [r6, r5]
|
||||
ldrb r1, [r1, #1]
|
||||
lsls r1, r1, #0x18
|
||||
asrs r1, r1, #0x18
|
||||
adds r0, r0, r1
|
||||
ldrh r1, [r4, #8]
|
||||
subs r0, r0, r1
|
||||
asrs r0, r0, #4
|
||||
ands r0, r3
|
||||
lsls r0, r0, #6
|
||||
orrs r7, r0
|
||||
mov r6, ip
|
||||
subs r2, r2, r6
|
||||
mov r1, sb
|
||||
subs r2, r2, r1
|
||||
asrs r4, r2, #4
|
||||
ands r4, r3
|
||||
orrs r4, r0
|
||||
_0807965E:
|
||||
adds r0, r7, #0
|
||||
mov r5, r8
|
||||
adds r5, #0x38
|
||||
ldrb r1, [r5]
|
||||
bl sub_080002C8
|
||||
adds r3, r0, #0
|
||||
ldr r6, _080796F0 @ =gUnk_0811C1E8
|
||||
mov r1, r8
|
||||
ldrb r0, [r1, #0x14]
|
||||
lsrs r0, r0, #1
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r6
|
||||
ldr r1, [r0]
|
||||
adds r0, r3, #0
|
||||
bl sub_08007DD6
|
||||
adds r3, r0, #0
|
||||
cmp r3, #0
|
||||
beq _080796FC
|
||||
adds r0, r4, #0
|
||||
ldrb r1, [r5]
|
||||
bl sub_080002C8
|
||||
adds r3, r0, #0
|
||||
mov r5, r8
|
||||
ldrb r0, [r5, #0x14]
|
||||
lsrs r0, r0, #1
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r6
|
||||
ldr r1, [r0]
|
||||
adds r0, r3, #0
|
||||
bl sub_08007DD6
|
||||
adds r3, r0, #0
|
||||
cmp r3, #0
|
||||
beq _080796FC
|
||||
ldr r1, _080796F4 @ =gPlayerState
|
||||
ldrb r2, [r1, #6]
|
||||
movs r0, #0x80
|
||||
orrs r0, r2
|
||||
strb r0, [r1, #6]
|
||||
ldrb r0, [r1, #0x1e]
|
||||
adds r4, r1, #0
|
||||
cmp r0, #0
|
||||
bne _080796C8
|
||||
ldrb r0, [r5, #0xf]
|
||||
adds r0, #1
|
||||
strb r0, [r5, #0xf]
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
cmp r0, #5
|
||||
bls _080796FC
|
||||
_080796C8:
|
||||
ldr r0, _080796F8 @ =gPlayerEntity
|
||||
subs r1, r3, #1
|
||||
movs r2, #0
|
||||
strb r1, [r0, #0x14]
|
||||
movs r1, #4
|
||||
strb r1, [r0, #0xc]
|
||||
strb r2, [r0, #0xd]
|
||||
ldrb r2, [r0, #0x10]
|
||||
movs r1, #0x7f
|
||||
ands r1, r2
|
||||
strb r1, [r0, #0x10]
|
||||
movs r1, #0x81
|
||||
strb r1, [r4, #2]
|
||||
bl DoPlayerAction
|
||||
movs r0, #1
|
||||
b _080796FE
|
||||
.align 2, 0
|
||||
_080796EC: .4byte gRoomControls
|
||||
_080796F0: .4byte gUnk_0811C1E8
|
||||
_080796F4: .4byte gPlayerState
|
||||
_080796F8: .4byte gPlayerEntity
|
||||
_080796FC:
|
||||
movs r0, #0
|
||||
_080796FE:
|
||||
pop {r3, r4}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
.syntax divided
|
||||
@@ -0,0 +1,38 @@
|
||||
.syntax unified
|
||||
push {lr}
|
||||
ldr r0, _08079790 @ =gPlayerState
|
||||
adds r0, #0x26
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _0807979C
|
||||
ldr r2, _08079794 @ =gUnk_0811C108
|
||||
ldr r1, _08079798 @ =gPlayerEntity
|
||||
ldrb r0, [r1, #0x14]
|
||||
lsrs r0, r0, #1
|
||||
b _080797A4
|
||||
.align 2, 0
|
||||
_08079790: .4byte gPlayerState
|
||||
_08079794: .4byte gUnk_0811C108
|
||||
_08079798: .4byte gPlayerEntity
|
||||
_0807979C:
|
||||
ldr r2, _080797BC @ =gUnk_0811C108
|
||||
ldr r1, _080797C0 @ =gPlayerEntity
|
||||
ldrb r0, [r1, #0x15]
|
||||
lsrs r0, r0, #2
|
||||
_080797A4:
|
||||
lsls r0, r0, #1
|
||||
adds r0, r0, r2
|
||||
ldrh r2, [r0]
|
||||
movs r3, #0
|
||||
ldrh r0, [r1, #0x2a]
|
||||
ands r0, r2
|
||||
cmp r2, r0
|
||||
bne _080797B6
|
||||
movs r3, #1
|
||||
_080797B6:
|
||||
adds r0, r3, #0
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_080797BC: .4byte gUnk_0811C108
|
||||
_080797C0: .4byte gPlayerEntity
|
||||
.syntax divided
|
||||
@@ -0,0 +1,22 @@
|
||||
.syntax unified
|
||||
push {lr}
|
||||
ldr r1, _080797E4 @ =gUnk_0811C110
|
||||
ldr r2, _080797E8 @ =gPlayerEntity
|
||||
ldrb r0, [r2, #0x15]
|
||||
lsrs r0, r0, #3
|
||||
lsls r0, r0, #1
|
||||
adds r0, r0, r1
|
||||
ldrh r1, [r0]
|
||||
movs r3, #0
|
||||
ldrh r0, [r2, #0x2a]
|
||||
ands r0, r1
|
||||
cmp r1, r0
|
||||
bne _080797E0
|
||||
movs r3, #1
|
||||
_080797E0:
|
||||
adds r0, r3, #0
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_080797E4: .4byte gUnk_0811C110
|
||||
_080797E8: .4byte gPlayerEntity
|
||||
.syntax divided
|
||||
@@ -0,0 +1,178 @@
|
||||
.syntax unified
|
||||
push {r4, r5, lr}
|
||||
ldr r4, _08079804 @ =gPlayerState
|
||||
ldr r1, [r4, #0x30]
|
||||
movs r0, #8
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0807985C
|
||||
ldrb r0, [r4, #5]
|
||||
cmp r0, #0
|
||||
beq _0807980C
|
||||
ldr r5, _08079808 @ =0x00000934
|
||||
b _0807991E
|
||||
.align 2, 0
|
||||
_08079804: .4byte gPlayerState
|
||||
_08079808: .4byte 0x00000934
|
||||
_0807980C:
|
||||
ldrb r0, [r4, #3]
|
||||
cmp r0, #0
|
||||
beq _08079818
|
||||
movs r5, #0x82
|
||||
lsls r5, r5, #3
|
||||
b _0807991E
|
||||
_08079818:
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x21
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _080798A0
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x26
|
||||
ldrb r0, [r0]
|
||||
movs r5, #0xa4
|
||||
lsls r5, r5, #2
|
||||
cmp r0, #0
|
||||
bne _0807991E
|
||||
movs r5, #0xb6
|
||||
lsls r5, r5, #1
|
||||
ldrb r1, [r4, #0x1b]
|
||||
movs r0, #0x48
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _080798C2
|
||||
lsls r0, r1, #0x18
|
||||
cmp r0, #0
|
||||
bne _080798CE
|
||||
adds r1, r4, #0
|
||||
adds r1, #0xa8
|
||||
ldrb r0, [r1]
|
||||
cmp r0, #0
|
||||
bne _08079852
|
||||
movs r0, #1
|
||||
strb r0, [r1]
|
||||
_08079852:
|
||||
ldr r5, _08079858 @ =0x00000404
|
||||
b _0807991E
|
||||
.align 2, 0
|
||||
_08079858: .4byte 0x00000404
|
||||
_0807985C:
|
||||
ldrb r0, [r4, #0x1c]
|
||||
cmp r0, #0
|
||||
bne _0807992E
|
||||
ldrb r0, [r4, #5]
|
||||
cmp r0, #0
|
||||
beq _0807986E
|
||||
movs r5, #0xd2
|
||||
lsls r5, r5, #2
|
||||
b _0807991E
|
||||
_0807986E:
|
||||
ldrb r0, [r4, #0x1e]
|
||||
cmp r0, #0
|
||||
beq _0807987A
|
||||
movs r5, #0xa6
|
||||
lsls r5, r5, #2
|
||||
b _0807991E
|
||||
_0807987A:
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #5
|
||||
ands r1, r0
|
||||
cmp r1, #0
|
||||
beq _0807988A
|
||||
movs r5, #0xe2
|
||||
lsls r5, r5, #3
|
||||
b _0807991E
|
||||
_0807988A:
|
||||
ldrb r0, [r4, #3]
|
||||
cmp r0, #0
|
||||
beq _08079896
|
||||
movs r5, #0xb0
|
||||
lsls r5, r5, #1
|
||||
b _0807991E
|
||||
_08079896:
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x21
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
beq _080798A6
|
||||
_080798A0:
|
||||
movs r5, #0xa1
|
||||
lsls r5, r5, #2
|
||||
b _0807991E
|
||||
_080798A6:
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x26
|
||||
ldrb r0, [r0]
|
||||
movs r5, #0xa4
|
||||
lsls r5, r5, #2
|
||||
cmp r0, #0
|
||||
bne _0807991E
|
||||
movs r5, #0xb6
|
||||
lsls r5, r5, #1
|
||||
ldrb r1, [r4, #0x1b]
|
||||
movs r0, #0x48
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _080798C8
|
||||
_080798C2:
|
||||
movs r0, #0x6c
|
||||
strb r0, [r4]
|
||||
b _0807992E
|
||||
_080798C8:
|
||||
lsls r0, r1, #0x18
|
||||
cmp r0, #0
|
||||
beq _080798FC
|
||||
_080798CE:
|
||||
movs r0, #0
|
||||
bl sub_080793E4
|
||||
cmp r0, #0
|
||||
beq _0807991E
|
||||
bl sub_0807A500
|
||||
ldr r1, _080798F8 @ =gPlayerEntity
|
||||
adds r1, #0x38
|
||||
ldrb r1, [r1]
|
||||
bl sub_080002E0
|
||||
cmp r0, #0xff
|
||||
beq _0807991E
|
||||
ldrb r1, [r4, #0x1b]
|
||||
movs r0, #0xf7
|
||||
ands r0, r1
|
||||
strb r0, [r4, #0x1b]
|
||||
movs r5, #0xb8
|
||||
lsls r5, r5, #1
|
||||
b _0807991E
|
||||
.align 2, 0
|
||||
_080798F8: .4byte gPlayerEntity
|
||||
_080798FC:
|
||||
adds r1, r4, #0
|
||||
adds r1, #0xa8
|
||||
ldrb r0, [r1]
|
||||
cmp r0, #0
|
||||
bne _0807990A
|
||||
movs r0, #1
|
||||
strb r0, [r1]
|
||||
_0807990A:
|
||||
ldr r0, [r4, #0x30]
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #0x10
|
||||
ands r0, r1
|
||||
movs r5, #0x82
|
||||
lsls r5, r5, #1
|
||||
cmp r0, #0
|
||||
beq _0807991E
|
||||
movs r5, #0xc1
|
||||
lsls r5, r5, #3
|
||||
_0807991E:
|
||||
ldr r0, _08079930 @ =gPlayerState
|
||||
strh r5, [r0, #8]
|
||||
ldrb r0, [r0, #3]
|
||||
cmp r0, #0
|
||||
bne _0807992E
|
||||
ldr r0, _08079934 @ =gPlayerEntity
|
||||
bl UpdateAnimationSingleFrame
|
||||
_0807992E:
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_08079930: .4byte gPlayerState
|
||||
_08079934: .4byte gPlayerEntity
|
||||
.syntax divided
|
||||
@@ -0,0 +1,92 @@
|
||||
.syntax unified
|
||||
push {r4, r5, lr}
|
||||
ldr r2, _08079B60 @ =gPlayerEntity
|
||||
ldrb r0, [r2, #0xc]
|
||||
cmp r0, #0xa
|
||||
beq _08079BD4
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x45
|
||||
ldrb r3, [r0]
|
||||
cmp r3, #0
|
||||
bne _08079BD4
|
||||
ldr r4, _08079B64 @ =gPlayerState
|
||||
ldr r1, [r4, #0x30]
|
||||
ldr r0, _08079B68 @ =0xFEFFFFFF
|
||||
ands r1, r0
|
||||
str r1, [r4, #0x30]
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x42
|
||||
strb r3, [r0]
|
||||
ldrb r0, [r4, #7]
|
||||
cmp r0, #0
|
||||
bne _08079BD4
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x26
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
beq _08079B6C
|
||||
bl RespawnPlayer
|
||||
b _08079BC0
|
||||
.align 2, 0
|
||||
_08079B60: .4byte gPlayerEntity
|
||||
_08079B64: .4byte gPlayerState
|
||||
_08079B68: .4byte 0xFEFFFFFF
|
||||
_08079B6C:
|
||||
ldrb r0, [r4, #0x14]
|
||||
cmp r0, #0
|
||||
bne _08079BC0
|
||||
movs r3, #0x80
|
||||
lsls r3, r3, #5
|
||||
ands r3, r1
|
||||
cmp r3, #0
|
||||
bne _08079BC0
|
||||
movs r5, #0x36
|
||||
ldrsh r0, [r2, r5]
|
||||
cmp r0, #0
|
||||
bge _08079BA6
|
||||
ldr r0, [r2, #0x20]
|
||||
cmp r0, #0
|
||||
ble _08079B8C
|
||||
str r3, [r2, #0x20]
|
||||
_08079B8C:
|
||||
ldrb r1, [r4, #2]
|
||||
movs r3, #0x41
|
||||
adds r0, r3, #0
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _08079BD4
|
||||
strb r3, [r4, #2]
|
||||
movs r0, #0xff
|
||||
strb r0, [r2, #0x15]
|
||||
movs r0, #1
|
||||
rsbs r0, r0, #0
|
||||
strb r0, [r4, #0xd]
|
||||
b _08079BD4
|
||||
_08079BA6:
|
||||
movs r0, #2
|
||||
ands r1, r0
|
||||
cmp r1, #0
|
||||
bne _08079BC0
|
||||
bl sub_08079D48
|
||||
cmp r0, #0
|
||||
bne _08079BC0
|
||||
ldrb r0, [r4, #0xa]
|
||||
movs r1, #0x10
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0xa]
|
||||
b _08079BD4
|
||||
_08079BC0:
|
||||
ldr r2, _08079BD0 @ =gPlayerEntity
|
||||
ldrb r1, [r2, #0x10]
|
||||
movs r0, #0x7f
|
||||
ands r0, r1
|
||||
strb r0, [r2, #0x10]
|
||||
movs r0, #0
|
||||
b _08079BD6
|
||||
.align 2, 0
|
||||
_08079BD0: .4byte gPlayerEntity
|
||||
_08079BD4:
|
||||
movs r0, #1
|
||||
_08079BD6:
|
||||
pop {r4, r5, pc}
|
||||
.syntax divided
|
||||
@@ -0,0 +1,110 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
adds r6, r0, #0
|
||||
ldr r0, _08079C68 @ =gPlayerState
|
||||
ldrb r1, [r0, #0x14]
|
||||
adds r7, r0, #0
|
||||
cmp r1, #0
|
||||
beq _08079C44
|
||||
b _08079D40
|
||||
_08079C44:
|
||||
ldr r1, [r7, #0x30]
|
||||
movs r0, #2
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _08079D40
|
||||
movs r0, #0x80
|
||||
ands r1, r0
|
||||
cmp r1, #0
|
||||
bne _08079D36
|
||||
ldrb r0, [r7, #0x13]
|
||||
subs r0, #0xd
|
||||
cmp r0, #0x1d
|
||||
bhi _08079CE8
|
||||
lsls r0, r0, #2
|
||||
ldr r1, _08079C6C @ =_08079C70
|
||||
adds r0, r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_08079C68: .4byte gPlayerState
|
||||
_08079C6C: .4byte _08079C70
|
||||
_08079C70: @ jump table
|
||||
.4byte _08079D36 @ case 0
|
||||
.4byte _08079D36 @ case 1
|
||||
.4byte _08079D36 @ case 2
|
||||
.4byte _08079D36 @ case 3
|
||||
.4byte _08079CE8 @ case 4
|
||||
.4byte _08079CE8 @ case 5
|
||||
.4byte _08079CE8 @ case 6
|
||||
.4byte _08079D36 @ case 7
|
||||
.4byte _08079CE8 @ case 8
|
||||
.4byte _08079CE8 @ case 9
|
||||
.4byte _08079D36 @ case 10
|
||||
.4byte _08079CE8 @ case 11
|
||||
.4byte _08079CE8 @ case 12
|
||||
.4byte _08079CE8 @ case 13
|
||||
.4byte _08079CE8 @ case 14
|
||||
.4byte _08079CE8 @ case 15
|
||||
.4byte _08079CE8 @ case 16
|
||||
.4byte _08079CE8 @ case 17
|
||||
.4byte _08079CE8 @ case 18
|
||||
.4byte _08079CE8 @ case 19
|
||||
.4byte _08079CE8 @ case 20
|
||||
.4byte _08079CE8 @ case 21
|
||||
.4byte _08079CE8 @ case 22
|
||||
.4byte _08079CE8 @ case 23
|
||||
.4byte _08079CE8 @ case 24
|
||||
.4byte _08079CE8 @ case 25
|
||||
.4byte _08079CE8 @ case 26
|
||||
.4byte _08079CE8 @ case 27
|
||||
.4byte _08079CE8 @ case 28
|
||||
.4byte _08079D36 @ case 29
|
||||
_08079CE8:
|
||||
mov r8, r7
|
||||
mov r0, r8
|
||||
ldrb r4, [r0, #0x12]
|
||||
movs r2, #1
|
||||
rsbs r2, r2, #0
|
||||
adds r0, r6, #0
|
||||
movs r1, #0
|
||||
bl sub_080002B4
|
||||
ldr r5, _08079D3C @ =gUnk_08007CAC
|
||||
adds r1, r5, #0
|
||||
bl sub_08007DD6
|
||||
cmp r4, r0
|
||||
bne _08079D40
|
||||
mov r0, r8
|
||||
ldrb r4, [r0, #0x12]
|
||||
adds r0, r6, #0
|
||||
movs r1, #2
|
||||
movs r2, #0
|
||||
bl sub_080002B4
|
||||
adds r1, r5, #0
|
||||
bl sub_08007DD6
|
||||
cmp r4, r0
|
||||
bne _08079D40
|
||||
ldrb r4, [r7, #0x12]
|
||||
movs r1, #2
|
||||
rsbs r1, r1, #0
|
||||
adds r0, r6, #0
|
||||
movs r2, #0
|
||||
bl sub_080002B4
|
||||
adds r1, r5, #0
|
||||
bl sub_08007DD6
|
||||
cmp r4, r0
|
||||
bne _08079D40
|
||||
_08079D36:
|
||||
movs r0, #1
|
||||
b _08079D42
|
||||
.align 2, 0
|
||||
_08079D3C: .4byte gUnk_08007CAC
|
||||
_08079D40:
|
||||
movs r0, #0
|
||||
_08079D42:
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.syntax divided
|
||||
@@ -0,0 +1,98 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sb
|
||||
mov r6, r8
|
||||
push {r6, r7}
|
||||
mov sb, r0
|
||||
ldr r1, _08079EBC @ =gPlayerEntity
|
||||
ldrb r2, [r1, #0x15]
|
||||
movs r0, #8
|
||||
ands r0, r2
|
||||
adds r7, r1, #0
|
||||
cmp r0, #0
|
||||
beq _08079ECA
|
||||
movs r0, #0x10
|
||||
ands r0, r2
|
||||
cmp r0, #0
|
||||
beq _08079EC0
|
||||
ldr r0, [r7, #0x48]
|
||||
ldrb r0, [r0, #2]
|
||||
rsbs r0, r0, #0
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r5, r0, #0x10
|
||||
b _08079EC4
|
||||
.align 2, 0
|
||||
_08079EBC: .4byte gPlayerEntity
|
||||
_08079EC0:
|
||||
ldr r0, [r7, #0x48]
|
||||
ldrb r5, [r0, #2]
|
||||
_08079EC4:
|
||||
ldr r0, [r7, #0x48]
|
||||
ldrb r4, [r0, #3]
|
||||
b _08079EDE
|
||||
_08079ECA:
|
||||
ldr r0, [r7, #0x48]
|
||||
ldrb r5, [r0, #4]
|
||||
cmp r2, #0
|
||||
beq _08079ED6
|
||||
ldrb r4, [r0, #5]
|
||||
b _08079EDE
|
||||
_08079ED6:
|
||||
ldrb r0, [r0, #5]
|
||||
rsbs r0, r0, #0
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r4, r0, #0x10
|
||||
_08079EDE:
|
||||
lsls r0, r5, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
mov r8, r0
|
||||
lsls r0, r4, #0x10
|
||||
asrs r6, r0, #0x10
|
||||
adds r0, r7, #0
|
||||
mov r1, r8
|
||||
adds r2, r6, #0
|
||||
bl sub_080002CC
|
||||
adds r1, r0, #0
|
||||
mov r0, sb
|
||||
bl sub_08079F48
|
||||
cmp r0, #0
|
||||
bne _08079F3C
|
||||
ldrb r1, [r7, #0x15]
|
||||
movs r0, #0x10
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _08079F10
|
||||
rsbs r0, r6, #0
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r4, r0, #0x10
|
||||
b _08079F18
|
||||
_08079F10:
|
||||
mov r1, r8
|
||||
rsbs r0, r1, #0
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r5, r0, #0x10
|
||||
_08079F18:
|
||||
ldr r0, _08079F38 @ =gPlayerEntity
|
||||
lsls r1, r5, #0x10
|
||||
asrs r1, r1, #0x10
|
||||
lsls r2, r4, #0x10
|
||||
asrs r2, r2, #0x10
|
||||
bl sub_080002CC
|
||||
adds r1, r0, #0
|
||||
mov r0, sb
|
||||
bl sub_08079F48
|
||||
cmp r0, #0
|
||||
bne _08079F3C
|
||||
movs r0, #0
|
||||
b _08079F3E
|
||||
.align 2, 0
|
||||
_08079F38: .4byte gPlayerEntity
|
||||
_08079F3C:
|
||||
movs r0, #1
|
||||
_08079F3E:
|
||||
pop {r3, r4}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
.syntax divided
|
||||
@@ -0,0 +1,65 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, lr}
|
||||
sub sp, #4
|
||||
adds r5, r0, #0
|
||||
movs r0, #0x2e
|
||||
ldrsh r2, [r5, r0]
|
||||
ldr r3, _0807A008 @ =gRoomControls
|
||||
ldrh r0, [r3, #6]
|
||||
subs r2, r2, r0
|
||||
asrs r2, r2, #4
|
||||
movs r4, #0x3f
|
||||
ands r2, r4
|
||||
movs r6, #0x32
|
||||
ldrsh r0, [r5, r6]
|
||||
ldrh r3, [r3, #8]
|
||||
subs r0, r0, r3
|
||||
asrs r0, r0, #4
|
||||
ands r0, r4
|
||||
lsls r0, r0, #6
|
||||
orrs r2, r0
|
||||
lsls r2, r2, #1
|
||||
ldr r6, _0807A00C @ =gUnk_02027EB4
|
||||
cmp r1, #2
|
||||
bne _0807A004
|
||||
ldr r6, _0807A010 @ =gUnk_0200D654
|
||||
_0807A004:
|
||||
movs r4, #0
|
||||
b _0807A028
|
||||
.align 2, 0
|
||||
_0807A008: .4byte gRoomControls
|
||||
_0807A00C: .4byte gUnk_02027EB4
|
||||
_0807A010: .4byte gUnk_0200D654
|
||||
_0807A014:
|
||||
cmp r1, #0x23
|
||||
beq _0807A028
|
||||
cmp r1, #0x27
|
||||
beq _0807A028
|
||||
ldr r0, _0807A04C @ =gUnk_080082DC
|
||||
subs r1, #0x10
|
||||
adds r1, r1, r0
|
||||
ldrb r0, [r1]
|
||||
cmp r0, #0
|
||||
beq _0807A046
|
||||
_0807A028:
|
||||
adds r4, #1
|
||||
adds r0, r5, #0
|
||||
mov r1, sp
|
||||
bl sub_08004202
|
||||
adds r2, r0, #0
|
||||
lsrs r0, r2, #1
|
||||
adds r0, r6, r0
|
||||
ldrb r1, [r0]
|
||||
cmp r1, #0xe
|
||||
bls _0807A046
|
||||
cmp r1, #0xf
|
||||
bls _0807A028
|
||||
cmp r1, #0x1d
|
||||
bne _0807A014
|
||||
_0807A046:
|
||||
adds r0, r4, #0
|
||||
add sp, #4
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_0807A04C: .4byte gUnk_080082DC
|
||||
.syntax divided
|
||||
@@ -0,0 +1,66 @@
|
||||
.syntax unified
|
||||
push {r4, r5, lr}
|
||||
adds r3, r0, #0
|
||||
movs r2, #0x16
|
||||
ldr r0, _0807A0AC @ =gPlayerState
|
||||
ldrb r0, [r0, #0xf]
|
||||
cmp r0, #0
|
||||
beq _0807A0B0
|
||||
movs r2, #0x1b
|
||||
cmp r0, #0x78
|
||||
bls _0807A104
|
||||
movs r2, #0x1a
|
||||
b _0807A104
|
||||
.align 2, 0
|
||||
_0807A0AC: .4byte gPlayerState
|
||||
_0807A0B0:
|
||||
ldr r0, _0807A0F0 @ =gSave
|
||||
adds r1, r0, #0
|
||||
adds r1, #0xb2
|
||||
ldrb r1, [r1]
|
||||
adds r5, r0, #0
|
||||
cmp r1, #0
|
||||
beq _0807A104
|
||||
movs r4, #1
|
||||
cmp r3, #0
|
||||
bne _0807A0D6
|
||||
adds r0, #0xc4
|
||||
ldrh r1, [r0]
|
||||
cmp r1, #0xb3
|
||||
bhi _0807A0D6
|
||||
movs r0, #8
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0807A0D6
|
||||
movs r4, #0
|
||||
_0807A0D6:
|
||||
cmp r4, #0
|
||||
beq _0807A104
|
||||
adds r0, r5, #0
|
||||
adds r0, #0xb2
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0x30
|
||||
beq _0807A102
|
||||
cmp r0, #0x30
|
||||
bgt _0807A0F4
|
||||
cmp r0, #0x2f
|
||||
beq _0807A0FA
|
||||
b _0807A102
|
||||
.align 2, 0
|
||||
_0807A0F0: .4byte gSave
|
||||
_0807A0F4:
|
||||
cmp r0, #0x31
|
||||
beq _0807A0FE
|
||||
b _0807A102
|
||||
_0807A0FA:
|
||||
movs r2, #0x18
|
||||
b _0807A104
|
||||
_0807A0FE:
|
||||
movs r2, #0x17
|
||||
b _0807A104
|
||||
_0807A102:
|
||||
movs r2, #0x19
|
||||
_0807A104:
|
||||
adds r0, r2, #0
|
||||
pop {r4, r5, pc}
|
||||
.syntax divided
|
||||
@@ -0,0 +1,257 @@
|
||||
.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 sub_080002E0
|
||||
cmp r0, #0
|
||||
beq _0807A3FC
|
||||
lsls r0, r4, #0x10
|
||||
lsrs r0, r0, #0x10
|
||||
mov r1, sl
|
||||
adds r1, #0x38
|
||||
ldrb r1, [r1]
|
||||
bl sub_080002C8
|
||||
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 sub_08007DD6
|
||||
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 sub_080002E0
|
||||
cmp r0, #0
|
||||
beq _0807A44C
|
||||
lsls r0, r4, #0x10
|
||||
lsrs r0, r0, #0x10
|
||||
adds r1, r5, #0
|
||||
adds r1, #0x38
|
||||
ldrb r1, [r1]
|
||||
bl sub_080002C8
|
||||
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 sub_08007DD6
|
||||
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 sub_080002E0
|
||||
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 sub_080002E0
|
||||
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 sub_080002E0
|
||||
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
|
||||
@@ -0,0 +1,103 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, lr}
|
||||
ldr r6, _0807A518 @ =gPlayerEntity
|
||||
ldrb r0, [r6, #0x14]
|
||||
lsrs r0, r0, #1
|
||||
cmp r0, #1
|
||||
beq _0807A574
|
||||
cmp r0, #1
|
||||
bgt _0807A51C
|
||||
cmp r0, #0
|
||||
beq _0807A526
|
||||
b _0807A5B4
|
||||
.align 2, 0
|
||||
_0807A518: .4byte gPlayerEntity
|
||||
_0807A51C:
|
||||
cmp r0, #2
|
||||
beq _0807A554
|
||||
cmp r0, #3
|
||||
beq _0807A580
|
||||
b _0807A5B4
|
||||
_0807A526:
|
||||
movs r1, #0x2e
|
||||
ldrsh r0, [r6, r1]
|
||||
ldr r5, _0807A550 @ =gRoomControls
|
||||
ldrh r1, [r5, #6]
|
||||
subs r0, r0, r1
|
||||
asrs r0, r0, #4
|
||||
movs r4, #0x3f
|
||||
ands r0, r4
|
||||
movs r2, #0x32
|
||||
ldrsh r1, [r6, r2]
|
||||
ldr r3, [r6, #0x48]
|
||||
ldrb r2, [r3, #5]
|
||||
subs r1, r1, r2
|
||||
movs r2, #1
|
||||
ldrsb r2, [r3, r2]
|
||||
adds r1, r1, r2
|
||||
ldrh r2, [r5, #8]
|
||||
subs r1, r1, r2
|
||||
asrs r1, r1, #4
|
||||
ands r1, r4
|
||||
b _0807A5AA
|
||||
.align 2, 0
|
||||
_0807A550: .4byte gRoomControls
|
||||
_0807A554:
|
||||
movs r5, #0x2e
|
||||
ldrsh r0, [r6, r5]
|
||||
ldr r4, _0807A570 @ =gRoomControls
|
||||
ldrh r1, [r4, #6]
|
||||
subs r0, r0, r1
|
||||
asrs r0, r0, #4
|
||||
movs r3, #0x3f
|
||||
ands r0, r3
|
||||
ldr r2, [r6, #0x48]
|
||||
movs r5, #0x32
|
||||
ldrsh r1, [r6, r5]
|
||||
ldrb r5, [r2, #5]
|
||||
adds r1, r1, r5
|
||||
b _0807A59A
|
||||
.align 2, 0
|
||||
_0807A570: .4byte gRoomControls
|
||||
_0807A574:
|
||||
ldr r2, [r6, #0x48]
|
||||
movs r1, #0x2e
|
||||
ldrsh r0, [r6, r1]
|
||||
ldrb r5, [r2, #2]
|
||||
adds r0, r0, r5
|
||||
b _0807A58A
|
||||
_0807A580:
|
||||
movs r1, #0x2e
|
||||
ldrsh r0, [r6, r1]
|
||||
ldr r2, [r6, #0x48]
|
||||
ldrb r1, [r2, #2]
|
||||
subs r0, r0, r1
|
||||
_0807A58A:
|
||||
ldr r4, _0807A5B0 @ =gRoomControls
|
||||
ldrh r1, [r4, #6]
|
||||
subs r0, r0, r1
|
||||
asrs r0, r0, #4
|
||||
movs r3, #0x3f
|
||||
ands r0, r3
|
||||
movs r5, #0x32
|
||||
ldrsh r1, [r6, r5]
|
||||
_0807A59A:
|
||||
ldrb r2, [r2, #1]
|
||||
lsls r2, r2, #0x18
|
||||
asrs r2, r2, #0x18
|
||||
adds r1, r1, r2
|
||||
ldrh r2, [r4, #8]
|
||||
subs r1, r1, r2
|
||||
asrs r1, r1, #4
|
||||
ands r1, r3
|
||||
_0807A5AA:
|
||||
lsls r1, r1, #6
|
||||
orrs r0, r1
|
||||
b _0807A5B6
|
||||
.align 2, 0
|
||||
_0807A5B0: .4byte gRoomControls
|
||||
_0807A5B4:
|
||||
movs r0, #0
|
||||
_0807A5B6:
|
||||
pop {r4, r5, r6, pc}
|
||||
.syntax divided
|
||||
@@ -0,0 +1,204 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sb
|
||||
mov r6, r8
|
||||
push {r6, r7}
|
||||
mov sb, r0
|
||||
ldr r2, _0807A5F8 @ =gPlayerState
|
||||
ldrb r3, [r2, #2]
|
||||
movs r4, #0x80
|
||||
adds r0, r4, #0
|
||||
ands r0, r3
|
||||
cmp r0, #0
|
||||
beq _0807A5D2
|
||||
b _0807A736
|
||||
_0807A5D2:
|
||||
ldr r1, [r2, #0x30]
|
||||
movs r0, #0x40
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0807A5DE
|
||||
b _0807A736
|
||||
_0807A5DE:
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x26
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
beq _0807A5EA
|
||||
b _0807A736
|
||||
_0807A5EA:
|
||||
adds r0, r1, #0
|
||||
ands r0, r4
|
||||
cmp r0, #0
|
||||
beq _0807A600
|
||||
ldr r7, _0807A5FC @ =gUnk_0800833C
|
||||
b _0807A63A
|
||||
.align 2, 0
|
||||
_0807A5F8: .4byte gPlayerState
|
||||
_0807A5FC: .4byte gUnk_0800833C
|
||||
_0807A600:
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #0x11
|
||||
ands r1, r0
|
||||
cmp r1, #0
|
||||
bne _0807A60E
|
||||
cmp r3, #0
|
||||
beq _0807A618
|
||||
_0807A60E:
|
||||
ldr r7, _0807A614 @ =gUnk_0800845C
|
||||
b _0807A63A
|
||||
.align 2, 0
|
||||
_0807A614: .4byte gUnk_0800845C
|
||||
_0807A618:
|
||||
ldrb r0, [r2, #5]
|
||||
cmp r0, #0
|
||||
bne _0807A624
|
||||
ldrb r0, [r2, #0x1c]
|
||||
cmp r0, #0
|
||||
beq _0807A62C
|
||||
_0807A624:
|
||||
ldr r7, _0807A628 @ =gUnk_080084BC
|
||||
b _0807A63A
|
||||
.align 2, 0
|
||||
_0807A628: .4byte gUnk_080084BC
|
||||
_0807A62C:
|
||||
adds r0, r2, #0
|
||||
adds r0, #0xaa
|
||||
ldrb r0, [r0]
|
||||
ldr r7, _0807A740 @ =gUnk_080082DC
|
||||
cmp r0, #0
|
||||
beq _0807A63A
|
||||
ldr r7, _0807A744 @ =gUnk_0800851C
|
||||
_0807A63A:
|
||||
mov r0, sb
|
||||
cmp r0, #0
|
||||
beq _0807A6B8
|
||||
cmp r0, #0x10
|
||||
beq _0807A6B8
|
||||
ldr r6, _0807A748 @ =gPlayerEntity
|
||||
ldr r2, [r6, #0x48]
|
||||
movs r1, #0x2e
|
||||
ldrsh r0, [r6, r1]
|
||||
ldrb r3, [r2, #2]
|
||||
adds r0, r0, r3
|
||||
movs r1, #0
|
||||
ldrsb r1, [r2, r1]
|
||||
adds r0, r0, r1
|
||||
ldr r1, _0807A74C @ =gRoomControls
|
||||
mov r8, r1
|
||||
ldrh r1, [r1, #6]
|
||||
subs r5, r0, r1
|
||||
movs r3, #0x32
|
||||
ldrsh r0, [r6, r3]
|
||||
movs r1, #1
|
||||
ldrsb r1, [r2, r1]
|
||||
adds r0, r0, r1
|
||||
mov r2, r8
|
||||
ldrh r1, [r2, #8]
|
||||
subs r4, r0, r1
|
||||
adds r0, r5, #0
|
||||
adds r1, r4, #0
|
||||
adds r2, r7, #0
|
||||
bl sub_080086B4
|
||||
cmp r0, #0
|
||||
beq _0807A688
|
||||
adds r0, r5, #0
|
||||
adds r1, r4, #0
|
||||
adds r2, r7, #0
|
||||
movs r3, #1
|
||||
bl sub_0807A750
|
||||
_0807A688:
|
||||
movs r3, #0x2e
|
||||
ldrsh r1, [r6, r3]
|
||||
ldr r2, [r6, #0x48]
|
||||
ldrb r0, [r2, #2]
|
||||
subs r1, r1, r0
|
||||
movs r0, #0
|
||||
ldrsb r0, [r2, r0]
|
||||
adds r1, r1, r0
|
||||
mov r2, r8
|
||||
ldrh r0, [r2, #6]
|
||||
subs r5, r1, r0
|
||||
adds r0, r5, #0
|
||||
adds r1, r4, #0
|
||||
adds r2, r7, #0
|
||||
bl sub_080086B4
|
||||
cmp r0, #0
|
||||
beq _0807A6B8
|
||||
adds r0, r5, #0
|
||||
adds r1, r4, #0
|
||||
adds r2, r7, #0
|
||||
movs r3, #3
|
||||
bl sub_0807A750
|
||||
_0807A6B8:
|
||||
mov r3, sb
|
||||
cmp r3, #8
|
||||
beq _0807A736
|
||||
cmp r3, #0x18
|
||||
beq _0807A736
|
||||
ldr r6, _0807A748 @ =gPlayerEntity
|
||||
movs r0, #0x2e
|
||||
ldrsh r1, [r6, r0]
|
||||
ldr r2, [r6, #0x48]
|
||||
movs r0, #0
|
||||
ldrsb r0, [r2, r0]
|
||||
adds r1, r1, r0
|
||||
ldr r3, _0807A74C @ =gRoomControls
|
||||
mov r8, r3
|
||||
ldrh r0, [r3, #6]
|
||||
subs r5, r1, r0
|
||||
movs r1, #0x32
|
||||
ldrsh r0, [r6, r1]
|
||||
ldrb r3, [r2, #5]
|
||||
adds r0, r0, r3
|
||||
movs r1, #1
|
||||
ldrsb r1, [r2, r1]
|
||||
adds r0, r0, r1
|
||||
mov r2, r8
|
||||
ldrh r1, [r2, #8]
|
||||
subs r4, r0, r1
|
||||
adds r0, r5, #0
|
||||
adds r1, r4, #0
|
||||
adds r2, r7, #0
|
||||
bl sub_080086B4
|
||||
cmp r0, #0
|
||||
beq _0807A706
|
||||
adds r0, r5, #0
|
||||
adds r1, r4, #0
|
||||
adds r2, r7, #0
|
||||
movs r3, #2
|
||||
bl sub_0807A750
|
||||
_0807A706:
|
||||
movs r3, #0x32
|
||||
ldrsh r1, [r6, r3]
|
||||
ldr r2, [r6, #0x48]
|
||||
ldrb r0, [r2, #5]
|
||||
subs r1, r1, r0
|
||||
movs r0, #1
|
||||
ldrsb r0, [r2, r0]
|
||||
adds r1, r1, r0
|
||||
mov r2, r8
|
||||
ldrh r0, [r2, #8]
|
||||
subs r4, r1, r0
|
||||
adds r0, r5, #0
|
||||
adds r1, r4, #0
|
||||
adds r2, r7, #0
|
||||
bl sub_080086B4
|
||||
cmp r0, #0
|
||||
beq _0807A736
|
||||
adds r0, r5, #0
|
||||
adds r1, r4, #0
|
||||
adds r2, r7, #0
|
||||
movs r3, #0
|
||||
bl sub_0807A750
|
||||
_0807A736:
|
||||
pop {r3, r4}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_0807A740: .4byte gUnk_080082DC
|
||||
_0807A744: .4byte gUnk_0800851C
|
||||
_0807A748: .4byte gPlayerEntity
|
||||
_0807A74C: .4byte gRoomControls
|
||||
.syntax divided
|
||||
@@ -0,0 +1,184 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
adds r7, r0, #0
|
||||
adds r6, r1, #0
|
||||
mov r8, r2
|
||||
adds r5, r3, #0
|
||||
movs r0, #1
|
||||
ands r0, r5
|
||||
cmp r0, #0
|
||||
bne _0807A76C
|
||||
movs r4, #0xf
|
||||
ands r4, r6
|
||||
b _0807A770
|
||||
_0807A76C:
|
||||
movs r4, #0xf
|
||||
ands r4, r7
|
||||
_0807A770:
|
||||
cmp r4, #0
|
||||
bne _0807A776
|
||||
b _0807A88E
|
||||
_0807A776:
|
||||
cmp r4, #0xf
|
||||
bne _0807A77C
|
||||
b _0807A88E
|
||||
_0807A77C:
|
||||
lsrs r0, r7, #4
|
||||
movs r2, #0x3f
|
||||
ands r0, r2
|
||||
lsrs r1, r6, #4
|
||||
ands r1, r2
|
||||
lsls r1, r1, #6
|
||||
orrs r0, r1
|
||||
ldr r1, _0807A7A8 @ =gPlayerEntity
|
||||
adds r1, #0x38
|
||||
ldrb r1, [r1]
|
||||
bl sub_080002E0
|
||||
adds r1, r0, #0
|
||||
cmp r1, #0xf
|
||||
bls _0807A7AE
|
||||
cmp r1, #0xff
|
||||
beq _0807A7AC
|
||||
mov r2, r8
|
||||
adds r0, r1, r2
|
||||
subs r0, #0x10
|
||||
ldrb r1, [r0]
|
||||
b _0807A7AE
|
||||
.align 2, 0
|
||||
_0807A7A8: .4byte gPlayerEntity
|
||||
_0807A7AC:
|
||||
movs r1, #0xf
|
||||
_0807A7AE:
|
||||
ldr r0, _0807A7D8 @ =gUnk_0800823C
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r0
|
||||
ldr r1, [r1]
|
||||
movs r0, #1
|
||||
ands r0, r5
|
||||
cmp r0, #0
|
||||
bne _0807A824
|
||||
movs r0, #0xf
|
||||
ands r0, r7
|
||||
movs r2, #0x80
|
||||
lsls r2, r2, #8
|
||||
asrs r2, r0
|
||||
cmp r5, #0
|
||||
bne _0807A7F4
|
||||
ldr r3, _0807A7DC @ =gPlayerEntity
|
||||
cmp r4, #0xe
|
||||
bgt _0807A7F0
|
||||
lsls r0, r4, #1
|
||||
adds r1, r0, r1
|
||||
b _0807A7E8
|
||||
.align 2, 0
|
||||
_0807A7D8: .4byte gUnk_0800823C
|
||||
_0807A7DC: .4byte gPlayerEntity
|
||||
_0807A7E0:
|
||||
adds r1, #2
|
||||
adds r4, #1
|
||||
cmp r4, #0xe
|
||||
bgt _0807A7F0
|
||||
_0807A7E8:
|
||||
ldrh r0, [r1]
|
||||
ands r0, r2
|
||||
cmp r0, #0
|
||||
bne _0807A7E0
|
||||
_0807A7F0:
|
||||
subs r4, #1
|
||||
b _0807A816
|
||||
_0807A7F4:
|
||||
ldr r3, _0807A800 @ =gPlayerEntity
|
||||
cmp r4, #0
|
||||
ble _0807A814
|
||||
lsls r0, r4, #1
|
||||
adds r1, r0, r1
|
||||
b _0807A80C
|
||||
.align 2, 0
|
||||
_0807A800: .4byte gPlayerEntity
|
||||
_0807A804:
|
||||
subs r1, #2
|
||||
subs r4, #1
|
||||
cmp r4, #0
|
||||
ble _0807A814
|
||||
_0807A80C:
|
||||
ldrh r0, [r1]
|
||||
ands r0, r2
|
||||
cmp r0, #0
|
||||
bne _0807A804
|
||||
_0807A814:
|
||||
adds r4, #1
|
||||
_0807A816:
|
||||
movs r0, #0xf
|
||||
ands r0, r6
|
||||
subs r0, r4, r0
|
||||
ldrh r1, [r3, #0x32]
|
||||
adds r0, r0, r1
|
||||
strh r0, [r3, #0x32]
|
||||
b _0807A88E
|
||||
_0807A824:
|
||||
movs r3, #0xf
|
||||
ands r6, r3
|
||||
lsls r0, r6, #1
|
||||
adds r0, r0, r1
|
||||
ldrh r2, [r0]
|
||||
cmp r5, #1
|
||||
bne _0807A85C
|
||||
subs r0, r3, r4
|
||||
lsrs r2, r0
|
||||
ldr r3, _0807A858 @ =gPlayerEntity
|
||||
cmp r4, #0
|
||||
ble _0807A854
|
||||
ands r5, r2
|
||||
cmp r5, #0
|
||||
beq _0807A854
|
||||
movs r1, #1
|
||||
_0807A844:
|
||||
lsrs r2, r2, #1
|
||||
subs r4, #1
|
||||
cmp r4, #0
|
||||
ble _0807A854
|
||||
adds r0, r2, #0
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _0807A844
|
||||
_0807A854:
|
||||
adds r4, #1
|
||||
b _0807A882
|
||||
.align 2, 0
|
||||
_0807A858: .4byte gPlayerEntity
|
||||
_0807A85C:
|
||||
lsls r2, r4
|
||||
ldr r3, _0807A86C @ =gPlayerEntity
|
||||
cmp r4, #0xe
|
||||
bgt _0807A880
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #8
|
||||
b _0807A878
|
||||
.align 2, 0
|
||||
_0807A86C: .4byte gPlayerEntity
|
||||
_0807A870:
|
||||
lsls r2, r2, #1
|
||||
adds r4, #1
|
||||
cmp r4, #0xe
|
||||
bgt _0807A880
|
||||
_0807A878:
|
||||
adds r0, r2, #0
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _0807A870
|
||||
_0807A880:
|
||||
subs r4, #1
|
||||
_0807A882:
|
||||
movs r0, #0xf
|
||||
ands r0, r7
|
||||
subs r0, r4, r0
|
||||
ldrh r2, [r3, #0x2e]
|
||||
adds r0, r0, r2
|
||||
strh r0, [r3, #0x2e]
|
||||
_0807A88E:
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.syntax divided
|
||||
@@ -0,0 +1,41 @@
|
||||
.syntax unified
|
||||
push {lr}
|
||||
ldrb r1, [r0, #0x15]
|
||||
cmp r1, #8
|
||||
beq _0807A8BA
|
||||
cmp r1, #8
|
||||
bgt _0807A8A6
|
||||
cmp r1, #0
|
||||
beq _0807A8B0
|
||||
b _0807A8C8
|
||||
_0807A8A6:
|
||||
cmp r1, #0x10
|
||||
beq _0807A8B6
|
||||
cmp r1, #0x18
|
||||
beq _0807A8C0
|
||||
b _0807A8C8
|
||||
_0807A8B0:
|
||||
movs r2, #8
|
||||
rsbs r2, r2, #0
|
||||
b _0807A8CA
|
||||
_0807A8B6:
|
||||
movs r2, #5
|
||||
b _0807A8CA
|
||||
_0807A8BA:
|
||||
movs r2, #0
|
||||
movs r1, #8
|
||||
b _0807A8CC
|
||||
_0807A8C0:
|
||||
movs r2, #0
|
||||
movs r1, #8
|
||||
rsbs r1, r1, #0
|
||||
b _0807A8CC
|
||||
_0807A8C8:
|
||||
movs r2, #0
|
||||
_0807A8CA:
|
||||
movs r1, #0
|
||||
_0807A8CC:
|
||||
bl sub_080002B4
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
.syntax divided
|
||||
@@ -0,0 +1,209 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sb
|
||||
mov r6, r8
|
||||
push {r6, r7}
|
||||
adds r5, r0, #0
|
||||
ldr r0, _0807AA5C @ =gPlayerState
|
||||
ldr r0, [r0, #0x30]
|
||||
movs r1, #0x80
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0807A8F0
|
||||
b _0807A9F6
|
||||
_0807A8F0:
|
||||
movs r1, #0x2e
|
||||
ldrsh r0, [r5, r1]
|
||||
ldr r7, _0807AA60 @ =gRoomControls
|
||||
ldrh r1, [r7, #6]
|
||||
subs r0, r0, r1
|
||||
asrs r0, r0, #4
|
||||
movs r6, #0x3f
|
||||
ands r0, r6
|
||||
movs r2, #0x32
|
||||
ldrsh r1, [r5, r2]
|
||||
ldrh r2, [r7, #8]
|
||||
adds r2, #1
|
||||
subs r1, r1, r2
|
||||
asrs r1, r1, #4
|
||||
ands r1, r6
|
||||
lsls r1, r1, #6
|
||||
orrs r0, r1
|
||||
ldr r1, _0807AA64 @ =gPlayerEntity
|
||||
adds r1, #0x38
|
||||
mov sb, r1
|
||||
ldrb r1, [r1]
|
||||
bl sub_080002EC
|
||||
adds r4, r0, #0
|
||||
movs r0, #0x20
|
||||
mov r8, r0
|
||||
ands r4, r0
|
||||
cmp r4, #0
|
||||
beq _0807A94E
|
||||
movs r2, #0x2e
|
||||
ldrsh r1, [r5, r2]
|
||||
ldrh r0, [r7, #6]
|
||||
subs r1, r1, r0
|
||||
asrs r1, r1, #4
|
||||
ands r1, r6
|
||||
movs r2, #0x32
|
||||
ldrsh r0, [r5, r2]
|
||||
ldrh r2, [r7, #8]
|
||||
adds r2, #1
|
||||
subs r0, r0, r2
|
||||
asrs r0, r0, #4
|
||||
ands r0, r6
|
||||
lsls r0, r0, #6
|
||||
orrs r1, r0
|
||||
adds r0, r5, #0
|
||||
bl sub_0807AAF8
|
||||
_0807A94E:
|
||||
movs r1, #0x2e
|
||||
ldrsh r0, [r5, r1]
|
||||
ldrh r1, [r7, #6]
|
||||
subs r1, #2
|
||||
subs r0, r0, r1
|
||||
asrs r0, r0, #4
|
||||
ands r0, r6
|
||||
movs r2, #0x32
|
||||
ldrsh r1, [r5, r2]
|
||||
ldrh r2, [r7, #8]
|
||||
subs r1, r1, r2
|
||||
asrs r1, r1, #4
|
||||
ands r1, r6
|
||||
lsls r1, r1, #6
|
||||
orrs r0, r1
|
||||
mov r2, sb
|
||||
ldrb r1, [r2]
|
||||
bl sub_080002EC
|
||||
adds r4, r0, #0
|
||||
mov r0, r8
|
||||
ands r4, r0
|
||||
cmp r4, #0
|
||||
beq _0807A9A2
|
||||
movs r2, #0x2e
|
||||
ldrsh r1, [r5, r2]
|
||||
ldrh r0, [r7, #6]
|
||||
subs r0, #2
|
||||
subs r1, r1, r0
|
||||
asrs r1, r1, #4
|
||||
ands r1, r6
|
||||
movs r2, #0x32
|
||||
ldrsh r0, [r5, r2]
|
||||
ldrh r2, [r7, #8]
|
||||
subs r0, r0, r2
|
||||
asrs r0, r0, #4
|
||||
ands r0, r6
|
||||
lsls r0, r0, #6
|
||||
orrs r1, r0
|
||||
adds r0, r5, #0
|
||||
bl sub_0807AAF8
|
||||
_0807A9A2:
|
||||
movs r1, #0x2e
|
||||
ldrsh r0, [r5, r1]
|
||||
ldrh r1, [r7, #6]
|
||||
adds r1, #2
|
||||
subs r0, r0, r1
|
||||
asrs r0, r0, #4
|
||||
ands r0, r6
|
||||
movs r2, #0x32
|
||||
ldrsh r1, [r5, r2]
|
||||
ldrh r2, [r7, #8]
|
||||
subs r1, r1, r2
|
||||
asrs r1, r1, #4
|
||||
ands r1, r6
|
||||
lsls r1, r1, #6
|
||||
orrs r0, r1
|
||||
mov r2, sb
|
||||
ldrb r1, [r2]
|
||||
bl sub_080002EC
|
||||
adds r4, r0, #0
|
||||
mov r0, r8
|
||||
ands r4, r0
|
||||
cmp r4, #0
|
||||
beq _0807A9F6
|
||||
movs r2, #0x2e
|
||||
ldrsh r1, [r5, r2]
|
||||
ldrh r0, [r7, #6]
|
||||
adds r0, #2
|
||||
subs r1, r1, r0
|
||||
asrs r1, r1, #4
|
||||
ands r1, r6
|
||||
movs r2, #0x32
|
||||
ldrsh r0, [r5, r2]
|
||||
ldrh r2, [r7, #8]
|
||||
subs r0, r0, r2
|
||||
asrs r0, r0, #4
|
||||
ands r0, r6
|
||||
lsls r0, r0, #6
|
||||
orrs r1, r0
|
||||
adds r0, r5, #0
|
||||
bl sub_0807AAF8
|
||||
_0807A9F6:
|
||||
movs r1, #0x2e
|
||||
ldrsh r0, [r5, r1]
|
||||
ldr r7, _0807AA60 @ =gRoomControls
|
||||
ldrh r1, [r7, #6]
|
||||
subs r0, r0, r1
|
||||
asrs r0, r0, #4
|
||||
movs r6, #0x3f
|
||||
ands r0, r6
|
||||
movs r2, #0x32
|
||||
ldrsh r1, [r5, r2]
|
||||
ldrh r2, [r7, #8]
|
||||
subs r1, r1, r2
|
||||
asrs r1, r1, #4
|
||||
ands r1, r6
|
||||
lsls r1, r1, #6
|
||||
orrs r0, r1
|
||||
ldr r1, _0807AA64 @ =gPlayerEntity
|
||||
adds r1, #0x38
|
||||
ldrb r1, [r1]
|
||||
bl sub_080002EC
|
||||
adds r4, r0, #0
|
||||
movs r0, #0x20
|
||||
ands r0, r4
|
||||
cmp r0, #0
|
||||
beq _0807AA4C
|
||||
movs r0, #0x2e
|
||||
ldrsh r1, [r5, r0]
|
||||
ldrh r0, [r7, #6]
|
||||
subs r1, r1, r0
|
||||
asrs r1, r1, #4
|
||||
ands r1, r6
|
||||
movs r2, #0x32
|
||||
ldrsh r0, [r5, r2]
|
||||
ldrh r2, [r7, #8]
|
||||
subs r0, r0, r2
|
||||
asrs r0, r0, #4
|
||||
ands r0, r6
|
||||
lsls r0, r0, #6
|
||||
orrs r1, r0
|
||||
adds r0, r5, #0
|
||||
bl sub_0807AAF8
|
||||
_0807AA4C:
|
||||
movs r0, #2
|
||||
ands r0, r4
|
||||
cmp r0, #0
|
||||
beq _0807AA68
|
||||
adds r0, r5, #0
|
||||
bl sub_0807AABC
|
||||
b _0807AA76
|
||||
.align 2, 0
|
||||
_0807AA5C: .4byte gPlayerState
|
||||
_0807AA60: .4byte gRoomControls
|
||||
_0807AA64: .4byte gPlayerEntity
|
||||
_0807AA68:
|
||||
movs r0, #4
|
||||
ands r0, r4
|
||||
cmp r0, #0
|
||||
beq _0807AA76
|
||||
adds r0, r5, #0
|
||||
bl sub_0807AA80
|
||||
_0807AA76:
|
||||
pop {r3, r4}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
.syntax divided
|
||||
@@ -0,0 +1,42 @@
|
||||
.syntax unified
|
||||
push {r4, lr}
|
||||
adds r3, r0, #0
|
||||
adds r2, r1, #0
|
||||
movs r1, #0x36
|
||||
ldrsh r0, [r3, r1]
|
||||
cmp r0, #0
|
||||
bne _0807AB3C
|
||||
adds r0, r3, #0
|
||||
adds r0, #0x38
|
||||
ldrb r0, [r0]
|
||||
lsls r0, r0, #0x1e
|
||||
orrs r2, r0
|
||||
movs r3, #0
|
||||
ldr r0, _0807AB40 @ =gPlayerState
|
||||
ldr r1, [r0, #0x40]
|
||||
adds r4, r0, #0
|
||||
cmp r1, r2
|
||||
beq _0807AB32
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x40
|
||||
_0807AB20:
|
||||
ldr r0, [r1]
|
||||
stm r1!, {r2}
|
||||
adds r2, r0, #0
|
||||
adds r3, #1
|
||||
cmp r3, #0xe
|
||||
bhi _0807AB32
|
||||
ldr r0, [r1]
|
||||
cmp r0, r2
|
||||
bne _0807AB20
|
||||
_0807AB32:
|
||||
lsls r0, r3, #2
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x40
|
||||
adds r0, r0, r1
|
||||
str r2, [r0]
|
||||
_0807AB3C:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_0807AB40: .4byte gPlayerState
|
||||
.syntax divided
|
||||
@@ -0,0 +1,129 @@
|
||||
.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
|
||||
adds r7, r1, #0
|
||||
mov r8, r2
|
||||
movs r1, #0x2e
|
||||
ldrsh r0, [r6, r1]
|
||||
adds r0, r0, r7
|
||||
ldr r2, _0807ABF0 @ =gRoomControls
|
||||
mov sb, r2
|
||||
ldrh r1, [r2, #6]
|
||||
subs r0, r0, r1
|
||||
asrs r0, r0, #4
|
||||
movs r3, #0x3f
|
||||
mov sl, r3
|
||||
ands r0, r3
|
||||
movs r5, #0x32
|
||||
ldrsh r1, [r6, r5]
|
||||
add r1, r8
|
||||
ldrh r2, [r2, #8]
|
||||
subs r1, r1, r2
|
||||
asrs r1, r1, #4
|
||||
ands r1, r3
|
||||
lsls r1, r1, #6
|
||||
orrs r0, r1
|
||||
adds r1, r6, #0
|
||||
adds r1, #0x38
|
||||
ldrb r1, [r1]
|
||||
bl GetTileType
|
||||
movs r1, #0xb
|
||||
bl sub_0806FC50
|
||||
adds r5, r0, #0
|
||||
cmp r5, #0
|
||||
beq _0807AC44
|
||||
ldrh r0, [r5, #6]
|
||||
cmp r0, #0x76
|
||||
bne _0807ABF4
|
||||
movs r0, #0x2a
|
||||
movs r1, #1
|
||||
movs r2, #0
|
||||
bl CreateObject
|
||||
adds r4, r0, #0
|
||||
cmp r4, #0
|
||||
beq _0807AC44
|
||||
lsls r2, r7, #0x10
|
||||
mov r0, r8
|
||||
lsls r3, r0, #0x10
|
||||
adds r0, r6, #0
|
||||
adds r1, r4, #0
|
||||
bl PositionRelative
|
||||
adds r0, r4, #0
|
||||
bl sub_08004168
|
||||
ldrh r0, [r5, #6]
|
||||
movs r2, #0x2e
|
||||
ldrsh r1, [r4, r2]
|
||||
mov r3, sb
|
||||
ldrh r2, [r3, #6]
|
||||
subs r1, r1, r2
|
||||
asrs r1, r1, #4
|
||||
mov r5, sl
|
||||
ands r1, r5
|
||||
movs r3, #0x32
|
||||
ldrsh r2, [r4, r3]
|
||||
mov r5, sb
|
||||
ldrh r3, [r5, #8]
|
||||
subs r2, r2, r3
|
||||
asrs r2, r2, #4
|
||||
mov r3, sl
|
||||
ands r2, r3
|
||||
lsls r2, r2, #6
|
||||
orrs r1, r2
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x38
|
||||
ldrb r2, [r2]
|
||||
bl sub_0807B7D8
|
||||
b _0807AC44
|
||||
.align 2, 0
|
||||
_0807ABF0: .4byte gRoomControls
|
||||
_0807ABF4:
|
||||
movs r0, #0x2a
|
||||
movs r1, #2
|
||||
movs r2, #0
|
||||
bl CreateObject
|
||||
adds r4, r0, #0
|
||||
cmp r4, #0
|
||||
beq _0807AC44
|
||||
lsls r2, r7, #0x10
|
||||
mov r0, r8
|
||||
lsls r3, r0, #0x10
|
||||
adds r0, r6, #0
|
||||
adds r1, r4, #0
|
||||
bl PositionRelative
|
||||
str r5, [r4, #0x54]
|
||||
ldr r0, _0807AC50 @ =0x0000404F
|
||||
movs r2, #0x2e
|
||||
ldrsh r1, [r4, r2]
|
||||
mov r3, sb
|
||||
ldrh r2, [r3, #6]
|
||||
subs r1, r1, r2
|
||||
asrs r1, r1, #4
|
||||
mov r5, sl
|
||||
ands r1, r5
|
||||
movs r3, #0x32
|
||||
ldrsh r2, [r4, r3]
|
||||
mov r5, sb
|
||||
ldrh r3, [r5, #8]
|
||||
subs r2, r2, r3
|
||||
asrs r2, r2, #4
|
||||
mov r3, sl
|
||||
ands r2, r3
|
||||
lsls r2, r2, #6
|
||||
orrs r1, r2
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x38
|
||||
ldrb r2, [r2]
|
||||
bl SetTile
|
||||
_0807AC44:
|
||||
pop {r3, r4, r5}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
mov sl, r5
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_0807AC50: .4byte 0x0000404F
|
||||
.syntax divided
|
||||
@@ -0,0 +1,67 @@
|
||||
.syntax unified
|
||||
push {lr}
|
||||
adds r2, r0, #0
|
||||
ldr r0, _0807AC74 @ =gPlayerState
|
||||
ldrb r1, [r0, #0x11]
|
||||
adds r3, r0, #0
|
||||
cmp r1, #0
|
||||
beq _0807ACC6
|
||||
ldrb r0, [r3, #0x12]
|
||||
cmp r0, #0x2a
|
||||
beq _0807ACA8
|
||||
cmp r0, #0x2a
|
||||
bgt _0807AC78
|
||||
cmp r0, #0x1e
|
||||
beq _0807AC82
|
||||
b _0807ACC6
|
||||
.align 2, 0
|
||||
_0807AC74: .4byte gPlayerState
|
||||
_0807AC78:
|
||||
cmp r0, #0x2b
|
||||
beq _0807AC90
|
||||
cmp r0, #0x2c
|
||||
beq _0807ACB6
|
||||
b _0807ACC6
|
||||
_0807AC82:
|
||||
ldrh r0, [r2, #0x2e]
|
||||
movs r1, #0x10
|
||||
rsbs r1, r1, #0
|
||||
ands r1, r0
|
||||
movs r0, #8
|
||||
orrs r1, r0
|
||||
strh r1, [r2, #0x2e]
|
||||
_0807AC90:
|
||||
movs r0, #0
|
||||
movs r1, #0x1d
|
||||
strb r1, [r2, #0xc]
|
||||
strb r0, [r2, #0xd]
|
||||
strh r0, [r2, #0x30]
|
||||
ldr r0, _0807ACA4 @ =0x000002CF
|
||||
strh r0, [r3, #8]
|
||||
movs r0, #1
|
||||
b _0807ACC8
|
||||
.align 2, 0
|
||||
_0807ACA4: .4byte 0x000002CF
|
||||
_0807ACA8:
|
||||
ldrh r0, [r2, #0x2e]
|
||||
movs r1, #0x10
|
||||
rsbs r1, r1, #0
|
||||
ands r1, r0
|
||||
movs r0, #8
|
||||
orrs r1, r0
|
||||
strh r1, [r2, #0x2e]
|
||||
_0807ACB6:
|
||||
movs r0, #0
|
||||
movs r1, #0x1d
|
||||
strb r1, [r2, #0xc]
|
||||
movs r1, #1
|
||||
strb r1, [r2, #0xd]
|
||||
strh r0, [r2, #0x30]
|
||||
movs r0, #1
|
||||
b _0807ACC8
|
||||
_0807ACC6:
|
||||
movs r0, #0
|
||||
_0807ACC8:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
.syntax divided
|
||||
@@ -0,0 +1,121 @@
|
||||
.syntax unified
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x29
|
||||
ldrb r1, [r2]
|
||||
movs r0, #0x39
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
strb r0, [r2]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x42
|
||||
movs r0, #0
|
||||
strb r0, [r1]
|
||||
movs r0, #0x72
|
||||
bl GetInventoryValue
|
||||
movs r1, #0xc0
|
||||
cmp r0, #1
|
||||
bne _0807ACF4
|
||||
adds r1, #0x40
|
||||
_0807ACF4:
|
||||
movs r2, #0x24
|
||||
ldrsh r0, [r4, r2]
|
||||
cmp r1, r0
|
||||
ble _0807AD18
|
||||
strh r1, [r4, #0x24]
|
||||
ldr r0, _0807AD14 @ =gPlayerState
|
||||
ldrb r1, [r0, #0xd]
|
||||
strb r1, [r4, #0x15]
|
||||
adds r0, #0x26
|
||||
ldrb r1, [r0]
|
||||
movs r0, #0xf
|
||||
ands r0, r1
|
||||
cmp r0, #1
|
||||
bne _0807ADB4
|
||||
b _0807AD1E
|
||||
.align 2, 0
|
||||
_0807AD14: .4byte gPlayerState
|
||||
_0807AD18:
|
||||
ldrh r0, [r4, #0x24]
|
||||
subs r0, #4
|
||||
strh r0, [r4, #0x24]
|
||||
_0807AD1E:
|
||||
ldr r2, _0807AD3C @ =gPlayerState
|
||||
adds r1, r2, #0
|
||||
adds r1, #0x89
|
||||
ldrb r0, [r1]
|
||||
cmp r0, #0
|
||||
bne _0807AD40
|
||||
adds r0, r4, #0
|
||||
bl sub_0807ADB8
|
||||
cmp r0, #0
|
||||
bne _0807AD74
|
||||
adds r0, r4, #0
|
||||
bl sub_0807AE20
|
||||
b _0807AD74
|
||||
.align 2, 0
|
||||
_0807AD3C: .4byte gPlayerState
|
||||
_0807AD40:
|
||||
subs r0, #1
|
||||
strb r0, [r1]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
beq _0807AD52
|
||||
adds r0, r4, #0
|
||||
bl sub_0807ADB8
|
||||
b _0807AD74
|
||||
_0807AD52:
|
||||
adds r2, #0x26
|
||||
ldrb r1, [r2]
|
||||
movs r0, #0x7f
|
||||
ands r0, r1
|
||||
strb r0, [r2]
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x29
|
||||
ldrb r1, [r2]
|
||||
movs r0, #8
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
movs r1, #4
|
||||
orrs r0, r1
|
||||
strb r0, [r2]
|
||||
ldr r0, _0807ADA0 @ =0x00000163
|
||||
bl SoundReq
|
||||
_0807AD74:
|
||||
ldr r0, _0807ADA4 @ =gPlayerState
|
||||
adds r0, #0x26
|
||||
ldrb r1, [r0]
|
||||
movs r0, #0x80
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0807ADA8
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x3c
|
||||
ldrb r1, [r2]
|
||||
movs r0, #4
|
||||
orrs r0, r1
|
||||
strb r0, [r2]
|
||||
subs r2, #0x13
|
||||
ldrb r1, [r2]
|
||||
movs r0, #8
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
movs r1, #6
|
||||
orrs r0, r1
|
||||
b _0807ADB2
|
||||
.align 2, 0
|
||||
_0807ADA0: .4byte 0x00000163
|
||||
_0807ADA4: .4byte gPlayerState
|
||||
_0807ADA8:
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x3c
|
||||
ldrb r1, [r2]
|
||||
movs r0, #0xfb
|
||||
ands r0, r1
|
||||
_0807ADB2:
|
||||
strb r0, [r2]
|
||||
_0807ADB4:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
.syntax divided
|
||||
@@ -0,0 +1,56 @@
|
||||
.syntax unified
|
||||
push {r4, lr}
|
||||
adds r2, r0, #0
|
||||
ldr r3, _0807ADF4 @ =gPlayerState
|
||||
adds r0, r3, #0
|
||||
adds r0, #0x92
|
||||
ldrh r1, [r0]
|
||||
movs r0, #0x10
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0807AE1C
|
||||
movs r0, #0x26
|
||||
adds r0, r0, r3
|
||||
mov ip, r0
|
||||
ldrb r0, [r0]
|
||||
movs r1, #0x80
|
||||
eors r0, r1
|
||||
mov r1, ip
|
||||
strb r0, [r1]
|
||||
movs r1, #0x80
|
||||
ands r0, r1
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r4, r0, #0x18
|
||||
cmp r4, #0
|
||||
beq _0807ADF8
|
||||
adds r1, r3, #0
|
||||
adds r1, #0x89
|
||||
movs r0, #0x78
|
||||
strb r0, [r1]
|
||||
b _0807AE0E
|
||||
.align 2, 0
|
||||
_0807ADF4: .4byte gPlayerState
|
||||
_0807ADF8:
|
||||
adds r2, #0x29
|
||||
ldrb r1, [r2]
|
||||
movs r0, #8
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
movs r1, #4
|
||||
orrs r0, r1
|
||||
strb r0, [r2]
|
||||
adds r0, r3, #0
|
||||
adds r0, #0x89
|
||||
strb r4, [r0]
|
||||
_0807AE0E:
|
||||
ldr r0, _0807AE18 @ =0x00000163
|
||||
bl SoundReq
|
||||
movs r0, #1
|
||||
b _0807AE1E
|
||||
.align 2, 0
|
||||
_0807AE18: .4byte 0x00000163
|
||||
_0807AE1C:
|
||||
movs r0, #0
|
||||
_0807AE1E:
|
||||
pop {r4, pc}
|
||||
.syntax divided
|
||||
@@ -0,0 +1,98 @@
|
||||
.syntax unified
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldrb r0, [r4, #0xc]
|
||||
cmp r0, #0x17
|
||||
bne _0807AE32
|
||||
ldr r0, _0807AE58 @ =gPlayerState
|
||||
ldrb r0, [r0, #0xa]
|
||||
cmp r0, #0
|
||||
bne _0807AE74
|
||||
_0807AE32:
|
||||
ldr r0, _0807AE5C @ =gRoomControls
|
||||
ldrh r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _0807AE74
|
||||
ldr r0, _0807AE58 @ =gPlayerState
|
||||
adds r0, #0x92
|
||||
ldrh r1, [r0]
|
||||
movs r0, #8
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0807AE74
|
||||
movs r0, #0x72
|
||||
bl GetInventoryValue
|
||||
cmp r0, #1
|
||||
bne _0807AE60
|
||||
movs r0, #0xe0
|
||||
lsls r0, r0, #1
|
||||
b _0807AE64
|
||||
.align 2, 0
|
||||
_0807AE58: .4byte gPlayerState
|
||||
_0807AE5C: .4byte gRoomControls
|
||||
_0807AE60:
|
||||
movs r0, #0xc0
|
||||
lsls r0, r0, #1
|
||||
_0807AE64:
|
||||
strh r0, [r4, #0x24]
|
||||
adds r0, r4, #0
|
||||
bl sub_08079520
|
||||
movs r0, #0xb1
|
||||
lsls r0, r0, #1
|
||||
bl SoundReq
|
||||
_0807AE74:
|
||||
movs r0, #0x10
|
||||
bl sub_080793E4
|
||||
cmp r0, #0
|
||||
beq _0807AEA8
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x3d
|
||||
movs r0, #0x14
|
||||
strb r0, [r1]
|
||||
adds r1, #5
|
||||
movs r0, #4
|
||||
strb r0, [r1]
|
||||
ldrb r0, [r4, #0x14]
|
||||
lsls r0, r0, #2
|
||||
movs r1, #0x10
|
||||
eors r0, r1
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x3e
|
||||
strb r0, [r1]
|
||||
movs r0, #2
|
||||
rsbs r0, r0, #0
|
||||
bl ModHealth
|
||||
movs r0, #0x7a
|
||||
bl SoundReq
|
||||
_0807AEA8:
|
||||
ldrb r1, [r4, #0x15]
|
||||
movs r0, #0x80
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0807AECC
|
||||
ldr r0, _0807AEC8 @ =gRoomTransition
|
||||
ldr r0, [r0]
|
||||
movs r1, #0xf
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _0807AEDE
|
||||
adds r0, r4, #0
|
||||
movs r1, #4
|
||||
bl CreateRandomWaterTrace
|
||||
b _0807AEDE
|
||||
.align 2, 0
|
||||
_0807AEC8: .4byte gRoomTransition
|
||||
_0807AECC:
|
||||
ldr r0, _0807AEE0 @ =gRoomTransition
|
||||
ldr r0, [r0]
|
||||
movs r1, #7
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _0807AEDE
|
||||
adds r0, r4, #0
|
||||
bl CreateWaterTrace
|
||||
_0807AEDE:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_0807AEE0: .4byte gRoomTransition
|
||||
.syntax divided
|
||||
@@ -0,0 +1,108 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, r7, lr}
|
||||
adds r6, r0, #0
|
||||
adds r7, r1, #0
|
||||
movs r1, #2
|
||||
bl sub_0807B464
|
||||
cmp r0, #0
|
||||
beq _0807B558
|
||||
adds r0, r6, #0
|
||||
subs r0, #0x40
|
||||
movs r1, #2
|
||||
bl sub_0807B464
|
||||
adds r5, r0, #0
|
||||
adds r0, r6, #1
|
||||
movs r1, #2
|
||||
bl sub_0807B464
|
||||
lsls r0, r0, #1
|
||||
orrs r5, r0
|
||||
adds r4, r6, #0
|
||||
adds r4, #0x40
|
||||
adds r0, r4, #0
|
||||
movs r1, #2
|
||||
bl sub_0807B464
|
||||
lsls r0, r0, #2
|
||||
orrs r5, r0
|
||||
subs r0, r6, #1
|
||||
movs r1, #2
|
||||
bl sub_0807B464
|
||||
lsls r0, r0, #3
|
||||
orrs r5, r0
|
||||
adds r0, r6, #0
|
||||
adds r0, #0x41
|
||||
movs r1, #1
|
||||
bl sub_0807B464
|
||||
lsls r0, r0, #1
|
||||
orrs r5, r0
|
||||
adds r0, r6, #0
|
||||
adds r0, #0x3f
|
||||
movs r1, #1
|
||||
bl sub_0807B464
|
||||
lsls r0, r0, #3
|
||||
orrs r5, r0
|
||||
adds r0, r4, #0
|
||||
movs r1, #2
|
||||
bl GetTileType
|
||||
cmp r0, #0
|
||||
beq _0807B4FA
|
||||
adds r0, r6, #0
|
||||
adds r0, #0x80
|
||||
movs r1, #1
|
||||
bl sub_0807B464
|
||||
lsls r0, r0, #2
|
||||
orrs r5, r0
|
||||
_0807B4FA:
|
||||
ldr r0, _0807B514 @ =gUnk_0811C2CC
|
||||
lsls r1, r5, #1
|
||||
adds r1, r1, r0
|
||||
ldrh r4, [r1]
|
||||
adds r0, r6, #0
|
||||
movs r1, #2
|
||||
bl GetTileType
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r0, r0, #0x10
|
||||
ldr r2, _0807B518 @ =gUnk_0811C2EC
|
||||
movs r3, #0
|
||||
b _0807B51E
|
||||
.align 2, 0
|
||||
_0807B514: .4byte gUnk_0811C2CC
|
||||
_0807B518: .4byte gUnk_0811C2EC
|
||||
_0807B51C:
|
||||
adds r2, #6
|
||||
_0807B51E:
|
||||
ldrh r1, [r2]
|
||||
cmp r1, #0
|
||||
beq _0807B52A
|
||||
cmp r0, r1
|
||||
bne _0807B51C
|
||||
ldrh r3, [r2, #2]
|
||||
_0807B52A:
|
||||
movs r0, #1
|
||||
lsls r0, r7
|
||||
bics r3, r0
|
||||
ldr r2, _0807B534 @ =gUnk_0811C2EC
|
||||
b _0807B53A
|
||||
.align 2, 0
|
||||
_0807B534: .4byte gUnk_0811C2EC
|
||||
_0807B538:
|
||||
adds r2, #6
|
||||
_0807B53A:
|
||||
ldrh r0, [r2]
|
||||
cmp r0, #0
|
||||
beq _0807B54E
|
||||
ldrh r0, [r2, #2]
|
||||
cmp r3, r0
|
||||
bne _0807B538
|
||||
ldrh r0, [r2, #4]
|
||||
cmp r5, r0
|
||||
bne _0807B538
|
||||
ldrh r4, [r2]
|
||||
_0807B54E:
|
||||
adds r0, r4, #0
|
||||
adds r1, r6, #0
|
||||
movs r2, #2
|
||||
bl SetTileType
|
||||
_0807B558:
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
.syntax divided
|
||||
@@ -0,0 +1,39 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, r7, lr}
|
||||
adds r5, r0, #0
|
||||
adds r6, r1, #0
|
||||
adds r7, r2, #0
|
||||
bl sub_0807B464
|
||||
cmp r0, #0
|
||||
beq _0807B5AC
|
||||
adds r0, r5, #0
|
||||
subs r0, #0x40
|
||||
adds r1, r6, #0
|
||||
bl sub_0807B464
|
||||
adds r4, r0, #0
|
||||
adds r0, r5, #1
|
||||
adds r1, r6, #0
|
||||
bl sub_0807B464
|
||||
lsls r0, r0, #1
|
||||
orrs r4, r0
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x40
|
||||
adds r1, r6, #0
|
||||
bl sub_0807B464
|
||||
lsls r0, r0, #2
|
||||
orrs r4, r0
|
||||
subs r0, r5, #1
|
||||
adds r1, r6, #0
|
||||
bl sub_0807B464
|
||||
lsls r0, r0, #3
|
||||
orrs r0, r4
|
||||
lsls r0, r0, #1
|
||||
adds r0, r0, r7
|
||||
ldrh r0, [r0]
|
||||
adds r1, r5, #0
|
||||
adds r2, r6, #0
|
||||
bl SetTileType
|
||||
_0807B5AC:
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
.syntax divided
|
||||
@@ -0,0 +1,40 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, r7, lr}
|
||||
adds r3, r0, #0
|
||||
movs r1, #0x2e
|
||||
ldrsh r0, [r3, r1]
|
||||
ldr r6, _0807B5F8 @ =gUnk_0811C456
|
||||
ldrb r1, [r3, #0x14]
|
||||
movs r2, #6
|
||||
ands r2, r1
|
||||
lsls r1, r2, #1
|
||||
adds r1, r1, r6
|
||||
movs r4, #0
|
||||
ldrsh r1, [r1, r4]
|
||||
adds r0, r0, r1
|
||||
ldr r5, _0807B5FC @ =gRoomControls
|
||||
ldrh r1, [r5, #6]
|
||||
subs r0, r0, r1
|
||||
asrs r0, r0, #4
|
||||
movs r4, #0x3f
|
||||
ands r0, r4
|
||||
movs r7, #0x32
|
||||
ldrsh r1, [r3, r7]
|
||||
adds r2, #1
|
||||
lsls r2, r2, #1
|
||||
adds r2, r2, r6
|
||||
movs r3, #0
|
||||
ldrsh r2, [r2, r3]
|
||||
adds r1, r1, r2
|
||||
ldrh r2, [r5, #8]
|
||||
subs r1, r1, r2
|
||||
asrs r1, r1, #4
|
||||
ands r1, r4
|
||||
lsls r1, r1, #6
|
||||
orrs r0, r1
|
||||
bl sub_0807B600
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_0807B5F8: .4byte gUnk_0811C456
|
||||
_0807B5FC: .4byte gRoomControls
|
||||
.syntax divided
|
||||
@@ -0,0 +1,173 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, lr}
|
||||
adds r5, r0, #0
|
||||
adds r6, r5, #0
|
||||
subs r6, #0x40
|
||||
lsls r0, r5, #0x10
|
||||
lsrs r0, r0, #0x10
|
||||
movs r1, #1
|
||||
bl sub_080002C8
|
||||
cmp r0, #0x56
|
||||
beq _0807B61A
|
||||
movs r0, #0
|
||||
b _0807B76E
|
||||
_0807B61A:
|
||||
adds r0, r5, #0
|
||||
movs r1, #1
|
||||
bl GetTileType
|
||||
adds r1, r0, #0
|
||||
ldr r0, _0807B634 @ =0x0000026A
|
||||
cmp r1, r0
|
||||
bne _0807B638
|
||||
adds r0, r5, #0
|
||||
bl sub_0807B820
|
||||
b _0807B76C
|
||||
.align 2, 0
|
||||
_0807B634: .4byte 0x0000026A
|
||||
_0807B638:
|
||||
ldr r0, _0807B648 @ =0x00000267
|
||||
cmp r1, r0
|
||||
bne _0807B64C
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x40
|
||||
bl sub_0807B820
|
||||
b _0807B76C
|
||||
.align 2, 0
|
||||
_0807B648: .4byte 0x00000267
|
||||
_0807B64C:
|
||||
ldr r0, _0807B65C @ =0x0000027A
|
||||
cmp r1, r0
|
||||
bne _0807B660
|
||||
adds r0, r5, #0
|
||||
bl sub_0807B8A8
|
||||
b _0807B76C
|
||||
.align 2, 0
|
||||
_0807B65C: .4byte 0x0000027A
|
||||
_0807B660:
|
||||
ldr r0, _0807B670 @ =0x00000277
|
||||
cmp r1, r0
|
||||
bne _0807B674
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x40
|
||||
bl sub_0807B8A8
|
||||
b _0807B76C
|
||||
.align 2, 0
|
||||
_0807B670: .4byte 0x00000277
|
||||
_0807B674:
|
||||
ldr r0, _0807B684 @ =0x0000028A
|
||||
cmp r1, r0
|
||||
bne _0807B688
|
||||
adds r0, r5, #0
|
||||
bl sub_0807B930
|
||||
b _0807B76C
|
||||
.align 2, 0
|
||||
_0807B684: .4byte 0x0000028A
|
||||
_0807B688:
|
||||
ldr r0, _0807B698 @ =0x00000287
|
||||
cmp r1, r0
|
||||
bne _0807B69C
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x40
|
||||
bl sub_0807B930
|
||||
b _0807B76C
|
||||
.align 2, 0
|
||||
_0807B698: .4byte 0x00000287
|
||||
_0807B69C:
|
||||
adds r0, r5, #0
|
||||
movs r1, #2
|
||||
bl GetTileType
|
||||
cmp r0, #0
|
||||
beq _0807B6EC
|
||||
ldr r0, _0807B6E8 @ =0x000002F2
|
||||
adds r1, r5, #0
|
||||
movs r2, #1
|
||||
bl SetTileType
|
||||
adds r0, r6, #0
|
||||
movs r1, #1
|
||||
bl sub_080002E0
|
||||
cmp r0, #3
|
||||
bne _0807B6CA
|
||||
movs r0, #0xbd
|
||||
lsls r0, r0, #2
|
||||
adds r1, r6, #0
|
||||
movs r2, #1
|
||||
bl SetTileType
|
||||
_0807B6CA:
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x40
|
||||
movs r1, #1
|
||||
bl sub_080002E0
|
||||
cmp r0, #3
|
||||
bne _0807B6F8
|
||||
movs r0, #0xbd
|
||||
lsls r0, r0, #2
|
||||
adds r1, r5, #0
|
||||
movs r2, #1
|
||||
bl SetTileType
|
||||
b _0807B6F8
|
||||
.align 2, 0
|
||||
_0807B6E8: .4byte 0x000002F2
|
||||
_0807B6EC:
|
||||
movs r0, #0xbd
|
||||
lsls r0, r0, #2
|
||||
adds r1, r5, #0
|
||||
movs r2, #1
|
||||
bl SetTileType
|
||||
_0807B6F8:
|
||||
adds r0, r6, #0
|
||||
movs r1, #2
|
||||
bl sub_0807B464
|
||||
cmp r0, #0
|
||||
beq _0807B748
|
||||
movs r0, #0
|
||||
adds r1, r6, #0
|
||||
movs r2, #2
|
||||
bl SetTileType
|
||||
adds r0, r6, #0
|
||||
movs r1, #1
|
||||
bl GetTileType
|
||||
ldr r1, _0807B770 @ =0x000002F2
|
||||
cmp r0, r1
|
||||
bne _0807B728
|
||||
movs r0, #0xbd
|
||||
lsls r0, r0, #2
|
||||
adds r1, r6, #0
|
||||
movs r2, #1
|
||||
bl SetTileType
|
||||
_0807B728:
|
||||
adds r0, r5, #1
|
||||
ldr r4, _0807B774 @ =gUnk_0811C2AC
|
||||
movs r1, #1
|
||||
adds r2, r4, #0
|
||||
bl sub_0807B55C
|
||||
subs r0, r5, #1
|
||||
movs r1, #1
|
||||
adds r2, r4, #0
|
||||
bl sub_0807B55C
|
||||
adds r0, r6, #0
|
||||
movs r1, #1
|
||||
adds r2, r4, #0
|
||||
bl sub_0807B55C
|
||||
_0807B748:
|
||||
adds r0, r6, #1
|
||||
movs r1, #3
|
||||
bl sub_0807B480
|
||||
subs r0, r6, #1
|
||||
movs r1, #1
|
||||
bl sub_0807B480
|
||||
adds r0, r6, #0
|
||||
adds r0, #0x40
|
||||
movs r1, #0
|
||||
bl sub_0807B480
|
||||
adds r0, r6, #0
|
||||
subs r0, #0x40
|
||||
movs r1, #2
|
||||
bl sub_0807B480
|
||||
_0807B76C:
|
||||
movs r0, #1
|
||||
_0807B76E:
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_0807B770: .4byte 0x000002F2
|
||||
_0807B774: .4byte gUnk_0811C2AC
|
||||
.syntax divided
|
||||
@@ -0,0 +1,44 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, lr}
|
||||
adds r5, r0, #0
|
||||
adds r6, r1, #0
|
||||
lsls r0, r5, #0x10
|
||||
lsrs r0, r0, #0x10
|
||||
lsls r1, r6, #0x18
|
||||
lsrs r1, r1, #0x18
|
||||
bl sub_080002C8
|
||||
cmp r0, #0xd
|
||||
bne _0807B7D0
|
||||
adds r0, r5, #0
|
||||
subs r0, #0x40
|
||||
adds r1, r6, #0
|
||||
bl sub_0807B434
|
||||
adds r4, r0, #0
|
||||
adds r0, r5, #1
|
||||
adds r1, r6, #0
|
||||
bl sub_0807B434
|
||||
lsls r0, r0, #1
|
||||
orrs r4, r0
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x40
|
||||
adds r1, r6, #0
|
||||
bl sub_0807B434
|
||||
lsls r0, r0, #2
|
||||
orrs r4, r0
|
||||
subs r0, r5, #1
|
||||
adds r1, r6, #0
|
||||
bl sub_0807B434
|
||||
lsls r0, r0, #3
|
||||
orrs r0, r4
|
||||
ldr r1, _0807B7D4 @ =gUnk_0811C466
|
||||
lsls r0, r0, #1
|
||||
adds r0, r0, r1
|
||||
ldrh r0, [r0]
|
||||
adds r1, r5, #0
|
||||
adds r2, r6, #0
|
||||
bl SetTileType
|
||||
_0807B7D0:
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_0807B7D4: .4byte gUnk_0811C466
|
||||
.syntax divided
|
||||
@@ -0,0 +1,99 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, r7, lr}
|
||||
adds r7, r0, #0
|
||||
adds r4, r1, #0
|
||||
adds r6, r2, #0
|
||||
adds r0, r4, #0
|
||||
adds r1, r6, #0
|
||||
bl DeleteLoadedTileEntity
|
||||
adds r0, r6, #0
|
||||
bl GetLayerByIndex
|
||||
adds r5, r0, #0
|
||||
lsls r1, r4, #1
|
||||
adds r0, r5, #4
|
||||
adds r0, r0, r1
|
||||
strh r7, [r0]
|
||||
lsls r1, r7, #1
|
||||
ldr r2, _0807BA24 @ =0x00005004
|
||||
adds r0, r5, r2
|
||||
adds r0, r0, r1
|
||||
ldrh r2, [r0]
|
||||
ldr r0, _0807BA28 @ =0x00002004
|
||||
adds r1, r5, r0
|
||||
adds r1, r1, r4
|
||||
ldr r0, _0807BA2C @ =gUnk_080B3E80
|
||||
adds r0, r2, r0
|
||||
ldrb r0, [r0]
|
||||
strb r0, [r1]
|
||||
ldr r0, _0807BA30 @ =0x0000B004
|
||||
adds r1, r5, r0
|
||||
adds r1, r1, r4
|
||||
ldr r0, _0807BA34 @ =gUnk_080B37A0
|
||||
adds r2, r2, r0
|
||||
ldrb r0, [r2]
|
||||
strb r0, [r1]
|
||||
ldr r0, _0807BA38 @ =gRoomControls
|
||||
ldrb r1, [r0, #0xf]
|
||||
movs r0, #1
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _0807BA78
|
||||
movs r1, #0x3f
|
||||
ands r1, r4
|
||||
lsls r1, r1, #1
|
||||
movs r0, #0xfc
|
||||
lsls r0, r0, #4
|
||||
ands r0, r4
|
||||
lsls r0, r0, #2
|
||||
adds r1, r1, r0
|
||||
cmp r6, #2
|
||||
beq _0807BA40
|
||||
lsls r1, r1, #1
|
||||
ldr r0, _0807BA3C @ =gUnk_02019EE0
|
||||
b _0807BA44
|
||||
.align 2, 0
|
||||
_0807BA24: .4byte 0x00005004
|
||||
_0807BA28: .4byte 0x00002004
|
||||
_0807BA2C: .4byte gUnk_080B3E80
|
||||
_0807BA30: .4byte 0x0000B004
|
||||
_0807BA34: .4byte gUnk_080B37A0
|
||||
_0807BA38: .4byte gRoomControls
|
||||
_0807BA3C: .4byte gUnk_02019EE0
|
||||
_0807BA40:
|
||||
lsls r1, r1, #1
|
||||
ldr r0, _0807BA7C @ =gMapDataTopSpecial
|
||||
_0807BA44:
|
||||
adds r3, r1, r0
|
||||
lsls r0, r7, #3
|
||||
ldr r1, _0807BA80 @ =0x00007004
|
||||
adds r0, r0, r1
|
||||
adds r0, r5, r0
|
||||
ldrh r1, [r0]
|
||||
strh r1, [r3]
|
||||
ldrh r1, [r0, #2]
|
||||
strh r1, [r3, #2]
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #1
|
||||
adds r2, r3, r1
|
||||
ldrh r1, [r0, #4]
|
||||
strh r1, [r2]
|
||||
movs r2, #0x81
|
||||
lsls r2, r2, #1
|
||||
adds r1, r3, r2
|
||||
ldrh r0, [r0, #6]
|
||||
strh r0, [r1]
|
||||
ldr r0, _0807BA84 @ =gRoomControls
|
||||
ldrh r0, [r0]
|
||||
cmp r0, #1
|
||||
beq _0807BA78
|
||||
ldr r1, _0807BA88 @ =gUpdateVisibleTiles
|
||||
movs r0, #1
|
||||
strb r0, [r1]
|
||||
_0807BA78:
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_0807BA7C: .4byte gMapDataTopSpecial
|
||||
_0807BA80: .4byte 0x00007004
|
||||
_0807BA84: .4byte gRoomControls
|
||||
_0807BA88: .4byte gUpdateVisibleTiles
|
||||
.syntax divided
|
||||
@@ -0,0 +1,101 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, r7, lr}
|
||||
adds r4, r0, #0
|
||||
adds r7, r1, #0
|
||||
bl DeleteLoadedTileEntity
|
||||
adds r0, r7, #0
|
||||
bl GetLayerByIndex
|
||||
adds r5, r0, #0
|
||||
lsls r2, r4, #1
|
||||
adds r1, r5, #4
|
||||
adds r1, r1, r2
|
||||
ldr r3, _0807BAFC @ =0x00003004
|
||||
adds r0, r5, r3
|
||||
adds r0, r0, r2
|
||||
ldrh r6, [r0]
|
||||
strh r6, [r1]
|
||||
lsls r1, r6, #1
|
||||
ldr r2, _0807BB00 @ =0x00005004
|
||||
adds r0, r5, r2
|
||||
adds r0, r0, r1
|
||||
ldrh r2, [r0]
|
||||
ldr r3, _0807BB04 @ =0x00002004
|
||||
adds r1, r5, r3
|
||||
adds r1, r1, r4
|
||||
ldr r0, _0807BB08 @ =gUnk_080B3E80
|
||||
adds r0, r2, r0
|
||||
ldrb r0, [r0]
|
||||
strb r0, [r1]
|
||||
ldr r0, _0807BB0C @ =0x0000B004
|
||||
adds r1, r5, r0
|
||||
adds r1, r1, r4
|
||||
ldr r0, _0807BB10 @ =gUnk_080B37A0
|
||||
adds r2, r2, r0
|
||||
ldrb r0, [r2]
|
||||
strb r0, [r1]
|
||||
ldr r0, _0807BB14 @ =gRoomControls
|
||||
ldrb r1, [r0, #0xf]
|
||||
movs r0, #1
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _0807BB54
|
||||
movs r1, #0x3f
|
||||
ands r1, r4
|
||||
lsls r1, r1, #1
|
||||
movs r0, #0xfc
|
||||
lsls r0, r0, #4
|
||||
ands r0, r4
|
||||
lsls r0, r0, #2
|
||||
adds r1, r1, r0
|
||||
cmp r7, #2
|
||||
beq _0807BB1C
|
||||
lsls r1, r1, #1
|
||||
ldr r0, _0807BB18 @ =gUnk_02019EE0
|
||||
b _0807BB20
|
||||
.align 2, 0
|
||||
_0807BAFC: .4byte 0x00003004
|
||||
_0807BB00: .4byte 0x00005004
|
||||
_0807BB04: .4byte 0x00002004
|
||||
_0807BB08: .4byte gUnk_080B3E80
|
||||
_0807BB0C: .4byte 0x0000B004
|
||||
_0807BB10: .4byte gUnk_080B37A0
|
||||
_0807BB14: .4byte gRoomControls
|
||||
_0807BB18: .4byte gUnk_02019EE0
|
||||
_0807BB1C:
|
||||
lsls r1, r1, #1
|
||||
ldr r0, _0807BB58 @ =gMapDataTopSpecial
|
||||
_0807BB20:
|
||||
adds r3, r1, r0
|
||||
lsls r0, r6, #3
|
||||
ldr r1, _0807BB5C @ =0x00007004
|
||||
adds r0, r0, r1
|
||||
adds r0, r5, r0
|
||||
ldrh r1, [r0]
|
||||
strh r1, [r3]
|
||||
ldrh r1, [r0, #2]
|
||||
strh r1, [r3, #2]
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #1
|
||||
adds r2, r3, r1
|
||||
ldrh r1, [r0, #4]
|
||||
strh r1, [r2]
|
||||
movs r2, #0x81
|
||||
lsls r2, r2, #1
|
||||
adds r1, r3, r2
|
||||
ldrh r0, [r0, #6]
|
||||
strh r0, [r1]
|
||||
ldr r0, _0807BB60 @ =gRoomControls
|
||||
ldrh r0, [r0]
|
||||
cmp r0, #1
|
||||
beq _0807BB54
|
||||
ldr r1, _0807BB64 @ =gUpdateVisibleTiles
|
||||
movs r0, #1
|
||||
strb r0, [r1]
|
||||
_0807BB54:
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_0807BB58: .4byte gMapDataTopSpecial
|
||||
_0807BB5C: .4byte 0x00007004
|
||||
_0807BB60: .4byte gRoomControls
|
||||
_0807BB64: .4byte gUpdateVisibleTiles
|
||||
.syntax divided
|
||||
@@ -0,0 +1,79 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sl
|
||||
mov r6, sb
|
||||
mov r5, r8
|
||||
push {r5, r6, r7}
|
||||
ldr r0, _0807BC28 @ =gMetatileTypesBottom
|
||||
mov sl, r0
|
||||
ldr r0, _0807BC2C @ =gMetatileTypesTop
|
||||
mov sb, r0
|
||||
ldr r5, _0807BC30 @ =0xFFFFB000
|
||||
add r5, sl
|
||||
ldr r4, _0807BC30 @ =0xFFFFB000
|
||||
add r4, sb
|
||||
ldr r2, _0807BC34 @ =0xFFFFD000
|
||||
add r2, sl
|
||||
ldr r1, _0807BC34 @ =0xFFFFD000
|
||||
add r1, sb
|
||||
movs r3, #0
|
||||
ldr r0, _0807BC38 @ =0x00003FFF
|
||||
mov r8, r0
|
||||
ldr r0, _0807BC3C @ =gUnk_080B3E80
|
||||
mov ip, r0
|
||||
ldr r7, _0807BC40 @ =gUnk_080B79A7
|
||||
ldr r6, _0807BC44 @ =0xFFFFC000
|
||||
_0807BC14:
|
||||
ldrh r0, [r5]
|
||||
adds r5, #2
|
||||
cmp r0, r8
|
||||
bhi _0807BC48
|
||||
lsls r0, r0, #1
|
||||
add r0, sl
|
||||
ldrh r0, [r0]
|
||||
add r0, ip
|
||||
b _0807BC4C
|
||||
.align 2, 0
|
||||
_0807BC28: .4byte gMetatileTypesBottom
|
||||
_0807BC2C: .4byte gMetatileTypesTop
|
||||
_0807BC30: .4byte 0xFFFFB000
|
||||
_0807BC34: .4byte 0xFFFFD000
|
||||
_0807BC38: .4byte 0x00003FFF
|
||||
_0807BC3C: .4byte gUnk_080B3E80
|
||||
_0807BC40: .4byte gUnk_080B79A7
|
||||
_0807BC44: .4byte 0xFFFFC000
|
||||
_0807BC48:
|
||||
adds r0, r0, r6
|
||||
adds r0, r0, r7
|
||||
_0807BC4C:
|
||||
ldrb r0, [r0]
|
||||
strb r0, [r2]
|
||||
adds r2, #1
|
||||
ldrh r0, [r4]
|
||||
adds r4, #2
|
||||
cmp r0, r8
|
||||
bhi _0807BC64
|
||||
lsls r0, r0, #1
|
||||
add r0, sb
|
||||
ldrh r0, [r0]
|
||||
add r0, ip
|
||||
b _0807BC68
|
||||
_0807BC64:
|
||||
adds r0, r0, r6
|
||||
adds r0, r0, r7
|
||||
_0807BC68:
|
||||
ldrb r0, [r0]
|
||||
strb r0, [r1]
|
||||
adds r1, #1
|
||||
adds r3, #1
|
||||
ldr r0, _0807BC80 @ =0x00000FFF
|
||||
cmp r3, r0
|
||||
bls _0807BC14
|
||||
pop {r3, r4, r5}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
mov sl, r5
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_0807BC80: .4byte 0x00000FFF
|
||||
.syntax divided
|
||||
@@ -0,0 +1,73 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
ldr r1, _0807BD04 @ =gRoomControls
|
||||
ldrh r0, [r1, #0x1e]
|
||||
lsrs r2, r0, #4
|
||||
mov r8, r1
|
||||
cmp r2, #0x40
|
||||
bne _0807BC98
|
||||
movs r2, #0x3f
|
||||
_0807BC98:
|
||||
ldr r1, _0807BD08 @ =gUnk_02027EB4
|
||||
adds r3, r2, r1
|
||||
adds r6, r1, #0
|
||||
adds r6, #0x3f
|
||||
ldr r0, _0807BD0C @ =gUnk_0200D654
|
||||
adds r2, r2, r0
|
||||
adds r5, r0, #0
|
||||
adds r5, #0x3f
|
||||
movs r4, #0
|
||||
adds r7, r1, #0
|
||||
mov ip, r0
|
||||
movs r0, #0xff
|
||||
_0807BCB0:
|
||||
strb r0, [r3]
|
||||
strb r0, [r6]
|
||||
strb r0, [r2]
|
||||
strb r0, [r5]
|
||||
adds r3, #0x40
|
||||
adds r6, #0x40
|
||||
adds r2, #0x40
|
||||
adds r5, #0x40
|
||||
adds r4, #1
|
||||
cmp r4, #0x3f
|
||||
bls _0807BCB0
|
||||
mov r0, r8
|
||||
ldrh r1, [r0, #0x20]
|
||||
ldr r0, _0807BD10 @ =0x0000FFF0
|
||||
ands r0, r1
|
||||
lsls r0, r0, #2
|
||||
adds r3, r0, r7
|
||||
movs r1, #0xfc
|
||||
lsls r1, r1, #4
|
||||
adds r6, r7, r1
|
||||
mov r1, ip
|
||||
adds r2, r0, r1
|
||||
movs r5, #0xfc
|
||||
lsls r5, r5, #4
|
||||
add r5, ip
|
||||
movs r4, #0
|
||||
movs r0, #0xff
|
||||
_0807BCE6:
|
||||
strb r0, [r3]
|
||||
adds r3, #1
|
||||
strb r0, [r6]
|
||||
adds r6, #1
|
||||
strb r0, [r2]
|
||||
adds r2, #1
|
||||
strb r0, [r5]
|
||||
adds r5, #1
|
||||
adds r4, #1
|
||||
cmp r4, #0x3f
|
||||
bls _0807BCE6
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_0807BD04: .4byte gRoomControls
|
||||
_0807BD08: .4byte gUnk_02027EB4
|
||||
_0807BD0C: .4byte gUnk_0200D654
|
||||
_0807BD10: .4byte 0x0000FFF0
|
||||
.syntax divided
|
||||
@@ -0,0 +1,87 @@
|
||||
.syntax unified
|
||||
push {r4, r5, lr}
|
||||
adds r5, r1, #0
|
||||
movs r1, #0x2e
|
||||
ldrsh r2, [r0, r1]
|
||||
movs r3, #0x32
|
||||
ldrsh r1, [r0, r3]
|
||||
adds r0, r2, #0
|
||||
adds r2, r5, #0
|
||||
bl sub_0807BEEC
|
||||
adds r3, r0, #0
|
||||
cmp r3, #0xff
|
||||
beq _0807BDB4
|
||||
ldr r1, _0807BD68 @ =gRoomControls
|
||||
movs r2, #0
|
||||
movs r0, #2
|
||||
strb r0, [r1, #2]
|
||||
strb r2, [r1, #3]
|
||||
movs r4, #1
|
||||
strh r4, [r1]
|
||||
strb r3, [r1, #5]
|
||||
strb r5, [r1, #0x10]
|
||||
bl GetCurrentRoomInfo
|
||||
adds r2, r0, #0
|
||||
ldr r1, _0807BD6C @ =gArea
|
||||
ldr r3, _0807BD70 @ =0x0000085C
|
||||
adds r0, r1, r3
|
||||
str r2, [r0]
|
||||
ldrb r0, [r1, #0xd]
|
||||
ands r4, r0
|
||||
cmp r4, #0
|
||||
beq _0807BD98
|
||||
cmp r5, #1
|
||||
beq _0807BD7E
|
||||
cmp r5, #1
|
||||
blo _0807BD74
|
||||
cmp r5, #2
|
||||
beq _0807BD86
|
||||
cmp r5, #3
|
||||
beq _0807BD90
|
||||
b _0807BD98
|
||||
.align 2, 0
|
||||
_0807BD68: .4byte gRoomControls
|
||||
_0807BD6C: .4byte gArea
|
||||
_0807BD70: .4byte 0x0000085C
|
||||
_0807BD74:
|
||||
ldrh r0, [r2, #6]
|
||||
ldrh r1, [r2, #2]
|
||||
subs r0, r0, r1
|
||||
strh r0, [r2, #6]
|
||||
b _0807BD98
|
||||
_0807BD7E:
|
||||
ldrh r0, [r2]
|
||||
ldrh r1, [r2, #4]
|
||||
adds r0, r0, r1
|
||||
b _0807BD96
|
||||
_0807BD86:
|
||||
ldrh r0, [r2, #2]
|
||||
ldrh r3, [r2, #6]
|
||||
adds r0, r0, r3
|
||||
strh r0, [r2, #6]
|
||||
b _0807BD98
|
||||
_0807BD90:
|
||||
ldrh r0, [r2, #4]
|
||||
ldrh r1, [r2]
|
||||
subs r0, r0, r1
|
||||
_0807BD96:
|
||||
strh r0, [r2, #4]
|
||||
_0807BD98:
|
||||
ldr r2, _0807BDB0 @ =gPlayerEntity
|
||||
ldrb r1, [r2, #0x11]
|
||||
movs r0, #0x10
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
movs r1, #6
|
||||
orrs r0, r1
|
||||
strb r0, [r2, #0x11]
|
||||
bl SetInitializationPriority
|
||||
movs r0, #1
|
||||
b _0807BDB6
|
||||
.align 2, 0
|
||||
_0807BDB0: .4byte gPlayerEntity
|
||||
_0807BDB4:
|
||||
movs r0, #0
|
||||
_0807BDB6:
|
||||
pop {r4, r5, pc}
|
||||
.syntax divided
|
||||
@@ -0,0 +1,159 @@
|
||||
.syntax unified
|
||||
push {r4, r5, lr}
|
||||
adds r3, r0, #0
|
||||
movs r5, #0xff
|
||||
movs r0, #7
|
||||
ands r1, r0
|
||||
cmp r1, #7
|
||||
bls _0807BDC8
|
||||
b _0807BEE2
|
||||
_0807BDC8:
|
||||
lsls r0, r1, #2
|
||||
ldr r1, _0807BDD4 @ =_0807BDD8
|
||||
adds r0, r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_0807BDD4: .4byte _0807BDD8
|
||||
_0807BDD8: @ jump table
|
||||
.4byte _0807BDF8 @ case 0
|
||||
.4byte _0807BE10 @ case 1
|
||||
.4byte _0807BE30 @ case 2
|
||||
.4byte _0807BE4C @ case 3
|
||||
.4byte _0807BE78 @ case 4
|
||||
.4byte _0807BE94 @ case 5
|
||||
.4byte _0807BEB4 @ case 6
|
||||
.4byte _0807BEC4 @ case 7
|
||||
_0807BDF8:
|
||||
movs r1, #0x32
|
||||
ldrsh r0, [r3, r1]
|
||||
ldr r1, _0807BE0C @ =gRoomControls
|
||||
ldrh r1, [r1, #8]
|
||||
subs r0, r0, r1
|
||||
cmp r0, #9
|
||||
bhi _0807BEE2
|
||||
movs r5, #0
|
||||
b _0807BEE2
|
||||
.align 2, 0
|
||||
_0807BE0C: .4byte gRoomControls
|
||||
_0807BE10:
|
||||
movs r2, #0x32
|
||||
ldrsh r0, [r3, r2]
|
||||
ldr r2, _0807BE2C @ =gRoomControls
|
||||
ldrh r1, [r2, #8]
|
||||
subs r0, r0, r1
|
||||
cmp r0, #9
|
||||
bhi _0807BE20
|
||||
movs r5, #0
|
||||
_0807BE20:
|
||||
ldrh r0, [r2, #0x1e]
|
||||
subs r0, #0xa
|
||||
movs r4, #0x2e
|
||||
ldrsh r1, [r3, r4]
|
||||
ldrh r2, [r2, #6]
|
||||
b _0807BE6A
|
||||
.align 2, 0
|
||||
_0807BE2C: .4byte gRoomControls
|
||||
_0807BE30:
|
||||
ldr r1, _0807BE48 @ =gRoomControls
|
||||
ldrh r2, [r1, #0x1e]
|
||||
subs r2, #0xa
|
||||
movs r4, #0x2e
|
||||
ldrsh r0, [r3, r4]
|
||||
ldrh r1, [r1, #6]
|
||||
subs r0, r0, r1
|
||||
cmp r2, r0
|
||||
bhs _0807BEE2
|
||||
movs r5, #1
|
||||
b _0807BEE2
|
||||
.align 2, 0
|
||||
_0807BE48: .4byte gRoomControls
|
||||
_0807BE4C:
|
||||
ldr r4, _0807BE74 @ =gRoomControls
|
||||
ldrh r0, [r4, #0x20]
|
||||
subs r0, #0xa
|
||||
movs r2, #0x32
|
||||
ldrsh r1, [r3, r2]
|
||||
ldrh r2, [r4, #8]
|
||||
subs r1, r1, r2
|
||||
cmp r0, r1
|
||||
bhs _0807BE60
|
||||
movs r5, #2
|
||||
_0807BE60:
|
||||
ldrh r0, [r4, #0x1e]
|
||||
subs r0, #0xa
|
||||
movs r2, #0x2e
|
||||
ldrsh r1, [r3, r2]
|
||||
ldrh r2, [r4, #6]
|
||||
_0807BE6A:
|
||||
subs r1, r1, r2
|
||||
cmp r0, r1
|
||||
bhs _0807BEE2
|
||||
movs r5, #1
|
||||
b _0807BEE2
|
||||
.align 2, 0
|
||||
_0807BE74: .4byte gRoomControls
|
||||
_0807BE78:
|
||||
ldr r1, _0807BE90 @ =gRoomControls
|
||||
ldrh r2, [r1, #0x20]
|
||||
subs r2, #0xa
|
||||
movs r4, #0x32
|
||||
ldrsh r0, [r3, r4]
|
||||
ldrh r1, [r1, #8]
|
||||
subs r0, r0, r1
|
||||
cmp r2, r0
|
||||
bhs _0807BEE2
|
||||
movs r5, #2
|
||||
b _0807BEE2
|
||||
.align 2, 0
|
||||
_0807BE90: .4byte gRoomControls
|
||||
_0807BE94:
|
||||
ldr r4, _0807BEB0 @ =gRoomControls
|
||||
ldrh r0, [r4, #0x20]
|
||||
subs r0, #0xa
|
||||
movs r2, #0x32
|
||||
ldrsh r1, [r3, r2]
|
||||
ldrh r2, [r4, #8]
|
||||
subs r1, r1, r2
|
||||
cmp r0, r1
|
||||
bhs _0807BEA8
|
||||
movs r5, #2
|
||||
_0807BEA8:
|
||||
movs r1, #0x2e
|
||||
ldrsh r0, [r3, r1]
|
||||
ldrh r1, [r4, #6]
|
||||
b _0807BEDA
|
||||
.align 2, 0
|
||||
_0807BEB0: .4byte gRoomControls
|
||||
_0807BEB4:
|
||||
movs r2, #0x2e
|
||||
ldrsh r0, [r3, r2]
|
||||
ldr r1, _0807BEC0 @ =gRoomControls
|
||||
ldrh r1, [r1, #6]
|
||||
b _0807BEDA
|
||||
.align 2, 0
|
||||
_0807BEC0: .4byte gRoomControls
|
||||
_0807BEC4:
|
||||
movs r4, #0x32
|
||||
ldrsh r0, [r3, r4]
|
||||
ldr r2, _0807BEE8 @ =gRoomControls
|
||||
ldrh r1, [r2, #8]
|
||||
subs r0, r0, r1
|
||||
cmp r0, #9
|
||||
bhi _0807BED4
|
||||
movs r5, #0
|
||||
_0807BED4:
|
||||
movs r1, #0x2e
|
||||
ldrsh r0, [r3, r1]
|
||||
ldrh r1, [r2, #6]
|
||||
_0807BEDA:
|
||||
subs r0, r0, r1
|
||||
cmp r0, #9
|
||||
bhi _0807BEE2
|
||||
movs r5, #3
|
||||
_0807BEE2:
|
||||
adds r0, r5, #0
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_0807BEE8: .4byte gRoomControls
|
||||
.syntax divided
|
||||
@@ -0,0 +1,84 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, r7, lr}
|
||||
adds r6, r0, #0
|
||||
adds r7, r1, #0
|
||||
ldr r0, _0807BF04 @ =gArea
|
||||
ldrb r1, [r0, #0xd]
|
||||
movs r0, #1
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0807BF0C
|
||||
ldr r0, _0807BF08 @ =gRoomControls
|
||||
ldrb r0, [r0, #5]
|
||||
b _0807BF7C
|
||||
.align 2, 0
|
||||
_0807BF04: .4byte gArea
|
||||
_0807BF08: .4byte gRoomControls
|
||||
_0807BF0C:
|
||||
cmp r2, #1
|
||||
beq _0807BF2C
|
||||
cmp r2, #1
|
||||
blo _0807BF1E
|
||||
cmp r2, #2
|
||||
beq _0807BF40
|
||||
cmp r2, #3
|
||||
beq _0807BF58
|
||||
b _0807BF7A
|
||||
_0807BF1E:
|
||||
ldr r0, _0807BF28 @ =gRoomControls
|
||||
ldrh r0, [r0, #8]
|
||||
adds r7, r0, #0
|
||||
subs r7, #0x10
|
||||
b _0807BF60
|
||||
.align 2, 0
|
||||
_0807BF28: .4byte gRoomControls
|
||||
_0807BF2C:
|
||||
ldr r0, _0807BF3C @ =gRoomControls
|
||||
ldrh r1, [r0, #6]
|
||||
ldrh r0, [r0, #0x1e]
|
||||
adds r1, r1, r0
|
||||
adds r6, r1, #0
|
||||
adds r6, #0x10
|
||||
b _0807BF60
|
||||
.align 2, 0
|
||||
_0807BF3C: .4byte gRoomControls
|
||||
_0807BF40:
|
||||
ldr r0, _0807BF50 @ =gRoomControls
|
||||
ldrh r1, [r0, #8]
|
||||
ldrh r0, [r0, #0x20]
|
||||
adds r1, r1, r0
|
||||
adds r7, r1, #0
|
||||
adds r7, #0x10
|
||||
b _0807BF60
|
||||
.align 2, 0
|
||||
_0807BF50: .4byte gRoomControls
|
||||
_0807BF54:
|
||||
adds r0, r4, #0
|
||||
b _0807BF7C
|
||||
_0807BF58:
|
||||
ldr r0, _0807BF80 @ =gRoomControls
|
||||
ldrh r0, [r0, #6]
|
||||
adds r6, r0, #0
|
||||
subs r6, #0x10
|
||||
_0807BF60:
|
||||
ldr r5, _0807BF84 @ =gUnk_02033ACC
|
||||
movs r4, #0
|
||||
_0807BF64:
|
||||
adds r0, r6, #0
|
||||
adds r1, r7, #0
|
||||
adds r2, r5, #0
|
||||
bl sub_0807BF88
|
||||
cmp r0, #0
|
||||
bne _0807BF54
|
||||
adds r4, #1
|
||||
adds r5, #0x20
|
||||
cmp r4, #0x3f
|
||||
bls _0807BF64
|
||||
_0807BF7A:
|
||||
movs r0, #0xff
|
||||
_0807BF7C:
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_0807BF80: .4byte gRoomControls
|
||||
_0807BF84: .4byte gUnk_02033ACC
|
||||
.syntax divided
|
||||
@@ -0,0 +1,19 @@
|
||||
.syntax unified
|
||||
push {r4, lr}
|
||||
adds r3, r2, #0
|
||||
ldrh r2, [r3, #4]
|
||||
subs r0, r0, r2
|
||||
ldrh r2, [r3, #6]
|
||||
subs r1, r1, r2
|
||||
movs r2, #0
|
||||
ldrh r4, [r3]
|
||||
cmp r0, r4
|
||||
bhs _0807BFA4
|
||||
ldrh r3, [r3, #2]
|
||||
cmp r1, r3
|
||||
bhs _0807BFA4
|
||||
movs r2, #1
|
||||
_0807BFA4:
|
||||
adds r0, r2, #0
|
||||
pop {r4, pc}
|
||||
.syntax divided
|
||||
@@ -0,0 +1,123 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
bl sub_0801B170
|
||||
bl sub_0807BFA8
|
||||
ldr r7, _0807C0B8 @ =0x0000FFFF
|
||||
ldr r6, _0807C0BC @ =gMetatileTypesBottom
|
||||
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 @ =gMetatileTypesTop
|
||||
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 sub_080197D4
|
||||
_0807C01C:
|
||||
ldr r0, [r4]
|
||||
ldr r0, [r0, #0x10]
|
||||
bl sub_080197D4
|
||||
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 sub_0801B130
|
||||
_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 @ =gMetatileTypesTop
|
||||
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 gMetatileTypesBottom
|
||||
_0807C0C0: .4byte gMetatileTypesTop
|
||||
_0807C0C4: .4byte gRoomControls
|
||||
_0807C0C8: .4byte gArea
|
||||
_0807C0CC: .4byte 0x0000085C
|
||||
_0807C0D0: .4byte gPaletteBuffer
|
||||
_0807C0D4: .4byte gUsedPalettes
|
||||
_0807C0D8: .4byte 0x000007FF
|
||||
.syntax divided
|
||||
@@ -0,0 +1,79 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sl
|
||||
mov r6, sb
|
||||
mov r5, r8
|
||||
push {r5, r6, r7}
|
||||
sub sp, #8
|
||||
ldr r7, _0807C4E8 @ =gMapDataBottom
|
||||
ldr r6, _0807C4EC @ =gMapDataTop
|
||||
ldr r0, _0807C4F0 @ =gRoomControls
|
||||
ldrh r1, [r0, #0x1e]
|
||||
lsrs r3, r1, #4
|
||||
ldrh r0, [r0, #0x20]
|
||||
lsrs r0, r0, #4
|
||||
str r0, [sp]
|
||||
movs r4, #0
|
||||
movs r1, #0
|
||||
cmp r1, r0
|
||||
bhs _0807C4DC
|
||||
movs r0, #0x40
|
||||
subs r0, r0, r3
|
||||
lsls r0, r0, #1
|
||||
mov sb, r0
|
||||
_0807C48C:
|
||||
movs r5, #0
|
||||
adds r1, #1
|
||||
mov sl, r1
|
||||
cmp r5, r3
|
||||
bhs _0807C4CA
|
||||
ldr r0, _0807C4F4 @ =0x00003FFF
|
||||
mov r8, r0
|
||||
_0807C49A:
|
||||
ldrh r0, [r7]
|
||||
cmp r0, r8
|
||||
bls _0807C4AC
|
||||
adds r1, r4, #0
|
||||
movs r2, #1
|
||||
str r3, [sp, #4]
|
||||
bl SetTile
|
||||
ldr r3, [sp, #4]
|
||||
_0807C4AC:
|
||||
ldrh r0, [r6]
|
||||
cmp r0, r8
|
||||
bls _0807C4BE
|
||||
adds r1, r4, #0
|
||||
movs r2, #2
|
||||
str r3, [sp, #4]
|
||||
bl SetTile
|
||||
ldr r3, [sp, #4]
|
||||
_0807C4BE:
|
||||
adds r7, #2
|
||||
adds r6, #2
|
||||
adds r4, #1
|
||||
adds r5, #1
|
||||
cmp r5, r3
|
||||
blo _0807C49A
|
||||
_0807C4CA:
|
||||
add r7, sb
|
||||
add r6, sb
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x40
|
||||
subs r4, r0, r3
|
||||
mov r1, sl
|
||||
ldr r0, [sp]
|
||||
cmp r1, r0
|
||||
blo _0807C48C
|
||||
_0807C4DC:
|
||||
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
|
||||
_0807C4E8: .4byte gMapDataBottom
|
||||
_0807C4EC: .4byte gMapDataTop
|
||||
_0807C4F0: .4byte gRoomControls
|
||||
_0807C4F4: .4byte 0x00003FFF
|
||||
.syntax divided
|
||||
@@ -0,0 +1,83 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, lr}
|
||||
ldr r0, _0807C594 @ =gRoomControls
|
||||
ldrb r0, [r0, #4]
|
||||
cmp r0, #0x71
|
||||
beq _0807C592
|
||||
ldr r0, _0807C598 @ =gUnk_02019EE0
|
||||
movs r4, #0x80
|
||||
lsls r4, r4, #8
|
||||
adds r1, r4, #0
|
||||
bl MemClear
|
||||
ldr r0, _0807C59C @ =gMapDataTopSpecial
|
||||
adds r1, r4, #0
|
||||
bl MemClear
|
||||
ldr r5, _0807C5A0 @ =gUnk_02022830
|
||||
ldr r0, _0807C5A4 @ =gArea
|
||||
ldr r1, _0807C5A8 @ =0x0000085C
|
||||
adds r0, r0, r1
|
||||
ldr r0, [r0]
|
||||
ldr r4, [r0, #0xc]
|
||||
subs r4, #0xc
|
||||
_0807C524:
|
||||
adds r4, #0xc
|
||||
ldr r1, [r4, #4]
|
||||
ldr r0, _0807C598 @ =gUnk_02019EE0
|
||||
cmp r1, r0
|
||||
beq _0807C534
|
||||
ldr r0, _0807C59C @ =gMapDataTopSpecial
|
||||
cmp r1, r0
|
||||
bne _0807C54A
|
||||
_0807C534:
|
||||
ldr r0, [r4]
|
||||
ldr r1, _0807C5AC @ =0x7FFFFFFF
|
||||
ands r0, r1
|
||||
str r0, [r5]
|
||||
ldr r0, [r4, #4]
|
||||
str r0, [r5, #4]
|
||||
ldr r0, [r4, #8]
|
||||
str r0, [r5, #8]
|
||||
adds r0, r5, #0
|
||||
bl sub_080197D4
|
||||
_0807C54A:
|
||||
ldr r0, [r4]
|
||||
cmp r0, #0
|
||||
blt _0807C524
|
||||
ldr r4, _0807C598 @ =gUnk_02019EE0
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #7
|
||||
adds r5, r4, r0
|
||||
adds r6, r0, #0
|
||||
adds r0, r4, #0
|
||||
adds r1, r5, #0
|
||||
adds r2, r6, #0
|
||||
bl MemCopy
|
||||
adds r0, r4, #0
|
||||
adds r1, r5, #0
|
||||
bl sub_0807C5F4
|
||||
adds r0, r5, #0
|
||||
adds r1, r6, #0
|
||||
bl MemClear
|
||||
ldr r4, _0807C59C @ =gMapDataTopSpecial
|
||||
adds r5, r4, r6
|
||||
adds r0, r4, #0
|
||||
adds r1, r5, #0
|
||||
adds r2, r6, #0
|
||||
bl MemCopy
|
||||
adds r0, r4, #0
|
||||
adds r1, r5, #0
|
||||
bl sub_0807C5F4
|
||||
adds r0, r5, #0
|
||||
adds r1, r6, #0
|
||||
bl MemClear
|
||||
_0807C592:
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_0807C594: .4byte gRoomControls
|
||||
_0807C598: .4byte gUnk_02019EE0
|
||||
_0807C59C: .4byte gMapDataTopSpecial
|
||||
_0807C5A0: .4byte gUnk_02022830
|
||||
_0807C5A4: .4byte gArea
|
||||
_0807C5A8: .4byte 0x0000085C
|
||||
_0807C5AC: .4byte 0x7FFFFFFF
|
||||
.syntax divided
|
||||
@@ -0,0 +1,36 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, lr}
|
||||
ldr r5, _0807C5E8 @ =gUnk_0200D654
|
||||
movs r4, #0x80
|
||||
lsls r4, r4, #5
|
||||
movs r3, #0
|
||||
ldr r6, _0807C5EC @ =gRoomControls
|
||||
ldr r2, _0807C5F0 @ =gUnk_02027EB4
|
||||
_0807C5BE:
|
||||
adds r0, r5, r3
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
beq _0807C5D4
|
||||
cmp r0, #0xf
|
||||
bhi _0807C5D2
|
||||
ldrb r1, [r2]
|
||||
cmp r1, #0xf
|
||||
bhi _0807C5D4
|
||||
orrs r0, r1
|
||||
_0807C5D2:
|
||||
strb r0, [r2]
|
||||
_0807C5D4:
|
||||
adds r2, #1
|
||||
adds r3, #1
|
||||
cmp r3, r4
|
||||
blo _0807C5BE
|
||||
ldrb r1, [r6, #0xf]
|
||||
movs r0, #2
|
||||
orrs r0, r1
|
||||
strb r0, [r6, #0xf]
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_0807C5E8: .4byte gUnk_0200D654
|
||||
_0807C5EC: .4byte gRoomControls
|
||||
_0807C5F0: .4byte gUnk_02027EB4
|
||||
.syntax divided
|
||||
@@ -0,0 +1,96 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, lr}
|
||||
adds r5, r0, #0
|
||||
adds r2, r5, #0
|
||||
movs r0, #0x20
|
||||
ldr r6, _0807C698 @ =gRoomControls
|
||||
_0807C5FE:
|
||||
movs r3, #0
|
||||
subs r4, r0, #1
|
||||
_0807C602:
|
||||
ldrh r0, [r1]
|
||||
strh r0, [r2]
|
||||
adds r1, #2
|
||||
adds r2, #2
|
||||
adds r3, #1
|
||||
cmp r3, #0x1f
|
||||
bls _0807C602
|
||||
adds r2, #0xc0
|
||||
adds r0, r4, #0
|
||||
cmp r0, #0
|
||||
bne _0807C5FE
|
||||
ldrh r0, [r6, #0x1e]
|
||||
cmp r0, #0xff
|
||||
bls _0807C63E
|
||||
adds r2, r5, #0
|
||||
adds r2, #0x40
|
||||
movs r0, #0x20
|
||||
_0807C624:
|
||||
movs r3, #0
|
||||
subs r4, r0, #1
|
||||
_0807C628:
|
||||
ldrh r0, [r1]
|
||||
strh r0, [r2]
|
||||
adds r1, #2
|
||||
adds r2, #2
|
||||
adds r3, #1
|
||||
cmp r3, #0x1f
|
||||
bls _0807C628
|
||||
adds r2, #0xc0
|
||||
adds r0, r4, #0
|
||||
cmp r0, #0
|
||||
bne _0807C624
|
||||
_0807C63E:
|
||||
ldrh r0, [r6, #0x20]
|
||||
cmp r0, #0xff
|
||||
bls _0807C666
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #6
|
||||
adds r2, r5, r0
|
||||
movs r0, #0x20
|
||||
_0807C64C:
|
||||
movs r3, #0
|
||||
subs r4, r0, #1
|
||||
_0807C650:
|
||||
ldrh r0, [r1]
|
||||
strh r0, [r2]
|
||||
adds r1, #2
|
||||
adds r2, #2
|
||||
adds r3, #1
|
||||
cmp r3, #0x1f
|
||||
bls _0807C650
|
||||
adds r2, #0xc0
|
||||
adds r0, r4, #0
|
||||
cmp r0, #0
|
||||
bne _0807C64C
|
||||
_0807C666:
|
||||
ldrh r0, [r6, #0x1e]
|
||||
cmp r0, #0xff
|
||||
bls _0807C694
|
||||
ldrh r0, [r6, #0x20]
|
||||
cmp r0, #0xff
|
||||
bls _0807C694
|
||||
movs r0, #0x81
|
||||
lsls r0, r0, #6
|
||||
adds r2, r5, r0
|
||||
movs r0, #0x20
|
||||
_0807C67A:
|
||||
movs r3, #0
|
||||
subs r4, r0, #1
|
||||
_0807C67E:
|
||||
ldrh r0, [r1]
|
||||
strh r0, [r2]
|
||||
adds r1, #2
|
||||
adds r2, #2
|
||||
adds r3, #1
|
||||
cmp r3, #0x1f
|
||||
bls _0807C67E
|
||||
adds r2, #0xc0
|
||||
adds r0, r4, #0
|
||||
cmp r0, #0
|
||||
bne _0807C67A
|
||||
_0807C694:
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_0807C698: .4byte gRoomControls
|
||||
.syntax divided
|
||||
@@ -0,0 +1,92 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sb
|
||||
mov r6, r8
|
||||
push {r6, r7}
|
||||
mov sb, r0
|
||||
adds r6, r1, #0
|
||||
mov r8, r2
|
||||
mov r0, r8
|
||||
muls r0, r6, r0
|
||||
add r0, sb
|
||||
subs r2, r0, #1
|
||||
mov r0, r8
|
||||
subs r0, #1
|
||||
lsls r0, r0, #6
|
||||
add r0, sb
|
||||
subs r1, r6, #1
|
||||
adds r4, r0, r1
|
||||
movs r5, #0
|
||||
cmp r5, r8
|
||||
bhs _0807C6EA
|
||||
_0807C6C4:
|
||||
movs r3, #0
|
||||
adds r7, r4, #0
|
||||
subs r7, #0x40
|
||||
subs r0, r2, r6
|
||||
mov ip, r0
|
||||
cmp r3, r6
|
||||
bhs _0807C6E0
|
||||
_0807C6D2:
|
||||
subs r0, r4, r3
|
||||
subs r1, r2, r3
|
||||
ldrb r1, [r1]
|
||||
strb r1, [r0]
|
||||
adds r3, #1
|
||||
cmp r3, r6
|
||||
blo _0807C6D2
|
||||
_0807C6E0:
|
||||
adds r4, r7, #0
|
||||
mov r2, ip
|
||||
adds r5, #1
|
||||
cmp r5, r8
|
||||
blo _0807C6C4
|
||||
_0807C6EA:
|
||||
movs r0, #0x40
|
||||
subs r7, r0, r6
|
||||
movs r5, #0
|
||||
mov r1, r8
|
||||
lsls r2, r1, #6
|
||||
mov r0, sb
|
||||
adds r1, r0, r6
|
||||
_0807C6F8:
|
||||
lsls r0, r5, #6
|
||||
adds r4, r1, r0
|
||||
movs r3, #0
|
||||
adds r6, r5, #1
|
||||
cmp r3, r7
|
||||
bhs _0807C710
|
||||
movs r5, #0
|
||||
_0807C706:
|
||||
adds r0, r4, r3
|
||||
strb r5, [r0]
|
||||
adds r3, #1
|
||||
cmp r3, r7
|
||||
blo _0807C706
|
||||
_0807C710:
|
||||
adds r5, r6, #0
|
||||
cmp r5, #0x3f
|
||||
bls _0807C6F8
|
||||
movs r0, #0x40
|
||||
mov r1, r8
|
||||
subs r7, r0, r1
|
||||
mov r0, sb
|
||||
adds r4, r0, r2
|
||||
movs r5, #0
|
||||
cmp r5, r7
|
||||
bhs _0807C736
|
||||
_0807C726:
|
||||
adds r0, r4, #0
|
||||
movs r1, #0x40
|
||||
bl MemClear
|
||||
adds r4, #0x40
|
||||
adds r5, #1
|
||||
cmp r5, r7
|
||||
blo _0807C726
|
||||
_0807C736:
|
||||
pop {r3, r4}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
.syntax divided
|
||||
@@ -0,0 +1,111 @@
|
||||
.syntax unified
|
||||
push {r4, r5, lr}
|
||||
bl sub_0807BFD0
|
||||
bl LoadRoomGfx
|
||||
ldr r4, _0807C780 @ =gRoomControls
|
||||
ldr r2, [r4, #0x30]
|
||||
cmp r2, #0
|
||||
beq _0807C788
|
||||
ldrh r1, [r2, #0x2e]
|
||||
lsls r0, r1, #0x10
|
||||
cmp r0, #0
|
||||
bge _0807C764
|
||||
ldr r0, _0807C784 @ =0x00007FFF
|
||||
ands r0, r1
|
||||
ldrh r1, [r4, #6]
|
||||
subs r0, r0, r1
|
||||
strh r0, [r2, #0x2e]
|
||||
_0807C764:
|
||||
movs r0, #0x2e
|
||||
ldrsh r3, [r2, r0]
|
||||
ldrh r1, [r2, #0x32]
|
||||
lsls r0, r1, #0x10
|
||||
cmp r0, #0
|
||||
bge _0807C77A
|
||||
ldr r0, _0807C784 @ =0x00007FFF
|
||||
ands r0, r1
|
||||
ldrh r1, [r4, #8]
|
||||
subs r0, r0, r1
|
||||
strh r0, [r2, #0x32]
|
||||
_0807C77A:
|
||||
movs r0, #0x32
|
||||
ldrsh r5, [r2, r0]
|
||||
b _0807C78C
|
||||
.align 2, 0
|
||||
_0807C780: .4byte gRoomControls
|
||||
_0807C784: .4byte 0x00007FFF
|
||||
_0807C788:
|
||||
movs r3, #0
|
||||
movs r5, #0
|
||||
_0807C78C:
|
||||
cmp r3, #0x77
|
||||
bgt _0807C794
|
||||
movs r0, #0
|
||||
b _0807C7A2
|
||||
_0807C794:
|
||||
ldrh r1, [r4, #0x1e]
|
||||
adds r0, r1, #0
|
||||
subs r0, #0x78
|
||||
cmp r0, r3
|
||||
blt _0807C7A0
|
||||
adds r0, r3, #0
|
||||
_0807C7A0:
|
||||
subs r0, #0x78
|
||||
_0807C7A2:
|
||||
strh r0, [r4, #0xa]
|
||||
ldrh r1, [r4, #6]
|
||||
ldrh r2, [r4, #0xa]
|
||||
adds r0, r1, r2
|
||||
strh r0, [r4, #0xa]
|
||||
cmp r5, #0x4f
|
||||
bgt _0807C7B4
|
||||
movs r0, #0
|
||||
b _0807C7C2
|
||||
_0807C7B4:
|
||||
ldrh r2, [r4, #0x20]
|
||||
adds r0, r2, #0
|
||||
subs r0, #0x50
|
||||
cmp r0, r5
|
||||
blt _0807C7C0
|
||||
adds r0, r5, #0
|
||||
_0807C7C0:
|
||||
subs r0, #0x50
|
||||
_0807C7C2:
|
||||
strh r0, [r4, #0xc]
|
||||
ldrh r0, [r4, #8]
|
||||
ldrh r3, [r4, #0xc]
|
||||
adds r0, r0, r3
|
||||
strh r0, [r4, #0xc]
|
||||
ldr r2, [r4, #0x30]
|
||||
cmp r2, #0
|
||||
beq _0807C7FC
|
||||
ldrh r3, [r2, #0x2e]
|
||||
adds r0, r1, r3
|
||||
strh r0, [r2, #0x2e]
|
||||
ldr r1, [r4, #0x30]
|
||||
ldrh r0, [r4, #8]
|
||||
ldrh r2, [r1, #0x32]
|
||||
adds r0, r0, r2
|
||||
strh r0, [r1, #0x32]
|
||||
ldr r0, _0807C80C @ =gRoomControls
|
||||
ldrb r1, [r0, #0xf]
|
||||
movs r0, #2
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0807C7FC
|
||||
ldr r0, [r4, #0x30]
|
||||
adds r0, #0x38
|
||||
movs r1, #1
|
||||
strb r1, [r0]
|
||||
ldr r0, [r4, #0x30]
|
||||
bl UpdateSpriteForCollisionLayer
|
||||
_0807C7FC:
|
||||
ldrb r1, [r4, #0xf]
|
||||
movs r0, #0xfb
|
||||
ands r0, r1
|
||||
strb r0, [r4, #0xf]
|
||||
bl sub_08080BC4
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_0807C80C: .4byte gRoomControls
|
||||
.syntax divided
|
||||
@@ -0,0 +1,37 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, lr}
|
||||
bl sub_0807BFD0
|
||||
ldr r2, _0807C850 @ =gUnk_03004030
|
||||
ldr r6, _0807C854 @ =gPlayerEntity
|
||||
ldr r4, _0807C858 @ =gRoomControls
|
||||
ldr r3, [r2]
|
||||
ldrh r1, [r3, #6]
|
||||
movs r0, #0x3f
|
||||
ands r0, r1
|
||||
lsls r0, r0, #4
|
||||
ldrh r1, [r4, #6]
|
||||
adds r0, r0, r1
|
||||
ldrh r1, [r2, #4]
|
||||
adds r1, r1, r0
|
||||
movs r5, #0
|
||||
strh r1, [r6, #0x2e]
|
||||
ldrh r1, [r3, #6]
|
||||
movs r0, #0xfc
|
||||
lsls r0, r0, #4
|
||||
ands r0, r1
|
||||
lsrs r0, r0, #2
|
||||
ldrh r4, [r4, #8]
|
||||
adds r0, r0, r4
|
||||
ldrh r1, [r2, #6]
|
||||
adds r1, r1, r0
|
||||
strh r1, [r6, #0x32]
|
||||
bl sub_080809D4
|
||||
ldr r0, _0807C85C @ =gUpdateVisibleTiles
|
||||
strb r5, [r0]
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_0807C850: .4byte gUnk_03004030
|
||||
_0807C854: .4byte gPlayerEntity
|
||||
_0807C858: .4byte gRoomControls
|
||||
_0807C85C: .4byte gUpdateVisibleTiles
|
||||
.syntax divided
|
||||
@@ -0,0 +1,98 @@
|
||||
.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
|
||||
@@ -0,0 +1,18 @@
|
||||
.syntax unified
|
||||
ldr r2, _0807CAE0 @ =gSave
|
||||
ldr r1, _0807CAE4 @ =gArea
|
||||
ldr r3, _0807CAE8 @ =0x0000047C
|
||||
adds r2, r2, r3
|
||||
ldrb r1, [r1, #3]
|
||||
adds r2, r2, r1
|
||||
movs r1, #1
|
||||
lsls r1, r0
|
||||
ldrb r0, [r2]
|
||||
orrs r1, r0
|
||||
strb r1, [r2]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_0807CAE0: .4byte gSave
|
||||
_0807CAE4: .4byte gArea
|
||||
_0807CAE8: .4byte 0x0000047C
|
||||
.syntax divided
|
||||
@@ -0,0 +1,18 @@
|
||||
.syntax unified
|
||||
adds r2, r0, #0
|
||||
ldr r0, _0807CB04 @ =gSave
|
||||
ldr r1, _0807CB08 @ =gArea
|
||||
ldr r3, _0807CB0C @ =0x0000047C
|
||||
adds r0, r0, r3
|
||||
ldrb r1, [r1, #3]
|
||||
adds r0, r0, r1
|
||||
ldrb r0, [r0]
|
||||
asrs r0, r2
|
||||
movs r1, #1
|
||||
ands r0, r1
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_0807CB04: .4byte gSave
|
||||
_0807CB08: .4byte gArea
|
||||
_0807CB0C: .4byte 0x0000047C
|
||||
.syntax divided
|
||||
@@ -0,0 +1,74 @@
|
||||
.syntax unified
|
||||
push {lr}
|
||||
adds r2, r0, #0
|
||||
adds r3, r1, #0
|
||||
cmp r2, #0x11
|
||||
bhi _0807CB84
|
||||
lsls r0, r2, #2
|
||||
ldr r1, _0807CB38 @ =_0807CB3C
|
||||
adds r0, r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_0807CB38: .4byte _0807CB3C
|
||||
_0807CB3C: @ jump table
|
||||
.4byte _0807CB84 @ case 0
|
||||
.4byte _0807CB88 @ case 1
|
||||
.4byte _0807CB88 @ case 2
|
||||
.4byte _0807CB88 @ case 3
|
||||
.4byte _0807CB88 @ case 4
|
||||
.4byte _0807CB88 @ case 5
|
||||
.4byte _0807CB88 @ case 6
|
||||
.4byte _0807CB88 @ case 7
|
||||
.4byte _0807CB88 @ case 8
|
||||
.4byte _0807CB88 @ case 9
|
||||
.4byte _0807CB88 @ case 10
|
||||
.4byte _0807CB88 @ case 11
|
||||
.4byte _0807CB88 @ case 12
|
||||
.4byte _0807CB88 @ case 13
|
||||
.4byte _0807CB84 @ case 14
|
||||
.4byte _0807CBA0 @ case 15
|
||||
.4byte _0807CBAE @ case 16
|
||||
.4byte _0807CBBC @ case 17
|
||||
_0807CB84:
|
||||
movs r1, #0
|
||||
b _0807CBCA
|
||||
_0807CB88:
|
||||
ldr r0, _0807CB9C @ =gLocalFlagBanks
|
||||
lsls r1, r2, #1
|
||||
adds r1, r1, r0
|
||||
ldrh r0, [r1]
|
||||
adds r1, r3, #0
|
||||
bl CheckLocalFlagByBank
|
||||
_0807CB96:
|
||||
adds r1, r0, #0
|
||||
b _0807CBCA
|
||||
.align 2, 0
|
||||
_0807CB9C: .4byte gLocalFlagBanks
|
||||
_0807CBA0:
|
||||
adds r0, r3, #0
|
||||
bl GetInventoryValue
|
||||
cmp r0, #0
|
||||
beq _0807CB96
|
||||
movs r0, #1
|
||||
b _0807CB96
|
||||
_0807CBAE:
|
||||
adds r0, r3, #0
|
||||
bl GetInventoryValue
|
||||
movs r1, #0
|
||||
cmp r0, #1
|
||||
bne _0807CBCA
|
||||
b _0807CBC8
|
||||
_0807CBBC:
|
||||
adds r0, r3, #0
|
||||
bl GetInventoryValue
|
||||
movs r1, #0
|
||||
cmp r0, #2
|
||||
bne _0807CBCA
|
||||
_0807CBC8:
|
||||
movs r1, #1
|
||||
_0807CBCA:
|
||||
adds r0, r1, #0
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
.syntax divided
|
||||
@@ -296,7 +296,7 @@ _08083DC4: .4byte gSave
|
||||
_08083DC8:
|
||||
ldrb r0, [r4, #0xa]
|
||||
movs r1, #2
|
||||
bl sub_0807CAA0
|
||||
bl SetInventoryValue
|
||||
_08083DD0:
|
||||
bl DeleteThisEntity
|
||||
_08083DD4:
|
||||
|
||||
@@ -118,7 +118,7 @@ _0809F88C:
|
||||
bne _0809F8AE
|
||||
movs r0, #3
|
||||
strb r0, [r4, #0xd]
|
||||
ldr r1, _0809F8B8 @ =gChooseFileState
|
||||
ldr r1, _0809F8B8 @ =gMenu
|
||||
ldrb r0, [r1, #6]
|
||||
adds r0, #1
|
||||
strb r0, [r1, #6]
|
||||
@@ -129,7 +129,7 @@ _0809F8AE:
|
||||
bl sub_080A00B0
|
||||
b _0809F8FE
|
||||
.align 2, 0
|
||||
_0809F8B8: .4byte gChooseFileState
|
||||
_0809F8B8: .4byte gMenu
|
||||
_0809F8BC:
|
||||
ldrb r0, [r4, #0xa]
|
||||
cmp r0, #0
|
||||
|
||||
@@ -1,638 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_08077698
|
||||
sub_08077698: @ 0x08077698
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
ldr r2, _0807771C @ =gPlayerState
|
||||
ldrb r1, [r2, #3]
|
||||
movs r0, #0xfe
|
||||
ands r0, r1
|
||||
strb r0, [r2, #3]
|
||||
ldrb r1, [r2, #4]
|
||||
movs r0, #0xf
|
||||
ands r0, r1
|
||||
strb r0, [r2, #4]
|
||||
ldrb r0, [r2, #7]
|
||||
ldrb r3, [r2, #2]
|
||||
orrs r0, r3
|
||||
movs r1, #0x80
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _08077700
|
||||
movs r0, #0x40
|
||||
ands r0, r3
|
||||
cmp r0, #0
|
||||
bne _08077700
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x26
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _08077700
|
||||
adds r0, r4, #0
|
||||
bl sub_08077758
|
||||
cmp r0, #0
|
||||
beq _08077700
|
||||
bl sub_080777A0
|
||||
cmp r0, #0
|
||||
bne _08077700
|
||||
ldr r4, _08077720 @ =gSave
|
||||
adds r0, r4, #0
|
||||
adds r0, #0xb4
|
||||
ldrb r0, [r0]
|
||||
movs r1, #1
|
||||
movs r2, #0
|
||||
bl sub_08077880
|
||||
adds r4, #0xb5
|
||||
ldrb r0, [r4]
|
||||
movs r1, #2
|
||||
movs r2, #0
|
||||
bl sub_08077880
|
||||
bl sub_080778CC
|
||||
_08077700:
|
||||
movs r5, #0
|
||||
ldr r4, _08077724 @ =gUnk_03000B80
|
||||
_08077704:
|
||||
ldrb r0, [r4, #9]
|
||||
cmp r0, #0
|
||||
beq _08077712
|
||||
adds r0, r4, #0
|
||||
adds r1, r5, #0
|
||||
bl sub_080752E8
|
||||
_08077712:
|
||||
adds r4, #0x1c
|
||||
adds r5, #1
|
||||
cmp r5, #3
|
||||
bls _08077704
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_0807771C: .4byte gPlayerState
|
||||
_08077720: .4byte gSave
|
||||
_08077724: .4byte gUnk_03000B80
|
||||
|
||||
thumb_func_start sub_08077728
|
||||
sub_08077728: @ 0x08077728
|
||||
push {lr}
|
||||
cmp r0, #0
|
||||
bne _08077744
|
||||
ldr r0, _08077740 @ =gSave
|
||||
adds r0, #0xb4
|
||||
ldrb r0, [r0]
|
||||
movs r1, #1
|
||||
movs r2, #1
|
||||
bl sub_08077880
|
||||
b _08077752
|
||||
.align 2, 0
|
||||
_08077740: .4byte gSave
|
||||
_08077744:
|
||||
ldr r0, _08077754 @ =gSave
|
||||
adds r0, #0xb5
|
||||
ldrb r0, [r0]
|
||||
movs r1, #2
|
||||
movs r2, #1
|
||||
bl sub_08077880
|
||||
_08077752:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_08077754: .4byte gSave
|
||||
|
||||
thumb_func_start sub_08077758
|
||||
sub_08077758: @ 0x08077758
|
||||
push {lr}
|
||||
adds r3, r0, #0
|
||||
ldr r2, _08077794 @ =gPlayerState
|
||||
ldr r1, [r2, #0x30]
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #7
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _0807779C
|
||||
movs r0, #0xd5
|
||||
lsls r0, r0, #4
|
||||
ands r1, r0
|
||||
cmp r1, #0
|
||||
bne _08077798
|
||||
ldrb r0, [r2, #0x1e]
|
||||
ldrb r1, [r2, #0x1a]
|
||||
orrs r1, r0
|
||||
adds r0, r3, #0
|
||||
adds r0, #0x7a
|
||||
ldrh r0, [r0]
|
||||
orrs r1, r0
|
||||
cmp r1, #0
|
||||
bne _0807779C
|
||||
adds r0, r3, #0
|
||||
adds r0, #0x42
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _0807779C
|
||||
movs r0, #1
|
||||
b _0807779E
|
||||
.align 2, 0
|
||||
_08077794: .4byte gPlayerState
|
||||
_08077798:
|
||||
bl DeleteClones
|
||||
_0807779C:
|
||||
movs r0, #0
|
||||
_0807779E:
|
||||
pop {pc}
|
||||
|
||||
thumb_func_start sub_080777A0
|
||||
sub_080777A0: @ 0x080777A0
|
||||
push {r4, lr}
|
||||
ldr r3, _080777D0 @ =gPlayerState
|
||||
adds r0, r3, #0
|
||||
adds r0, #0x92
|
||||
ldrh r1, [r0]
|
||||
movs r4, #0x80
|
||||
adds r0, r4, #0
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _08077870
|
||||
ldr r1, [r3, #0x30]
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #0xf
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _080777D4
|
||||
adds r1, r3, #0
|
||||
adds r1, #0xa0
|
||||
movs r0, #1
|
||||
strb r0, [r1]
|
||||
bl DeleteClones
|
||||
_080777CC:
|
||||
movs r0, #1
|
||||
b _0807787C
|
||||
.align 2, 0
|
||||
_080777D0: .4byte gPlayerState
|
||||
_080777D4:
|
||||
ldr r2, _080777F4 @ =gArea
|
||||
ldrb r0, [r2, #0x18]
|
||||
cmp r0, #2
|
||||
beq _080777FC
|
||||
cmp r0, #3
|
||||
beq _08077810
|
||||
ldr r0, _080777F8 @ =gUnk_0200AF00
|
||||
adds r0, #0x2c
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0xc
|
||||
bne _0807787A
|
||||
adds r2, r3, #0
|
||||
ldrb r0, [r2, #0x1c]
|
||||
cmp r0, #0
|
||||
bne _0807787A
|
||||
b _08077838
|
||||
.align 2, 0
|
||||
_080777F4: .4byte gArea
|
||||
_080777F8: .4byte gUnk_0200AF00
|
||||
_080777FC:
|
||||
ldrb r0, [r2, #0x1a]
|
||||
cmp r0, #0
|
||||
bne _080777CC
|
||||
ldr r1, _0807780C @ =gPlayerEntity
|
||||
ldrb r0, [r1, #0xd]
|
||||
adds r0, #1
|
||||
strb r0, [r1, #0xd]
|
||||
b _080777CC
|
||||
.align 2, 0
|
||||
_0807780C: .4byte gPlayerEntity
|
||||
_08077810:
|
||||
ldrb r0, [r2, #0x1a]
|
||||
cmp r0, #0
|
||||
bne _0807787A
|
||||
ands r1, r4
|
||||
cmp r1, #0
|
||||
beq _0807787A
|
||||
ldr r0, _08077834 @ =gPlayerEntity
|
||||
ldrb r1, [r0, #0xd]
|
||||
adds r1, #1
|
||||
strb r1, [r0, #0xd]
|
||||
ldrb r2, [r0, #0x10]
|
||||
movs r1, #0x7f
|
||||
ands r1, r2
|
||||
strb r1, [r0, #0x10]
|
||||
movs r1, #0xb4
|
||||
bl RequestPriorityDuration
|
||||
b _080777CC
|
||||
.align 2, 0
|
||||
_08077834: .4byte gPlayerEntity
|
||||
_08077838:
|
||||
ldrb r0, [r2, #0x12]
|
||||
cmp r0, #0x11
|
||||
beq _0807787A
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x90
|
||||
ldrh r1, [r0]
|
||||
movs r0, #0xf0
|
||||
lsls r0, r0, #4
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0807787A
|
||||
ldr r0, [r2, #0x30]
|
||||
ldr r1, _0807786C @ =0x00040400
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _0807787A
|
||||
ldrb r0, [r2, #2]
|
||||
cmp r0, #0
|
||||
bne _0807787A
|
||||
ldrb r0, [r2, #4]
|
||||
cmp r0, #0
|
||||
bne _0807787A
|
||||
movs r0, #0x18
|
||||
strb r0, [r2, #0xc]
|
||||
b _0807787A
|
||||
.align 2, 0
|
||||
_0807786C: .4byte 0x00040400
|
||||
_08077870:
|
||||
ldr r0, [r3, #0x30]
|
||||
movs r1, #0x20
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _080777CC
|
||||
_0807787A:
|
||||
movs r0, #0
|
||||
_0807787C:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_08077880
|
||||
sub_08077880: @ 0x08077880
|
||||
push {r4, r5, r6, lr}
|
||||
adds r4, r0, #0
|
||||
adds r6, r1, #0
|
||||
subs r0, r4, #1
|
||||
cmp r0, #0x1e
|
||||
bhi _080778C0
|
||||
lsls r0, r4, #1
|
||||
adds r0, r0, r4
|
||||
lsls r0, r0, #2
|
||||
ldr r1, _080778C4 @ =gUnk_0811BE48
|
||||
adds r5, r0, r1
|
||||
ldr r1, _080778C8 @ =gPlayerState + 0x90
|
||||
ldrb r0, [r5]
|
||||
cmp r0, #0
|
||||
beq _080778A0
|
||||
adds r1, #2
|
||||
_080778A0:
|
||||
ldrh r0, [r1]
|
||||
ands r0, r6
|
||||
cmp r0, #0
|
||||
bne _080778AC
|
||||
cmp r2, #0
|
||||
beq _080778C0
|
||||
_080778AC:
|
||||
adds r0, r4, #0
|
||||
bl sub_0807794C
|
||||
adds r1, r0, #0
|
||||
cmp r1, #0
|
||||
beq _080778C0
|
||||
ldrb r0, [r5, #1]
|
||||
strb r0, [r1, #9]
|
||||
strb r4, [r1, #1]
|
||||
strb r6, [r1, #3]
|
||||
_080778C0:
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_080778C4: .4byte gUnk_0811BE48
|
||||
_080778C8: .4byte gPlayerState + 0x90
|
||||
|
||||
thumb_func_start sub_080778CC
|
||||
sub_080778CC: @ 0x080778CC
|
||||
push {lr}
|
||||
ldr r2, _08077920 @ =gPlayerState
|
||||
ldr r0, [r2, #0x30]
|
||||
ldr r1, _08077924 @ =0x000400A0
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _0807791C
|
||||
ldr r0, _08077928 @ =gPlayerEntity
|
||||
adds r0, #0x79
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _080778FA
|
||||
ldrb r0, [r2, #5]
|
||||
cmp r0, #0
|
||||
bne _080778FA
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x92
|
||||
ldrh r1, [r0]
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #8
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0807791C
|
||||
_080778FA:
|
||||
bl sub_080789A8
|
||||
cmp r0, #0
|
||||
bne _08077910
|
||||
ldr r0, _08077920 @ =gPlayerState
|
||||
adds r0, #0x90
|
||||
ldrh r1, [r0]
|
||||
ldr r0, _0807792C @ =0x00000F03
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _0807791C
|
||||
_08077910:
|
||||
movs r0, #0x1b
|
||||
bl sub_0807794C
|
||||
adds r1, r0, #0
|
||||
cmp r1, #0
|
||||
bne _08077930
|
||||
_0807791C:
|
||||
movs r0, #0
|
||||
b _08077940
|
||||
.align 2, 0
|
||||
_08077920: .4byte gPlayerState
|
||||
_08077924: .4byte 0x000400A0
|
||||
_08077928: .4byte gPlayerEntity
|
||||
_0807792C: .4byte 0x00000F03
|
||||
_08077930:
|
||||
movs r0, #0x1b
|
||||
strb r0, [r1, #1]
|
||||
ldr r0, _08077944 @ =gUnk_0811BE48
|
||||
ldr r2, _08077948 @ =0x00000145
|
||||
adds r0, r0, r2
|
||||
ldrb r0, [r0]
|
||||
strb r0, [r1, #9]
|
||||
movs r0, #1
|
||||
_08077940:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_08077944: .4byte gUnk_0811BE48
|
||||
_08077948: .4byte 0x00000145
|
||||
|
||||
thumb_func_start sub_0807794C
|
||||
sub_0807794C: @ 0x0807794C
|
||||
push {lr}
|
||||
adds r2, r0, #0
|
||||
ldr r0, _080779B8 @ =gPlayerState
|
||||
ldrb r1, [r0, #0xc]
|
||||
adds r3, r0, #0
|
||||
cmp r1, #0x18
|
||||
bne _0807795E
|
||||
cmp r2, #0x1b
|
||||
bne _080779B2
|
||||
_0807795E:
|
||||
ldr r0, [r3, #0x30]
|
||||
movs r1, #0x88
|
||||
lsls r1, r1, #0xf
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0807796E
|
||||
cmp r2, #6
|
||||
bhi _080779B2
|
||||
_0807796E:
|
||||
ldrb r0, [r3, #2]
|
||||
cmp r0, #0
|
||||
bne _0807797C
|
||||
ldr r0, _080779BC @ =gPlayerEntity
|
||||
ldr r0, [r0, #0x34]
|
||||
cmp r0, #0
|
||||
beq _08077980
|
||||
_0807797C:
|
||||
cmp r2, #6
|
||||
bhi _080779B2
|
||||
_08077980:
|
||||
ldr r0, [r3, #0x30]
|
||||
movs r1, #0x80
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0807799A
|
||||
ldr r0, _080779C0 @ =gUnk_0811BE48
|
||||
lsls r1, r2, #1
|
||||
adds r1, r1, r2
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r0
|
||||
ldrb r0, [r1, #8]
|
||||
cmp r0, #0
|
||||
beq _080779B2
|
||||
_0807799A:
|
||||
ldrb r0, [r3, #0x12]
|
||||
cmp r0, #0x11
|
||||
bne _080779C4
|
||||
adds r0, r3, #0
|
||||
adds r0, #0x37
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
beq _080779C4
|
||||
adds r0, r2, #0
|
||||
subs r0, #0x14
|
||||
cmp r0, #1
|
||||
bls _080779C4
|
||||
_080779B2:
|
||||
movs r0, #0
|
||||
b _080779DE
|
||||
.align 2, 0
|
||||
_080779B8: .4byte gPlayerState
|
||||
_080779BC: .4byte gPlayerEntity
|
||||
_080779C0: .4byte gUnk_0811BE48
|
||||
_080779C4:
|
||||
ldr r1, _080779E0 @ =gUnk_0811BE48
|
||||
lsls r0, r2, #1
|
||||
adds r0, r0, r2
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r1
|
||||
ldrb r0, [r0, #2]
|
||||
ldr r1, _080779E4 @ =gUnk_0811BFC8
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r1
|
||||
ldr r1, [r0]
|
||||
adds r0, r2, #0
|
||||
bl _call_via_r1
|
||||
_080779DE:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_080779E0: .4byte gUnk_0811BE48
|
||||
_080779E4: .4byte gUnk_0811BFC8
|
||||
|
||||
thumb_func_start sub_080779E8
|
||||
sub_080779E8: @ 0x080779E8
|
||||
movs r0, #0
|
||||
bx lr
|
||||
|
||||
thumb_func_start sub_080779EC
|
||||
sub_080779EC: @ 0x080779EC
|
||||
push {lr}
|
||||
ldr r1, _08077A00 @ =gUnk_03000B80
|
||||
adds r0, r1, #0
|
||||
adds r0, #0x25
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _08077A04
|
||||
adds r0, r1, #0
|
||||
adds r0, #0x1c
|
||||
b _08077A16
|
||||
.align 2, 0
|
||||
_08077A00: .4byte gUnk_03000B80
|
||||
_08077A04:
|
||||
adds r0, r1, #0
|
||||
adds r0, #0x41
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
beq _08077A12
|
||||
movs r0, #0
|
||||
b _08077A16
|
||||
_08077A12:
|
||||
adds r0, r1, #0
|
||||
adds r0, #0x38
|
||||
_08077A16:
|
||||
pop {pc}
|
||||
|
||||
thumb_func_start sub_08077A18
|
||||
sub_08077A18: @ 0x08077A18
|
||||
push {lr}
|
||||
adds r1, r0, #0
|
||||
ldr r0, _08077A3C @ =gPlayerState
|
||||
ldrb r0, [r0, #5]
|
||||
cmp r0, #0
|
||||
bne _08077A44
|
||||
ldr r0, _08077A40 @ =gUnk_03000B80
|
||||
ldrb r2, [r0, #0x1d]
|
||||
cmp r1, r2
|
||||
beq _08077A44
|
||||
adds r0, #0x39
|
||||
ldrb r0, [r0]
|
||||
cmp r1, r0
|
||||
beq _08077A44
|
||||
adds r0, r1, #0
|
||||
bl sub_080779EC
|
||||
b _08077A46
|
||||
.align 2, 0
|
||||
_08077A3C: .4byte gPlayerState
|
||||
_08077A40: .4byte gUnk_03000B80
|
||||
_08077A44:
|
||||
movs r0, #0
|
||||
_08077A46:
|
||||
pop {pc}
|
||||
|
||||
thumb_func_start sub_08077A48
|
||||
sub_08077A48: @ 0x08077A48
|
||||
push {r4, r5, r6, lr}
|
||||
adds r2, r0, #0
|
||||
ldr r6, _08077A88 @ =gPlayerState
|
||||
ldrb r0, [r6, #5]
|
||||
cmp r0, #0
|
||||
bne _08077A94
|
||||
ldrb r1, [r6, #2]
|
||||
movs r0, #0x20
|
||||
ands r0, r1
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r4, r0, #0x18
|
||||
cmp r4, #0
|
||||
bne _08077A94
|
||||
ldr r0, _08077A8C @ =gUnk_0811BE48
|
||||
lsls r1, r2, #1
|
||||
adds r1, r1, r2
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r0
|
||||
ldr r5, _08077A90 @ =gUnk_03000B80
|
||||
ldrb r0, [r1, #1]
|
||||
ldrb r1, [r5, #9]
|
||||
cmp r0, r1
|
||||
blo _08077A94
|
||||
adds r0, r5, #0
|
||||
movs r1, #0
|
||||
bl sub_08077E78
|
||||
strb r4, [r6, #1]
|
||||
strb r4, [r6, #0x1c]
|
||||
strb r4, [r6, #0x1b]
|
||||
adds r0, r5, #0
|
||||
b _08077A96
|
||||
.align 2, 0
|
||||
_08077A88: .4byte gPlayerState
|
||||
_08077A8C: .4byte gUnk_0811BE48
|
||||
_08077A90: .4byte gUnk_03000B80
|
||||
_08077A94:
|
||||
movs r0, #0
|
||||
_08077A96:
|
||||
pop {r4, r5, r6, pc}
|
||||
|
||||
thumb_func_start sub_08077A98
|
||||
sub_08077A98: @ 0x08077A98
|
||||
push {lr}
|
||||
ldr r0, _08077AB8 @ =gSave
|
||||
adds r0, #0xac
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
beq _08077AC4
|
||||
ldr r0, _08077ABC @ =gPlayerState
|
||||
ldrb r0, [r0, #5]
|
||||
cmp r0, #0
|
||||
bne _08077AC4
|
||||
ldr r1, _08077AC0 @ =gUnk_03000B80
|
||||
ldrb r0, [r1, #9]
|
||||
cmp r0, #0
|
||||
bne _08077AC4
|
||||
adds r0, r1, #0
|
||||
b _08077AC6
|
||||
.align 2, 0
|
||||
_08077AB8: .4byte gSave
|
||||
_08077ABC: .4byte gPlayerState
|
||||
_08077AC0: .4byte gUnk_03000B80
|
||||
_08077AC4:
|
||||
movs r0, #0
|
||||
_08077AC6:
|
||||
pop {pc}
|
||||
|
||||
thumb_func_start sub_08077AC8
|
||||
sub_08077AC8: @ 0x08077AC8
|
||||
push {lr}
|
||||
movs r2, #0
|
||||
ldr r1, _08077AD8 @ =gUnk_03000B80
|
||||
_08077ACE:
|
||||
ldrb r0, [r1, #9]
|
||||
cmp r0, #0
|
||||
beq _08077ADC
|
||||
movs r0, #0
|
||||
b _08077AE6
|
||||
.align 2, 0
|
||||
_08077AD8: .4byte gUnk_03000B80
|
||||
_08077ADC:
|
||||
adds r1, #0x1c
|
||||
adds r2, #1
|
||||
cmp r2, #3
|
||||
bls _08077ACE
|
||||
ldr r0, _08077AE8 @ =gUnk_03000BD4
|
||||
_08077AE6:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_08077AE8: .4byte gUnk_03000BD4
|
||||
|
||||
thumb_func_start sub_08077AEC
|
||||
sub_08077AEC: @ 0x08077AEC
|
||||
push {lr}
|
||||
ldr r0, _08077B14 @ =gUnk_03000BD4
|
||||
movs r1, #3
|
||||
bl sub_08077E78
|
||||
ldr r2, _08077B18 @ =gPlayerState
|
||||
ldr r0, [r2, #0x30]
|
||||
ldr r1, _08077B1C @ =0xFF7FFFFF
|
||||
ands r0, r1
|
||||
str r0, [r2, #0x30]
|
||||
movs r0, #0x10
|
||||
bl IsItemEquipped
|
||||
adds r1, r0, #0
|
||||
cmp r1, #2
|
||||
beq _08077B12
|
||||
movs r0, #0xf
|
||||
bl ForceEquipItem
|
||||
_08077B12:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_08077B14: .4byte gUnk_03000BD4
|
||||
_08077B18: .4byte gPlayerState
|
||||
_08077B1C: .4byte 0xFF7FFFFF
|
||||
|
||||
thumb_func_start sub_08077B20
|
||||
sub_08077B20: @ 0x08077B20
|
||||
push {lr}
|
||||
bl ResetPlayer
|
||||
bl sub_08077AEC
|
||||
pop {pc}
|
||||
@@ -29,7 +29,7 @@ gUnk_0811BFC8:: @ 0811BFC8
|
||||
gUnk_0811BFE0:: @ 0811BFE0
|
||||
.incbin "data_0811BE38/gUnk_0811BFE0.bin"
|
||||
|
||||
gUnk_0811BFE8:: @ 0811BFE8
|
||||
gPlayerChargeActions:: @ 0811BFE8
|
||||
.4byte sub_08078008
|
||||
.4byte sub_08078124
|
||||
.4byte sub_08078140
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
@ Intro Assembly Player gets Sword
|
||||
SCRIPT_START script_PlayerGetSword
|
||||
_0807F078 0x0001, 0x0001
|
||||
SetInventoryValue 0x0001, 0x0001
|
||||
CallWithArg PutItemAnySlot, 0x00000001
|
||||
PlaySound SFX_109
|
||||
CallWithArg SetPlayerAnimation2, 0x0000045f
|
||||
|
||||
@@ -27,7 +27,7 @@ SCRIPT_START script_Npc4EMonsters
|
||||
WaitForFadeFinish
|
||||
CallWithArg DeleteManager36, 0x00000002
|
||||
_0807F0C8 0x0000, 0x0000
|
||||
Call sub_0806DC3C
|
||||
Call NPC4E_SaveEquippedItems
|
||||
Call SetPlayerActionNormal
|
||||
CallWithArg EquipItem, 0x0000000d
|
||||
CallWithArg sub_0807F29C, gUnk_080049F6
|
||||
@@ -42,7 +42,7 @@ SCRIPT_START script_Npc4EMonsters
|
||||
SetSyncFlag 0x20000000
|
||||
Wait 0x0078
|
||||
CallWithArg sub_0807F29C, 0x00000000
|
||||
Call sub_0806DC58
|
||||
Call NPC4E_RestoreEquippedItems
|
||||
SetSyncFlag 0x40000000
|
||||
SetSyncFlag 0x00000010
|
||||
SetSyncFlag 0x00000100
|
||||
|
||||
@@ -7,7 +7,7 @@ SCRIPT_START script_Npc4EVaatiAttacking
|
||||
WaitForSyncFlagAndClear 0x00000400
|
||||
MessageFromTargetPos 0x1047, 0x0000
|
||||
WaitUntilTextboxCloses
|
||||
Call sub_0806DC3C
|
||||
Call NPC4E_SaveEquippedItems
|
||||
Call SetPlayerActionNormal
|
||||
CallWithArg EquipItem, 0x0000000d
|
||||
CallWithArg sub_0807F29C, gUnk_080049F6
|
||||
@@ -15,7 +15,7 @@ SCRIPT_START script_Npc4EVaatiAttacking
|
||||
SetSyncFlag 0x00000100
|
||||
WaitForSyncFlagAndClear 0x00000200
|
||||
CallWithArg sub_0807F29C, 0x00000000
|
||||
Call sub_0806DC58
|
||||
Call NPC4E_RestoreEquippedItems
|
||||
Wait 0x003c
|
||||
SetSyncFlag 0x08000000
|
||||
PlaySound SFX_125
|
||||
|
||||
@@ -5,7 +5,7 @@ SCRIPT_START script_Npc4EIntroCastle
|
||||
Call sub_0807DF28
|
||||
StartPlayerScript script_PlayerIntroCastle
|
||||
WaitForSyncFlagAndClear 0x00000400
|
||||
_0807F078 0x0034, 0x0002
|
||||
SetInventoryValue 0x0034, 0x0002
|
||||
MessageFromTargetPos 0x1036, 0x000c
|
||||
WaitUntilTextboxCloses
|
||||
SetSyncFlag 0x00000010
|
||||
|
||||
@@ -159,7 +159,7 @@ SCRIPT_START script_Npc4EIntroTown
|
||||
@ Give the shield to the player
|
||||
GivePlayerItem 0x000d
|
||||
WaitPlayerGetItem
|
||||
Call sub_0806DC3C
|
||||
Call NPC4E_SaveEquippedItems
|
||||
Call SetPlayerActionNormal
|
||||
CallWithArg EquipItem, 0x0000000d
|
||||
SetIntVariable 0x000000ff
|
||||
@@ -172,7 +172,7 @@ SCRIPT_START script_Npc4EIntroTown
|
||||
WaitUntilTextboxCloses
|
||||
@ Give control back to the player
|
||||
CallWithArg sub_0807F29C, 0x00000000
|
||||
Call sub_0806DC58
|
||||
Call NPC4E_RestoreEquippedItems
|
||||
_0807F0B4 0x0004
|
||||
CameraTargetPlayer
|
||||
Wait 0x000a
|
||||
|
||||
@@ -13,7 +13,7 @@ SCRIPT_START script_DampeInside
|
||||
MessageFromTarget 0x053c
|
||||
WaitPlayerGetItem
|
||||
WaitUntilTextboxCloses
|
||||
_0807F078 0x003c, 0x0001
|
||||
SetInventoryValue 0x003c, 0x0001
|
||||
script_08009622:
|
||||
EnablePlayerControl
|
||||
DoPostScriptAction 0x0000
|
||||
|
||||
@@ -28,7 +28,7 @@ script_08009660:
|
||||
JumpIfNot script_0800968E
|
||||
PlaySound SFX_111
|
||||
PlaySound SFX_SECRET
|
||||
_0807F078 0x003c, 0x0002
|
||||
SetInventoryValue 0x003c, 0x0002
|
||||
Call sub_0806BEFC
|
||||
script_0800968E:
|
||||
EnablePlayerControl
|
||||
|
||||
@@ -17,7 +17,7 @@ SCRIPT_START script_Object69CrowStealingKey
|
||||
WaitForSyncFlagAndClear 0x00000010
|
||||
SetSyncFlag 0x00000020
|
||||
WaitForSyncFlagAndClear 0x00000040
|
||||
_0807F078 0x003c, 0x0000
|
||||
SetInventoryValue 0x003c, 0x0000
|
||||
SetGlobalFlag 0x0020
|
||||
_0807E8E4_3
|
||||
Wait 0x001e
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
@ Mines Player get white sword
|
||||
SCRIPT_START script_PlayerGetWhiteSword
|
||||
_0807F078 0x0002, 0x0001
|
||||
SetInventoryValue 0x0002, 0x0001
|
||||
CallWithArg PutItemAnySlot, 0x00000002
|
||||
PlaySound SFX_109
|
||||
CallWithArg SetPlayerAnimation2, 0x000001e2
|
||||
|
||||
@@ -52,9 +52,9 @@ script_080134F8:
|
||||
Wait 0x003c
|
||||
StartPlayerScript script_PlayerPickUpSword
|
||||
SetSyncFlag 0x00000080
|
||||
_0807F078 0x0003, 0x0001
|
||||
Call sub_0806DC3C
|
||||
Call sub_0806DC58
|
||||
SetInventoryValue 0x0003, 0x0001
|
||||
Call NPC4E_SaveEquippedItems
|
||||
Call NPC4E_RestoreEquippedItems
|
||||
Call WaitForPlayerFrameHiBit
|
||||
Wait 0x003c
|
||||
SetFadeTime 0x0004
|
||||
|
||||
@@ -55,9 +55,9 @@ script_0801373C:
|
||||
Wait 0x003c
|
||||
StartPlayerScript script_PlayerPickUpSword
|
||||
SetSyncFlag 0x00000080
|
||||
_0807F078 0x0004, 0x0001
|
||||
Call sub_0806DC3C
|
||||
Call sub_0806DC58
|
||||
SetInventoryValue 0x0004, 0x0001
|
||||
Call NPC4E_SaveEquippedItems
|
||||
Call NPC4E_RestoreEquippedItems
|
||||
Call WaitForPlayerFrameHiBit
|
||||
Wait 0x003c
|
||||
SetFadeTime 0x0004
|
||||
|
||||
@@ -59,10 +59,10 @@ script_080138D0:
|
||||
Wait 0x003c
|
||||
StartPlayerScript script_PlayerPickUpFinalSword
|
||||
SetSyncFlag 0x00000080
|
||||
_0807F078 0x0006, 0x0001
|
||||
SetInventoryValue 0x0006, 0x0001
|
||||
Call UpdatePlayerSkills
|
||||
Call sub_0806DC3C
|
||||
Call sub_0806DC58
|
||||
Call NPC4E_SaveEquippedItems
|
||||
Call NPC4E_RestoreEquippedItems
|
||||
Call WaitForPlayerFrameHiBit
|
||||
Wait 0x003c
|
||||
SetFadeTime 0x0004
|
||||
@@ -83,12 +83,12 @@ script_080138D0:
|
||||
SetEntityPositionRelative 0x00e8, 0x00d8
|
||||
CameraTargetEntity
|
||||
.endif
|
||||
Call sub_0806DC3C
|
||||
Call NPC4E_SaveEquippedItems
|
||||
CallWithArg EquipItem, 0x00010001
|
||||
CallWithArg sub_0807F29C, gUnk_080049FE
|
||||
Wait 0x00c8
|
||||
CallWithArg sub_0807F29C, 0x00000000
|
||||
Call sub_0806DC58
|
||||
Call NPC4E_RestoreEquippedItems
|
||||
script_08013A8E:
|
||||
.ifndef EU
|
||||
CheckRoomFlag 0x0004
|
||||
|
||||
@@ -71,7 +71,7 @@ SCRIPT_START script_08016482
|
||||
GiveKinstone 0x0001
|
||||
GivePlayerItem 0x0001
|
||||
GetInventoryValue 0x0001
|
||||
_0807F078 0x0001, 0x0002
|
||||
SetInventoryValue 0x0001, 0x0002
|
||||
_0807F088 0x0001
|
||||
CameraTargetEntity
|
||||
CameraTargetPlayer
|
||||
|
||||
@@ -21,8 +21,8 @@ SCRIPT_START script_BigGoronMirrorShield
|
||||
.endif
|
||||
Call sub_0806D620
|
||||
Wait 0x003c
|
||||
WaitPlayerGetItem
|
||||
FaceAwayFromPlayer
|
||||
WaitPlayerGetItem
|
||||
FaceAwayFromPlayer
|
||||
MessageNoOverlap 0x1d0c
|
||||
WaitUntilTextboxCloses
|
||||
Wait 0x000a
|
||||
|
||||
+1
-1
@@ -7,7 +7,7 @@ extern u32 Random(void);
|
||||
extern void sub_08000152(u32, u32, u32);
|
||||
extern u32 GetTileTypeByEntity(struct Entity_*);
|
||||
extern u32 GetTileTypeByPos(s32 x, s32 y, u32 layer);
|
||||
extern u32 GetTileType(u32 pos, u32 layer);
|
||||
extern u32 GetTileType(u32 position, u32 layer);
|
||||
extern void SetTile(u32 index, u32 position, u32 layer);
|
||||
extern void UpdateScrollVram(void);
|
||||
extern u32 sub_080002D0(struct Entity_*);
|
||||
|
||||
@@ -30,8 +30,6 @@ extern u32 CheckBits(void*, u32, u32);
|
||||
extern u32 WriteBit(void*, u32);
|
||||
extern u32 ClearBit(void*, u32);
|
||||
|
||||
extern u32 gGlobalFlags;
|
||||
|
||||
extern const u16 gLocalFlagBanks[];
|
||||
|
||||
enum LocalFlagOffsets {
|
||||
|
||||
+40
-5
@@ -20,7 +20,11 @@ extern void CopyOAM(void);
|
||||
extern void CreateChestSpawner(Entity*);
|
||||
extern void CreateItemOnGround(Entity*);
|
||||
extern void CreateMagicSparkles(u32, u32, u32);
|
||||
extern void CreateRandomItemDrop(Entity*, s32);
|
||||
extern void CreateMinishEntrance(u32 tile);
|
||||
extern Entity* CreatePlayerBomb(ItemBehavior*, u32);
|
||||
extern u32 CreateRandomItemDrop(Entity*, u32);
|
||||
extern void CreateSparkle(Entity*);
|
||||
extern void DoPlayerAction(Entity*);
|
||||
extern void DrawDirect(u32, u32); // trampoline to sub_080B27F4
|
||||
extern void DrawEntities(void);
|
||||
extern void DrawOAMCmd(void);
|
||||
@@ -32,6 +36,8 @@ extern LayerStruct* GetLayerByIndex(u32);
|
||||
extern u32 GetRandomByWeight(const u8*);
|
||||
extern u32 GetTileIndex(u32, u32);
|
||||
extern void GiveItem(u32, u32);
|
||||
extern void HandlePlayerLife(Entity*);
|
||||
extern bool32 HasSwordEquipped();
|
||||
extern bool32 IsColliding(Entity*, Entity*);
|
||||
extern bool32 IsCollidingPlayer(Entity*);
|
||||
extern bool32 IsProjectileOffScreen(Entity*);
|
||||
@@ -39,8 +45,10 @@ extern bool32 IsTileCollision(u8*, s32, s32, u32);
|
||||
extern void LinearMoveAngle(Entity*, u32, u32);
|
||||
extern void LinearMoveDirection(Entity*, u32, u32);
|
||||
extern bool32 LoadFixedGFX(Entity*, u32);
|
||||
extern void LoadResources(void);
|
||||
extern bool32 LoadSwapGFX(Entity*, u16, u32);
|
||||
extern void MenuFadeIn(u32, u32);
|
||||
extern void ModBombs(s32);
|
||||
extern u32 PlayerInRange(Entity*, u32, u32);
|
||||
extern bool32 ProcessMovement1(Entity*);
|
||||
extern bool32 ProcessMovement12(Entity*);
|
||||
@@ -51,10 +59,14 @@ extern bool32 ProcessMovement5(Entity*);
|
||||
extern bool32 ProcessMovement6(Entity*);
|
||||
extern bool32 ProcessMovementInternal(Entity*, s32, s32, u32);
|
||||
extern void SetDirtTile(u32);
|
||||
/** @see Item */
|
||||
extern void SetInventoryValue(u32, u32);
|
||||
extern void SoundReqClipped(Entity*, u32);
|
||||
extern void TryLoadPrologueHyruleTown(void);
|
||||
extern void UnloadOBJPalette(Entity*);
|
||||
extern void UpdateDisplayControls(void);
|
||||
extern void UpdateItemAnim(ItemBehavior*);
|
||||
extern void UpdatePlayerMovement(void);
|
||||
|
||||
// Unidentified
|
||||
extern void sub_08000148(u32, u32, u32);
|
||||
@@ -69,6 +81,8 @@ extern u32 sub_080002E0(u32, u32);
|
||||
extern s32 sub_080012DC(Entity*);
|
||||
extern void sub_08001318(Entity*);
|
||||
extern u32 sub_0800132C(Entity*, Entity*);
|
||||
extern void sub_080027EA(Entity*, u32, u32);
|
||||
extern void sub_080028E0(Entity*);
|
||||
extern u32 sub_080040A2(Entity*);
|
||||
extern u32 sub_080040D8(Entity*, u8*, s32, s32);
|
||||
extern void sub_08004168(Entity*);
|
||||
@@ -85,10 +99,12 @@ extern void sub_08004542(Entity*);
|
||||
extern void sub_080085B0(Entity*);
|
||||
extern void sub_08008796(Entity*, u32, u32, u32);
|
||||
extern void sub_08016AD2(Entity*);
|
||||
extern void sub_080171F0(void);
|
||||
extern u32 sub_0801766C(Entity*);
|
||||
extern void sub_0801AF18(u8*, u32, u32);
|
||||
extern void sub_0801AFE4(void);
|
||||
extern void sub_0801C1D4(void);
|
||||
extern void sub_0801C25C(void);
|
||||
extern void sub_0801E104(void);
|
||||
extern void sub_08027870(Entity*);
|
||||
extern void sub_08030118(u32);
|
||||
@@ -130,6 +146,8 @@ extern u32* sub_0805F25C(u32);
|
||||
extern u32 sub_0805F7A0(u32);
|
||||
extern void sub_0805F8E4(u32 r0, WStruct* r1);
|
||||
extern u32 sub_0805F8F8(u32);
|
||||
extern void sub_080600F0(Entity*);
|
||||
extern void sub_08060158(Entity*);
|
||||
extern void sub_0806D02C(Entity*);
|
||||
extern void sub_0806D0B0(Entity*);
|
||||
extern void sub_0806F4E8(Entity*);
|
||||
@@ -144,16 +162,22 @@ extern void sub_0806FD3C(Entity*);
|
||||
extern bool32 sub_0806FDA0(Entity*);
|
||||
extern void sub_0806FEBC(Entity*, u32, Entity*);
|
||||
extern void sub_080751E8(u32, u32, void*);
|
||||
extern void sub_08077B98(ItemBehavior*);
|
||||
extern void sub_08077BB8(ItemBehavior*);
|
||||
extern Entity* sub_08077C0C(ItemBehavior*, u32);
|
||||
extern Entity* sub_08077C94(ItemBehavior*, u32);
|
||||
extern void sub_08077D38(ItemBehavior*, u32);
|
||||
extern void sub_08077DF4(ItemBehavior*, u32);
|
||||
extern void sub_08077E3C(ItemBehavior*, u32);
|
||||
extern void sub_08077E54(ItemBehavior*);
|
||||
extern void sub_08077E78(ItemBehavior*, u32);
|
||||
extern bool32 sub_08077EC8(ItemBehavior*);
|
||||
extern bool32 sub_08077EFC(ItemBehavior*);
|
||||
extern bool32 sub_08077F10(ItemBehavior*);
|
||||
extern bool32 sub_08077F24(ItemBehavior*, u32);
|
||||
extern void sub_08077F50(ItemBehavior* beh, u32 arg1);
|
||||
extern void sub_08077F50(ItemBehavior*, u32);
|
||||
extern bool32 sub_08077FEC(u32);
|
||||
extern void sub_08078180(void);
|
||||
extern void sub_080784C8();
|
||||
extern void sub_08078790(Entity*, u32);
|
||||
extern void sub_080787CC(Entity*);
|
||||
@@ -167,33 +191,43 @@ extern void sub_08078954(Entity*);
|
||||
extern void sub_08078AC0(u32, u32, u32);
|
||||
extern void sub_08078B48(void);
|
||||
extern void sub_08078E84(Entity*, Entity*);
|
||||
extern void sub_08078FB0(Entity*);
|
||||
extern void sub_08079184();
|
||||
extern void sub_0807919C();
|
||||
extern void sub_0807921C();
|
||||
extern void sub_080792BC(s32, u32, u32);
|
||||
extern u32 sub_0807953C(void);
|
||||
extern void sub_08079708(Entity*);
|
||||
extern u32 sub_08079B24(void);
|
||||
extern void sub_08079BD8(Entity*);
|
||||
extern u32 sub_08079D48();
|
||||
extern void sub_08079D84(void);
|
||||
extern u32 sub_08079F8C(void);
|
||||
extern u32 sub_08079FC4(u32);
|
||||
extern void sub_0807A050(void);
|
||||
extern void sub_0807A5B8(u32);
|
||||
extern u32 sub_0807A894(Entity*);
|
||||
extern void sub_0807A8D8(Entity*);
|
||||
extern void sub_0807AA80(Entity*);
|
||||
extern void sub_0807AABC(Entity*);
|
||||
extern void sub_0807ACCC(Entity*);
|
||||
extern u32 sub_0807B014();
|
||||
extern void sub_0807B0C8(void);
|
||||
extern void sub_0807B7D8(u32, u32, u32);
|
||||
extern void sub_0807B9B8(s32, s32, s32);
|
||||
extern void sub_0807BA8C(u32, u32);
|
||||
extern void sub_0807BB68(u32*, u32, u32);
|
||||
extern void sub_0807BB68(s16*, u32, u32);
|
||||
extern bool32 sub_0807BD14(Entity*, u32);
|
||||
extern void sub_0807CAA0(u32, u32);
|
||||
extern bool32 sub_080806BC(u32, u32, u32, u32);
|
||||
extern void sub_0808091C(const ScreenTransitionData*, u32);
|
||||
extern void sub_080809D4(void);
|
||||
extern void sub_08080CB4(Entity*);
|
||||
extern u32 sub_0808288C(Entity*, u32, u32, u32);
|
||||
extern bool32 sub_08083734(Entity*, u32); // lockedDoor
|
||||
extern bool32 sub_08083734(Entity*, u32);
|
||||
extern void sub_08095C48(Entity*);
|
||||
extern void sub_0809E918(Entity*);
|
||||
extern void sub_0809E96C(Entity*);
|
||||
extern u32 sub_0809E9A0(void);
|
||||
extern void sub_0809EABC(Entity*);
|
||||
extern void sub_0809EAD8(Entity*);
|
||||
extern void sub_0809EB30(Entity*);
|
||||
@@ -206,6 +240,7 @@ extern void sub_080A2CC0(Entity*, Entity**, u16*);
|
||||
extern void sub_080A57F4(void);
|
||||
extern void sub_080A71C4(u32, u32, u32, u32);
|
||||
extern void sub_080A7C18(u32, u32, u32);
|
||||
extern void sub_080ADD70(void);
|
||||
extern void sub_080AE068(Entity*);
|
||||
extern bool32 sub_080AE4CC(Entity*, u32, u32, u32);
|
||||
extern void sub_080AE58C(Entity*, u32, u32);
|
||||
|
||||
@@ -5,13 +5,6 @@
|
||||
|
||||
extern void sub_08018C58(u32);
|
||||
|
||||
typedef struct {
|
||||
u8 unk[4];
|
||||
u8* unk2;
|
||||
u8 unk4[4];
|
||||
} Unk_struct;
|
||||
extern Unk_struct gUnk_03003DF0[];
|
||||
|
||||
typedef struct {
|
||||
u8 _0;
|
||||
u8 action;
|
||||
|
||||
@@ -4,9 +4,16 @@
|
||||
|
||||
typedef struct {
|
||||
/*0x00*/ Entity base;
|
||||
/*0x68*/ u8 unk_68[0xc];
|
||||
/*0x68*/ u32 unk_68;
|
||||
/*0x6c*/ u8 unk_6c;
|
||||
/*0x6d*/ u8 unk_6d;
|
||||
/*0x6e*/ u8 unk_6e;
|
||||
/*0x6f*/ u8 unk_6f;
|
||||
/*0x70*/ Entity* unk_70;
|
||||
/*0x74*/ Entity* unk_74;
|
||||
/*0x78*/ u8 unk_78[0x4];
|
||||
/*0x78*/ u8 unk_78;
|
||||
/*0x79*/ u8 unk_79;
|
||||
/*0x7a*/ u16 unk_7a;
|
||||
/*0x7c*/ u32 unk_7c;
|
||||
/*0x80*/ u8 unk_80[8];
|
||||
} PlayerEntity;
|
||||
|
||||
+33
-4
@@ -174,6 +174,31 @@ enum SurfaceType {
|
||||
SURFACE_2C,
|
||||
};
|
||||
|
||||
typedef enum {
|
||||
SKILL_NONE = 0,
|
||||
SKILL_SPIN_ATTACK = 1,
|
||||
SKILL_ROLL_ATTACK = 2,
|
||||
SKILL_DASH_ATTACK = 4,
|
||||
SKILL_ROCK_BREAKER = 8,
|
||||
SKILL_SWORD_BEAM = 0x10,
|
||||
SKILL_GREAT_SPIN = 0x20,
|
||||
SKILL_DOWN_THRUST = 0x40,
|
||||
SKILL_PERIL_BEAM = 0x80,
|
||||
SKILL_FOURSWORD = 0x100,
|
||||
SKILL_FAST_SPIN = 0x200,
|
||||
SKILL_FAST_SPLIT = 0x400,
|
||||
SKILL_LONG_SPIN = 0x800
|
||||
} PlayerSkill;
|
||||
|
||||
typedef struct {
|
||||
/*0x00*/ u8 action;
|
||||
/*0x01*/ s8 preChargeTimer;
|
||||
/*0x02*/ u8 swordType;
|
||||
/*0x03*/ u8 unk_3;
|
||||
/*0x04*/ s16 chargeTimer;
|
||||
/*0x06*/ u8 unk_6[2];
|
||||
} ChargeState;
|
||||
|
||||
typedef struct {
|
||||
/*0x00*/ u8 field_0x0[2];
|
||||
/*0x02*/ u8 jump_status;
|
||||
@@ -207,7 +232,8 @@ typedef struct {
|
||||
/*0x27*/ u8 field_0x27[5];
|
||||
/*0x2c*/ Entity* item;
|
||||
/*0x30*/ u32 flags;
|
||||
/*0x34*/ u8 field_0x34[2];
|
||||
/*0x34*/ u8 field_0x34;
|
||||
/*0x35*/ u8 field_0x35;
|
||||
/*0x36*/ u8 field_0x36;
|
||||
/*0x37*/ u8 field_0x37;
|
||||
/*0x38*/ u8 field_0x38;
|
||||
@@ -231,12 +257,12 @@ typedef struct {
|
||||
/*0x98*/ u16 field_0x98;
|
||||
/*0x9a*/ u16 field_0x9a;
|
||||
/*0x9c*/ u32 field_0x9c;
|
||||
/*0xa0*/ u8 field_0xa0[8];
|
||||
/*0xa0*/ ChargeState chargeState;
|
||||
/*0xa8*/ u8 framestate;
|
||||
/*0xa9*/ u8 framestate_last;
|
||||
/*0xaa*/ u8 field_0xaa;
|
||||
/*0xab*/ u8 field_0xab;
|
||||
/*0xac*/ u16 field_0xac;
|
||||
/*0xac*/ u16 skills; /**< Bitfield of skills @see PlayerSkill */
|
||||
/*0xae*/ u16 field_0xae;
|
||||
} PlayerState;
|
||||
|
||||
@@ -275,7 +301,8 @@ typedef struct {
|
||||
/*0x4*/ u8 stateID;
|
||||
/*0x5*/ u8 field_0x5[10];
|
||||
/*0xf*/ u8 field_0xf;
|
||||
/*0x10*/ u8 field_0x10[8];
|
||||
/*0x10*/ u16 field_0x10;
|
||||
/*0x12*/ u8 field_0x12[6];
|
||||
/*0x18*/ u32 field_0x18;
|
||||
} ItemBehavior;
|
||||
|
||||
@@ -304,7 +331,9 @@ void RegisterPlayerHitbox(void);
|
||||
void UpdateFloorType(void);
|
||||
void CreateEzloHint(u32, u32);
|
||||
|
||||
/** @see Item */
|
||||
u32 IsItemEquipped(u32);
|
||||
/** @see Item */
|
||||
u32 GetInventoryValue(u32);
|
||||
s32 ModHealth(s32 delta);
|
||||
void ModRupees(s32 delta);
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user