mirror of
https://github.com/pret/pmd-red.git
synced 2026-04-22 23:17:44 -05:00
sub_8062748
This commit is contained in:
parent
dcf9fad0a4
commit
ee9401e833
|
|
@ -5,764 +5,8 @@
|
|||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_8062230
|
||||
sub_8062230:
|
||||
push {r4-r6,lr}
|
||||
mov r6, r9
|
||||
mov r5, r8
|
||||
push {r5,r6}
|
||||
sub sp, 0x8
|
||||
ldr r0, _08062380
|
||||
ldr r0, [r0]
|
||||
movs r1, 0x8
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
bne _08062248
|
||||
b _08062372
|
||||
_08062248:
|
||||
ldr r0, _08062384
|
||||
mov r9, r0
|
||||
movs r0, 0
|
||||
movs r1, 0
|
||||
str r0, [sp]
|
||||
str r1, [sp, 0x4]
|
||||
mov r0, sp
|
||||
ldrh r0, [r0]
|
||||
ldr r1, _08062388
|
||||
ands r1, r0
|
||||
ldr r3, _0806238C
|
||||
ldr r0, [sp]
|
||||
ands r0, r3
|
||||
orrs r0, r1
|
||||
str r0, [sp]
|
||||
mov r1, sp
|
||||
ldrh r1, [r1]
|
||||
adds r2, r3, 0
|
||||
ands r2, r0
|
||||
orrs r2, r1
|
||||
str r2, [sp]
|
||||
mov r0, sp
|
||||
ldrh r1, [r0]
|
||||
ldr r0, _08062390
|
||||
ands r0, r1
|
||||
adds r1, r3, 0
|
||||
ands r1, r2
|
||||
orrs r1, r0
|
||||
str r1, [sp]
|
||||
mov r0, sp
|
||||
ldrh r0, [r0]
|
||||
adds r2, r3, 0
|
||||
ands r2, r1
|
||||
orrs r2, r0
|
||||
str r2, [sp]
|
||||
mov r0, sp
|
||||
ldrh r1, [r0]
|
||||
ldr r6, _08062394
|
||||
mov r8, r6
|
||||
mov r0, r8
|
||||
ands r0, r1
|
||||
adds r1, r3, 0
|
||||
ands r1, r2
|
||||
orrs r1, r0
|
||||
str r1, [sp]
|
||||
mov r0, sp
|
||||
ldrh r0, [r0]
|
||||
adds r2, r3, 0
|
||||
ands r2, r1
|
||||
orrs r2, r0
|
||||
str r2, [sp]
|
||||
mov r0, sp
|
||||
ldrh r1, [r0]
|
||||
ldr r0, _08062398
|
||||
ands r0, r1
|
||||
adds r1, r3, 0
|
||||
ands r1, r2
|
||||
orrs r1, r0
|
||||
str r1, [sp]
|
||||
mov r0, sp
|
||||
ldrh r0, [r0]
|
||||
adds r2, r3, 0
|
||||
ands r2, r1
|
||||
orrs r2, r0
|
||||
str r2, [sp]
|
||||
mov r0, sp
|
||||
ldrh r1, [r0]
|
||||
ldr r0, _0806239C
|
||||
ands r0, r1
|
||||
adds r1, r3, 0
|
||||
ands r1, r2
|
||||
orrs r1, r0
|
||||
str r1, [sp]
|
||||
mov r0, sp
|
||||
ldrh r0, [r0]
|
||||
adds r2, r3, 0
|
||||
ands r2, r1
|
||||
orrs r2, r0
|
||||
str r2, [sp]
|
||||
movs r4, 0x80
|
||||
lsls r4, 7
|
||||
mov r0, sp
|
||||
ldrh r1, [r0]
|
||||
ldr r6, _080623A0
|
||||
adds r0, r6, 0
|
||||
ands r0, r1
|
||||
adds r1, r3, 0
|
||||
ands r1, r2
|
||||
orrs r1, r0
|
||||
str r1, [sp]
|
||||
mov r0, sp
|
||||
ldrh r0, [r0]
|
||||
orrs r4, r0
|
||||
ands r3, r1
|
||||
orrs r3, r4
|
||||
str r3, [sp]
|
||||
movs r1, 0x80
|
||||
lsls r1, 6
|
||||
mov r5, sp
|
||||
ldrh r0, [r5, 0x2]
|
||||
ldr r2, _080623A4
|
||||
ands r2, r0
|
||||
orrs r2, r1
|
||||
ands r2, r6
|
||||
movs r3, 0xFC
|
||||
lsls r3, 2
|
||||
ldrh r1, [r5, 0x4]
|
||||
movs r0, 0xFC
|
||||
lsls r0, 8
|
||||
ands r0, r1
|
||||
orrs r0, r3
|
||||
mov r1, r8
|
||||
ands r0, r1
|
||||
movs r3, 0xF
|
||||
movs r1, 0xF0
|
||||
lsls r1, 8
|
||||
ldr r4, _080623A8
|
||||
ands r0, r4
|
||||
orrs r0, r1
|
||||
strh r0, [r5, 0x4]
|
||||
mov r6, r9
|
||||
movs r1, 0x2
|
||||
ldrsh r0, [r6, r1]
|
||||
lsls r0, 3
|
||||
adds r0, 0x8
|
||||
ands r0, r4
|
||||
lsls r0, 4
|
||||
ldrh r1, [r5, 0x6]
|
||||
ands r3, r1
|
||||
orrs r3, r0
|
||||
strh r3, [r5, 0x6]
|
||||
movs r3, 0
|
||||
ldrsh r0, [r6, r3]
|
||||
lsls r0, 3
|
||||
adds r0, 0x40
|
||||
ldr r1, _080623AC
|
||||
ands r0, r1
|
||||
movs r1, 0xFE
|
||||
lsls r1, 8
|
||||
ands r2, r1
|
||||
orrs r2, r0
|
||||
strh r2, [r5, 0x2]
|
||||
movs r1, 0x80
|
||||
lsls r1, 1
|
||||
mov r0, sp
|
||||
movs r2, 0
|
||||
movs r3, 0
|
||||
bl AddSprite
|
||||
_08062372:
|
||||
add sp, 0x8
|
||||
pop {r3,r4}
|
||||
mov r8, r3
|
||||
mov r9, r4
|
||||
pop {r4-r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08062380: .4byte gUnknown_202EDCC
|
||||
_08062384: .4byte gUnknown_2027370
|
||||
_08062388: .4byte 0x0000feff
|
||||
_0806238C: .4byte 0xffff0000
|
||||
_08062390: .4byte 0x0000fdff
|
||||
_08062394: .4byte 0x0000f3ff
|
||||
_08062398: .4byte 0x0000efff
|
||||
_0806239C: .4byte 0x0000dfff
|
||||
_080623A0: .4byte 0x00003fff
|
||||
_080623A4: .4byte 0x0000c1ff
|
||||
_080623A8: .4byte 0x00000fff
|
||||
_080623AC: .4byte 0x000001ff
|
||||
thumb_func_end sub_8062230
|
||||
|
||||
thumb_func_start sub_80623B0
|
||||
sub_80623B0:
|
||||
push {r4-r6,lr}
|
||||
sub sp, 0x8
|
||||
ldr r0, _080624D4
|
||||
ldr r0, [r0]
|
||||
movs r1, 0x8
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
bne _080623C2
|
||||
b _080624CA
|
||||
_080623C2:
|
||||
ldr r6, _080624D8
|
||||
movs r0, 0
|
||||
movs r1, 0
|
||||
str r0, [sp]
|
||||
str r1, [sp, 0x4]
|
||||
mov r0, sp
|
||||
ldrh r0, [r0]
|
||||
ldr r1, _080624DC
|
||||
ands r1, r0
|
||||
ldr r3, _080624E0
|
||||
ldr r0, [sp]
|
||||
ands r0, r3
|
||||
orrs r0, r1
|
||||
str r0, [sp]
|
||||
mov r1, sp
|
||||
ldrh r1, [r1]
|
||||
adds r2, r3, 0
|
||||
ands r2, r0
|
||||
orrs r2, r1
|
||||
str r2, [sp]
|
||||
mov r0, sp
|
||||
ldrh r1, [r0]
|
||||
ldr r0, _080624E4
|
||||
ands r0, r1
|
||||
adds r1, r3, 0
|
||||
ands r1, r2
|
||||
orrs r1, r0
|
||||
str r1, [sp]
|
||||
mov r0, sp
|
||||
ldrh r0, [r0]
|
||||
adds r2, r3, 0
|
||||
ands r2, r1
|
||||
orrs r2, r0
|
||||
str r2, [sp]
|
||||
mov r0, sp
|
||||
ldrh r1, [r0]
|
||||
ldr r5, _080624E8
|
||||
adds r0, r5, 0
|
||||
ands r0, r1
|
||||
adds r1, r3, 0
|
||||
ands r1, r2
|
||||
orrs r1, r0
|
||||
str r1, [sp]
|
||||
mov r0, sp
|
||||
ldrh r0, [r0]
|
||||
adds r2, r3, 0
|
||||
ands r2, r1
|
||||
orrs r2, r0
|
||||
str r2, [sp]
|
||||
mov r0, sp
|
||||
ldrh r1, [r0]
|
||||
ldr r0, _080624EC
|
||||
ands r0, r1
|
||||
adds r1, r3, 0
|
||||
ands r1, r2
|
||||
orrs r1, r0
|
||||
str r1, [sp]
|
||||
mov r0, sp
|
||||
ldrh r0, [r0]
|
||||
adds r2, r3, 0
|
||||
ands r2, r1
|
||||
orrs r2, r0
|
||||
str r2, [sp]
|
||||
mov r0, sp
|
||||
ldrh r1, [r0]
|
||||
ldr r0, _080624F0
|
||||
ands r0, r1
|
||||
adds r1, r3, 0
|
||||
ands r1, r2
|
||||
orrs r1, r0
|
||||
str r1, [sp]
|
||||
mov r0, sp
|
||||
ldrh r0, [r0]
|
||||
adds r2, r3, 0
|
||||
ands r2, r1
|
||||
orrs r2, r0
|
||||
str r2, [sp]
|
||||
movs r4, 0x80
|
||||
lsls r4, 7
|
||||
mov r0, sp
|
||||
ldrh r1, [r0]
|
||||
ldr r0, _080624F4
|
||||
ands r0, r1
|
||||
adds r1, r3, 0
|
||||
ands r1, r2
|
||||
orrs r1, r0
|
||||
str r1, [sp]
|
||||
mov r0, sp
|
||||
ldrh r0, [r0]
|
||||
orrs r4, r0
|
||||
ands r3, r1
|
||||
orrs r3, r4
|
||||
str r3, [sp]
|
||||
mov r3, sp
|
||||
movs r2, 0xFC
|
||||
lsls r2, 2
|
||||
ldrh r1, [r3, 0x4]
|
||||
movs r0, 0xFC
|
||||
lsls r0, 8
|
||||
ands r0, r1
|
||||
orrs r0, r2
|
||||
ands r0, r5
|
||||
movs r2, 0xF
|
||||
movs r1, 0xF0
|
||||
lsls r1, 8
|
||||
ldr r4, _080624F8
|
||||
ands r0, r4
|
||||
orrs r0, r1
|
||||
strh r0, [r3, 0x4]
|
||||
movs r1, 0x2
|
||||
ldrsh r0, [r6, r1]
|
||||
lsls r0, 3
|
||||
adds r0, 0x70
|
||||
ands r0, r4
|
||||
lsls r0, 4
|
||||
ldrh r1, [r3, 0x6]
|
||||
ands r2, r1
|
||||
orrs r2, r0
|
||||
strh r2, [r3, 0x6]
|
||||
movs r1, 0
|
||||
ldrsh r0, [r6, r1]
|
||||
lsls r0, 3
|
||||
adds r0, 0x40
|
||||
ldr r1, _080624FC
|
||||
ands r0, r1
|
||||
strh r0, [r3, 0x2]
|
||||
subs r1, 0xFF
|
||||
mov r0, sp
|
||||
movs r2, 0
|
||||
movs r3, 0
|
||||
bl AddSprite
|
||||
_080624CA:
|
||||
add sp, 0x8
|
||||
pop {r4-r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080624D4: .4byte gUnknown_202EDCC
|
||||
_080624D8: .4byte gUnknown_2027370
|
||||
_080624DC: .4byte 0x0000feff
|
||||
_080624E0: .4byte 0xffff0000
|
||||
_080624E4: .4byte 0x0000fdff
|
||||
_080624E8: .4byte 0x0000f3ff
|
||||
_080624EC: .4byte 0x0000efff
|
||||
_080624F0: .4byte 0x0000dfff
|
||||
_080624F4: .4byte 0x00003fff
|
||||
_080624F8: .4byte 0x00000fff
|
||||
_080624FC: .4byte 0x000001ff
|
||||
thumb_func_end sub_80623B0
|
||||
|
||||
thumb_func_start sub_8062500
|
||||
sub_8062500:
|
||||
push {r4,r5,lr}
|
||||
ldr r0, _0806257C
|
||||
ldr r0, [r0]
|
||||
movs r1, 0x8
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _08062574
|
||||
ldr r5, _08062580
|
||||
ldr r0, _08062584
|
||||
ldrh r2, [r0]
|
||||
ldr r1, _08062588
|
||||
ands r1, r2
|
||||
ldr r2, _0806258C
|
||||
ands r1, r2
|
||||
ldr r4, _08062590
|
||||
ands r1, r4
|
||||
ldr r2, _08062594
|
||||
ands r1, r2
|
||||
ldr r2, _08062598
|
||||
ands r1, r2
|
||||
movs r3, 0x80
|
||||
lsls r3, 7
|
||||
ldr r2, _0806259C
|
||||
ands r1, r2
|
||||
orrs r1, r3
|
||||
strh r1, [r0]
|
||||
movs r3, 0xFC
|
||||
lsls r3, 2
|
||||
ldrh r2, [r0, 0x4]
|
||||
movs r1, 0xFC
|
||||
lsls r1, 8
|
||||
ands r1, r2
|
||||
orrs r1, r3
|
||||
ands r1, r4
|
||||
movs r3, 0xF
|
||||
movs r2, 0xF0
|
||||
lsls r2, 8
|
||||
ldr r4, _080625A0
|
||||
ands r1, r4
|
||||
orrs r1, r2
|
||||
strh r1, [r0, 0x4]
|
||||
movs r2, 0x2
|
||||
ldrsh r1, [r5, r2]
|
||||
lsls r1, 3
|
||||
adds r1, 0x60
|
||||
ands r1, r4
|
||||
lsls r1, 4
|
||||
ldrh r2, [r0, 0x6]
|
||||
ands r3, r2
|
||||
orrs r3, r1
|
||||
strh r3, [r0, 0x6]
|
||||
movs r1, 0x70
|
||||
strh r1, [r0, 0x2]
|
||||
adds r1, 0x90
|
||||
movs r2, 0
|
||||
movs r3, 0
|
||||
bl AddSprite
|
||||
_08062574:
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0806257C: .4byte gUnknown_202EDCC
|
||||
_08062580: .4byte gUnknown_2027370
|
||||
_08062584: .4byte gUnknown_202F268
|
||||
_08062588: .4byte 0x0000feff
|
||||
_0806258C: .4byte 0x0000fdff
|
||||
_08062590: .4byte 0x0000f3ff
|
||||
_08062594: .4byte 0x0000efff
|
||||
_08062598: .4byte 0x0000dfff
|
||||
_0806259C: .4byte 0x00003fff
|
||||
_080625A0: .4byte 0x00000fff
|
||||
thumb_func_end sub_8062500
|
||||
|
||||
thumb_func_start sub_80625A4
|
||||
sub_80625A4:
|
||||
push {r4-r7,lr}
|
||||
mov r7, r9
|
||||
mov r6, r8
|
||||
push {r6,r7}
|
||||
sub sp, 0xC
|
||||
adds r7, r0, 0
|
||||
mov r9, r1
|
||||
mov r0, sp
|
||||
bl sub_801317C
|
||||
movs r4, 0
|
||||
cmp r4, r7
|
||||
bge _0806261A
|
||||
subs r0, r7, 0x1
|
||||
mov r8, r0
|
||||
mov r5, sp
|
||||
_080625C4:
|
||||
lsls r0, r4, 2
|
||||
add r0, r9
|
||||
ldr r0, [r0]
|
||||
mov r1, sp
|
||||
bl sub_80639E4
|
||||
adds r6, r4, 0x1
|
||||
b _080625E8
|
||||
_080625D4:
|
||||
movs r0, 0x2
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
bne _080625E2
|
||||
ldrb r0, [r5, 0x2]
|
||||
cmp r0, 0
|
||||
beq _080625E8
|
||||
_080625E2:
|
||||
bl sub_8083D30
|
||||
b _08062614
|
||||
_080625E8:
|
||||
cmp r4, r8
|
||||
bge _080625F0
|
||||
bl sub_8062500
|
||||
_080625F0:
|
||||
mov r0, sp
|
||||
movs r1, 0
|
||||
bl nullsub_34
|
||||
movs r0, 0x16
|
||||
bl sub_803E46C
|
||||
ldr r0, _08062628
|
||||
ldrh r1, [r0, 0x2]
|
||||
movs r0, 0x1
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
bne _08062610
|
||||
ldrb r0, [r5, 0x1]
|
||||
cmp r0, 0
|
||||
beq _080625D4
|
||||
_08062610:
|
||||
bl sub_8083D08
|
||||
_08062614:
|
||||
adds r4, r6, 0
|
||||
cmp r4, r7
|
||||
blt _080625C4
|
||||
_0806261A:
|
||||
add sp, 0xC
|
||||
pop {r3,r4}
|
||||
mov r8, r3
|
||||
mov r9, r4
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08062628: .4byte gRealInputs
|
||||
thumb_func_end sub_80625A4
|
||||
|
||||
thumb_func_start sub_806262C
|
||||
sub_806262C:
|
||||
push {r4-r7,lr}
|
||||
mov r7, r10
|
||||
mov r6, r9
|
||||
mov r5, r8
|
||||
push {r5-r7}
|
||||
sub sp, 0x88
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
mov r10, r0
|
||||
mov r0, sp
|
||||
adds r0, 0x70
|
||||
str r0, [sp, 0x84]
|
||||
add r0, sp, 0x10
|
||||
mov r8, r0
|
||||
movs r0, 0
|
||||
mov r9, r0
|
||||
add r7, sp, 0x4
|
||||
add r6, sp, 0x80
|
||||
_08062650:
|
||||
add r0, sp, 0x4
|
||||
bl sub_801317C
|
||||
mov r0, r8
|
||||
bl sub_80140B4
|
||||
mov r0, r8
|
||||
str r6, [r0, 0x14]
|
||||
movs r1, 0x1
|
||||
add r0, sp, 0x80
|
||||
strb r1, [r0]
|
||||
mov r0, r9
|
||||
strb r0, [r6, 0x1]
|
||||
movs r0, 0x10
|
||||
strb r0, [r6, 0x2]
|
||||
mov r0, r9
|
||||
strb r0, [r6, 0x3]
|
||||
mov r0, r8
|
||||
bl sub_803ECB4
|
||||
movs r0, 0
|
||||
bl sub_80073B8
|
||||
mov r0, r10
|
||||
bl GetIQSkillName
|
||||
adds r1, r0, 0
|
||||
ldr r0, _080626CC
|
||||
bl strcpy
|
||||
ldr r0, _080626D0
|
||||
ldr r2, [r0]
|
||||
mov r0, r9
|
||||
str r0, [sp]
|
||||
movs r0, 0x10
|
||||
movs r1, 0
|
||||
movs r3, 0
|
||||
bl PrintFormattedStringOnWindow
|
||||
mov r0, r10
|
||||
bl GetIQSkillDescription
|
||||
adds r2, r0, 0
|
||||
mov r0, r9
|
||||
str r0, [sp]
|
||||
movs r0, 0x8
|
||||
movs r1, 0x10
|
||||
movs r3, 0
|
||||
bl PrintFormattedStringOnWindow
|
||||
movs r0, 0
|
||||
bl sub_80073E0
|
||||
mov r0, r10
|
||||
bl GetIQSkillDescription
|
||||
ldr r1, [sp, 0x84]
|
||||
bl sub_8097DF0
|
||||
adds r5, r0, 0
|
||||
b _080626EA
|
||||
.align 2, 0
|
||||
_080626CC: .4byte gFormatBuffer_Items
|
||||
_080626D0: .4byte gUnknown_80FE95C
|
||||
_080626D4:
|
||||
movs r0, 0x2
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
bne _080626E2
|
||||
ldrb r0, [r7, 0x2]
|
||||
cmp r0, 0
|
||||
beq _080626EA
|
||||
_080626E2:
|
||||
movs r4, 0x1
|
||||
bl sub_8083D30
|
||||
b _08062718
|
||||
_080626EA:
|
||||
cmp r5, 0
|
||||
beq _080626F2
|
||||
bl sub_8062500
|
||||
_080626F2:
|
||||
add r0, sp, 0x4
|
||||
movs r1, 0
|
||||
bl nullsub_34
|
||||
movs r0, 0x16
|
||||
bl sub_803E46C
|
||||
ldr r0, _0806272C
|
||||
ldrh r1, [r0, 0x2]
|
||||
movs r0, 0x1
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
bne _08062712
|
||||
ldrb r0, [r7, 0x1]
|
||||
cmp r0, 0
|
||||
beq _080626D4
|
||||
_08062712:
|
||||
movs r4, 0
|
||||
bl sub_8083D08
|
||||
_08062718:
|
||||
cmp r4, 0
|
||||
bne _08062730
|
||||
cmp r5, 0
|
||||
beq _08062730
|
||||
adds r0, r5, 0
|
||||
ldr r1, [sp, 0x84]
|
||||
bl sub_80625A4
|
||||
b _08062650
|
||||
.align 2, 0
|
||||
_0806272C: .4byte gRealInputs
|
||||
_08062730:
|
||||
movs r0, 0x4
|
||||
movs r1, 0x3E
|
||||
bl sub_803E708
|
||||
add sp, 0x88
|
||||
pop {r3-r5}
|
||||
mov r8, r3
|
||||
mov r9, r4
|
||||
mov r10, r5
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_806262C
|
||||
|
||||
thumb_func_start sub_8062748
|
||||
sub_8062748:
|
||||
push {r4-r7,lr}
|
||||
mov r7, r10
|
||||
mov r6, r9
|
||||
mov r5, r8
|
||||
push {r5-r7}
|
||||
sub sp, 0x88
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
mov r10, r0
|
||||
mov r0, sp
|
||||
adds r0, 0x70
|
||||
str r0, [sp, 0x84]
|
||||
add r0, sp, 0x10
|
||||
mov r8, r0
|
||||
movs r0, 0
|
||||
mov r9, r0
|
||||
add r7, sp, 0x4
|
||||
add r6, sp, 0x80
|
||||
_0806276C:
|
||||
add r0, sp, 0x4
|
||||
bl sub_801317C
|
||||
mov r0, r8
|
||||
bl sub_80140B4
|
||||
mov r0, r8
|
||||
str r6, [r0, 0x14]
|
||||
movs r1, 0x1
|
||||
add r0, sp, 0x80
|
||||
strb r1, [r0]
|
||||
mov r0, r9
|
||||
strb r0, [r6, 0x1]
|
||||
movs r0, 0x10
|
||||
strb r0, [r6, 0x2]
|
||||
mov r0, r9
|
||||
strb r0, [r6, 0x3]
|
||||
mov r0, r8
|
||||
bl sub_803ECB4
|
||||
movs r0, 0
|
||||
bl sub_80073B8
|
||||
ldr r0, _080627E0
|
||||
mov r1, r10
|
||||
bl CopyTacticsNameToBuffer
|
||||
ldr r0, _080627E4
|
||||
ldr r2, [r0]
|
||||
mov r0, r9
|
||||
str r0, [sp]
|
||||
movs r0, 0x10
|
||||
movs r1, 0
|
||||
movs r3, 0
|
||||
bl PrintFormattedStringOnWindow
|
||||
mov r0, r10
|
||||
bl GetTacticsDescription
|
||||
adds r2, r0, 0
|
||||
mov r0, r9
|
||||
str r0, [sp]
|
||||
movs r0, 0x8
|
||||
movs r1, 0x10
|
||||
movs r3, 0
|
||||
bl PrintFormattedStringOnWindow
|
||||
movs r0, 0
|
||||
bl sub_80073E0
|
||||
mov r0, r10
|
||||
bl GetTacticsDescription
|
||||
ldr r1, [sp, 0x84]
|
||||
bl sub_8097DF0
|
||||
adds r5, r0, 0
|
||||
b _080627FE
|
||||
.align 2, 0
|
||||
_080627E0: .4byte gFormatBuffer_Items
|
||||
_080627E4: .4byte gUnknown_80FE960
|
||||
_080627E8:
|
||||
movs r0, 0x2
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
bne _080627F6
|
||||
ldrb r0, [r7, 0x2]
|
||||
cmp r0, 0
|
||||
beq _080627FE
|
||||
_080627F6:
|
||||
movs r4, 0x1
|
||||
bl sub_8083D30
|
||||
b _0806282C
|
||||
_080627FE:
|
||||
cmp r5, 0
|
||||
beq _08062806
|
||||
bl sub_8062500
|
||||
_08062806:
|
||||
add r0, sp, 0x4
|
||||
movs r1, 0
|
||||
bl nullsub_34
|
||||
movs r0, 0x3E
|
||||
bl sub_803E46C
|
||||
ldr r0, _08062840
|
||||
ldrh r1, [r0, 0x2]
|
||||
movs r0, 0x1
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
bne _08062826
|
||||
ldrb r0, [r7, 0x1]
|
||||
cmp r0, 0
|
||||
beq _080627E8
|
||||
_08062826:
|
||||
movs r4, 0
|
||||
bl sub_8083D08
|
||||
_0806282C:
|
||||
cmp r4, 0
|
||||
bne _08062844
|
||||
cmp r5, 0
|
||||
beq _08062844
|
||||
adds r0, r5, 0
|
||||
ldr r1, [sp, 0x84]
|
||||
bl sub_80625A4
|
||||
b _0806276C
|
||||
.align 2, 0
|
||||
_08062840: .4byte gRealInputs
|
||||
_08062844:
|
||||
movs r0, 0x4
|
||||
movs r1, 0x3E
|
||||
bl sub_803E708
|
||||
add sp, 0x88
|
||||
pop {r3-r5}
|
||||
mov r8, r3
|
||||
mov r9, r4
|
||||
mov r10, r5
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8062748
|
||||
|
||||
thumb_func_start sub_806285C
|
||||
sub_806285C:
|
||||
|
|
|
|||
|
|
@ -259,16 +259,6 @@ typedef struct SpriteOAM
|
|||
(spritePtr)->attrib2 |= _xSpriteVal; \
|
||||
}
|
||||
|
||||
// Hacky way of matching functions in menu_input.c AddMenuCursorSprite_, sub_801332C sub_8013470
|
||||
#define SpriteSetX_MatrixNumSize0(spritePtr, _x) \
|
||||
{ \
|
||||
u32 _xSpriteVal = _x; \
|
||||
_xSpriteVal &= SPRITEOAM_MAX_X; \
|
||||
_xSpriteVal <<= SPRITEOAM_SHIFT_X; \
|
||||
(spritePtr)->attrib2 &= ~SPRITEOAM_MASK_X; \
|
||||
(spritePtr)->attrib2 = _xSpriteVal; \
|
||||
}
|
||||
|
||||
#define SpriteGetY(spritePtr)(((spritePtr)->unk6 >> SPRITEOAM_SHIFT_WORKING_Y) & SPRITEOAM_MAX_WORKING_Y)
|
||||
|
||||
#define SpriteGetY_LocalVar(spritePtr, _y) \
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@ void sub_8068310(s32 size, u16 **param_2)
|
|||
}
|
||||
|
||||
void sub_8068344(void)
|
||||
{
|
||||
{
|
||||
if ((gUnknown_202EDCC & 8) != 0) {
|
||||
UnkTextStruct1 *ptr = &gUnknown_2027370[0];
|
||||
SpriteOAM sprite = {0};
|
||||
|
|
@ -49,7 +49,7 @@ void sub_8068344(void)
|
|||
SpriteSetBpp(&sprite, 0);
|
||||
SpriteSetShape(&sprite, 1);
|
||||
SpriteSetMatrixNum(&sprite, 16);
|
||||
SpriteSetSize(&sprite, 0);
|
||||
SpriteSetSize(&sprite, 0);
|
||||
SpriteSetTileNum(&sprite, 0x3F0);
|
||||
SpriteSetPriority(&sprite, 0);
|
||||
SpriteSetPalNum(&sprite, 15);
|
||||
|
|
@ -59,8 +59,9 @@ void sub_8068344(void)
|
|||
}
|
||||
}
|
||||
|
||||
// The same as sub_80623B0
|
||||
void sub_80684C4(void)
|
||||
{
|
||||
{
|
||||
if ((gUnknown_202EDCC & 8) != 0) {
|
||||
UnkTextStruct1 *ptr = &gUnknown_2027370[0];
|
||||
SpriteOAM sprite = {0};
|
||||
|
|
@ -71,12 +72,13 @@ void sub_80684C4(void)
|
|||
SpriteSetMosaic(&sprite, 0);
|
||||
SpriteSetBpp(&sprite, 0);
|
||||
SpriteSetShape(&sprite, 1);
|
||||
SpriteSetMatrixNum(&sprite, 0);
|
||||
SpriteSetSize(&sprite, 0);
|
||||
SpriteSetTileNum(&sprite, 0x3F0);
|
||||
SpriteSetPriority(&sprite, 0);
|
||||
SpriteSetPalNum(&sprite, 15);
|
||||
SpriteSetY(&sprite, (ptr->unk2 * 8) + 0x70);
|
||||
SpriteSetX_MatrixNumSize0(&sprite, (ptr->unk0 * 8) + 0x40);
|
||||
SpriteSetX(&sprite, (ptr->unk0 * 8) + 0x40);
|
||||
AddSprite(&sprite,0x100,NULL,NULL);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3102,7 +3102,7 @@ EWRAM_INIT u8 gUnknown_203B43C[4] = {2, 0, 0xD, 0}; // TODO: Move to a better fi
|
|||
extern void sub_8069844(struct unkStruct_808FF20 *param_1, Entity *target);
|
||||
extern u32 sub_8014140(s32 a0, const void *a1);
|
||||
extern void sub_806285C(s32 a0);
|
||||
extern void sub_806262C(s32 a0);
|
||||
void sub_806262C(u8 iqSkillId);
|
||||
|
||||
extern const u8 gUnknown_8106B8C[];
|
||||
|
||||
|
|
@ -3559,4 +3559,220 @@ void sub_8061A38(ActionContainer *a0, bool8 a1)
|
|||
LoadIQSkills(entity);
|
||||
}
|
||||
|
||||
extern s32 gUnknown_202EDCC;
|
||||
|
||||
// The same as sub_8068344
|
||||
void sub_8062230(void)
|
||||
{
|
||||
if ((gUnknown_202EDCC & 8) != 0) {
|
||||
UnkTextStruct1 *txtStrPtr = &gUnknown_2027370[0];
|
||||
SpriteOAM sprite = {0};
|
||||
|
||||
SpriteSetAffine1(&sprite, 0);
|
||||
SpriteSetAffine2(&sprite, 0);
|
||||
SpriteSetObjMode(&sprite, 0);
|
||||
SpriteSetMosaic(&sprite, 0);
|
||||
SpriteSetBpp(&sprite, 0);
|
||||
SpriteSetShape(&sprite, 1);
|
||||
SpriteSetMatrixNum(&sprite, 16);
|
||||
SpriteSetSize(&sprite, 0);
|
||||
SpriteSetTileNum(&sprite, 0x3F0);
|
||||
SpriteSetPriority(&sprite, 0);
|
||||
SpriteSetPalNum(&sprite, 15);
|
||||
SpriteSetY(&sprite, (txtStrPtr->unk2 * 8) + 0x8);
|
||||
SpriteSetX(&sprite, (txtStrPtr->unk0 * 8) + 0x40);
|
||||
|
||||
AddSprite(&sprite, 0x100, NULL, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
// The same as sub_80684C4
|
||||
void sub_80623B0(void)
|
||||
{
|
||||
if ((gUnknown_202EDCC & 8) != 0) {
|
||||
UnkTextStruct1 *ptr = &gUnknown_2027370[0];
|
||||
SpriteOAM sprite = {0};
|
||||
|
||||
SpriteSetAffine1(&sprite, 0);
|
||||
SpriteSetAffine2(&sprite, 0);
|
||||
SpriteSetObjMode(&sprite, 0);
|
||||
SpriteSetMosaic(&sprite, 0);
|
||||
SpriteSetBpp(&sprite, 0);
|
||||
SpriteSetShape(&sprite, 1);
|
||||
SpriteSetMatrixNum(&sprite, 0);
|
||||
SpriteSetSize(&sprite, 0);
|
||||
SpriteSetTileNum(&sprite, 0x3F0);
|
||||
SpriteSetPriority(&sprite, 0);
|
||||
SpriteSetPalNum(&sprite, 15);
|
||||
SpriteSetY(&sprite, (ptr->unk2 * 8) + 0x70);
|
||||
SpriteSetX(&sprite, (ptr->unk0 * 8) + 0x40);
|
||||
AddSprite(&sprite,0x100,NULL,NULL);
|
||||
}
|
||||
}
|
||||
|
||||
extern SpriteOAM gUnknown_202F268;
|
||||
|
||||
void sub_8062500(void)
|
||||
{
|
||||
if ((gUnknown_202EDCC & 8) != 0) {
|
||||
UnkTextStruct1 *ptr = &gUnknown_2027370[0];
|
||||
|
||||
SpriteSetAffine1(&gUnknown_202F268, 0);
|
||||
SpriteSetAffine2(&gUnknown_202F268, 0);
|
||||
SpriteSetObjMode(&gUnknown_202F268, 0);
|
||||
SpriteSetMosaic(&gUnknown_202F268, 0);
|
||||
SpriteSetBpp(&gUnknown_202F268, 0);
|
||||
SpriteSetShape(&gUnknown_202F268, 1);
|
||||
SpriteSetMatrixNum(&gUnknown_202F268, 0);
|
||||
SpriteSetSize(&gUnknown_202F268, 0);
|
||||
SpriteSetTileNum(&gUnknown_202F268, 0x3F0);
|
||||
SpriteSetPriority(&gUnknown_202F268, 0);
|
||||
SpriteSetPalNum(&gUnknown_202F268, 15);
|
||||
SpriteSetY(&gUnknown_202F268, (ptr->unk2 * 8) + 0x60);
|
||||
SpriteSetX(&gUnknown_202F268, 0x70);
|
||||
AddSprite(&gUnknown_202F268,0x100,NULL,NULL);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_80639E4(struct subStruct_203B240 *strings, MenuInputStructSub *menuSub);
|
||||
|
||||
void sub_80625A4(s32 count, struct subStruct_203B240 **strings)
|
||||
{
|
||||
s32 i;
|
||||
MenuInputStructSub menuSub;
|
||||
|
||||
sub_801317C(&menuSub);
|
||||
for (i = 0; i < count; i++) {
|
||||
sub_80639E4(strings[i], &menuSub);
|
||||
while (1) {
|
||||
if (i < count - 1) {
|
||||
sub_8062500();
|
||||
}
|
||||
nullsub_34(&menuSub, 0);
|
||||
sub_803E46C(0x16);
|
||||
if ((gRealInputs.pressed & A_BUTTON) || menuSub.a_button) {
|
||||
sub_8083D08();
|
||||
break;
|
||||
}
|
||||
if ((gRealInputs.pressed & B_BUTTON) || menuSub.b_button) {
|
||||
sub_8083D30();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
#include "code_8097DD0.h"
|
||||
|
||||
extern const u8 *const gUnknown_80FE95C;
|
||||
extern const u8 *const gUnknown_80FE960;
|
||||
|
||||
void sub_806262C(u8 iqSkillId)
|
||||
{
|
||||
MenuInputStructSub menuSub;
|
||||
Windows windows;
|
||||
WindowHeader header;
|
||||
struct subStruct_203B240 *result[4];
|
||||
|
||||
while (1) {
|
||||
s32 count;
|
||||
bool8 bPress;
|
||||
|
||||
sub_801317C(&menuSub);
|
||||
sub_80140B4(&windows);
|
||||
windows.id[0].unk14 = &header;
|
||||
header.f0 = 1;
|
||||
header.f1 = 0;
|
||||
header.f2 = 16;
|
||||
header.f3 = 0;
|
||||
sub_803ECB4(&windows, TRUE);
|
||||
sub_80073B8(0);
|
||||
|
||||
strcpy(gFormatBuffer_Items[0], GetIQSkillName(iqSkillId));
|
||||
PrintFormattedStringOnWindow(16, 0, gUnknown_80FE95C, 0, '\0');
|
||||
PrintFormattedStringOnWindow(8, 16, GetIQSkillDescription(iqSkillId), 0, '\0');
|
||||
sub_80073E0(0);
|
||||
count = sub_8097DF0(GetIQSkillDescription(iqSkillId), result);
|
||||
while (1) {
|
||||
if (count != 0) {
|
||||
sub_8062500();
|
||||
}
|
||||
nullsub_34(&menuSub, 0);
|
||||
sub_803E46C(0x16);
|
||||
if ((gRealInputs.pressed & A_BUTTON) || menuSub.a_button) {
|
||||
bPress = FALSE;
|
||||
sub_8083D08();
|
||||
break;
|
||||
}
|
||||
if ((gRealInputs.pressed & B_BUTTON) || menuSub.b_button) {
|
||||
bPress = TRUE;
|
||||
sub_8083D30();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (bPress || count == 0)
|
||||
break;
|
||||
|
||||
sub_80625A4(count, result);
|
||||
}
|
||||
|
||||
sub_803E708(4, 0x3E);
|
||||
}
|
||||
|
||||
void sub_8062748(u8 tacticId)
|
||||
{
|
||||
MenuInputStructSub menuSub;
|
||||
Windows windows;
|
||||
WindowHeader header;
|
||||
struct subStruct_203B240 *result[4];
|
||||
|
||||
while (1) {
|
||||
s32 count;
|
||||
bool8 bPress;
|
||||
|
||||
sub_801317C(&menuSub);
|
||||
sub_80140B4(&windows);
|
||||
windows.id[0].unk14 = &header;
|
||||
header.f0 = 1;
|
||||
header.f1 = 0;
|
||||
header.f2 = 16;
|
||||
header.f3 = 0;
|
||||
sub_803ECB4(&windows, TRUE);
|
||||
sub_80073B8(0);
|
||||
|
||||
CopyTacticsNameToBuffer(gFormatBuffer_Items[0], tacticId);
|
||||
PrintFormattedStringOnWindow(16, 0, gUnknown_80FE960, 0, '\0');
|
||||
PrintFormattedStringOnWindow(8, 16, GetTacticsDescription(tacticId), 0, '\0');
|
||||
sub_80073E0(0);
|
||||
count = sub_8097DF0(GetTacticsDescription(tacticId), result);
|
||||
while (1) {
|
||||
if (count != 0) {
|
||||
sub_8062500();
|
||||
}
|
||||
nullsub_34(&menuSub, 0);
|
||||
sub_803E46C(62);
|
||||
if ((gRealInputs.pressed & A_BUTTON) || menuSub.a_button) {
|
||||
bPress = FALSE;
|
||||
sub_8083D08();
|
||||
break;
|
||||
}
|
||||
if ((gRealInputs.pressed & B_BUTTON) || menuSub.b_button) {
|
||||
bPress = TRUE;
|
||||
sub_8083D30();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (bPress || count == 0)
|
||||
break;
|
||||
|
||||
sub_80625A4(count, result);
|
||||
}
|
||||
|
||||
sub_803E708(4, 0x3E);
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
|
|
|
|||
|
|
@ -595,13 +595,14 @@ void AddMenuCursorSprite_(MenuInputStruct *a0, u8 *a1)
|
|||
SpriteSetMosaic(&sp, 0);
|
||||
SpriteSetBpp(&sp, 0);
|
||||
SpriteSetShape(&sp, 0);
|
||||
SpriteSetMatrixNum(&sp, 0);
|
||||
SpriteSetSize(&sp, 0);
|
||||
SpriteSetTileNum(&sp, 0x3F4);
|
||||
SpriteSetPriority(&sp, 0);
|
||||
SpriteSetPalNum(&sp, 15);
|
||||
SpriteSetUnk6_0(&sp, 0);
|
||||
SpriteSetUnk6_1(&sp, 0);
|
||||
SpriteSetX_MatrixNumSize0(&sp, a0->unk8.x);
|
||||
SpriteSetX(&sp, a0->unk8.x);
|
||||
SpriteSetY(&sp, a0->unk8.y + 1);
|
||||
|
||||
AddSprite(&sp, 0xFF, 0, 0);
|
||||
|
|
@ -629,13 +630,14 @@ static void sub_801332C(DungeonPos *a0)
|
|||
SpriteSetMosaic(&sp, 0);
|
||||
SpriteSetBpp(&sp, 0);
|
||||
SpriteSetShape(&sp, 0);
|
||||
SpriteSetMatrixNum(&sp, 0);
|
||||
SpriteSetSize(&sp, 0);
|
||||
SpriteSetTileNum(&sp, 0x3F5);
|
||||
SpriteSetPriority(&sp, 0);
|
||||
SpriteSetPalNum(&sp, 15);
|
||||
SpriteSetUnk6_0(&sp, 0);
|
||||
SpriteSetUnk6_1(&sp, 0);
|
||||
SpriteSetX_MatrixNumSize0(&sp, a0->x);
|
||||
SpriteSetX(&sp, a0->x);
|
||||
SpriteSetY(&sp, a0->y + 1);
|
||||
|
||||
AddSprite(&sp, 0xFF, NULL, NULL);
|
||||
|
|
@ -653,13 +655,14 @@ static void sub_8013470(MenuInputStruct *a0)
|
|||
SpriteSetMosaic(&sp, 0);
|
||||
SpriteSetBpp(&sp, 0);
|
||||
SpriteSetShape(&sp, 0);
|
||||
SpriteSetMatrixNum(&sp, 0);
|
||||
SpriteSetSize(&sp, 0);
|
||||
SpriteSetTileNum(&sp, 0x3F2);
|
||||
SpriteSetPriority(&sp, 0);
|
||||
SpriteSetPalNum(&sp, 15);
|
||||
SpriteSetUnk6_0(&sp, 0);
|
||||
SpriteSetUnk6_1(&sp, 0);
|
||||
SpriteSetX_MatrixNumSize0(&sp, a0->unkC);
|
||||
SpriteSetX(&sp, a0->unkC);
|
||||
SpriteSetY(&sp, a0->unkE);
|
||||
|
||||
AddSprite(&sp, 0xFF, NULL, NULL);
|
||||
|
|
@ -671,13 +674,14 @@ static void sub_8013470(MenuInputStruct *a0)
|
|||
SpriteSetMosaic(&sp, 0);
|
||||
SpriteSetBpp(&sp, 0);
|
||||
SpriteSetShape(&sp, 0);
|
||||
SpriteSetMatrixNum(&sp, 0);
|
||||
SpriteSetSize(&sp, 0);
|
||||
SpriteSetTileNum(&sp, 0x3F3);
|
||||
SpriteSetPriority(&sp, 0);
|
||||
SpriteSetPalNum(&sp, 15);
|
||||
SpriteSetUnk6_0(&sp, 0);
|
||||
SpriteSetUnk6_1(&sp, 0);
|
||||
SpriteSetX_MatrixNumSize0(&sp, a0->unkC + 10);
|
||||
SpriteSetX(&sp, a0->unkC + 10);
|
||||
SpriteSetY(&sp, a0->unkE);
|
||||
|
||||
AddSprite(&sp, 0xFF, NULL, NULL);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user