mirror of
https://github.com/zeldaret/tmc
synced 2026-06-07 03:58:00 -04:00
-1712
File diff suppressed because it is too large
Load Diff
@@ -1,207 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_0805488C
|
||||
sub_0805488C: @ 0x0805488C
|
||||
push {r4, lr}
|
||||
ldr r4, _080548DC @ =gUnk_02032EC0
|
||||
ldrb r1, [r4, #3]
|
||||
lsls r0, r1, #2
|
||||
adds r0, r0, r1
|
||||
lsls r0, r0, #2
|
||||
ldr r1, _080548E0 @ =gUnk_080FE320
|
||||
adds r0, r0, r1
|
||||
ldr r2, _080548E4 @ =gMenu
|
||||
ldrb r1, [r0]
|
||||
movs r3, #0
|
||||
strb r1, [r2]
|
||||
ldrb r1, [r0, #1]
|
||||
strb r1, [r2, #3]
|
||||
ldrb r1, [r4, #3]
|
||||
strb r1, [r2, #4]
|
||||
str r0, [r2, #0xc]
|
||||
ldrb r0, [r2, #5]
|
||||
adds r0, #1
|
||||
strb r0, [r2, #5]
|
||||
strb r3, [r2, #6]
|
||||
movs r0, #0x96
|
||||
lsls r0, r0, #1
|
||||
strh r0, [r2, #8]
|
||||
movs r0, #0
|
||||
bl DispReset
|
||||
ldrb r0, [r4, #3]
|
||||
movs r1, #1
|
||||
bl sub_08054974
|
||||
bl sub_0806F364
|
||||
movs r0, #0xff
|
||||
bl ClearRoomFlag
|
||||
bl sub_080548E8
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_080548DC: .4byte gUnk_02032EC0
|
||||
_080548E0: .4byte gUnk_080FE320
|
||||
_080548E4: .4byte gMenu
|
||||
|
||||
thumb_func_start sub_080548E8
|
||||
sub_080548E8: @ 0x080548E8
|
||||
push {lr}
|
||||
ldr r1, _08054918 @ =gUnk_080FE2AC
|
||||
ldr r0, _0805491C @ =gMenu
|
||||
ldrb r0, [r0]
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r1
|
||||
ldr r0, [r0]
|
||||
bl _call_via_r0
|
||||
bl FlushSprites
|
||||
bl UpdateEntities
|
||||
bl DrawEntities
|
||||
bl CopyOAM
|
||||
bl UpdateScroll
|
||||
bl UpdateBgAnim
|
||||
bl UpdateScrollVram
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_08054918: .4byte gUnk_080FE2AC
|
||||
_0805491C: .4byte gMenu
|
||||
|
||||
thumb_func_start sub_08054920
|
||||
sub_08054920: @ 0x08054920
|
||||
push {lr}
|
||||
bl MessageInitialize
|
||||
bl sub_0806F38C
|
||||
ldr r1, _08054948 @ =gUnk_080C9CBC
|
||||
ldr r0, _0805494C @ =gFuseInfo
|
||||
ldrb r0, [r0, #3]
|
||||
lsls r0, r0, #3
|
||||
adds r0, r0, r1
|
||||
ldrb r0, [r0, #7]
|
||||
cmp r0, #0
|
||||
beq _08054954
|
||||
ldr r0, _08054950 @ =gUnk_02032EC0
|
||||
ldrb r1, [r0, #3]
|
||||
movs r0, #0xa
|
||||
bl MenuFadeIn
|
||||
b _08054962
|
||||
.align 2, 0
|
||||
_08054948: .4byte gUnk_080C9CBC
|
||||
_0805494C: .4byte gFuseInfo
|
||||
_08054950: .4byte gUnk_02032EC0
|
||||
_08054954:
|
||||
ldr r1, _08054964 @ =gUnk_02032EC0
|
||||
movs r0, #3
|
||||
strb r0, [r1]
|
||||
movs r0, #7
|
||||
movs r1, #0x10
|
||||
bl SetFade
|
||||
_08054962:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_08054964: .4byte gUnk_02032EC0
|
||||
|
||||
thumb_func_start sub_08054968
|
||||
sub_08054968: @ 0x08054968
|
||||
ldr r1, _08054970 @ =gMenu
|
||||
movs r0, #2
|
||||
strb r0, [r1, #5]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_08054970: .4byte gMenu
|
||||
|
||||
thumb_func_start sub_08054974
|
||||
sub_08054974: @ 0x08054974
|
||||
push {r4, r5, r6, lr}
|
||||
adds r5, r1, #0
|
||||
lsls r1, r0, #2
|
||||
adds r1, r1, r0
|
||||
lsls r1, r1, #2
|
||||
ldr r0, _080549B0 @ =gUnk_080FE320
|
||||
adds r6, r1, r0
|
||||
ldrb r0, [r6, #2]
|
||||
ldrb r1, [r6, #3]
|
||||
bl SetCurrentRoomPropertyList
|
||||
ldr r4, _080549B4 @ =gRoomControls
|
||||
ldrb r0, [r6, #2]
|
||||
strb r0, [r4, #4]
|
||||
ldrb r0, [r6, #3]
|
||||
strb r0, [r4, #5]
|
||||
bl LoadGfxGroups
|
||||
ldrb r0, [r4, #4]
|
||||
bl GetFlagBankOffset
|
||||
ldr r1, _080549B8 @ =gArea
|
||||
strh r0, [r1, #4]
|
||||
cmp r5, #0
|
||||
beq _080549BC
|
||||
ldrb r0, [r6, #2]
|
||||
ldrb r1, [r6, #3]
|
||||
bl LoadAuxiliaryRoom
|
||||
b _080549CE
|
||||
.align 2, 0
|
||||
_080549B0: .4byte gUnk_080FE320
|
||||
_080549B4: .4byte gRoomControls
|
||||
_080549B8: .4byte gArea
|
||||
_080549BC:
|
||||
ldrb r0, [r6, #2]
|
||||
ldrb r1, [r6, #3]
|
||||
bl sub_08052FF4
|
||||
bl sub_0807C740
|
||||
ldr r1, _08054A00 @ =gUpdateVisibleTiles
|
||||
movs r0, #1
|
||||
strb r0, [r1]
|
||||
_080549CE:
|
||||
ldr r2, _08054A04 @ =gScreen
|
||||
ldrh r1, [r2]
|
||||
ldr r0, _08054A08 @ =0x00001FFF
|
||||
ands r0, r1
|
||||
strh r0, [r2]
|
||||
ldr r1, _08054A0C @ =gRoomControls
|
||||
ldrh r0, [r6, #4]
|
||||
ldrh r2, [r1, #6]
|
||||
adds r0, r0, r2
|
||||
strh r0, [r1, #0xa]
|
||||
ldrh r0, [r6, #6]
|
||||
ldrh r2, [r1, #8]
|
||||
adds r0, r0, r2
|
||||
strh r0, [r1, #0xc]
|
||||
ldrb r0, [r6, #2]
|
||||
cmp r0, #2
|
||||
bne _080549F4
|
||||
bl TryLoadPrologueHyruleTown
|
||||
_080549F4:
|
||||
ldr r0, _08054A10 @ =gUnk_02032EC0
|
||||
ldrb r0, [r0, #3]
|
||||
bl sub_08018710
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_08054A00: .4byte gUpdateVisibleTiles
|
||||
_08054A04: .4byte gScreen
|
||||
_08054A08: .4byte 0x00001FFF
|
||||
_08054A0C: .4byte gRoomControls
|
||||
_08054A10: .4byte gUnk_02032EC0
|
||||
|
||||
thumb_func_start sub_08054A14
|
||||
sub_08054A14: @ 0x08054A14
|
||||
push {lr}
|
||||
lsls r1, r0, #2
|
||||
adds r1, r1, r0
|
||||
lsls r1, r1, #2
|
||||
ldr r0, _08054A38 @ =gUnk_080FE320
|
||||
adds r2, r1, r0
|
||||
ldrb r0, [r2, #0x11]
|
||||
cmp r0, #0xd
|
||||
bhi _08054A34
|
||||
ldr r1, _08054A3C @ =gLocalFlagBanks
|
||||
lsls r0, r0, #1
|
||||
adds r0, r0, r1
|
||||
ldrh r0, [r0]
|
||||
ldrh r1, [r2, #0x12]
|
||||
bl SetLocalFlagByBank
|
||||
_08054A34:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_08054A38: .4byte gUnk_080FE320
|
||||
_08054A3C: .4byte gLocalFlagBanks
|
||||
-2368
File diff suppressed because it is too large
Load Diff
@@ -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,436 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start UpdateDoorTransition
|
||||
UpdateDoorTransition: @ 0x08080A40
|
||||
push {r4, r5, r6, r7, lr}
|
||||
ldr r7, _08080A70 @ =gRoomControls
|
||||
ldr r1, [r7, #0x30]
|
||||
ldr r0, _08080A74 @ =gPlayerEntity
|
||||
adds r2, r7, #0
|
||||
cmp r1, r0
|
||||
beq _08080A50
|
||||
b _08080B5C
|
||||
_08080A50:
|
||||
ldr r0, _08080A78 @ =gPlayerState
|
||||
ldrb r0, [r0, #2]
|
||||
cmp r0, #0
|
||||
beq _08080A5A
|
||||
b _08080B5C
|
||||
_08080A5A:
|
||||
ldrb r0, [r1, #0xc]
|
||||
subs r0, #1
|
||||
cmp r0, #0x1c
|
||||
bls _08080A64
|
||||
b _08080B5C
|
||||
_08080A64:
|
||||
lsls r0, r0, #2
|
||||
ldr r1, _08080A7C @ =_08080A80
|
||||
adds r0, r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_08080A70: .4byte gRoomControls
|
||||
_08080A74: .4byte gPlayerEntity
|
||||
_08080A78: .4byte gPlayerState
|
||||
_08080A7C: .4byte _08080A80
|
||||
_08080A80: @ jump table
|
||||
.4byte _08080AFA @ case 0
|
||||
.4byte _08080B5C @ case 1
|
||||
.4byte _08080B5C @ case 2
|
||||
.4byte _08080B5C @ case 3
|
||||
.4byte _08080B5C @ case 4
|
||||
.4byte _08080B5C @ case 5
|
||||
.4byte _08080B5C @ case 6
|
||||
.4byte _08080B5C @ case 7
|
||||
.4byte _08080AFA @ case 8
|
||||
.4byte _08080B5C @ case 9
|
||||
.4byte _08080B5C @ case 10
|
||||
.4byte _08080B5C @ case 11
|
||||
.4byte _08080B5C @ case 12
|
||||
.4byte _08080B5C @ case 13
|
||||
.4byte _08080AF4 @ case 14
|
||||
.4byte _08080B5C @ case 15
|
||||
.4byte _08080B5C @ case 16
|
||||
.4byte _08080B5C @ case 17
|
||||
.4byte _08080B5C @ case 18
|
||||
.4byte _08080B5C @ case 19
|
||||
.4byte _08080B5C @ case 20
|
||||
.4byte _08080B5C @ case 21
|
||||
.4byte _08080B5C @ case 22
|
||||
.4byte _08080AFA @ case 23
|
||||
.4byte _08080B5C @ case 24
|
||||
.4byte _08080B5C @ case 25
|
||||
.4byte _08080B5C @ case 26
|
||||
.4byte _08080B5C @ case 27
|
||||
.4byte _08080AFA @ case 28
|
||||
_08080AF4:
|
||||
ldrb r0, [r2, #4]
|
||||
cmp r0, #0x48
|
||||
beq _08080B5C
|
||||
_08080AFA:
|
||||
ldr r3, [r7, #0x30]
|
||||
movs r0, #0x32
|
||||
ldrsh r1, [r3, r0]
|
||||
ldrh r0, [r7, #8]
|
||||
subs r6, r1, r0
|
||||
movs r0, #0x2e
|
||||
ldrsh r1, [r3, r0]
|
||||
ldrh r0, [r7, #6]
|
||||
subs r5, r1, r0
|
||||
asrs r0, r5, #4
|
||||
movs r2, #0x3f
|
||||
ands r0, r2
|
||||
asrs r1, r6, #4
|
||||
ands r1, r2
|
||||
lsls r1, r1, #6
|
||||
orrs r0, r1
|
||||
adds r3, #0x38
|
||||
ldrb r1, [r3]
|
||||
bl sub_080002C8
|
||||
adds r4, r0, #0
|
||||
ldr r0, [r7, #0x30]
|
||||
adds r0, #0x38
|
||||
ldrb r2, [r0]
|
||||
adds r0, r5, #0
|
||||
adds r1, r6, #0
|
||||
bl sub_080002A8
|
||||
ldr r1, _08080B48 @ =gRoomTransition
|
||||
strh r0, [r1, #0xa]
|
||||
cmp r4, #0x3f
|
||||
beq _08080B50
|
||||
cmp r4, #0x3f
|
||||
bhi _08080B4C
|
||||
cmp r4, #0x29
|
||||
bhi _08080B5C
|
||||
cmp r4, #0x28
|
||||
blo _08080B5C
|
||||
b _08080B50
|
||||
.align 2, 0
|
||||
_08080B48: .4byte gRoomTransition
|
||||
_08080B4C:
|
||||
cmp r4, #0xf1
|
||||
bne _08080B5C
|
||||
_08080B50:
|
||||
adds r0, r5, #0
|
||||
adds r1, r6, #0
|
||||
movs r2, #0xff
|
||||
movs r3, #0xa
|
||||
bl sub_080806BC
|
||||
_08080B5C:
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_08080B60
|
||||
sub_08080B60: @ 0x08080B60
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
ldr r1, _08080B90 @ =0x00005004
|
||||
adds r4, r0, r1
|
||||
ldr r2, _08080B94 @ =gUnk_080B37A0
|
||||
mov r8, r2
|
||||
movs r3, #0
|
||||
ldr r1, _08080B98 @ =0x00003FFF
|
||||
mov ip, r1
|
||||
ldr r7, _08080B9C @ =gUnk_080B7910
|
||||
ldr r2, _08080BA0 @ =0x0000B004
|
||||
adds r1, r0, r2
|
||||
adds r2, r0, #4
|
||||
ldr r6, _08080BA4 @ =0xFFFFC000
|
||||
ldr r5, _08080BA8 @ =0x00000FFF
|
||||
_08080B80:
|
||||
ldrh r0, [r2]
|
||||
cmp r0, ip
|
||||
bhi _08080BAC
|
||||
lsls r0, r0, #1
|
||||
adds r0, r0, r4
|
||||
ldrh r0, [r0]
|
||||
add r0, r8
|
||||
b _08080BB0
|
||||
.align 2, 0
|
||||
_08080B90: .4byte 0x00005004
|
||||
_08080B94: .4byte gUnk_080B37A0
|
||||
_08080B98: .4byte 0x00003FFF
|
||||
_08080B9C: .4byte gUnk_080B7910
|
||||
_08080BA0: .4byte 0x0000B004
|
||||
_08080BA4: .4byte 0xFFFFC000
|
||||
_08080BA8: .4byte 0x00000FFF
|
||||
_08080BAC:
|
||||
adds r0, r0, r6
|
||||
adds r0, r0, r7
|
||||
_08080BB0:
|
||||
ldrb r0, [r0]
|
||||
strb r0, [r1]
|
||||
adds r1, #1
|
||||
adds r2, #2
|
||||
adds r3, #1
|
||||
cmp r3, r5
|
||||
bls _08080B80
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
|
||||
thumb_func_start sub_08080BC4
|
||||
sub_08080BC4: @ 0x08080BC4
|
||||
push {r4, r5, r6, lr}
|
||||
ldr r3, _08080C40 @ =gRoomControls
|
||||
movs r0, #0xa
|
||||
ldrsh r1, [r3, r0]
|
||||
ldrh r0, [r3, #6]
|
||||
subs r5, r1, r0
|
||||
movs r2, #0xf
|
||||
ands r5, r2
|
||||
movs r1, #0xc
|
||||
ldrsh r0, [r3, r1]
|
||||
ldrh r1, [r3, #8]
|
||||
subs r0, r0, r1
|
||||
ands r0, r2
|
||||
adds r6, r0, #0
|
||||
adds r6, #8
|
||||
ldrh r2, [r3, #0x16]
|
||||
adds r4, r2, #0
|
||||
cmp r4, #0
|
||||
beq _08080C50
|
||||
subs r2, #1
|
||||
strh r2, [r3, #0x16]
|
||||
ldrb r0, [r3, #0x14]
|
||||
lsls r0, r0, #4
|
||||
movs r1, #0xe
|
||||
ands r2, r1
|
||||
adds r0, r0, r2
|
||||
ldr r1, _08080C44 @ =gUnk_080169A4
|
||||
adds r2, r0, r1
|
||||
ldr r4, _08080C48 @ =gMapBottom
|
||||
ldr r1, [r4]
|
||||
cmp r1, #0
|
||||
beq _08080C16
|
||||
movs r0, #0
|
||||
ldrsb r0, [r2, r0]
|
||||
adds r0, r0, r5
|
||||
strh r0, [r1, #2]
|
||||
ldr r1, [r4]
|
||||
movs r0, #1
|
||||
ldrsb r0, [r2, r0]
|
||||
adds r0, r0, r6
|
||||
strh r0, [r1, #4]
|
||||
_08080C16:
|
||||
ldr r4, _08080C4C @ =gMapTop
|
||||
ldr r1, [r4]
|
||||
cmp r1, #0
|
||||
beq _08080C30
|
||||
movs r0, #0
|
||||
ldrsb r0, [r2, r0]
|
||||
adds r0, r0, r5
|
||||
strh r0, [r1, #2]
|
||||
ldr r1, [r4]
|
||||
movs r0, #1
|
||||
ldrsb r0, [r2, r0]
|
||||
adds r0, r0, r6
|
||||
strh r0, [r1, #4]
|
||||
_08080C30:
|
||||
ldrb r1, [r2]
|
||||
adds r0, r3, #0
|
||||
adds r0, #0x24
|
||||
strb r1, [r0]
|
||||
ldrb r1, [r2, #1]
|
||||
adds r0, #1
|
||||
strb r1, [r0]
|
||||
b _08080C76
|
||||
.align 2, 0
|
||||
_08080C40: .4byte gRoomControls
|
||||
_08080C44: .4byte gUnk_080169A4
|
||||
_08080C48: .4byte gMapBottom
|
||||
_08080C4C: .4byte gMapTop
|
||||
_08080C50:
|
||||
ldr r0, _08080C78 @ =gMapBottom
|
||||
ldr r1, [r0]
|
||||
cmp r1, #0
|
||||
beq _08080C5E
|
||||
strh r5, [r1, #2]
|
||||
ldr r0, [r0]
|
||||
strh r6, [r0, #4]
|
||||
_08080C5E:
|
||||
ldr r0, _08080C7C @ =gMapTop
|
||||
ldr r1, [r0]
|
||||
cmp r1, #0
|
||||
beq _08080C6C
|
||||
strh r5, [r1, #2]
|
||||
ldr r0, [r0]
|
||||
strh r6, [r0, #4]
|
||||
_08080C6C:
|
||||
adds r0, r3, #0
|
||||
adds r0, #0x24
|
||||
strb r4, [r0]
|
||||
adds r0, #1
|
||||
strb r4, [r0]
|
||||
_08080C76:
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_08080C78: .4byte gMapBottom
|
||||
_08080C7C: .4byte gMapTop
|
||||
|
||||
thumb_func_start sub_08080C80
|
||||
sub_08080C80: @ 0x08080C80
|
||||
push {r4, lr}
|
||||
bl sub_080197D4
|
||||
ldr r0, _08080CA8 @ =gMapDataBottom
|
||||
ldr r4, _08080CAC @ =gRoomControls
|
||||
ldrh r1, [r4, #0x1e]
|
||||
lsrs r1, r1, #4
|
||||
ldrh r2, [r4, #0x20]
|
||||
lsrs r2, r2, #4
|
||||
bl sub_0807C8B0
|
||||
ldr r0, _08080CB0 @ =gMapDataTop
|
||||
ldrh r1, [r4, #0x1e]
|
||||
lsrs r1, r1, #4
|
||||
ldrh r2, [r4, #0x20]
|
||||
lsrs r2, r2, #4
|
||||
bl sub_0807C8B0
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_08080CA8: .4byte gMapDataBottom
|
||||
_08080CAC: .4byte gRoomControls
|
||||
_08080CB0: .4byte gMapDataTop
|
||||
|
||||
thumb_func_start sub_08080CB4
|
||||
sub_08080CB4: @ 0x08080CB4
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x58
|
||||
ldrb r0, [r4, #0xa]
|
||||
ldrb r1, [r1]
|
||||
cmp r0, r1
|
||||
beq _08080CF0
|
||||
adds r1, r0, #0
|
||||
adds r0, r4, #0
|
||||
bl InitAnimationForceUpdate
|
||||
ldrb r0, [r4, #0xa]
|
||||
cmp r0, #0x5c
|
||||
beq _08080CD4
|
||||
b _08080E00
|
||||
_08080CD4:
|
||||
ldrb r0, [r4, #0xb]
|
||||
lsls r0, r0, #3
|
||||
ldr r1, _08080CEC @ =gUnk_080C9CBC
|
||||
adds r0, r0, r1
|
||||
ldrb r0, [r0]
|
||||
movs r1, #0xf
|
||||
ands r1, r0
|
||||
lsls r0, r0, #4
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x1a]
|
||||
b _08080E00
|
||||
.align 2, 0
|
||||
_08080CEC: .4byte gUnk_080C9CBC
|
||||
_08080CF0:
|
||||
adds r0, r4, #0
|
||||
bl UpdateAnimationSingleFrame
|
||||
ldrb r0, [r4, #0x18]
|
||||
lsls r0, r0, #0x1e
|
||||
cmp r0, #0
|
||||
bne _08080D00
|
||||
b _08080E00
|
||||
_08080D00:
|
||||
ldrb r0, [r4, #0xa]
|
||||
subs r0, #0x40
|
||||
cmp r0, #0x22
|
||||
bhi _08080E00
|
||||
lsls r0, r0, #2
|
||||
ldr r1, _08080D14 @ =_08080D18
|
||||
adds r0, r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_08080D14: .4byte _08080D18
|
||||
_08080D18: @ jump table
|
||||
.4byte _08080DEE @ case 0
|
||||
.4byte _08080DEE @ case 1
|
||||
.4byte _08080DEE @ case 2
|
||||
.4byte _08080DEE @ case 3
|
||||
.4byte _08080E00 @ case 4
|
||||
.4byte _08080E00 @ case 5
|
||||
.4byte _08080E00 @ case 6
|
||||
.4byte _08080E00 @ case 7
|
||||
.4byte _08080E00 @ case 8
|
||||
.4byte _08080E00 @ case 9
|
||||
.4byte _08080E00 @ case 10
|
||||
.4byte _08080E00 @ case 11
|
||||
.4byte _08080E00 @ case 12
|
||||
.4byte _08080E00 @ case 13
|
||||
.4byte _08080E00 @ case 14
|
||||
.4byte _08080E00 @ case 15
|
||||
.4byte _08080E00 @ case 16
|
||||
.4byte _08080E00 @ case 17
|
||||
.4byte _08080E00 @ case 18
|
||||
.4byte _08080E00 @ case 19
|
||||
.4byte _08080E00 @ case 20
|
||||
.4byte _08080E00 @ case 21
|
||||
.4byte _08080E00 @ case 22
|
||||
.4byte _08080E00 @ case 23
|
||||
.4byte _08080E00 @ case 24
|
||||
.4byte _08080E00 @ case 25
|
||||
.4byte _08080E00 @ case 26
|
||||
.4byte _08080E00 @ case 27
|
||||
.4byte _08080DEE @ case 28
|
||||
.4byte _08080E00 @ case 29
|
||||
.4byte _08080E00 @ case 30
|
||||
.4byte _08080E00 @ case 31
|
||||
.4byte _08080DA4 @ case 32
|
||||
.4byte _08080E00 @ case 33
|
||||
.4byte _08080DEE @ case 34
|
||||
_08080DA4:
|
||||
adds r5, r4, #0
|
||||
adds r5, #0x6a
|
||||
ldrb r0, [r5]
|
||||
cmp r0, #0
|
||||
beq _08080DB4
|
||||
subs r0, #1
|
||||
strb r0, [r5]
|
||||
b _08080E00
|
||||
_08080DB4:
|
||||
bl Random
|
||||
movs r1, #0x1f
|
||||
ands r0, r1
|
||||
adds r0, #0xa
|
||||
strb r0, [r5]
|
||||
adds r0, r4, #0
|
||||
movs r1, #7
|
||||
movs r2, #0
|
||||
bl CreateFx
|
||||
adds r1, r0, #0
|
||||
cmp r1, #0
|
||||
beq _08080E00
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x62
|
||||
ldrb r0, [r0]
|
||||
adds r2, r1, #0
|
||||
adds r2, #0x62
|
||||
strb r0, [r2]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x63
|
||||
ldrb r0, [r0]
|
||||
adds r2, #1
|
||||
strb r0, [r2]
|
||||
adds r0, r4, #0
|
||||
bl SortEntityAbove
|
||||
b _08080E00
|
||||
_08080DEE:
|
||||
ldr r0, _08080E04 @ =gRoomTransition
|
||||
ldr r0, [r0]
|
||||
movs r1, #0xf
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _08080E00
|
||||
adds r0, r4, #0
|
||||
bl CreateSparkle
|
||||
_08080E00:
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_08080E04: .4byte gRoomTransition
|
||||
@@ -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
|
||||
|
||||
@@ -1,40 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start ModArrows
|
||||
ModArrows: @ 0x08054330
|
||||
push {lr}
|
||||
adds r3, r0, #0
|
||||
ldr r1, _08054354 @ =gSave
|
||||
adds r0, r1, #0
|
||||
adds r0, #0xad
|
||||
ldrb r0, [r0]
|
||||
adds r3, r3, r0
|
||||
ldr r2, _08054358 @ =gQuiverSizes
|
||||
adds r0, r1, #0
|
||||
adds r0, #0xaf
|
||||
ldrb r0, [r0]
|
||||
adds r0, r0, r2
|
||||
ldrb r2, [r0]
|
||||
cmp r3, #0
|
||||
bge _0805435C
|
||||
movs r3, #0
|
||||
b _08054362
|
||||
.align 2, 0
|
||||
_08054354: .4byte gSave
|
||||
_08054358: .4byte gQuiverSizes
|
||||
_0805435C:
|
||||
cmp r2, r3
|
||||
bge _08054362
|
||||
adds r3, r2, #0
|
||||
_08054362:
|
||||
adds r0, r1, #0
|
||||
adds r0, #0xad
|
||||
strb r3, [r0]
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
@@ -1,40 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start ModBombs
|
||||
ModBombs: @ 0x080542F4
|
||||
push {lr}
|
||||
adds r3, r0, #0
|
||||
ldr r1, _08054318 @ =gSave
|
||||
adds r0, r1, #0
|
||||
adds r0, #0xac
|
||||
ldrb r0, [r0]
|
||||
adds r3, r3, r0
|
||||
ldr r2, _0805431C @ =gBombBagSizes
|
||||
adds r0, r1, #0
|
||||
adds r0, #0xae
|
||||
ldrb r0, [r0]
|
||||
adds r0, r0, r2
|
||||
ldrb r2, [r0]
|
||||
cmp r3, #0
|
||||
bge _08054320
|
||||
movs r3, #0
|
||||
b _08054326
|
||||
.align 2, 0
|
||||
_08054318: .4byte gSave
|
||||
_0805431C: .4byte gBombBagSizes
|
||||
_08054320:
|
||||
cmp r2, r3
|
||||
bge _08054326
|
||||
adds r3, r2, #0
|
||||
_08054326:
|
||||
adds r0, r1, #0
|
||||
adds r0, #0xac
|
||||
strb r3, [r0]
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
@@ -1,12 +1,4 @@
|
||||
.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
|
||||
@@ -120,104 +112,4 @@ _0805EDCA:
|
||||
_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
|
||||
|
||||
.syntax divided
|
||||
@@ -26,7 +26,7 @@ _080A2FFC:
|
||||
bgt _080A3052
|
||||
cmp r0, #0x20
|
||||
bne _080A3052
|
||||
ldr r1, _080A301C @ =gChooseFileState
|
||||
ldr r1, _080A301C @ =gMenu
|
||||
ldrb r0, [r1]
|
||||
cmp r0, #0
|
||||
bne _080A3052
|
||||
@@ -36,9 +36,9 @@ _080A2FFC:
|
||||
movs r0, #0xfc
|
||||
b _080A302E
|
||||
.align 2, 0
|
||||
_080A301C: .4byte gChooseFileState
|
||||
_080A301C: .4byte gMenu
|
||||
_080A3020:
|
||||
ldr r1, _080A3038 @ =gChooseFileState
|
||||
ldr r1, _080A3038 @ =gMenu
|
||||
ldrb r0, [r1]
|
||||
cmp r0, #0
|
||||
bne _080A3052
|
||||
@@ -51,9 +51,9 @@ _080A302E:
|
||||
bl SoundReq
|
||||
b _080A3052
|
||||
.align 2, 0
|
||||
_080A3038: .4byte gChooseFileState
|
||||
_080A3038: .4byte gMenu
|
||||
_080A303C:
|
||||
ldr r0, _080A3090 @ =gChooseFileState
|
||||
ldr r0, _080A3090 @ =gMenu
|
||||
ldrb r2, [r0]
|
||||
cmp r2, #0
|
||||
bne _080A3052
|
||||
@@ -72,7 +72,7 @@ _080A3052:
|
||||
movs r1, #3
|
||||
bl __modsi3
|
||||
strb r0, [r4, #4]
|
||||
ldr r5, _080A3090 @ =gChooseFileState
|
||||
ldr r5, _080A3090 @ =gMenu
|
||||
movs r0, #0x10
|
||||
ldrsh r2, [r5, r0]
|
||||
ldrb r1, [r4, #4]
|
||||
@@ -94,7 +94,7 @@ _080A3052:
|
||||
movs r0, #1
|
||||
b _080A309A
|
||||
.align 2, 0
|
||||
_080A3090: .4byte gChooseFileState
|
||||
_080A3090: .4byte gMenu
|
||||
_080A3094: .4byte gMain
|
||||
_080A3098:
|
||||
movs r0, #0
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
strh r0, [r4, #8]
|
||||
movs r0, #0x40
|
||||
strh r0, [r4, #2]
|
||||
ldr r0, _080A318C @ =gChooseFileState
|
||||
ldr r0, _080A318C @ =gMenu
|
||||
movs r1, #0x10
|
||||
ldrsh r6, [r0, r1]
|
||||
ldr r1, _080A3190 @ =0xFFFFFED8
|
||||
@@ -101,7 +101,7 @@
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_080A3188: .4byte gOamCmd
|
||||
_080A318C: .4byte gChooseFileState
|
||||
_080A318C: .4byte gMenu
|
||||
_080A3190: .4byte 0xFFFFFED8
|
||||
_080A3194: .4byte gUnk_08A068BF
|
||||
.syntax divided
|
||||
|
||||
@@ -15,7 +15,7 @@ _08087CC6:
|
||||
adds r0, #0x81
|
||||
ldrb r0, [r0]
|
||||
rsbs r0, r0, #0
|
||||
bl sub_080542C0
|
||||
bl ModShells
|
||||
bl Random
|
||||
movs r1, #0x7f
|
||||
ands r1, r0
|
||||
@@ -141,7 +141,7 @@ _08088332:
|
||||
adds r0, #0x81
|
||||
ldrb r0, [r0]
|
||||
rsbs r0, r0, #0
|
||||
bl sub_080542C0
|
||||
bl ModShells
|
||||
bl Random
|
||||
movs r1, #0x7f
|
||||
ands r1, r0
|
||||
|
||||
@@ -0,0 +1,314 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
adds r6, r0, #0
|
||||
adds r7, r1, #0
|
||||
bl GetInventoryValue
|
||||
adds r5, r0, #0
|
||||
lsls r1, r6, #3
|
||||
ldr r0, _08054010 @ =gItemMetaData
|
||||
adds r4, r1, r0
|
||||
cmp r5, #0
|
||||
bne _08054014
|
||||
ldrh r0, [r4, #4]
|
||||
mov r8, r0
|
||||
b _08054018
|
||||
.align 2, 0
|
||||
_08054010: .4byte gItemMetaData
|
||||
_08054014:
|
||||
ldrh r2, [r4, #6]
|
||||
mov r8, r2
|
||||
_08054018:
|
||||
adds r0, r6, #0
|
||||
bl ItemIsBottle
|
||||
cmp r0, #0
|
||||
bne _08054034
|
||||
adds r0, r6, #0
|
||||
bl PutItemOnSlot
|
||||
cmp r5, #0
|
||||
bne _08054034
|
||||
adds r0, r6, #0
|
||||
movs r1, #1
|
||||
bl SetInventoryValue
|
||||
_08054034:
|
||||
ldrb r0, [r4, #1]
|
||||
cmp r0, #0x12
|
||||
bls _0805403C
|
||||
b _0805427C
|
||||
_0805403C:
|
||||
lsls r0, r0, #2
|
||||
ldr r1, _08054048 @ =_0805404C
|
||||
adds r0, r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_08054048: .4byte _0805404C
|
||||
_0805404C: @ jump table
|
||||
.4byte _0805427C @ case 0
|
||||
.4byte _08054098 @ case 1
|
||||
.4byte _080540A6 @ case 2
|
||||
.4byte _080540C0 @ case 3
|
||||
.4byte _08054104 @ case 4
|
||||
.4byte _0805414C @ case 5
|
||||
.4byte _08054154 @ case 6
|
||||
.4byte _08054194 @ case 7
|
||||
.4byte _080541B6 @ case 8
|
||||
.4byte _080541F0 @ case 9
|
||||
.4byte _08054212 @ case 10
|
||||
.4byte _080541F8 @ case 11
|
||||
.4byte _08054238 @ case 12
|
||||
.4byte _08054174 @ case 13
|
||||
.4byte _08054240 @ case 14
|
||||
.4byte _0805425C @ case 15
|
||||
.4byte _08054264 @ case 16
|
||||
.4byte _080541B0 @ case 17
|
||||
.4byte _0805417C @ case 18
|
||||
_08054098:
|
||||
ldrb r0, [r4, #2]
|
||||
bl ModHealth
|
||||
movs r0, #0x71
|
||||
bl SoundReq
|
||||
b _0805427C
|
||||
_080540A6:
|
||||
ldr r0, _080540BC @ =gUnk_080FD5A8
|
||||
ldrb r1, [r4, #2]
|
||||
lsls r1, r1, #1
|
||||
adds r1, r1, r0
|
||||
ldrh r0, [r1]
|
||||
bl ModRupees
|
||||
movs r0, #0x6f
|
||||
bl SoundReq
|
||||
b _0805427C
|
||||
.align 2, 0
|
||||
_080540BC: .4byte gUnk_080FD5A8
|
||||
_080540C0:
|
||||
movs r5, #0
|
||||
movs r4, #0x1c
|
||||
b _080540CA
|
||||
_080540C6:
|
||||
adds r4, r1, #1
|
||||
adds r5, #1
|
||||
_080540CA:
|
||||
cmp r5, #3
|
||||
bls _080540D0
|
||||
b _0805427C
|
||||
_080540D0:
|
||||
adds r0, r4, #0
|
||||
bl GetInventoryValue
|
||||
adds r1, r4, #0
|
||||
cmp r0, #0
|
||||
bne _080540C6
|
||||
adds r6, r4, #0
|
||||
ldr r0, _08054100 @ =gSave
|
||||
adds r0, #0xb6
|
||||
adds r1, r5, r0
|
||||
ldrb r0, [r1]
|
||||
cmp r0, #0
|
||||
bne _080540EE
|
||||
movs r0, #0x20
|
||||
strb r0, [r1]
|
||||
_080540EE:
|
||||
adds r0, r6, #0
|
||||
movs r1, #1
|
||||
bl SetInventoryValue
|
||||
adds r0, r6, #0
|
||||
bl PutItemOnSlot
|
||||
b _0805427C
|
||||
.align 2, 0
|
||||
_08054100: .4byte gSave
|
||||
_08054104:
|
||||
movs r5, #0
|
||||
ldr r0, _08054144 @ =gSave
|
||||
adds r2, r0, #0
|
||||
adds r2, #0xb6
|
||||
ldrb r1, [r2]
|
||||
adds r3, r0, #0
|
||||
cmp r1, #0x20
|
||||
beq _08054126
|
||||
adds r1, r2, #0
|
||||
_08054116:
|
||||
adds r5, #1
|
||||
cmp r5, #3
|
||||
bls _0805411E
|
||||
b _0805427C
|
||||
_0805411E:
|
||||
adds r0, r5, r1
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0x20
|
||||
bne _08054116
|
||||
_08054126:
|
||||
cmp r5, #3
|
||||
bls _0805412C
|
||||
b _0805427C
|
||||
_0805412C:
|
||||
adds r0, r3, #0
|
||||
adds r0, #0xb6
|
||||
adds r0, r5, r0
|
||||
strb r6, [r0]
|
||||
adds r0, r6, #0
|
||||
movs r1, #1
|
||||
bl SetInventoryValue
|
||||
ldr r0, _08054148 @ =0x00000109
|
||||
bl SoundReq
|
||||
b _0805427C
|
||||
.align 2, 0
|
||||
_08054144: .4byte gSave
|
||||
_08054148: .4byte 0x00000109
|
||||
_0805414C:
|
||||
movs r0, #1
|
||||
bl sub_080526F8
|
||||
b _0805424E
|
||||
_08054154:
|
||||
ldr r1, _08054168 @ =gSave
|
||||
ldr r0, _0805416C @ =gArea
|
||||
ldr r2, _08054170 @ =0x0000046C
|
||||
adds r1, r1, r2
|
||||
ldrb r0, [r0, #3]
|
||||
adds r1, r1, r0
|
||||
ldrb r0, [r1]
|
||||
ldrb r2, [r4, #2]
|
||||
orrs r0, r2
|
||||
b _0805427A
|
||||
.align 2, 0
|
||||
_08054168: .4byte gSave
|
||||
_0805416C: .4byte gArea
|
||||
_08054170: .4byte 0x0000046C
|
||||
_08054174:
|
||||
movs r0, #0x72
|
||||
bl sub_0801E738
|
||||
b _0805427C
|
||||
_0805417C:
|
||||
cmp r6, #0xb
|
||||
bne _0805418A
|
||||
movs r0, #0xc
|
||||
movs r1, #0
|
||||
bl SetInventoryValue
|
||||
b _080541B0
|
||||
_0805418A:
|
||||
movs r0, #0xb
|
||||
movs r1, #0
|
||||
bl SetInventoryValue
|
||||
b _080541B0
|
||||
_08054194:
|
||||
cmp r6, #7
|
||||
bne _080541A2
|
||||
movs r0, #8
|
||||
movs r1, #0
|
||||
bl SetInventoryValue
|
||||
b _080541AA
|
||||
_080541A2:
|
||||
movs r0, #7
|
||||
movs r1, #0
|
||||
bl SetInventoryValue
|
||||
_080541AA:
|
||||
movs r0, #0x63
|
||||
bl ModBombs
|
||||
_080541B0:
|
||||
bl LoadItemGfx
|
||||
b _0805427C
|
||||
_080541B6:
|
||||
cmp r5, #0
|
||||
bne _080541CA
|
||||
movs r0, #7
|
||||
movs r1, #1
|
||||
bl SetInventoryValue
|
||||
movs r0, #7
|
||||
bl PutItemOnSlot
|
||||
b _080541E2
|
||||
_080541CA:
|
||||
ldr r0, _080541EC @ =gSave
|
||||
adds r1, r0, #0
|
||||
adds r1, #0xae
|
||||
ldrb r0, [r1]
|
||||
adds r0, #1
|
||||
strb r0, [r1]
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
cmp r0, #3
|
||||
bls _080541E2
|
||||
movs r0, #3
|
||||
strb r0, [r1]
|
||||
_080541E2:
|
||||
movs r0, #0x63
|
||||
bl ModBombs
|
||||
b _0805427C
|
||||
.align 2, 0
|
||||
_080541EC: .4byte gSave
|
||||
_080541F0:
|
||||
ldrb r0, [r4, #2]
|
||||
bl ModBombs
|
||||
b _0805424E
|
||||
_080541F8:
|
||||
movs r0, #0x66
|
||||
bl GetInventoryValue
|
||||
cmp r0, #0
|
||||
bne _0805420A
|
||||
movs r0, #0x66
|
||||
movs r1, #1
|
||||
bl SetInventoryValue
|
||||
_0805420A:
|
||||
movs r0, #0x63
|
||||
bl ModArrows
|
||||
b _080541B0
|
||||
_08054212:
|
||||
ldr r0, _08054234 @ =gSave
|
||||
adds r1, r0, #0
|
||||
adds r1, #0xaf
|
||||
ldrb r0, [r1]
|
||||
adds r0, #1
|
||||
strb r0, [r1]
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
cmp r0, #3
|
||||
bls _0805422A
|
||||
movs r0, #3
|
||||
strb r0, [r1]
|
||||
_0805422A:
|
||||
movs r0, #0x63
|
||||
bl ModArrows
|
||||
b _0805427C
|
||||
.align 2, 0
|
||||
_08054234: .4byte gSave
|
||||
_08054238:
|
||||
ldrb r0, [r4, #2]
|
||||
bl ModArrows
|
||||
b _0805424E
|
||||
_08054240:
|
||||
movs r0, #0x3f
|
||||
movs r1, #1
|
||||
bl SetInventoryValue
|
||||
adds r0, r7, #0
|
||||
bl ModShells
|
||||
_0805424E:
|
||||
ldr r0, _08054258 @ =0x00000103
|
||||
bl SoundReq
|
||||
b _0805427C
|
||||
.align 2, 0
|
||||
_08054258: .4byte 0x00000103
|
||||
_0805425C:
|
||||
adds r0, r7, #0
|
||||
bl sub_0801E738
|
||||
b _0805427C
|
||||
_08054264:
|
||||
ldr r0, _08054284 @ =gSave
|
||||
adds r1, r0, #0
|
||||
adds r1, #0xa8
|
||||
ldrb r0, [r1]
|
||||
adds r0, #1
|
||||
strb r0, [r1]
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
cmp r0, #3
|
||||
bls _0805427C
|
||||
movs r0, #3
|
||||
_0805427A:
|
||||
strb r0, [r1]
|
||||
_0805427C:
|
||||
mov r0, r8
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_08054284: .4byte gSave
|
||||
.syntax divided
|
||||
@@ -0,0 +1,72 @@
|
||||
.syntax unified
|
||||
push {r4, lr}
|
||||
ldr r1, _080537DC @ =gMenu
|
||||
movs r2, #0
|
||||
movs r3, #1
|
||||
strb r3, [r1, #6]
|
||||
movs r4, #0
|
||||
movs r0, #0x78
|
||||
strh r0, [r1, #8]
|
||||
movs r0, #0x1e
|
||||
strh r0, [r1, #0xa]
|
||||
strb r4, [r1, #0x10]
|
||||
ldr r0, _080537E0 @ =gUnk_02032EC0
|
||||
strb r3, [r0, #6]
|
||||
ldr r0, _080537E4 @ =gMapBottom
|
||||
str r2, [r0]
|
||||
ldr r0, _080537E8 @ =gMapTop
|
||||
str r2, [r0]
|
||||
ldr r0, _080537EC @ =gRoomControls
|
||||
str r2, [r0, #0x30]
|
||||
strh r2, [r0, #0xc]
|
||||
strh r2, [r0, #0xa]
|
||||
bl sub_0801B170
|
||||
movs r0, #0
|
||||
bl DispReset
|
||||
ldr r2, _080537F0 @ =gScreen
|
||||
movs r0, #0x99
|
||||
lsls r0, r0, #6
|
||||
strh r0, [r2]
|
||||
adds r1, r2, #0
|
||||
adds r1, #0x66
|
||||
ldr r0, _080537F4 @ =0x00002244
|
||||
strh r0, [r1]
|
||||
adds r1, #2
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #5
|
||||
strh r0, [r1]
|
||||
subs r1, #8
|
||||
movs r0, #0x1f
|
||||
strh r0, [r1]
|
||||
adds r1, #2
|
||||
movs r0, #0x3f
|
||||
strh r0, [r1]
|
||||
subs r1, #0xa
|
||||
movs r0, #0xf0
|
||||
strh r0, [r1]
|
||||
adds r1, #4
|
||||
movs r0, #0x60
|
||||
strh r0, [r1]
|
||||
ldr r0, _080537F8 @ =0x00001C4E
|
||||
strh r0, [r2, #0x14]
|
||||
ldr r0, _080537FC @ =0x00001DC1
|
||||
strh r0, [r2, #0x20]
|
||||
movs r0, #0xf
|
||||
bl SoundReq
|
||||
bl ResetSystemPriority
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #1
|
||||
movs r0, #5
|
||||
bl SetFade
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_080537DC: .4byte gMenu
|
||||
_080537E0: .4byte gUnk_02032EC0
|
||||
_080537E4: .4byte gMapBottom
|
||||
_080537E8: .4byte gMapTop
|
||||
_080537EC: .4byte gRoomControls
|
||||
_080537F0: .4byte gScreen
|
||||
_080537F4: .4byte 0x00002244
|
||||
_080537F8: .4byte 0x00001C4E
|
||||
_080537FC: .4byte 0x00001DC1
|
||||
.syntax divided
|
||||
@@ -0,0 +1,67 @@
|
||||
.syntax unified
|
||||
push {r4, r5, lr}
|
||||
ldr r0, _0805387C @ =gFadeControl
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _0805387A
|
||||
ldr r1, _08053880 @ =gMenu
|
||||
ldrb r5, [r1, #0x10]
|
||||
lsls r4, r5, #1
|
||||
adds r4, r4, r5
|
||||
lsls r4, r4, #2
|
||||
ldr r0, _08053884 @ =gUnk_080FCCB4
|
||||
adds r4, r4, r0
|
||||
ldrh r0, [r4, #8]
|
||||
movs r2, #0
|
||||
strh r0, [r1, #8]
|
||||
movs r0, #0x1e
|
||||
strh r0, [r1, #0xa]
|
||||
ldrb r0, [r1, #0x10]
|
||||
adds r0, #1
|
||||
strb r0, [r1, #0x10]
|
||||
ldrb r0, [r1, #6]
|
||||
adds r0, #1
|
||||
strb r0, [r1, #6]
|
||||
strb r2, [r1, #7]
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x8a
|
||||
bl LoadPaletteGroup
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x3a
|
||||
bl LoadGfxGroup
|
||||
ldr r0, _08053888 @ =gBG1Buffer
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #4
|
||||
bl MemClear
|
||||
ldr r0, _0805388C @ =0x00000F01
|
||||
adds r5, r5, r0
|
||||
ldr r1, [r4]
|
||||
adds r0, r5, #0
|
||||
bl sub_0805F46C
|
||||
ldr r2, _08053890 @ =gScreen
|
||||
movs r0, #1
|
||||
strh r0, [r2, #0x1a]
|
||||
adds r1, r2, #0
|
||||
adds r1, #0x68
|
||||
movs r0, #0x10
|
||||
strh r0, [r1]
|
||||
ldrh r1, [r4, #4]
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x58
|
||||
strh r1, [r0]
|
||||
ldrh r1, [r4, #6]
|
||||
adds r0, #4
|
||||
strh r1, [r0]
|
||||
ldrh r1, [r4, #0xa]
|
||||
movs r0, #4
|
||||
bl SetFade
|
||||
_0805387A:
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_0805387C: .4byte gFadeControl
|
||||
_08053880: .4byte gMenu
|
||||
_08053884: .4byte gUnk_080FCCB4
|
||||
_08053888: .4byte gBG1Buffer
|
||||
_0805388C: .4byte 0x00000F01
|
||||
_08053890: .4byte gScreen
|
||||
.syntax divided
|
||||
@@ -0,0 +1,57 @@
|
||||
.syntax unified
|
||||
push {r4, lr}
|
||||
ldr r0, _080538B4 @ =gFadeControl
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _080538F8
|
||||
ldr r1, _080538B8 @ =gMenu
|
||||
ldrh r0, [r1, #8]
|
||||
subs r0, #1
|
||||
strh r0, [r1, #8]
|
||||
ldrh r0, [r1, #0xa]
|
||||
adds r4, r1, #0
|
||||
cmp r0, #0
|
||||
beq _080538BC
|
||||
subs r0, #1
|
||||
strh r0, [r4, #0xa]
|
||||
b _080538E4
|
||||
.align 2, 0
|
||||
_080538B4: .4byte gFadeControl
|
||||
_080538B8: .4byte gMenu
|
||||
_080538BC:
|
||||
ldr r0, _080538FC @ =gRoomTransition
|
||||
ldr r0, [r0]
|
||||
movs r1, #1
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _080538E4
|
||||
ldrb r1, [r4, #7]
|
||||
cmp r1, #0xf
|
||||
bhi _080538E4
|
||||
adds r1, #1
|
||||
strb r1, [r4, #7]
|
||||
lsls r1, r1, #0x18
|
||||
ldr r3, _08053900 @ =gScreen
|
||||
lsrs r2, r1, #0x10
|
||||
lsrs r1, r1, #0x19
|
||||
movs r0, #0x10
|
||||
subs r0, r0, r1
|
||||
orrs r2, r0
|
||||
adds r3, #0x68
|
||||
strh r2, [r3]
|
||||
_080538E4:
|
||||
ldrh r0, [r4, #8]
|
||||
cmp r0, #0
|
||||
bne _080538F8
|
||||
ldrb r0, [r4, #6]
|
||||
adds r0, #1
|
||||
strb r0, [r4, #6]
|
||||
movs r0, #5
|
||||
movs r1, #8
|
||||
bl SetFade
|
||||
_080538F8:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_080538FC: .4byte gRoomTransition
|
||||
_08053900: .4byte gScreen
|
||||
.syntax divided
|
||||
@@ -0,0 +1,57 @@
|
||||
.syntax unified
|
||||
push {r4, lr}
|
||||
ldr r0, _08053924 @ =gFadeControl
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _08053968
|
||||
ldr r1, _08053928 @ =gMenu
|
||||
ldrh r0, [r1, #8]
|
||||
subs r0, #1
|
||||
strh r0, [r1, #8]
|
||||
ldrh r0, [r1, #0xa]
|
||||
adds r4, r1, #0
|
||||
cmp r0, #0
|
||||
beq _0805392C
|
||||
subs r0, #1
|
||||
strh r0, [r4, #0xa]
|
||||
b _08053954
|
||||
.align 2, 0
|
||||
_08053924: .4byte gFadeControl
|
||||
_08053928: .4byte gMenu
|
||||
_0805392C:
|
||||
ldr r0, _0805396C @ =gRoomTransition
|
||||
ldr r0, [r0]
|
||||
movs r1, #1
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _08053954
|
||||
ldrb r1, [r4, #7]
|
||||
cmp r1, #0xf
|
||||
bhi _08053954
|
||||
adds r1, #1
|
||||
strb r1, [r4, #7]
|
||||
lsls r1, r1, #0x18
|
||||
ldr r3, _08053970 @ =gScreen
|
||||
lsrs r2, r1, #0x10
|
||||
lsrs r1, r1, #0x19
|
||||
movs r0, #0x10
|
||||
subs r0, r0, r1
|
||||
orrs r2, r0
|
||||
adds r3, #0x68
|
||||
strh r2, [r3]
|
||||
_08053954:
|
||||
ldrh r0, [r4, #8]
|
||||
cmp r0, #0
|
||||
bne _08053968
|
||||
ldrb r0, [r4, #6]
|
||||
adds r0, #1
|
||||
strb r0, [r4, #6]
|
||||
movs r0, #5
|
||||
movs r1, #1
|
||||
bl SetFade
|
||||
_08053968:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_0805396C: .4byte gRoomTransition
|
||||
_08053970: .4byte gScreen
|
||||
.syntax divided
|
||||
@@ -0,0 +1,47 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, lr}
|
||||
ldr r6, _08053D20 @ =gMenu
|
||||
ldrb r4, [r6, #3]
|
||||
lsls r4, r4, #4
|
||||
ldr r0, _08053D24 @ =gUnk_080FCF04
|
||||
adds r4, r4, r0
|
||||
adds r0, r4, #0
|
||||
adds r0, #8
|
||||
str r0, [r6, #0xc]
|
||||
ldr r0, [r4]
|
||||
bl LoadRoomEntityList
|
||||
ldrb r0, [r4, #4]
|
||||
ldrb r1, [r4, #5]
|
||||
movs r2, #1
|
||||
bl GetRoomProperty
|
||||
bl LoadRoomEntityList
|
||||
ldrb r0, [r4, #4]
|
||||
ldrb r1, [r4, #5]
|
||||
movs r2, #2
|
||||
bl GetRoomProperty
|
||||
bl LoadRoomEntityList
|
||||
movs r5, #1
|
||||
strb r5, [r6, #6]
|
||||
ldr r2, _08053D28 @ =gScreen
|
||||
ldrh r1, [r2]
|
||||
ldr r0, _08053D2C @ =0x0000FEFF
|
||||
ands r0, r1
|
||||
strh r0, [r2]
|
||||
ldr r0, _08053D30 @ =gUpdateVisibleTiles
|
||||
strb r5, [r0]
|
||||
movs r0, #4
|
||||
movs r1, #0x10
|
||||
bl SetFade
|
||||
ldrb r0, [r4, #5]
|
||||
cmp r0, #0x1d
|
||||
bne _08053D1E
|
||||
strh r5, [r6, #0xa]
|
||||
_08053D1E:
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_08053D20: .4byte gMenu
|
||||
_08053D24: .4byte gUnk_080FCF04
|
||||
_08053D28: .4byte gScreen
|
||||
_08053D2C: .4byte 0x0000FEFF
|
||||
_08053D30: .4byte gUpdateVisibleTiles
|
||||
.syntax divided
|
||||
@@ -0,0 +1,40 @@
|
||||
.syntax unified
|
||||
push {r4, lr}
|
||||
ldr r4, _080548DC @ =gUnk_02032EC0
|
||||
ldrb r1, [r4, #3]
|
||||
lsls r0, r1, #2
|
||||
adds r0, r0, r1
|
||||
lsls r0, r0, #2
|
||||
ldr r1, _080548E0 @ =gUnk_080FE320
|
||||
adds r0, r0, r1
|
||||
ldr r2, _080548E4 @ =gMenu
|
||||
ldrb r1, [r0]
|
||||
movs r3, #0
|
||||
strb r1, [r2]
|
||||
ldrb r1, [r0, #1]
|
||||
strb r1, [r2, #3]
|
||||
ldrb r1, [r4, #3]
|
||||
strb r1, [r2, #4]
|
||||
str r0, [r2, #0xc]
|
||||
ldrb r0, [r2, #5]
|
||||
adds r0, #1
|
||||
strb r0, [r2, #5]
|
||||
strb r3, [r2, #6]
|
||||
movs r0, #0x96
|
||||
lsls r0, r0, #1
|
||||
strh r0, [r2, #8]
|
||||
movs r0, #0
|
||||
bl DispReset
|
||||
ldrb r0, [r4, #3]
|
||||
movs r1, #1
|
||||
bl sub_08054974
|
||||
bl sub_0806F364
|
||||
movs r0, #0xff
|
||||
bl ClearRoomFlag
|
||||
bl sub_080548E8
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_080548DC: .4byte gUnk_02032EC0
|
||||
_080548E0: .4byte gUnk_080FE320
|
||||
_080548E4: .4byte gMenu
|
||||
.syntax divided
|
||||
@@ -0,0 +1,33 @@
|
||||
.syntax unified
|
||||
push {lr}
|
||||
bl MessageInitialize
|
||||
bl sub_0806F38C
|
||||
ldr r1, _08054948 @ =gUnk_080C9CBC
|
||||
ldr r0, _0805494C @ =gFuseInfo
|
||||
ldrb r0, [r0, #3]
|
||||
lsls r0, r0, #3
|
||||
adds r0, r0, r1
|
||||
ldrb r0, [r0, #7]
|
||||
cmp r0, #0
|
||||
beq _08054954
|
||||
ldr r0, _08054950 @ =gUnk_02032EC0
|
||||
ldrb r1, [r0, #3]
|
||||
movs r0, #0xa
|
||||
bl MenuFadeIn
|
||||
b _08054962
|
||||
.align 2, 0
|
||||
_08054948: .4byte gUnk_080C9CBC
|
||||
_0805494C: .4byte gFuseInfo
|
||||
_08054950: .4byte gUnk_02032EC0
|
||||
_08054954:
|
||||
ldr r1, _08054964 @ =gUnk_02032EC0
|
||||
movs r0, #3
|
||||
strb r0, [r1]
|
||||
movs r0, #7
|
||||
movs r1, #0x10
|
||||
bl SetFade
|
||||
_08054962:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_08054964: .4byte gUnk_02032EC0
|
||||
.syntax divided
|
||||
@@ -0,0 +1,70 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, lr}
|
||||
adds r5, r1, #0
|
||||
lsls r1, r0, #2
|
||||
adds r1, r1, r0
|
||||
lsls r1, r1, #2
|
||||
ldr r0, _080549B0 @ =gUnk_080FE320
|
||||
adds r6, r1, r0
|
||||
ldrb r0, [r6, #2]
|
||||
ldrb r1, [r6, #3]
|
||||
bl SetCurrentRoomPropertyList
|
||||
ldr r4, _080549B4 @ =gRoomControls
|
||||
ldrb r0, [r6, #2]
|
||||
strb r0, [r4, #4]
|
||||
ldrb r0, [r6, #3]
|
||||
strb r0, [r4, #5]
|
||||
bl LoadGfxGroups
|
||||
ldrb r0, [r4, #4]
|
||||
bl GetFlagBankOffset
|
||||
ldr r1, _080549B8 @ =gArea
|
||||
strh r0, [r1, #4]
|
||||
cmp r5, #0
|
||||
beq _080549BC
|
||||
ldrb r0, [r6, #2]
|
||||
ldrb r1, [r6, #3]
|
||||
bl LoadAuxiliaryRoom
|
||||
b _080549CE
|
||||
.align 2, 0
|
||||
_080549B0: .4byte gUnk_080FE320
|
||||
_080549B4: .4byte gRoomControls
|
||||
_080549B8: .4byte gArea
|
||||
_080549BC:
|
||||
ldrb r0, [r6, #2]
|
||||
ldrb r1, [r6, #3]
|
||||
bl sub_08052FF4
|
||||
bl sub_0807C740
|
||||
ldr r1, _08054A00 @ =gUpdateVisibleTiles
|
||||
movs r0, #1
|
||||
strb r0, [r1]
|
||||
_080549CE:
|
||||
ldr r2, _08054A04 @ =gScreen
|
||||
ldrh r1, [r2]
|
||||
ldr r0, _08054A08 @ =0x00001FFF
|
||||
ands r0, r1
|
||||
strh r0, [r2]
|
||||
ldr r1, _08054A0C @ =gRoomControls
|
||||
ldrh r0, [r6, #4]
|
||||
ldrh r2, [r1, #6]
|
||||
adds r0, r0, r2
|
||||
strh r0, [r1, #0xa]
|
||||
ldrh r0, [r6, #6]
|
||||
ldrh r2, [r1, #8]
|
||||
adds r0, r0, r2
|
||||
strh r0, [r1, #0xc]
|
||||
ldrb r0, [r6, #2]
|
||||
cmp r0, #2
|
||||
bne _080549F4
|
||||
bl TryLoadPrologueHyruleTown
|
||||
_080549F4:
|
||||
ldr r0, _08054A10 @ =gUnk_02032EC0
|
||||
ldrb r0, [r0, #3]
|
||||
bl sub_08018710
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_08054A00: .4byte gUpdateVisibleTiles
|
||||
_08054A04: .4byte gScreen
|
||||
_08054A08: .4byte 0x00001FFF
|
||||
_08054A0C: .4byte gRoomControls
|
||||
_08054A10: .4byte gUnk_02032EC0
|
||||
.syntax divided
|
||||
@@ -0,0 +1,22 @@
|
||||
.syntax unified
|
||||
push {lr}
|
||||
lsls r1, r0, #2
|
||||
adds r1, r1, r0
|
||||
lsls r1, r1, #2
|
||||
ldr r0, _08054A38 @ =gUnk_080FE320
|
||||
adds r2, r1, r0
|
||||
ldrb r0, [r2, #0x11]
|
||||
cmp r0, #0xd
|
||||
bhi _08054A34
|
||||
ldr r1, _08054A3C @ =gLocalFlagBanks
|
||||
lsls r0, r0, #1
|
||||
adds r0, r0, r1
|
||||
ldrh r0, [r0]
|
||||
ldrh r1, [r2, #0x12]
|
||||
bl SetLocalFlagByBank
|
||||
_08054A34:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_08054A38: .4byte gUnk_080FE320
|
||||
_08054A3C: .4byte gLocalFlagBanks
|
||||
.syntax divided
|
||||
@@ -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
|
||||
@@ -0,0 +1,73 @@
|
||||
.syntax unified
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldr r0, _0808085C @ =gRoomTransition
|
||||
movs r1, #1
|
||||
strb r1, [r0, #8]
|
||||
adds r2, r0, #0
|
||||
adds r2, #0xc
|
||||
ldrh r1, [r4, #6]
|
||||
ldr r0, _08080860 @ =0x000003FF
|
||||
cmp r1, r0
|
||||
bhi _08080864
|
||||
strh r1, [r2, #4]
|
||||
b _08080872
|
||||
.align 2, 0
|
||||
_0808085C: .4byte gRoomTransition
|
||||
_08080860: .4byte 0x000003FF
|
||||
_08080864:
|
||||
ldr r0, _08080880 @ =gRoomControls
|
||||
ldr r0, [r0, #0x30]
|
||||
ldrh r1, [r0, #0x2e]
|
||||
ldr r3, _08080884 @ =0xFFFF8000
|
||||
adds r0, r3, #0
|
||||
orrs r0, r1
|
||||
strh r0, [r2, #4]
|
||||
_08080872:
|
||||
ldrh r1, [r4, #8]
|
||||
ldr r0, _08080888 @ =0x000003FF
|
||||
cmp r1, r0
|
||||
bhi _0808088C
|
||||
strh r1, [r2, #6]
|
||||
b _0808089A
|
||||
.align 2, 0
|
||||
_08080880: .4byte gRoomControls
|
||||
_08080884: .4byte 0xFFFF8000
|
||||
_08080888: .4byte 0x000003FF
|
||||
_0808088C:
|
||||
ldr r0, _080808CC @ =gRoomControls
|
||||
ldr r0, [r0, #0x30]
|
||||
ldrh r1, [r0, #0x32]
|
||||
ldr r3, _080808D0 @ =0xFFFF8000
|
||||
adds r0, r3, #0
|
||||
orrs r0, r1
|
||||
strh r0, [r2, #6]
|
||||
_0808089A:
|
||||
ldrb r0, [r4, #0xb]
|
||||
strb r0, [r2]
|
||||
ldrb r0, [r4, #0xc]
|
||||
strb r0, [r2, #1]
|
||||
ldrb r0, [r4, #0xd]
|
||||
strb r0, [r2, #8]
|
||||
ldrb r0, [r4, #0xe]
|
||||
strb r0, [r2, #3]
|
||||
ldrb r0, [r4, #0xf]
|
||||
strb r0, [r2, #2]
|
||||
ldrh r0, [r4, #0x10]
|
||||
cmp r0, #0
|
||||
beq _080808B8
|
||||
bl SoundReq
|
||||
_080808B8:
|
||||
ldr r0, _080808D4 @ =gUnk_0811E7C4
|
||||
ldrh r1, [r4]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r0
|
||||
ldrb r0, [r4, #0xa]
|
||||
ldr r1, [r1]
|
||||
bl _call_via_r1
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_080808CC: .4byte gRoomControls
|
||||
_080808D0: .4byte 0xFFFF8000
|
||||
_080808D4: .4byte gUnk_0811E7C4
|
||||
.syntax divided
|
||||
@@ -0,0 +1,119 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, r7, lr}
|
||||
ldr r7, _08080A70 @ =gRoomControls
|
||||
ldr r1, [r7, #0x30]
|
||||
ldr r0, _08080A74 @ =gPlayerEntity
|
||||
adds r2, r7, #0
|
||||
cmp r1, r0
|
||||
beq _08080A50
|
||||
b _08080B5C
|
||||
_08080A50:
|
||||
ldr r0, _08080A78 @ =gPlayerState
|
||||
ldrb r0, [r0, #2]
|
||||
cmp r0, #0
|
||||
beq _08080A5A
|
||||
b _08080B5C
|
||||
_08080A5A:
|
||||
ldrb r0, [r1, #0xc]
|
||||
subs r0, #1
|
||||
cmp r0, #0x1c
|
||||
bls _08080A64
|
||||
b _08080B5C
|
||||
_08080A64:
|
||||
lsls r0, r0, #2
|
||||
ldr r1, _08080A7C @ =_08080A80
|
||||
adds r0, r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_08080A70: .4byte gRoomControls
|
||||
_08080A74: .4byte gPlayerEntity
|
||||
_08080A78: .4byte gPlayerState
|
||||
_08080A7C: .4byte _08080A80
|
||||
_08080A80: @ jump table
|
||||
.4byte _08080AFA @ case 0
|
||||
.4byte _08080B5C @ case 1
|
||||
.4byte _08080B5C @ case 2
|
||||
.4byte _08080B5C @ case 3
|
||||
.4byte _08080B5C @ case 4
|
||||
.4byte _08080B5C @ case 5
|
||||
.4byte _08080B5C @ case 6
|
||||
.4byte _08080B5C @ case 7
|
||||
.4byte _08080AFA @ case 8
|
||||
.4byte _08080B5C @ case 9
|
||||
.4byte _08080B5C @ case 10
|
||||
.4byte _08080B5C @ case 11
|
||||
.4byte _08080B5C @ case 12
|
||||
.4byte _08080B5C @ case 13
|
||||
.4byte _08080AF4 @ case 14
|
||||
.4byte _08080B5C @ case 15
|
||||
.4byte _08080B5C @ case 16
|
||||
.4byte _08080B5C @ case 17
|
||||
.4byte _08080B5C @ case 18
|
||||
.4byte _08080B5C @ case 19
|
||||
.4byte _08080B5C @ case 20
|
||||
.4byte _08080B5C @ case 21
|
||||
.4byte _08080B5C @ case 22
|
||||
.4byte _08080AFA @ case 23
|
||||
.4byte _08080B5C @ case 24
|
||||
.4byte _08080B5C @ case 25
|
||||
.4byte _08080B5C @ case 26
|
||||
.4byte _08080B5C @ case 27
|
||||
.4byte _08080AFA @ case 28
|
||||
_08080AF4:
|
||||
ldrb r0, [r2, #4]
|
||||
cmp r0, #0x48
|
||||
beq _08080B5C
|
||||
_08080AFA:
|
||||
ldr r3, [r7, #0x30]
|
||||
movs r0, #0x32
|
||||
ldrsh r1, [r3, r0]
|
||||
ldrh r0, [r7, #8]
|
||||
subs r6, r1, r0
|
||||
movs r0, #0x2e
|
||||
ldrsh r1, [r3, r0]
|
||||
ldrh r0, [r7, #6]
|
||||
subs r5, r1, r0
|
||||
asrs r0, r5, #4
|
||||
movs r2, #0x3f
|
||||
ands r0, r2
|
||||
asrs r1, r6, #4
|
||||
ands r1, r2
|
||||
lsls r1, r1, #6
|
||||
orrs r0, r1
|
||||
adds r3, #0x38
|
||||
ldrb r1, [r3]
|
||||
bl sub_080002C8
|
||||
adds r4, r0, #0
|
||||
ldr r0, [r7, #0x30]
|
||||
adds r0, #0x38
|
||||
ldrb r2, [r0]
|
||||
adds r0, r5, #0
|
||||
adds r1, r6, #0
|
||||
bl sub_080002A8
|
||||
ldr r1, _08080B48 @ =gRoomTransition
|
||||
strh r0, [r1, #0xa]
|
||||
cmp r4, #0x3f
|
||||
beq _08080B50
|
||||
cmp r4, #0x3f
|
||||
bhi _08080B4C
|
||||
cmp r4, #0x29
|
||||
bhi _08080B5C
|
||||
cmp r4, #0x28
|
||||
blo _08080B5C
|
||||
b _08080B50
|
||||
.align 2, 0
|
||||
_08080B48: .4byte gRoomTransition
|
||||
_08080B4C:
|
||||
cmp r4, #0xf1
|
||||
bne _08080B5C
|
||||
_08080B50:
|
||||
adds r0, r5, #0
|
||||
adds r1, r6, #0
|
||||
movs r2, #0xff
|
||||
movs r3, #0xa
|
||||
bl sub_080806BC
|
||||
_08080B5C:
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
.syntax divided
|
||||
@@ -0,0 +1,170 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, r7, lr}
|
||||
adds r2, r0, #0
|
||||
ldr r0, [r2, #0x30]
|
||||
cmp r0, #0
|
||||
bne _0807FC88
|
||||
b _0807FDA6
|
||||
_0807FC88:
|
||||
movs r1, #0xa
|
||||
ldrsh r4, [r2, r1]
|
||||
movs r1, #0x2e
|
||||
ldrsh r0, [r0, r1]
|
||||
subs r0, #0x78
|
||||
subs r3, r4, r0
|
||||
cmp r3, #0
|
||||
beq _0807FD16
|
||||
ldrh r6, [r2, #0xa]
|
||||
movs r7, #7
|
||||
ands r7, r6
|
||||
mov ip, r6
|
||||
cmp r3, #0
|
||||
ble _0807FCDC
|
||||
ldrh r0, [r2, #6]
|
||||
adds r5, r0, #0
|
||||
cmp r5, r4
|
||||
bge _0807FD16
|
||||
ldrb r0, [r2, #0xe]
|
||||
cmp r0, r3
|
||||
bgt _0807FCBC
|
||||
adds r3, r0, #0
|
||||
ldrb r1, [r2, #0xf]
|
||||
movs r0, #4
|
||||
orrs r0, r1
|
||||
strb r0, [r2, #0xf]
|
||||
_0807FCBC:
|
||||
mov r1, ip
|
||||
subs r0, r1, r3
|
||||
strh r0, [r2, #0xa]
|
||||
subs r0, r7, r3
|
||||
cmp r0, #0
|
||||
bgt _0807FCCE
|
||||
ldr r1, _0807FCD8 @ =gUpdateVisibleTiles
|
||||
movs r0, #1
|
||||
strb r0, [r1]
|
||||
_0807FCCE:
|
||||
movs r1, #0xa
|
||||
ldrsh r0, [r2, r1]
|
||||
cmp r5, r0
|
||||
blt _0807FD16
|
||||
b _0807FD14
|
||||
.align 2, 0
|
||||
_0807FCD8: .4byte gUpdateVisibleTiles
|
||||
_0807FCDC:
|
||||
ldrh r0, [r2, #6]
|
||||
ldrh r1, [r2, #0x1e]
|
||||
adds r0, r0, r1
|
||||
adds r5, r0, #0
|
||||
subs r5, #0xf0
|
||||
cmp r4, r5
|
||||
bge _0807FD16
|
||||
ldrb r0, [r2, #0xe]
|
||||
rsbs r0, r0, #0
|
||||
cmp r0, r3
|
||||
blt _0807FCFC
|
||||
adds r3, r0, #0
|
||||
ldrb r1, [r2, #0xf]
|
||||
movs r0, #4
|
||||
orrs r0, r1
|
||||
strb r0, [r2, #0xf]
|
||||
_0807FCFC:
|
||||
subs r0, r6, r3
|
||||
strh r0, [r2, #0xa]
|
||||
subs r0, r7, r3
|
||||
cmp r0, #7
|
||||
ble _0807FD0C
|
||||
ldr r1, _0807FD68 @ =gUpdateVisibleTiles
|
||||
movs r0, #1
|
||||
strb r0, [r1]
|
||||
_0807FD0C:
|
||||
movs r1, #0xa
|
||||
ldrsh r0, [r2, r1]
|
||||
cmp r0, r5
|
||||
blt _0807FD16
|
||||
_0807FD14:
|
||||
strh r5, [r2, #0xa]
|
||||
_0807FD16:
|
||||
movs r0, #0xc
|
||||
ldrsh r4, [r2, r0]
|
||||
ldr r0, [r2, #0x30]
|
||||
movs r1, #0x32
|
||||
ldrsh r0, [r0, r1]
|
||||
subs r0, #0x50
|
||||
subs r3, r4, r0
|
||||
cmp r3, #0
|
||||
beq _0807FDA6
|
||||
ldrh r6, [r2, #0xc]
|
||||
movs r7, #7
|
||||
ands r7, r6
|
||||
mov ip, r6
|
||||
cmp r3, #0
|
||||
ble _0807FD6C
|
||||
ldrh r0, [r2, #8]
|
||||
adds r5, r0, #0
|
||||
cmp r5, r4
|
||||
bge _0807FDA6
|
||||
ldrb r0, [r2, #0xe]
|
||||
cmp r0, r3
|
||||
bgt _0807FD4C
|
||||
adds r3, r0, #0
|
||||
ldrb r1, [r2, #0xf]
|
||||
movs r0, #4
|
||||
orrs r0, r1
|
||||
strb r0, [r2, #0xf]
|
||||
_0807FD4C:
|
||||
mov r1, ip
|
||||
subs r0, r1, r3
|
||||
strh r0, [r2, #0xc]
|
||||
subs r0, r7, r3
|
||||
cmp r0, #0
|
||||
bgt _0807FD5E
|
||||
ldr r1, _0807FD68 @ =gUpdateVisibleTiles
|
||||
movs r0, #1
|
||||
strb r0, [r1]
|
||||
_0807FD5E:
|
||||
movs r1, #0xc
|
||||
ldrsh r0, [r2, r1]
|
||||
cmp r5, r0
|
||||
blt _0807FDA6
|
||||
b _0807FDA4
|
||||
.align 2, 0
|
||||
_0807FD68: .4byte gUpdateVisibleTiles
|
||||
_0807FD6C:
|
||||
ldrh r0, [r2, #8]
|
||||
ldrh r1, [r2, #0x20]
|
||||
adds r0, r0, r1
|
||||
adds r5, r0, #0
|
||||
subs r5, #0xa0
|
||||
cmp r4, r5
|
||||
bge _0807FDA6
|
||||
ldrb r0, [r2, #0xe]
|
||||
rsbs r0, r0, #0
|
||||
cmp r0, r3
|
||||
blt _0807FD8C
|
||||
adds r3, r0, #0
|
||||
ldrb r1, [r2, #0xf]
|
||||
movs r0, #4
|
||||
orrs r0, r1
|
||||
strb r0, [r2, #0xf]
|
||||
_0807FD8C:
|
||||
subs r0, r6, r3
|
||||
strh r0, [r2, #0xc]
|
||||
subs r0, r7, r3
|
||||
cmp r0, #7
|
||||
ble _0807FD9C
|
||||
ldr r1, _0807FDAC @ =gUpdateVisibleTiles
|
||||
movs r0, #1
|
||||
strb r0, [r1]
|
||||
_0807FD9C:
|
||||
movs r1, #0xc
|
||||
ldrsh r0, [r2, r1]
|
||||
cmp r0, r5
|
||||
blt _0807FDA6
|
||||
_0807FDA4:
|
||||
strh r5, [r2, #0xc]
|
||||
_0807FDA6:
|
||||
bl sub_08080BC4
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_0807FDAC: .4byte gUpdateVisibleTiles
|
||||
.syntax divided
|
||||
@@ -0,0 +1,110 @@
|
||||
.syntax unified
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldr r1, _0807FE18 @ =gUpdateVisibleTiles
|
||||
movs r0, #2
|
||||
strb r0, [r1]
|
||||
ldrh r0, [r4, #0x18]
|
||||
adds r0, #1
|
||||
strh r0, [r4, #0x18]
|
||||
ldrb r0, [r4, #0x10]
|
||||
cmp r0, #1
|
||||
beq _0807FE44
|
||||
cmp r0, #1
|
||||
bgt _0807FE1C
|
||||
cmp r0, #0
|
||||
beq _0807FE26
|
||||
b _0807FEB6
|
||||
.align 2, 0
|
||||
_0807FE18: .4byte gUpdateVisibleTiles
|
||||
_0807FE1C:
|
||||
cmp r0, #2
|
||||
beq _0807FE68
|
||||
cmp r0, #3
|
||||
beq _0807FE94
|
||||
b _0807FEB6
|
||||
_0807FE26:
|
||||
ldrh r0, [r4, #0xc]
|
||||
subs r0, #4
|
||||
strh r0, [r4, #0xc]
|
||||
ldr r1, [r4, #0x30]
|
||||
ldr r0, _0807FE3C @ =gPlayerEntity
|
||||
cmp r1, r0
|
||||
bne _0807FE80
|
||||
ldr r0, [r1, #0x30]
|
||||
ldr r2, _0807FE40 @ =0xFFFFA000
|
||||
b _0807FE7C
|
||||
.align 2, 0
|
||||
_0807FE3C: .4byte gPlayerEntity
|
||||
_0807FE40: .4byte 0xFFFFA000
|
||||
_0807FE44:
|
||||
ldrh r0, [r4, #0xa]
|
||||
adds r0, #4
|
||||
strh r0, [r4, #0xa]
|
||||
ldr r1, [r4, #0x30]
|
||||
ldr r0, _0807FE64 @ =gPlayerEntity
|
||||
cmp r1, r0
|
||||
bne _0807FE5C
|
||||
ldr r0, [r1, #0x2c]
|
||||
movs r2, #0x80
|
||||
lsls r2, r2, #7
|
||||
adds r0, r0, r2
|
||||
str r0, [r1, #0x2c]
|
||||
_0807FE5C:
|
||||
ldrh r0, [r4, #0x18]
|
||||
cmp r0, #0x3c
|
||||
bne _0807FEB6
|
||||
b _0807FE86
|
||||
.align 2, 0
|
||||
_0807FE64: .4byte gPlayerEntity
|
||||
_0807FE68:
|
||||
ldrh r0, [r4, #0xc]
|
||||
adds r0, #4
|
||||
strh r0, [r4, #0xc]
|
||||
ldr r1, [r4, #0x30]
|
||||
ldr r0, _0807FE90 @ =gPlayerEntity
|
||||
cmp r1, r0
|
||||
bne _0807FE80
|
||||
ldr r0, [r1, #0x30]
|
||||
movs r2, #0xc0
|
||||
lsls r2, r2, #7
|
||||
_0807FE7C:
|
||||
adds r0, r0, r2
|
||||
str r0, [r1, #0x30]
|
||||
_0807FE80:
|
||||
ldrh r0, [r4, #0x18]
|
||||
cmp r0, #0x28
|
||||
bne _0807FEB6
|
||||
_0807FE86:
|
||||
adds r0, r4, #0
|
||||
bl sub_0807FEC8
|
||||
b _0807FEB6
|
||||
.align 2, 0
|
||||
_0807FE90: .4byte gPlayerEntity
|
||||
_0807FE94:
|
||||
ldrh r0, [r4, #0xa]
|
||||
subs r0, #4
|
||||
strh r0, [r4, #0xa]
|
||||
ldr r1, [r4, #0x30]
|
||||
ldr r0, _0807FEC0 @ =gPlayerEntity
|
||||
cmp r1, r0
|
||||
bne _0807FEAA
|
||||
ldr r0, [r1, #0x2c]
|
||||
ldr r2, _0807FEC4 @ =0xFFFFC000
|
||||
adds r0, r0, r2
|
||||
str r0, [r1, #0x2c]
|
||||
_0807FEAA:
|
||||
ldrh r0, [r4, #0x18]
|
||||
cmp r0, #0x3c
|
||||
bne _0807FEB6
|
||||
adds r0, r4, #0
|
||||
bl sub_0807FEC8
|
||||
_0807FEB6:
|
||||
movs r0, #0
|
||||
strh r0, [r4, #0x16]
|
||||
bl sub_08080BC4
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_0807FEC0: .4byte gPlayerEntity
|
||||
_0807FEC4: .4byte 0xFFFFC000
|
||||
.syntax divided
|
||||
@@ -0,0 +1,57 @@
|
||||
.syntax unified
|
||||
push {r4, lr}
|
||||
movs r1, #1
|
||||
strb r1, [r0, #3]
|
||||
ldr r3, _0807FFC8 @ =gScreen
|
||||
ldrh r1, [r3]
|
||||
movs r2, #0x80
|
||||
lsls r2, r2, #7
|
||||
adds r0, r2, #0
|
||||
orrs r0, r1
|
||||
strh r0, [r3]
|
||||
adds r2, r3, #0
|
||||
adds r2, #0x60
|
||||
ldrb r0, [r2]
|
||||
movs r4, #0xb8
|
||||
lsls r4, r4, #5
|
||||
adds r1, r4, #0
|
||||
orrs r0, r1
|
||||
strh r0, [r2]
|
||||
adds r2, #2
|
||||
ldrh r1, [r2]
|
||||
movs r0, #0xff
|
||||
lsls r0, r0, #8
|
||||
ands r0, r1
|
||||
movs r1, #7
|
||||
movs r4, #0
|
||||
orrs r0, r1
|
||||
strh r0, [r2]
|
||||
adds r0, r3, #0
|
||||
adds r0, #0x5a
|
||||
movs r1, #0xf0
|
||||
strh r1, [r0]
|
||||
adds r0, #4
|
||||
strh r1, [r0]
|
||||
bl ResetPlayer
|
||||
bl ResetPlayerAnimationAndAction
|
||||
ldr r0, _0807FFCC @ =gUnk_03004030
|
||||
ldrb r0, [r0, #8]
|
||||
cmp r0, #0
|
||||
beq _0807FFD4
|
||||
ldr r1, _0807FFD0 @ =gPlayerEntity
|
||||
movs r0, #4
|
||||
strb r0, [r1, #0x14]
|
||||
b _0807FFD8
|
||||
.align 2, 0
|
||||
_0807FFC8: .4byte gScreen
|
||||
_0807FFCC: .4byte gUnk_03004030
|
||||
_0807FFD0: .4byte gPlayerEntity
|
||||
_0807FFD4:
|
||||
ldr r0, _0807FFE0 @ =gPlayerEntity
|
||||
strb r4, [r0, #0x14]
|
||||
_0807FFD8:
|
||||
bl sub_080809D4
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_0807FFE0: .4byte gPlayerEntity
|
||||
.syntax divided
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user