mirror of
https://github.com/pret/pmd-red.git
synced 2024-11-27 23:10:50 +00:00
909 lines
14 KiB
ArmAsm
909 lines
14 KiB
ArmAsm
#include "asm/constants/gba_constants.inc"
|
|
#include "asm/macros.inc"
|
|
|
|
.syntax unified
|
|
|
|
.text
|
|
|
|
thumb_func_start UpdateMakuhitaDialogue
|
|
UpdateMakuhitaDialogue:
|
|
push {r4,r5,lr}
|
|
sub sp, 0x18
|
|
ldr r1, _0802FFA4
|
|
ldr r0, [r1]
|
|
ldr r0, [r0, 0x8]
|
|
adds r5, r1, 0
|
|
cmp r0, 0xD
|
|
bls _0802FF9A
|
|
b _080301A0
|
|
_0802FF9A:
|
|
lsls r0, 2
|
|
ldr r1, _0802FFA8
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0802FFA4: .4byte gUnknown_203B318
|
|
_0802FFA8: .4byte _0802FFAC
|
|
.align 2, 0
|
|
_0802FFAC:
|
|
.4byte _0802FFE4
|
|
.4byte _08030000
|
|
.4byte _08030038
|
|
.4byte _08030050
|
|
.4byte _08030068
|
|
.4byte _08030074
|
|
.4byte _080300DC
|
|
.4byte _080300C4
|
|
.4byte _080300F4
|
|
.4byte _0803010C
|
|
.4byte _08030148
|
|
.4byte _08030174
|
|
.4byte _08030180
|
|
.4byte _080301A0
|
|
_0802FFE4:
|
|
bl sub_80301B0
|
|
ldr r2, _0802FFF8
|
|
ldr r0, _0802FFFC
|
|
ldr r5, [r0]
|
|
ldr r1, [r5, 0x4]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
b _0803000E
|
|
.align 2, 0
|
|
_0802FFF8: .4byte gMakuhitaDialogue
|
|
_0802FFFC: .4byte gUnknown_203B318
|
|
_08030000:
|
|
ldr r2, _08030034
|
|
ldr r5, [r5]
|
|
ldr r1, [r5, 0x4]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r2, 0x4
|
|
_0803000E:
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
ldr r2, [r5, 0x14]
|
|
adds r3, r5, 0
|
|
adds r3, 0x18
|
|
movs r4, 0
|
|
str r4, [sp]
|
|
movs r1, 0x4
|
|
str r1, [sp, 0x4]
|
|
str r4, [sp, 0x8]
|
|
ldr r1, [r5, 0x68]
|
|
str r1, [sp, 0xC]
|
|
movs r1, 0xC
|
|
str r1, [sp, 0x10]
|
|
movs r1, 0
|
|
bl sub_8014248
|
|
b _080301A0
|
|
.align 2, 0
|
|
_08030034: .4byte gMakuhitaDialogue
|
|
_08030038:
|
|
ldr r3, [r5]
|
|
movs r0, 0xD
|
|
str r0, [r3, 0xC]
|
|
ldr r2, _0803004C
|
|
ldr r1, [r3, 0x4]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r2, 0x8
|
|
b _0803015A
|
|
.align 2, 0
|
|
_0803004C: .4byte gMakuhitaDialogue
|
|
_08030050:
|
|
ldr r3, [r5]
|
|
movs r0, 0x4
|
|
str r0, [r3, 0xC]
|
|
ldr r2, _08030064
|
|
ldr r1, [r3, 0x4]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r2, 0xC
|
|
b _0803015A
|
|
.align 2, 0
|
|
_08030064: .4byte gMakuhitaDialogue
|
|
_08030068:
|
|
movs r0, 0x3
|
|
movs r1, 0
|
|
movs r2, 0xA
|
|
bl sub_80302E8
|
|
b _080301A0
|
|
_08030074:
|
|
ldr r1, [r5]
|
|
movs r0, 0xD
|
|
str r0, [r1, 0xC]
|
|
movs r2, 0x10
|
|
ldrsh r0, [r1, r2]
|
|
bl sub_80A2740
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, _080300B4
|
|
ldr r1, [sp, 0x14]
|
|
ands r1, r2
|
|
orrs r1, r0
|
|
ldr r0, _080300B8
|
|
ands r1, r0
|
|
movs r0, 0x80
|
|
lsls r0, 1
|
|
orrs r1, r0
|
|
str r1, [sp, 0x14]
|
|
ldr r0, _080300BC
|
|
add r1, sp, 0x14
|
|
bl PrintYellowDungeonNametoBuffer
|
|
ldr r2, _080300C0
|
|
ldr r3, [r5]
|
|
ldr r1, [r3, 0x4]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r2, 0x10
|
|
b _0803015A
|
|
.align 2, 0
|
|
_080300B4: .4byte 0xffffff00
|
|
_080300B8: .4byte 0xffff00ff
|
|
_080300BC: .4byte gAvailablePokemonNames
|
|
_080300C0: .4byte gMakuhitaDialogue
|
|
_080300C4:
|
|
ldr r3, [r5]
|
|
movs r0, 0xD
|
|
str r0, [r3, 0xC]
|
|
ldr r2, _080300D8
|
|
ldr r1, [r3, 0x4]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r2, 0x18
|
|
b _0803015A
|
|
.align 2, 0
|
|
_080300D8: .4byte gMakuhitaDialogue
|
|
_080300DC:
|
|
ldr r3, [r5]
|
|
movs r0, 0xD
|
|
str r0, [r3, 0xC]
|
|
ldr r2, _080300F0
|
|
ldr r1, [r3, 0x4]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r2, 0x14
|
|
b _0803015A
|
|
.align 2, 0
|
|
_080300F0: .4byte gMakuhitaDialogue
|
|
_080300F4:
|
|
ldr r3, [r5]
|
|
movs r0, 0x9
|
|
str r0, [r3, 0xC]
|
|
ldr r2, _08030108
|
|
ldr r1, [r3, 0x4]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r2, 0x1C
|
|
b _0803015A
|
|
.align 2, 0
|
|
_08030108: .4byte gMakuhitaDialogue
|
|
_0803010C:
|
|
ldr r4, _08030138
|
|
bl GetPlayerPokemonStruct
|
|
adds r1, r0, 0
|
|
adds r0, r4, 0
|
|
movs r2, 0x6
|
|
bl PrintColoredPokeNameToBuffer
|
|
ldr r0, _0803013C
|
|
ldr r1, [r0]
|
|
movs r0, 0xB
|
|
str r0, [r1, 0xC]
|
|
movs r0, 0xCB
|
|
bl PlaySound
|
|
ldr r0, _08030140
|
|
ldr r3, _08030144
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl sub_80141B4
|
|
b _080301A0
|
|
.align 2, 0
|
|
_08030138: .4byte gPlayerName
|
|
_0803013C: .4byte gUnknown_203B318
|
|
_08030140: .4byte gUnknown_80E0778
|
|
_08030144: .4byte 0x00000101
|
|
_08030148:
|
|
ldr r3, [r5]
|
|
movs r0, 0xD
|
|
str r0, [r3, 0xC]
|
|
ldr r2, _0803016C
|
|
ldr r1, [r3, 0x4]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r2, 0x20
|
|
_0803015A:
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
ldr r2, [r3, 0x68]
|
|
ldr r3, _08030170
|
|
movs r1, 0
|
|
bl sub_80141B4
|
|
b _080301A0
|
|
.align 2, 0
|
|
_0803016C: .4byte gMakuhitaDialogue
|
|
_08030170: .4byte 0x0000010d
|
|
_08030174:
|
|
movs r0, 0x1
|
|
movs r1, 0x49
|
|
movs r2, 0x1
|
|
bl sub_801B60C
|
|
b _080301A0
|
|
_08030180:
|
|
ldr r3, [r5]
|
|
movs r0, 0x1
|
|
str r0, [r3, 0xC]
|
|
ldr r2, _080301A8
|
|
ldr r1, [r3, 0x4]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r2, 0x24
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
ldr r2, [r3, 0x68]
|
|
ldr r3, _080301AC
|
|
movs r1, 0
|
|
bl sub_80141B4
|
|
_080301A0:
|
|
add sp, 0x18
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080301A8: .4byte gMakuhitaDialogue
|
|
_080301AC: .4byte 0x0000010d
|
|
thumb_func_end UpdateMakuhitaDialogue
|
|
|
|
thumb_func_start sub_80301B0
|
|
sub_80301B0:
|
|
push {r4,lr}
|
|
ldr r4, _080301F8
|
|
ldr r1, [r4]
|
|
movs r2, 0x2
|
|
str r2, [r1, 0x14]
|
|
ldr r0, _080301FC
|
|
str r0, [r1, 0x18]
|
|
str r2, [r1, 0x1C]
|
|
bl sub_80306A4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080301D6
|
|
ldr r0, [r4]
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
str r1, [r0, 0x1C]
|
|
movs r1, 0x1
|
|
str r1, [r0, 0x14]
|
|
_080301D6:
|
|
ldr r1, [r4]
|
|
movs r2, 0x1
|
|
ldr r0, _08030200
|
|
ldr r0, [r0]
|
|
str r0, [r1, 0x20]
|
|
movs r0, 0x3
|
|
str r0, [r1, 0x24]
|
|
ldr r0, _08030204
|
|
ldr r0, [r0]
|
|
str r0, [r1, 0x28]
|
|
str r2, [r1, 0x2C]
|
|
movs r0, 0
|
|
str r0, [r1, 0x30]
|
|
str r2, [r1, 0x34]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080301F8: .4byte gUnknown_203B318
|
|
_080301FC: .4byte gUnknown_80E07D8
|
|
_08030200: .4byte gUnknown_80D4970
|
|
_08030204: .4byte gUnknown_80D4934
|
|
thumb_func_end sub_80301B0
|
|
|
|
thumb_func_start sub_8030208
|
|
sub_8030208:
|
|
push {lr}
|
|
sub sp, 0x4
|
|
mov r0, sp
|
|
bl sub_80144A4
|
|
cmp r0, 0
|
|
bne _08030250
|
|
ldr r0, _08030230
|
|
ldr r1, [r0]
|
|
ldr r0, [sp]
|
|
str r0, [r1, 0x14]
|
|
ldr r0, [sp]
|
|
cmp r0, 0x2
|
|
beq _0803023A
|
|
cmp r0, 0x2
|
|
bgt _08030234
|
|
cmp r0, 0x1
|
|
beq _0803024A
|
|
b _08030250
|
|
.align 2, 0
|
|
_08030230: .4byte gUnknown_203B318
|
|
_08030234:
|
|
cmp r0, 0x3
|
|
beq _08030242
|
|
b _08030250
|
|
_0803023A:
|
|
movs r0, 0x3
|
|
bl UpdateMakuhitaState
|
|
b _08030250
|
|
_08030242:
|
|
movs r0, 0xC
|
|
bl UpdateMakuhitaState
|
|
b _08030250
|
|
_0803024A:
|
|
movs r0, 0x2
|
|
bl UpdateMakuhitaState
|
|
_08030250:
|
|
add sp, 0x4
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8030208
|
|
|
|
thumb_func_start sub_8030258
|
|
sub_8030258:
|
|
push {lr}
|
|
movs r0, 0x1
|
|
bl sub_80303AC
|
|
cmp r0, 0x2
|
|
beq _08030288
|
|
cmp r0, 0x2
|
|
bcc _0803029A
|
|
cmp r0, 0x3
|
|
bne _0803029A
|
|
bl sub_8030418
|
|
ldr r1, _08030284
|
|
ldr r1, [r1]
|
|
strh r0, [r1, 0x10]
|
|
bl sub_8030480
|
|
movs r0, 0x5
|
|
bl UpdateMakuhitaState
|
|
b _0803029A
|
|
.align 2, 0
|
|
_08030284: .4byte gUnknown_203B318
|
|
_08030288:
|
|
bl sub_8030480
|
|
ldr r0, _080302A0
|
|
ldr r1, [r0]
|
|
ldr r0, _080302A4
|
|
strh r0, [r1, 0x10]
|
|
movs r0, 0x1
|
|
bl UpdateMakuhitaState
|
|
_0803029A:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080302A0: .4byte gUnknown_203B318
|
|
_080302A4: .4byte 0x0000ffff
|
|
thumb_func_end sub_8030258
|
|
|
|
thumb_func_start sub_80302A8
|
|
sub_80302A8:
|
|
push {lr}
|
|
bl sub_801B6AC
|
|
cmp r0, 0x1
|
|
bls _080302C0
|
|
cmp r0, 0x3
|
|
bhi _080302C0
|
|
bl sub_801B72C
|
|
movs r0, 0xA
|
|
bl UpdateMakuhitaState
|
|
_080302C0:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80302A8
|
|
|
|
thumb_func_start sub_80302C4
|
|
sub_80302C4:
|
|
push {lr}
|
|
sub sp, 0x4
|
|
mov r0, sp
|
|
bl sub_80144A4
|
|
cmp r0, 0
|
|
bne _080302DC
|
|
ldr r0, _080302E4
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, 0xC]
|
|
bl UpdateMakuhitaState
|
|
_080302DC:
|
|
add sp, 0x4
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080302E4: .4byte gUnknown_203B318
|
|
thumb_func_end sub_80302C4
|
|
|
|
thumb_func_start sub_80302E8
|
|
sub_80302E8:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
adds r5, r0, 0
|
|
adds r6, r1, 0
|
|
mov r8, r2
|
|
bl sub_80306A4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08030302
|
|
movs r0, 0
|
|
b _0803039A
|
|
_08030302:
|
|
ldr r4, _080303A4
|
|
ldr r0, [r4]
|
|
cmp r0, 0
|
|
bne _08030314
|
|
movs r0, 0xD0
|
|
movs r1, 0x8
|
|
bl MemoryAlloc
|
|
str r0, [r4]
|
|
_08030314:
|
|
ldr r0, [r4]
|
|
str r5, [r0, 0x64]
|
|
lsls r1, r5, 1
|
|
adds r1, r5
|
|
lsls r1, 3
|
|
adds r1, 0x6C
|
|
adds r1, r0, r1
|
|
str r1, [r0, 0x68]
|
|
adds r0, 0x6C
|
|
bl sub_8006518
|
|
ldr r1, [r4]
|
|
ldr r2, [r1, 0x64]
|
|
lsls r0, r2, 1
|
|
adds r0, r2
|
|
lsls r0, 3
|
|
adds r1, r0
|
|
adds r1, 0x6C
|
|
ldr r0, _080303A8
|
|
ldm r0!, {r2,r3,r7}
|
|
stm r1!, {r2,r3,r7}
|
|
ldm r0!, {r2,r3,r7}
|
|
stm r1!, {r2,r3,r7}
|
|
ldr r2, [r4]
|
|
ldr r1, [r2, 0x68]
|
|
adds r0, r2, 0
|
|
adds r0, 0xCC
|
|
str r0, [r1, 0x14]
|
|
cmp r6, 0
|
|
beq _08030362
|
|
ldr r1, [r2, 0x64]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r1, r2, 0
|
|
adds r1, 0x74
|
|
adds r1, r0
|
|
ldr r0, [r6]
|
|
str r0, [r1]
|
|
_08030362:
|
|
ldr r0, [r4]
|
|
ldr r0, [r0, 0x68]
|
|
mov r1, r8
|
|
bl sub_8012D08
|
|
bl ResetUnusedInputStruct
|
|
ldr r0, [r4]
|
|
adds r0, 0x6C
|
|
movs r1, 0x1
|
|
movs r2, 0x1
|
|
bl sub_800641C
|
|
ldr r4, [r4]
|
|
adds r4, 0x30
|
|
bl sub_8030668
|
|
adds r1, r0, 0
|
|
adds r0, r4, 0
|
|
mov r2, r8
|
|
adds r3, r5, 0
|
|
bl sub_8013818
|
|
bl sub_80304C8
|
|
bl sub_803053C
|
|
movs r0, 0x1
|
|
_0803039A:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080303A4: .4byte gUnknown_203B31C
|
|
_080303A8: .4byte gUnknown_80E0804
|
|
thumb_func_end sub_80302E8
|
|
|
|
thumb_func_start sub_80303AC
|
|
sub_80303AC:
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080303C8
|
|
ldr r0, _080303C4
|
|
ldr r0, [r0]
|
|
adds r0, 0x30
|
|
bl sub_8013660
|
|
movs r0, 0
|
|
b _08030410
|
|
.align 2, 0
|
|
_080303C4: .4byte gUnknown_203B31C
|
|
_080303C8:
|
|
ldr r4, _080303E4
|
|
ldr r0, [r4]
|
|
adds r0, 0x30
|
|
bl GetKeyPress
|
|
cmp r0, 0x1
|
|
beq _080303E8
|
|
cmp r0, 0x2
|
|
bne _080303F2
|
|
movs r0, 0x1
|
|
bl PlayMenuSoundEffect
|
|
movs r0, 0x2
|
|
b _08030410
|
|
.align 2, 0
|
|
_080303E4: .4byte gUnknown_203B31C
|
|
_080303E8:
|
|
movs r0, 0
|
|
bl PlayMenuSoundEffect
|
|
movs r0, 0x3
|
|
b _08030410
|
|
_080303F2:
|
|
ldr r0, [r4]
|
|
adds r0, 0x30
|
|
movs r1, 0x1
|
|
bl sub_80138B8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08030406
|
|
movs r0, 0
|
|
b _08030410
|
|
_08030406:
|
|
bl sub_80304C8
|
|
bl sub_803053C
|
|
movs r0, 0x1
|
|
_08030410:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80303AC
|
|
|
|
thumb_func_start sub_8030418
|
|
sub_8030418:
|
|
ldr r0, _08030440
|
|
ldr r2, [r0]
|
|
adds r0, r2, 0
|
|
adds r0, 0x4E
|
|
movs r3, 0
|
|
ldrsh r1, [r0, r3]
|
|
subs r0, 0x2
|
|
movs r3, 0
|
|
ldrsh r0, [r0, r3]
|
|
muls r0, r1
|
|
adds r1, r2, 0
|
|
adds r1, 0x48
|
|
movs r3, 0
|
|
ldrsh r1, [r1, r3]
|
|
adds r0, r1
|
|
lsls r0, 1
|
|
adds r0, r2, r0
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_08030440: .4byte gUnknown_203B31C
|
|
thumb_func_end sub_8030418
|
|
|
|
thumb_func_start sub_8030444
|
|
sub_8030444:
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
bl sub_8030668
|
|
adds r1, r0, 0
|
|
ldr r5, _0803047C
|
|
ldr r0, [r5]
|
|
adds r2, r0, 0
|
|
adds r2, 0x52
|
|
strh r1, [r2]
|
|
adds r0, 0x30
|
|
bl sub_8013984
|
|
bl sub_80304C8
|
|
bl sub_803053C
|
|
cmp r4, 0
|
|
beq _08030476
|
|
ldr r0, [r5]
|
|
adds r0, 0x30
|
|
bl AddMenuCursorSprite
|
|
_08030476:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0803047C: .4byte gUnknown_203B31C
|
|
thumb_func_end sub_8030444
|
|
|
|
thumb_func_start sub_8030480
|
|
sub_8030480:
|
|
push {r4,r5,lr}
|
|
ldr r4, _080304C0
|
|
ldr r2, [r4]
|
|
cmp r2, 0
|
|
beq _080304BA
|
|
ldr r0, [r2, 0x64]
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r2, r1
|
|
adds r1, 0x6C
|
|
ldr r0, _080304C4
|
|
ldm r0!, {r2,r3,r5}
|
|
stm r1!, {r2,r3,r5}
|
|
ldm r0!, {r2,r3,r5}
|
|
stm r1!, {r2,r3,r5}
|
|
bl ResetUnusedInputStruct
|
|
ldr r0, [r4]
|
|
adds r0, 0x6C
|
|
movs r1, 0x1
|
|
movs r2, 0x1
|
|
bl sub_800641C
|
|
ldr r0, [r4]
|
|
bl MemoryFree
|
|
movs r0, 0
|
|
str r0, [r4]
|
|
_080304BA:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080304C0: .4byte gUnknown_203B31C
|
|
_080304C4: .4byte gUnknown_80E07EC
|
|
thumb_func_end sub_8030480
|
|
|
|
thumb_func_start sub_80304C8
|
|
sub_80304C8:
|
|
push {r4,lr}
|
|
ldr r4, _08030538
|
|
ldr r0, [r4]
|
|
adds r0, 0xCC
|
|
movs r2, 0
|
|
movs r1, 0x1
|
|
strb r1, [r0]
|
|
ldr r0, [r4]
|
|
adds r0, 0xCD
|
|
strb r2, [r0]
|
|
ldr r0, [r4]
|
|
adds r0, 0xCE
|
|
movs r1, 0x8
|
|
strb r1, [r0]
|
|
ldr r0, [r4]
|
|
adds r0, 0xCF
|
|
strb r2, [r0]
|
|
ldr r0, [r4]
|
|
adds r0, 0x4A
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
movs r1, 0xC
|
|
bl sub_80095E4
|
|
adds r0, 0x2
|
|
lsls r0, 16
|
|
ldr r2, [r4]
|
|
ldr r3, [r2, 0x64]
|
|
lsls r1, r3, 1
|
|
adds r1, r3
|
|
lsls r1, 3
|
|
adds r1, r2, r1
|
|
adds r1, 0x7A
|
|
asrs r3, r0, 16
|
|
lsrs r0, 16
|
|
strh r0, [r1]
|
|
ldr r1, [r2, 0x64]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r2, r0
|
|
adds r3, 0x2
|
|
adds r2, 0x7C
|
|
strh r3, [r2]
|
|
bl ResetUnusedInputStruct
|
|
ldr r0, [r4]
|
|
adds r0, 0x6C
|
|
movs r1, 0x1
|
|
movs r2, 0x1
|
|
bl sub_800641C
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08030538: .4byte gUnknown_203B31C
|
|
thumb_func_end sub_80304C8
|
|
|
|
thumb_func_start sub_803053C
|
|
sub_803053C:
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x108
|
|
ldr r4, _08030658
|
|
ldr r0, [r4]
|
|
ldr r0, [r0, 0x64]
|
|
bl sub_8008C54
|
|
ldr r0, [r4]
|
|
ldr r0, [r0, 0x64]
|
|
bl sub_80073B8
|
|
ldr r2, _0803065C
|
|
ldr r0, [r4]
|
|
ldr r3, [r0, 0x64]
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
movs r0, 0xA
|
|
movs r1, 0
|
|
bl xxx_call_draw_string
|
|
ldr r3, [r4]
|
|
adds r0, r3, 0
|
|
adds r0, 0xCE
|
|
ldrb r0, [r0]
|
|
lsls r0, 3
|
|
adds r0, 0x4
|
|
adds r1, r3, 0
|
|
adds r1, 0x4E
|
|
movs r5, 0
|
|
ldrsh r2, [r1, r5]
|
|
adds r2, 0x1
|
|
movs r1, 0x7
|
|
str r1, [sp]
|
|
ldr r1, [r3, 0x64]
|
|
str r1, [sp, 0x4]
|
|
movs r1, 0
|
|
movs r3, 0x2
|
|
bl sub_8012BC4
|
|
movs r0, 0
|
|
mov r9, r0
|
|
ldr r0, [r4]
|
|
adds r0, 0x4A
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
cmp r9, r0
|
|
bge _0803063E
|
|
mov r8, r4
|
|
_080305A2:
|
|
mov r3, r8
|
|
ldr r1, [r3]
|
|
adds r0, r1, 0
|
|
adds r0, 0x4E
|
|
movs r5, 0
|
|
ldrsh r2, [r0, r5]
|
|
subs r0, 0x2
|
|
movs r3, 0
|
|
ldrsh r0, [r0, r3]
|
|
muls r0, r2
|
|
add r0, r9
|
|
lsls r0, 1
|
|
adds r1, r0
|
|
movs r5, 0
|
|
ldrsh r4, [r1, r5]
|
|
adds r0, r4, 0
|
|
bl sub_80A2740
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
adds r0, r4, 0
|
|
bl sub_80A2668
|
|
adds r4, r0, 0
|
|
lsls r4, 16
|
|
asrs r4, 16
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
adds r0, 0x30
|
|
mov r1, r9
|
|
bl sub_8013800
|
|
adds r6, r0, 0
|
|
movs r5, 0x7
|
|
adds r0, r4, 0
|
|
bl sub_809758C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08030608
|
|
mov r3, r8
|
|
ldr r0, [r3]
|
|
ldr r3, [r0, 0x64]
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
movs r0, 0x8
|
|
adds r1, r6, 0
|
|
ldr r2, _08030660
|
|
bl xxx_call_draw_string
|
|
movs r5, 0x4
|
|
_08030608:
|
|
adds r0, r7, 0
|
|
bl GetDungeonName1
|
|
adds r3, r0, 0
|
|
add r0, sp, 0x8
|
|
ldr r1, _08030664
|
|
adds r2, r5, 0
|
|
bl sprintf_2
|
|
mov r5, r8
|
|
ldr r0, [r5]
|
|
ldr r3, [r0, 0x64]
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
movs r0, 0x10
|
|
adds r1, r6, 0
|
|
add r2, sp, 0x8
|
|
bl xxx_call_draw_string
|
|
movs r0, 0x1
|
|
add r9, r0
|
|
ldr r0, [r5]
|
|
adds r0, 0x4A
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
cmp r9, r0
|
|
blt _080305A2
|
|
_0803063E:
|
|
ldr r0, _08030658
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, 0x64]
|
|
bl sub_80073E0
|
|
add sp, 0x108
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08030658: .4byte gUnknown_203B31C
|
|
_0803065C: .4byte gUnknown_80E081C
|
|
_08030660: .4byte gUnknown_80E0824
|
|
_08030664: .4byte gUnknown_80E0828
|
|
thumb_func_end sub_803053C
|
|
|
|
thumb_func_start sub_8030668
|
|
sub_8030668:
|
|
push {r4-r6,lr}
|
|
movs r6, 0
|
|
movs r5, 0
|
|
_0803066E:
|
|
lsls r0, r5, 16
|
|
asrs r4, r0, 16
|
|
adds r0, r4, 0
|
|
bl sub_8097504
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08030690
|
|
adds r0, r4, 0
|
|
bl sub_80A26CC
|
|
ldr r1, _080306A0
|
|
ldr r1, [r1]
|
|
lsls r2, r6, 1
|
|
adds r1, r2
|
|
strh r0, [r1]
|
|
adds r6, 0x1
|
|
_08030690:
|
|
adds r5, 0x1
|
|
cmp r5, 0x16
|
|
ble _0803066E
|
|
adds r0, r6, 0
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080306A0: .4byte gUnknown_203B31C
|
|
thumb_func_end sub_8030668
|
|
|
|
thumb_func_start sub_80306A4
|
|
sub_80306A4:
|
|
movs r0, 0
|
|
bx lr
|
|
thumb_func_end sub_80306A4
|
|
|
|
.align 2,0
|