mirror of
https://github.com/pret/pmd-red.git
synced 2026-07-19 01:11:30 -05:00
code_8015080 decompiled
This commit is contained in:
parent
a9fadaf73d
commit
ddca6db92e
|
|
@ -1,843 +0,0 @@
|
|||
#include "asm/constants/gba_constants.inc"
|
||||
#include "asm/macros.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_80158BC
|
||||
sub_80158BC:
|
||||
push {r4-r6,lr}
|
||||
ldr r6, _080158D4
|
||||
bl sub_8012AE8
|
||||
cmp r0, 0x8
|
||||
beq _08015908
|
||||
cmp r0, 0x8
|
||||
bgt _080158D8
|
||||
cmp r0, 0x7
|
||||
beq _080158E2
|
||||
b _08015980
|
||||
.align 2, 0
|
||||
_080158D4: .4byte gUnknown_2027370
|
||||
_080158D8:
|
||||
cmp r0, 0x9
|
||||
beq _08015930
|
||||
cmp r0, 0xA
|
||||
beq _08015958
|
||||
b _08015980
|
||||
_080158E2:
|
||||
ldr r4, _08015900
|
||||
ldr r3, _08015904
|
||||
ldr r2, [r3]
|
||||
ldrb r0, [r2, 0x1A]
|
||||
lsls r1, r0, 1
|
||||
adds r1, r0
|
||||
ldrb r2, [r2, 0x19]
|
||||
lsls r0, r2, 8
|
||||
subs r0, r2
|
||||
adds r0, r1
|
||||
lsls r0, 2
|
||||
adds r0, r4
|
||||
ldrb r0, [r0]
|
||||
adds r5, r3, 0
|
||||
b _08015988
|
||||
.align 2, 0
|
||||
_08015900: .4byte gUnknown_80DB0F8
|
||||
_08015904: .4byte gUnknown_203B1FC
|
||||
_08015908:
|
||||
ldr r4, _08015928
|
||||
ldr r3, _0801592C
|
||||
ldr r2, [r3]
|
||||
ldrb r0, [r2, 0x1A]
|
||||
lsls r1, r0, 1
|
||||
adds r1, r0
|
||||
ldrb r2, [r2, 0x19]
|
||||
lsls r0, r2, 8
|
||||
subs r0, r2
|
||||
adds r0, r1
|
||||
lsls r0, 2
|
||||
adds r0, r4
|
||||
ldrb r0, [r0, 0x1]
|
||||
adds r5, r3, 0
|
||||
b _08015988
|
||||
.align 2, 0
|
||||
_08015928: .4byte gUnknown_80DB0F8
|
||||
_0801592C: .4byte gUnknown_203B1FC
|
||||
_08015930:
|
||||
ldr r4, _08015950
|
||||
ldr r3, _08015954
|
||||
ldr r2, [r3]
|
||||
ldrb r0, [r2, 0x1A]
|
||||
lsls r1, r0, 1
|
||||
adds r1, r0
|
||||
ldrb r2, [r2, 0x19]
|
||||
lsls r0, r2, 8
|
||||
subs r0, r2
|
||||
adds r0, r1
|
||||
lsls r0, 2
|
||||
adds r0, r4
|
||||
ldrb r0, [r0, 0x2]
|
||||
adds r5, r3, 0
|
||||
b _08015988
|
||||
.align 2, 0
|
||||
_08015950: .4byte gUnknown_80DB0F8
|
||||
_08015954: .4byte gUnknown_203B1FC
|
||||
_08015958:
|
||||
ldr r4, _08015978
|
||||
ldr r3, _0801597C
|
||||
ldr r2, [r3]
|
||||
ldrb r0, [r2, 0x1A]
|
||||
lsls r1, r0, 1
|
||||
adds r1, r0
|
||||
ldrb r2, [r2, 0x19]
|
||||
lsls r0, r2, 8
|
||||
subs r0, r2
|
||||
adds r0, r1
|
||||
lsls r0, 2
|
||||
adds r0, r4
|
||||
ldrb r0, [r0, 0x3]
|
||||
adds r5, r3, 0
|
||||
b _08015988
|
||||
.align 2, 0
|
||||
_08015978: .4byte gUnknown_80DB0F8
|
||||
_0801597C: .4byte gUnknown_203B1FC
|
||||
_08015980:
|
||||
ldr r1, _080159F8
|
||||
ldr r0, [r1]
|
||||
ldrb r0, [r0, 0x1A]
|
||||
adds r5, r1, 0
|
||||
_08015988:
|
||||
adds r4, r5, 0
|
||||
ldr r1, [r4]
|
||||
ldrb r2, [r1, 0x1A]
|
||||
cmp r0, r2
|
||||
beq _080159A0
|
||||
strb r0, [r1, 0x1A]
|
||||
movs r0, 0x3
|
||||
bl PlayMenuSoundEffect
|
||||
ldr r1, [r4]
|
||||
movs r0, 0x8
|
||||
strb r0, [r1, 0x17]
|
||||
_080159A0:
|
||||
ldr r3, _080159FC
|
||||
ldr r4, [r5]
|
||||
ldrb r0, [r4, 0x1A]
|
||||
lsls r1, r0, 1
|
||||
adds r1, r0
|
||||
ldrb r2, [r4, 0x19]
|
||||
lsls r0, r2, 8
|
||||
subs r0, r2
|
||||
adds r0, r1
|
||||
lsls r0, 2
|
||||
adds r0, r3
|
||||
movs r3, 0
|
||||
ldrsh r1, [r6, r3]
|
||||
lsls r1, 3
|
||||
ldrb r2, [r0, 0x4]
|
||||
adds r1, r2
|
||||
subs r1, 0x5
|
||||
movs r3, 0x2
|
||||
ldrsh r2, [r6, r3]
|
||||
lsls r2, 3
|
||||
ldrb r0, [r0, 0x5]
|
||||
adds r2, r0
|
||||
adds r2, 0x1
|
||||
ldr r0, _08015A00
|
||||
ands r1, r0
|
||||
adds r4, 0xE
|
||||
ldrh r3, [r4, 0x2]
|
||||
movs r0, 0xFE
|
||||
lsls r0, 8
|
||||
ands r0, r3
|
||||
orrs r0, r1
|
||||
strh r0, [r4, 0x2]
|
||||
ldr r0, _08015A04
|
||||
ands r2, r0
|
||||
lsls r2, 4
|
||||
ldrh r1, [r4, 0x6]
|
||||
movs r0, 0xF
|
||||
ands r0, r1
|
||||
orrs r0, r2
|
||||
strh r0, [r4, 0x6]
|
||||
pop {r4-r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080159F8: .4byte gUnknown_203B1FC
|
||||
_080159FC: .4byte gUnknown_80DB0F8
|
||||
_08015A00: .4byte 0x000001ff
|
||||
_08015A04: .4byte 0x00000fff
|
||||
thumb_func_end sub_80158BC
|
||||
|
||||
thumb_func_start sub_8015A08
|
||||
sub_8015A08:
|
||||
push {r4-r7,lr}
|
||||
mov r7, r10
|
||||
mov r6, r9
|
||||
mov r5, r8
|
||||
push {r5-r7}
|
||||
sub sp, 0x24
|
||||
movs r0, 0
|
||||
bl CallPrepareTextbox_8008C54
|
||||
movs r0, 0
|
||||
bl sub_80073B8
|
||||
ldr r3, _08015A68
|
||||
ldr r2, _08015A6C
|
||||
ldr r0, [r2]
|
||||
ldrb r1, [r0, 0x19]
|
||||
lsls r0, r1, 8
|
||||
subs r0, r1
|
||||
lsls r0, 2
|
||||
adds r1, r3, 0
|
||||
adds r1, 0x8
|
||||
adds r0, r1
|
||||
ldr r4, [r0]
|
||||
ldr r0, _08015A70
|
||||
cmp r4, r0
|
||||
bne _08015A3E
|
||||
b _08015BC0
|
||||
_08015A3E:
|
||||
mov r8, r2
|
||||
adds r7, r3, 0
|
||||
add r0, sp, 0x14
|
||||
mov r10, r0
|
||||
movs r6, 0
|
||||
mov r9, r6
|
||||
_08015A4A:
|
||||
ldr r0, [r2]
|
||||
ldrb r1, [r0, 0x19]
|
||||
lsls r0, r1, 8
|
||||
subs r0, r1
|
||||
lsls r0, 2
|
||||
adds r0, r6, r0
|
||||
adds r0, r3
|
||||
ldrb r0, [r0, 0x6]
|
||||
cmp r0, 0x2
|
||||
beq _08015AAA
|
||||
cmp r0, 0x2
|
||||
bgt _08015A74
|
||||
cmp r0, 0x1
|
||||
beq _08015A7A
|
||||
b _08015A82
|
||||
.align 2, 0
|
||||
_08015A68: .4byte gUnknown_80DB0F8
|
||||
_08015A6C: .4byte gUnknown_203B1FC
|
||||
_08015A70: .4byte 0x00000109
|
||||
_08015A74:
|
||||
cmp r0, 0x3
|
||||
beq _08015A7E
|
||||
b _08015A82
|
||||
_08015A7A:
|
||||
movs r5, 0x5
|
||||
b _08015AAC
|
||||
_08015A7E:
|
||||
movs r5, 0x7
|
||||
b _08015AAC
|
||||
_08015A82:
|
||||
movs r5, 0x7
|
||||
mov r1, r8
|
||||
ldr r0, [r1]
|
||||
ldrb r0, [r0, 0x4]
|
||||
cmp r0, 0
|
||||
beq _08015AAC
|
||||
cmp r4, 0xFF
|
||||
bgt _08015AA4
|
||||
lsls r0, r4, 24
|
||||
lsrs r0, 24
|
||||
bl sub_803D0F0
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0xFF
|
||||
bne _08015AAC
|
||||
b _08015AAA
|
||||
_08015AA4:
|
||||
ldr r0, _08015ADC
|
||||
cmp r4, r0
|
||||
bgt _08015AAC
|
||||
_08015AAA:
|
||||
movs r5, 0x2
|
||||
_08015AAC:
|
||||
movs r0, 0x84
|
||||
lsls r0, 1
|
||||
cmp r4, r0
|
||||
beq _08015B9E
|
||||
subs r0, 0x1
|
||||
cmp r4, r0
|
||||
bne _08015B04
|
||||
mov r2, r8
|
||||
ldr r0, [r2]
|
||||
ldrb r2, [r0, 0x18]
|
||||
cmp r2, 0
|
||||
bne _08015AE4
|
||||
ldrb r0, [r0, 0x19]
|
||||
lsls r1, r0, 8
|
||||
subs r1, r0
|
||||
lsls r1, 2
|
||||
adds r1, r6, r1
|
||||
adds r1, r7
|
||||
ldrb r0, [r1, 0x4]
|
||||
adds r0, 0x3
|
||||
ldrb r1, [r1, 0x5]
|
||||
str r2, [sp]
|
||||
ldr r2, _08015AE0
|
||||
b _08015B6A
|
||||
.align 2, 0
|
||||
_08015ADC: .4byte 0x00000101
|
||||
_08015AE0: .4byte gUnknown_80DB598
|
||||
_08015AE4:
|
||||
ldrb r0, [r0, 0x19]
|
||||
lsls r1, r0, 8
|
||||
subs r1, r0
|
||||
lsls r1, 2
|
||||
adds r1, r6, r1
|
||||
adds r1, r7
|
||||
ldrb r0, [r1, 0x4]
|
||||
adds r0, 0x3
|
||||
ldrb r1, [r1, 0x5]
|
||||
mov r3, r9
|
||||
str r3, [sp]
|
||||
ldr r2, _08015B00
|
||||
b _08015B6A
|
||||
.align 2, 0
|
||||
_08015B00: .4byte gUnknown_80DB5A4
|
||||
_08015B04:
|
||||
cmp r4, 0x20
|
||||
bne _08015B34
|
||||
add r0, sp, 0x4
|
||||
ldr r1, _08015B30
|
||||
adds r2, r5, 0
|
||||
bl sprintfStatic
|
||||
mov r1, r8
|
||||
ldr r0, [r1]
|
||||
ldrb r0, [r0, 0x19]
|
||||
lsls r1, r0, 8
|
||||
subs r1, r0
|
||||
lsls r1, 2
|
||||
adds r1, r6, r1
|
||||
adds r1, r7
|
||||
ldrb r0, [r1, 0x4]
|
||||
adds r0, 0x1
|
||||
ldrb r1, [r1, 0x5]
|
||||
mov r2, r9
|
||||
str r2, [sp]
|
||||
add r2, sp, 0x4
|
||||
b _08015B6A
|
||||
.align 2, 0
|
||||
_08015B30: .4byte gUnknown_80DB5B0
|
||||
_08015B34:
|
||||
cmp r4, 0xFF
|
||||
ble _08015B7C
|
||||
ldr r1, _08015B74
|
||||
movs r0, 0xFF
|
||||
ands r4, r0
|
||||
lsls r0, r4, 2
|
||||
adds r0, r1
|
||||
ldr r3, [r0]
|
||||
mov r0, r10
|
||||
ldr r1, _08015B78
|
||||
adds r2, r5, 0
|
||||
bl sprintfStatic
|
||||
mov r3, r8
|
||||
ldr r0, [r3]
|
||||
ldrb r0, [r0, 0x19]
|
||||
lsls r1, r0, 8
|
||||
subs r1, r0
|
||||
lsls r1, 2
|
||||
adds r1, r6, r1
|
||||
adds r1, r7
|
||||
ldrb r0, [r1, 0x4]
|
||||
adds r0, 0x3
|
||||
ldrb r1, [r1, 0x5]
|
||||
mov r2, r9
|
||||
str r2, [sp]
|
||||
mov r2, r10
|
||||
_08015B6A:
|
||||
movs r3, 0
|
||||
bl PrintStringOnWindow
|
||||
b _08015B9E
|
||||
.align 2, 0
|
||||
_08015B74: .4byte gUnknown_80DB4F4
|
||||
_08015B78: .4byte gUnknown_80DB5B8
|
||||
_08015B7C:
|
||||
mov r3, r8
|
||||
ldr r0, [r3]
|
||||
ldrb r0, [r0, 0x19]
|
||||
lsls r1, r0, 8
|
||||
subs r1, r0
|
||||
lsls r1, 2
|
||||
adds r1, r6, r1
|
||||
adds r1, r7
|
||||
ldrb r0, [r1, 0x4]
|
||||
ldrb r1, [r1, 0x5]
|
||||
lsls r2, r4, 24
|
||||
lsrs r2, 24
|
||||
mov r3, r9
|
||||
str r3, [sp]
|
||||
adds r3, r5, 0
|
||||
bl sub_8012C60
|
||||
_08015B9E:
|
||||
adds r6, 0xC
|
||||
ldr r3, _08015C10
|
||||
ldr r2, _08015C14
|
||||
ldr r0, [r2]
|
||||
ldrb r1, [r0, 0x19]
|
||||
lsls r0, r1, 8
|
||||
subs r0, r1
|
||||
lsls r0, 2
|
||||
adds r0, r6, r0
|
||||
adds r1, r3, 0
|
||||
adds r1, 0x8
|
||||
adds r0, r1
|
||||
ldr r4, [r0]
|
||||
ldr r0, _08015C18
|
||||
cmp r4, r0
|
||||
beq _08015BC0
|
||||
b _08015A4A
|
||||
_08015BC0:
|
||||
movs r4, 0xE
|
||||
str r4, [sp]
|
||||
movs r0, 0
|
||||
movs r1, 0
|
||||
movs r2, 0
|
||||
movs r3, 0xE0
|
||||
bl sub_800792C
|
||||
str r4, [sp]
|
||||
movs r0, 0
|
||||
movs r1, 0
|
||||
movs r2, 0x47
|
||||
movs r3, 0xE0
|
||||
bl sub_800792C
|
||||
str r4, [sp]
|
||||
movs r0, 0
|
||||
movs r1, 0
|
||||
movs r2, 0
|
||||
movs r3, 0x48
|
||||
bl sub_8007A78
|
||||
str r4, [sp]
|
||||
movs r0, 0
|
||||
movs r1, 0xDF
|
||||
movs r2, 0
|
||||
movs r3, 0x48
|
||||
bl sub_8007A78
|
||||
movs r0, 0
|
||||
bl sub_80073E0
|
||||
add sp, 0x24
|
||||
pop {r3-r5}
|
||||
mov r8, r3
|
||||
mov r9, r4
|
||||
mov r10, r5
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08015C10: .4byte gUnknown_80DB0F8
|
||||
_08015C14: .4byte gUnknown_203B1FC
|
||||
_08015C18: .4byte 0x00000109
|
||||
thumb_func_end sub_8015A08
|
||||
|
||||
thumb_func_start sub_8015C1C
|
||||
sub_8015C1C:
|
||||
push {r4,r5,lr}
|
||||
sub sp, 0x54
|
||||
movs r0, 0x1
|
||||
bl CallPrepareTextbox_8008C54
|
||||
movs r0, 0x1
|
||||
bl sub_80073B8
|
||||
ldr r0, _08015C74
|
||||
ldr r0, [r0]
|
||||
ldrb r0, [r0, 0x4]
|
||||
cmp r0, 0
|
||||
beq _08015C78
|
||||
movs r4, 0xE
|
||||
str r4, [sp]
|
||||
movs r0, 0x1
|
||||
movs r1, 0
|
||||
movs r2, 0
|
||||
movs r3, 0xE0
|
||||
bl sub_800792C
|
||||
str r4, [sp]
|
||||
movs r0, 0x1
|
||||
movs r1, 0
|
||||
movs r2, 0x37
|
||||
movs r3, 0xE0
|
||||
bl sub_800792C
|
||||
str r4, [sp]
|
||||
movs r0, 0x1
|
||||
movs r1, 0
|
||||
movs r2, 0
|
||||
movs r3, 0x38
|
||||
bl sub_8007A78
|
||||
str r4, [sp]
|
||||
movs r0, 0x1
|
||||
movs r1, 0xDF
|
||||
movs r2, 0
|
||||
movs r3, 0x38
|
||||
bl sub_8007A78
|
||||
b _08015CB2
|
||||
.align 2, 0
|
||||
_08015C74: .4byte gUnknown_203B1FC
|
||||
_08015C78:
|
||||
movs r4, 0xE
|
||||
str r4, [sp]
|
||||
movs r0, 0x1
|
||||
movs r1, 0
|
||||
movs r2, 0
|
||||
movs r3, 0xB0
|
||||
bl sub_800792C
|
||||
str r4, [sp]
|
||||
movs r0, 0x1
|
||||
movs r1, 0
|
||||
movs r2, 0x27
|
||||
movs r3, 0xB0
|
||||
bl sub_800792C
|
||||
str r4, [sp]
|
||||
movs r0, 0x1
|
||||
movs r1, 0
|
||||
movs r2, 0
|
||||
movs r3, 0x28
|
||||
bl sub_8007A78
|
||||
str r4, [sp]
|
||||
movs r0, 0x1
|
||||
movs r1, 0xAF
|
||||
movs r2, 0
|
||||
movs r3, 0x28
|
||||
bl sub_8007A78
|
||||
_08015CB2:
|
||||
ldr r0, _08015CC8
|
||||
ldr r0, [r0]
|
||||
ldr r0, [r0]
|
||||
cmp r0, 0x5
|
||||
bhi _08015D50
|
||||
lsls r0, 2
|
||||
ldr r1, _08015CCC
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_08015CC8: .4byte gUnknown_203B1FC
|
||||
_08015CCC: .4byte _08015CD0
|
||||
.align 2, 0
|
||||
_08015CD0:
|
||||
.4byte _08015CE8
|
||||
.4byte _08015D18
|
||||
.4byte _08015CF8
|
||||
.4byte _08015D08
|
||||
.4byte _08015D28
|
||||
.4byte _08015D40
|
||||
_08015CE8:
|
||||
ldr r2, _08015CF4
|
||||
movs r0, 0
|
||||
str r0, [sp]
|
||||
movs r0, 0x8
|
||||
movs r1, 0x5
|
||||
b _08015D32
|
||||
.align 2, 0
|
||||
_08015CF4: .4byte gUnknown_80DB5C0
|
||||
_08015CF8:
|
||||
ldr r2, _08015D04
|
||||
movs r0, 0
|
||||
str r0, [sp]
|
||||
movs r0, 0x8
|
||||
movs r1, 0x5
|
||||
b _08015D32
|
||||
.align 2, 0
|
||||
_08015D04: .4byte gUnknown_80DB5D4
|
||||
_08015D08:
|
||||
ldr r2, _08015D14
|
||||
movs r0, 0
|
||||
str r0, [sp]
|
||||
movs r0, 0x8
|
||||
movs r1, 0x5
|
||||
b _08015D32
|
||||
.align 2, 0
|
||||
_08015D14: .4byte gUnknown_80DB5F8
|
||||
_08015D18:
|
||||
ldr r2, _08015D24
|
||||
movs r0, 0
|
||||
str r0, [sp]
|
||||
movs r0, 0x8
|
||||
movs r1, 0x5
|
||||
b _08015D32
|
||||
.align 2, 0
|
||||
_08015D24: .4byte gUnknown_80DB61C
|
||||
_08015D28:
|
||||
ldr r2, _08015D3C
|
||||
movs r0, 0
|
||||
str r0, [sp]
|
||||
movs r0, 0x36
|
||||
movs r1, 0x2
|
||||
_08015D32:
|
||||
movs r3, 0x1
|
||||
bl PrintStringOnWindow
|
||||
b _08015D50
|
||||
.align 2, 0
|
||||
_08015D3C: .4byte gUnknown_80DB638
|
||||
_08015D40:
|
||||
ldr r2, _08015D64
|
||||
movs r0, 0
|
||||
str r0, [sp]
|
||||
movs r0, 0x30
|
||||
movs r1, 0x4
|
||||
movs r3, 0x1
|
||||
bl PrintStringOnWindow
|
||||
_08015D50:
|
||||
ldr r5, _08015D68
|
||||
ldr r0, [r5]
|
||||
ldr r1, [r0]
|
||||
cmp r1, 0x4
|
||||
beq _08015D6C
|
||||
cmp r1, 0x4
|
||||
bcc _08015D88
|
||||
cmp r1, 0x5
|
||||
beq _08015D7A
|
||||
b _08015DFE
|
||||
.align 2, 0
|
||||
_08015D64: .4byte gUnknown_80DB638
|
||||
_08015D68: .4byte gUnknown_203B1FC
|
||||
_08015D6C:
|
||||
adds r0, 0xF8
|
||||
ldr r0, [r0]
|
||||
movs r1, 0x1
|
||||
movs r2, 0
|
||||
bl sub_8015E10
|
||||
b _08015DFE
|
||||
_08015D7A:
|
||||
adds r0, 0xF8
|
||||
ldr r0, [r0]
|
||||
movs r1, 0x1
|
||||
movs r2, 0
|
||||
bl sub_8015EB4
|
||||
b _08015DFE
|
||||
_08015D88:
|
||||
bl sub_8016028
|
||||
adds r3, r0, 0
|
||||
movs r0, 0x4
|
||||
str r0, [sp]
|
||||
movs r0, 0x1
|
||||
movs r1, 0x26
|
||||
movs r2, 0x21
|
||||
bl sub_80078A4
|
||||
ldr r1, [r5]
|
||||
adds r0, r1, 0
|
||||
adds r0, 0xF8
|
||||
ldr r0, [r0]
|
||||
ldrb r1, [r1, 0x1B]
|
||||
bl sub_8015FEC
|
||||
adds r4, r0, 0
|
||||
bl sub_8016028
|
||||
cmp r4, r0
|
||||
ble _08015DC0
|
||||
ldr r1, _08015DBC
|
||||
ldr r0, [r5]
|
||||
b _08015DD0
|
||||
.align 2, 0
|
||||
_08015DBC: .4byte gUnknown_80DB654
|
||||
_08015DC0:
|
||||
bl sub_8015F44
|
||||
ldr r2, [r5]
|
||||
ldrb r1, [r2, 0x1B]
|
||||
cmp r0, r1
|
||||
bne _08015DE0
|
||||
ldr r1, _08015DDC
|
||||
adds r0, r2, 0
|
||||
_08015DD0:
|
||||
adds r0, 0xF8
|
||||
ldr r2, [r0]
|
||||
add r0, sp, 0x4
|
||||
bl sprintfStatic
|
||||
b _08015DEE
|
||||
.align 2, 0
|
||||
_08015DDC: .4byte gUnknown_80DB65C
|
||||
_08015DE0:
|
||||
ldr r1, _08015E0C
|
||||
adds r0, r2, 0
|
||||
adds r0, 0xF8
|
||||
ldr r2, [r0]
|
||||
add r0, sp, 0x4
|
||||
bl sprintfStatic
|
||||
_08015DEE:
|
||||
movs r0, 0
|
||||
str r0, [sp]
|
||||
movs r0, 0x26
|
||||
movs r1, 0x16
|
||||
add r2, sp, 0x4
|
||||
movs r3, 0x1
|
||||
bl PrintStringOnWindow
|
||||
_08015DFE:
|
||||
movs r0, 0x1
|
||||
bl sub_80073E0
|
||||
add sp, 0x54
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08015E0C: .4byte gUnknown_80DB664
|
||||
thumb_func_end sub_8015C1C
|
||||
|
||||
thumb_func_start sub_8015E10
|
||||
sub_8015E10:
|
||||
push {r4-r7,lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
sub sp, 0x4
|
||||
mov r8, r0
|
||||
adds r7, r1, 0
|
||||
lsls r2, 16
|
||||
asrs r6, r2, 16
|
||||
ldr r5, _08015EB0
|
||||
movs r4, 0x35
|
||||
_08015E24:
|
||||
movs r0, 0
|
||||
ldrsh r1, [r5, r0]
|
||||
movs r0, 0x2
|
||||
ldrsh r2, [r5, r0]
|
||||
adds r0, r6, 0
|
||||
adds r0, 0xB
|
||||
adds r2, r0
|
||||
movs r0, 0x5
|
||||
str r0, [sp]
|
||||
adds r0, r7, 0
|
||||
movs r3, 0xB
|
||||
bl sub_80078A4
|
||||
adds r5, 0x4
|
||||
subs r4, 0x1
|
||||
cmp r4, 0
|
||||
bge _08015E24
|
||||
movs r4, 0
|
||||
mov r1, r8
|
||||
ldrb r0, [r1]
|
||||
cmp r0, 0
|
||||
beq _08015EA4
|
||||
mov r5, r8
|
||||
_08015E52:
|
||||
movs r3, 0x7
|
||||
cmp r4, 0x4
|
||||
ble _08015E7E
|
||||
movs r3, 0x6
|
||||
cmp r4, 0xC
|
||||
ble _08015E7E
|
||||
movs r3, 0x7
|
||||
cmp r4, 0x11
|
||||
ble _08015E7E
|
||||
cmp r4, 0x16
|
||||
ble _08015E7E
|
||||
movs r3, 0x6
|
||||
cmp r4, 0x1E
|
||||
ble _08015E7E
|
||||
movs r3, 0x7
|
||||
cmp r4, 0x23
|
||||
ble _08015E7E
|
||||
cmp r4, 0x28
|
||||
ble _08015E7E
|
||||
cmp r4, 0x30
|
||||
bgt _08015E7E
|
||||
movs r3, 0x6
|
||||
_08015E7E:
|
||||
ldr r0, _08015EB0
|
||||
lsls r1, r4, 2
|
||||
adds r1, r0
|
||||
movs r2, 0
|
||||
ldrsh r0, [r1, r2]
|
||||
movs r2, 0x2
|
||||
ldrsh r1, [r1, r2]
|
||||
adds r1, r6
|
||||
ldrb r2, [r5]
|
||||
str r7, [sp]
|
||||
bl sub_8012C60
|
||||
adds r5, 0x1
|
||||
adds r4, 0x1
|
||||
cmp r4, 0x35
|
||||
bgt _08015EA4
|
||||
ldrb r0, [r5]
|
||||
cmp r0, 0
|
||||
bne _08015E52
|
||||
_08015EA4:
|
||||
add sp, 0x4
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08015EB0: .4byte gUnknown_80DAFC0
|
||||
thumb_func_end sub_8015E10
|
||||
|
||||
thumb_func_start sub_8015EB4
|
||||
sub_8015EB4:
|
||||
push {r4-r7,lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
sub sp, 0x4
|
||||
mov r8, r0
|
||||
adds r7, r1, 0
|
||||
lsls r2, 16
|
||||
asrs r6, r2, 16
|
||||
ldr r5, _08015F40
|
||||
movs r4, 0x17
|
||||
_08015EC8:
|
||||
movs r0, 0
|
||||
ldrsh r1, [r5, r0]
|
||||
movs r0, 0x2
|
||||
ldrsh r2, [r5, r0]
|
||||
adds r0, r6, 0
|
||||
adds r0, 0xB
|
||||
adds r2, r0
|
||||
movs r0, 0x5
|
||||
str r0, [sp]
|
||||
adds r0, r7, 0
|
||||
movs r3, 0xC
|
||||
bl sub_80078A4
|
||||
adds r5, 0x4
|
||||
subs r4, 0x1
|
||||
cmp r4, 0
|
||||
bge _08015EC8
|
||||
movs r4, 0
|
||||
mov r1, r8
|
||||
ldrb r0, [r1]
|
||||
cmp r0, 0
|
||||
beq _08015F34
|
||||
mov r5, r8
|
||||
_08015EF6:
|
||||
movs r3, 0x7
|
||||
cmp r4, 0x3
|
||||
ble _08015F0E
|
||||
movs r3, 0x6
|
||||
cmp r4, 0x7
|
||||
ble _08015F0E
|
||||
movs r3, 0x7
|
||||
cmp r4, 0xF
|
||||
ble _08015F0E
|
||||
cmp r4, 0x13
|
||||
bgt _08015F0E
|
||||
movs r3, 0x6
|
||||
_08015F0E:
|
||||
ldr r0, _08015F40
|
||||
lsls r1, r4, 2
|
||||
adds r1, r0
|
||||
movs r2, 0
|
||||
ldrsh r0, [r1, r2]
|
||||
movs r2, 0x2
|
||||
ldrsh r1, [r1, r2]
|
||||
adds r1, r6
|
||||
ldrb r2, [r5]
|
||||
str r7, [sp]
|
||||
bl sub_8012C60
|
||||
adds r5, 0x1
|
||||
adds r4, 0x1
|
||||
cmp r4, 0x17
|
||||
bgt _08015F34
|
||||
ldrb r0, [r5]
|
||||
cmp r0, 0
|
||||
bne _08015EF6
|
||||
_08015F34:
|
||||
add sp, 0x4
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08015F40: .4byte gUnknown_80DB098
|
||||
thumb_func_end sub_8015EB4
|
||||
|
||||
.align 2,0
|
||||
|
|
@ -103,7 +103,6 @@ SECTIONS {
|
|||
src/menu_input.o(.text);
|
||||
src/string_format.o(.text);
|
||||
src/code_8015080.o(.text);
|
||||
asm/code_8015080.o(.text);
|
||||
src/code_8012A18_1.o(.text);
|
||||
src/code_801602C.o(.text);
|
||||
src/felicity_bank.o(.text);
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@
|
|||
#include "menu_input.h"
|
||||
#include "text.h"
|
||||
#include "sprite.h"
|
||||
#include "code_800D090.h"
|
||||
#include "code_80118A4.h"
|
||||
#include "code_803D0D8.h"
|
||||
#include "text.h"
|
||||
|
|
@ -128,10 +129,16 @@ extern UnkTextStruct2 gUnknown_80DB580;
|
|||
extern UnkTextStruct2 gUnknown_80DB538;
|
||||
s32 sub_8015F44(void);
|
||||
void sub_8015A08(u32);
|
||||
void sub_8015C1C();
|
||||
void sub_8015C1C(void);
|
||||
void sub_8015F84();
|
||||
void sub_80157D8(void);
|
||||
void sub_80158BC(void);
|
||||
void sub_8015E10(u8 *a0, s32 a1, s32 _a2);
|
||||
void sub_8015EB4(u8 *a0, s32 a1, s32 _a2);
|
||||
s32 sub_8016028(void);
|
||||
s32 sub_8015FEC(u8 *buffer, s32 size);
|
||||
u32 sub_801560C(void);
|
||||
bool8 sub_8015748(void);
|
||||
|
||||
u32 sub_80151C0(u32 r0, u8 *buffer)
|
||||
{
|
||||
|
|
@ -251,9 +258,6 @@ u32 sub_80151C0(u32 r0, u8 *buffer)
|
|||
return 1;
|
||||
}
|
||||
|
||||
u32 sub_801560C(void);
|
||||
bool8 sub_8015748(void);
|
||||
|
||||
u32 sub_80154F0(void)
|
||||
{
|
||||
gUnknown_203B1FC->unk16++;
|
||||
|
|
@ -325,6 +329,21 @@ struct Struct80DB0F8
|
|||
};
|
||||
|
||||
extern const struct Struct80DB0F8 gUnknown_80DB0F8[][85];
|
||||
extern const DungeonPos gUnknown_80DB098[];
|
||||
extern const DungeonPos gUnknown_80DAFC0[];
|
||||
extern const u8 gUnknown_80DB598[];
|
||||
extern const u8 gUnknown_80DB5A4[];
|
||||
extern const u8 gUnknown_80DB5B0[];
|
||||
extern const u8 gUnknown_80DB5B8[];
|
||||
extern const u8 gUnknown_80DB5C0[];
|
||||
extern const u8 gUnknown_80DB5D4[];
|
||||
extern const u8 gUnknown_80DB5F8[];
|
||||
extern const u8 gUnknown_80DB61C[];
|
||||
extern const u8 gUnknown_80DB638[];
|
||||
extern const u8 gUnknown_80DB654[];
|
||||
extern const u8 gUnknown_80DB65C[];
|
||||
extern const u8 gUnknown_80DB664[];
|
||||
extern const u8 *const gUnknown_80DB4F4[];
|
||||
|
||||
u32 sub_801560C(void)
|
||||
{
|
||||
|
|
@ -416,9 +435,6 @@ bool8 sub_8015748(void)
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
extern const DungeonPos gUnknown_80DB098[];
|
||||
extern const DungeonPos gUnknown_80DAFC0[];
|
||||
|
||||
void sub_80157D8(void)
|
||||
{
|
||||
UnkTextStruct1 *txtPtr = &gUnknown_2027370[1];
|
||||
|
|
@ -453,3 +469,222 @@ void sub_80157D8(void)
|
|||
}
|
||||
}
|
||||
|
||||
void sub_80158BC(void)
|
||||
{
|
||||
s32 x, y;
|
||||
UnkTextStruct1 *txtPtr = &gUnknown_2027370[0];
|
||||
u32 var;
|
||||
|
||||
switch (sub_8012AE8()) {
|
||||
case 7:
|
||||
var = gUnknown_80DB0F8[gUnknown_203B1FC->unk19][gUnknown_203B1FC->unk1A].unk0;
|
||||
break;
|
||||
case 8:
|
||||
var = gUnknown_80DB0F8[gUnknown_203B1FC->unk19][gUnknown_203B1FC->unk1A].unk1;
|
||||
break;
|
||||
case 9:
|
||||
var = gUnknown_80DB0F8[gUnknown_203B1FC->unk19][gUnknown_203B1FC->unk1A].unk2;
|
||||
break;
|
||||
case 10:
|
||||
var = gUnknown_80DB0F8[gUnknown_203B1FC->unk19][gUnknown_203B1FC->unk1A].unk3;
|
||||
break;
|
||||
default:
|
||||
var = gUnknown_203B1FC->unk1A;
|
||||
break;
|
||||
}
|
||||
|
||||
if (var != gUnknown_203B1FC->unk1A) {
|
||||
gUnknown_203B1FC->unk1A = var;
|
||||
PlayMenuSoundEffect(3);
|
||||
gUnknown_203B1FC->unk17 = 8;
|
||||
}
|
||||
|
||||
x = gUnknown_80DB0F8[gUnknown_203B1FC->unk19][gUnknown_203B1FC->unk1A].unk4 + (txtPtr->unk0 * 8) - 5;
|
||||
y = gUnknown_80DB0F8[gUnknown_203B1FC->unk19][gUnknown_203B1FC->unk1A].unk5 + (txtPtr->unk2 * 8) + 1;
|
||||
SpriteSetX((SpriteOAM *) &gUnknown_203B1FC->sprite2Attribs, x);
|
||||
SpriteSetY((SpriteOAM *) &gUnknown_203B1FC->sprite2Attribs, y);
|
||||
}
|
||||
|
||||
void sub_8015A08(u32 unused)
|
||||
{
|
||||
s32 r4;
|
||||
s32 i;
|
||||
u8 text1[16];
|
||||
u8 text2[16];
|
||||
|
||||
CallPrepareTextbox_8008C54(0);
|
||||
sub_80073B8(0);
|
||||
|
||||
for (i = 0; (r4 = gUnknown_80DB0F8[gUnknown_203B1FC->unk19][i].unk8) != 0x109; i++) {
|
||||
s32 r5;
|
||||
|
||||
switch (gUnknown_80DB0F8[gUnknown_203B1FC->unk19][i].unk6) {
|
||||
case 1:
|
||||
r5 = 5;
|
||||
break;
|
||||
case 2:
|
||||
r5 = 2;
|
||||
break;
|
||||
case 3:
|
||||
r5 = 7;
|
||||
break;
|
||||
default:
|
||||
r5 = 7;
|
||||
if (gUnknown_203B1FC->unk4 != 0) {
|
||||
if (r4 <= 0xFF) {
|
||||
if (sub_803D0F0(r4) == 0xFF) {
|
||||
r5 = 2;
|
||||
}
|
||||
}
|
||||
else if (r4 < 0x102) {
|
||||
r5 = 2;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
if (r4 != 0x108) {
|
||||
if (r4 == 0x107) {
|
||||
if (gUnknown_203B1FC->unk18 == 0) {
|
||||
PrintStringOnWindow(gUnknown_80DB0F8[gUnknown_203B1FC->unk19][i].unk4 + 3, gUnknown_80DB0F8[gUnknown_203B1FC->unk19][i].unk5, gUnknown_80DB598, 0, '\0');
|
||||
}
|
||||
else {
|
||||
PrintStringOnWindow(gUnknown_80DB0F8[gUnknown_203B1FC->unk19][i].unk4 + 3, gUnknown_80DB0F8[gUnknown_203B1FC->unk19][i].unk5, gUnknown_80DB5A4, 0, '\0');
|
||||
}
|
||||
}
|
||||
else if (r4 == 0x20) {
|
||||
sprintfStatic(text1, gUnknown_80DB5B0, r5);
|
||||
PrintStringOnWindow(gUnknown_80DB0F8[gUnknown_203B1FC->unk19][i].unk4 + 1, gUnknown_80DB0F8[gUnknown_203B1FC->unk19][i].unk5, text1, 0, '\0');
|
||||
}
|
||||
else if (r4 > 0xFF) {
|
||||
sprintfStatic(text2, gUnknown_80DB5B8, r5, gUnknown_80DB4F4[r4 & 0xFF]);
|
||||
PrintStringOnWindow(gUnknown_80DB0F8[gUnknown_203B1FC->unk19][i].unk4 + 3, gUnknown_80DB0F8[gUnknown_203B1FC->unk19][i].unk5, text2, 0, '\0');
|
||||
}
|
||||
else {
|
||||
sub_8012C60(gUnknown_80DB0F8[gUnknown_203B1FC->unk19][i].unk4, gUnknown_80DB0F8[gUnknown_203B1FC->unk19][i].unk5, (u8) r4, r5, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
sub_800792C(0, 0, 0, 0xE0, 0xE);
|
||||
sub_800792C(0, 0, 0x47, 0xE0, 0xE);
|
||||
sub_8007A78(0, 0, 0, 0x48, 0xE);
|
||||
sub_8007A78(0, 0xDF, 0, 0x48, 0xE);
|
||||
sub_80073E0(0);
|
||||
}
|
||||
|
||||
void sub_8015C1C(void)
|
||||
{
|
||||
u8 text[80];
|
||||
|
||||
CallPrepareTextbox_8008C54(1);
|
||||
sub_80073B8(1);
|
||||
if (gUnknown_203B1FC->unk4 != 0) {
|
||||
sub_800792C(1, 0, 0, 0xE0, 0xE);
|
||||
sub_800792C(1, 0, 0x37, 0xE0, 0xE);
|
||||
sub_8007A78(1, 0, 0, 0x38, 0xE);
|
||||
sub_8007A78(1, 0xDF, 0, 0x38, 0xE);
|
||||
}
|
||||
else {
|
||||
sub_800792C(1, 0, 0, 0xB0, 0xE);
|
||||
sub_800792C(1, 0, 0x27, 0xB0, 0xE);
|
||||
sub_8007A78(1, 0, 0, 0x28, 0xE);
|
||||
sub_8007A78(1, 0xAF, 0, 0x28, 0xE);
|
||||
}
|
||||
|
||||
switch (gUnknown_203B1FC->unk0) {
|
||||
case 0:
|
||||
PrintStringOnWindow(8, 5, gUnknown_80DB5C0, 1, '\0');
|
||||
break;
|
||||
case 2:
|
||||
PrintStringOnWindow(8, 5, gUnknown_80DB5D4, 1, '\0');
|
||||
break;
|
||||
case 3:
|
||||
PrintStringOnWindow(8, 5, gUnknown_80DB5F8, 1, '\0');
|
||||
break;
|
||||
case 1:
|
||||
PrintStringOnWindow(8, 5, gUnknown_80DB61C, 1, '\0');
|
||||
break;
|
||||
case 4:
|
||||
PrintStringOnWindow(54, 2, gUnknown_80DB638, 1, '\0');
|
||||
break;
|
||||
case 5:
|
||||
PrintStringOnWindow(48, 4, gUnknown_80DB638, 1, '\0');
|
||||
break;
|
||||
}
|
||||
|
||||
switch (gUnknown_203B1FC->unk0) {
|
||||
case 4:
|
||||
sub_8015E10(gUnknown_203B1FC->unkF8, 1, 0);
|
||||
break;
|
||||
case 5:
|
||||
sub_8015EB4(gUnknown_203B1FC->unkF8, 1, 0);
|
||||
break;
|
||||
case 0:
|
||||
case 1:
|
||||
case 2:
|
||||
case 3:
|
||||
sub_80078A4(1, 38, 33, sub_8016028(), 4);
|
||||
if (sub_8015FEC(gUnknown_203B1FC->unkF8, gUnknown_203B1FC->unk1B) > sub_8016028()) {
|
||||
sprintfStatic(text, gUnknown_80DB654, gUnknown_203B1FC->unkF8);
|
||||
}
|
||||
else if (sub_8015F44() == gUnknown_203B1FC->unk1B) {
|
||||
sprintfStatic(text, gUnknown_80DB65C, gUnknown_203B1FC->unkF8);
|
||||
}
|
||||
else {
|
||||
sprintfStatic(text, gUnknown_80DB664, gUnknown_203B1FC->unkF8);
|
||||
}
|
||||
PrintStringOnWindow(38, 22, text, 1, '\0');
|
||||
break;
|
||||
}
|
||||
|
||||
sub_80073E0(1);
|
||||
}
|
||||
|
||||
void sub_8015E10(u8 *a0, s32 a1, s32 _a2)
|
||||
{
|
||||
s32 i;
|
||||
s32 a2 = (s16) _a2;
|
||||
|
||||
for (i = 0; i < 54; i++) {
|
||||
sub_80078A4(a1, gUnknown_80DAFC0[i].x, gUnknown_80DAFC0[i].y + 11 + a2, 11, 5);
|
||||
}
|
||||
|
||||
for (i = 0; i < 54 && a0[i] != 0; i++) {
|
||||
s32 arg3;
|
||||
|
||||
if (i <= 4) arg3 = 7;
|
||||
else if (i <= 12) arg3 = 6;
|
||||
else if (i <= 17) arg3 = 7;
|
||||
else if (i <= 22) arg3 = 7;
|
||||
else if (i <= 30) arg3 = 6;
|
||||
else if (i <= 35) arg3 = 7;
|
||||
else if (i <= 40) arg3 = 7;
|
||||
else if (i <= 48) arg3 = 6;
|
||||
else arg3 = 7;
|
||||
|
||||
sub_8012C60(gUnknown_80DAFC0[i].x, gUnknown_80DAFC0[i].y + a2, a0[i], arg3, a1);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8015EB4(u8 *a0, s32 a1, s32 _a2)
|
||||
{
|
||||
s32 i;
|
||||
s32 a2 = (s16) _a2;
|
||||
|
||||
for (i = 0; i < 24; i++) {
|
||||
sub_80078A4(a1, gUnknown_80DB098[i].x, gUnknown_80DB098[i].y + 11 + a2, 12, 5);
|
||||
}
|
||||
|
||||
for (i = 0; i < 24 && a0[i] != 0; i++) {
|
||||
s32 arg3;
|
||||
|
||||
if (i <= 3) arg3 = 7;
|
||||
else if (i <= 7) arg3 = 6;
|
||||
else if (i <= 15) arg3 = 7;
|
||||
else if (i <= 19) arg3 = 6;
|
||||
else arg3 = 7;
|
||||
|
||||
sub_8012C60(gUnknown_80DB098[i].x, gUnknown_80DB098[i].y + a2, a0[i], arg3, a1);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user