pmd-sky/asm/overlay_17.s
2025-10-22 21:15:44 -04:00

420 lines
8.2 KiB
ArmAsm

.include "asm/macros.inc"
.include "overlay_17.inc"
.text
; https://decomp.me/scratch/EJVO7
arm_func_start ov17_0238A140
ov17_0238A140: ; 0x0238A140
stmdb sp!, {r3, r4, r5, lr}
bl sub_0203C760
mov r0, #0x26c
mov r1, #8
bl MemAlloc
ldr r1, _0238A270 ; =OVERLAY17_UNKNOWN_POINTER__NA_238BE00
mov r2, #1
str r0, [r1]
strb r2, [r0, #9]
ldr r0, [r1]
add r0, r0, #0xc
bl InitPreprocessorArgs
ldr lr, _0238A270 ; =OVERLAY17_UNKNOWN_POINTER__NA_238BE00
mov r2, #0
ldr r0, [lr]
mov r4, #2
str r2, [r0, #0x6c]
ldr r0, [lr]
sub r1, r2, #1
str r2, [r0, #0x70]
ldr r5, [lr]
ldr ip, _0238A274 ; =ov11_0238A08C
ldr r3, [r5, #0x70]
sub r0, r4, #4
str r3, [r5, #0x78]
ldr r3, [lr]
str r2, [r3, #0x74]
ldr r3, [lr]
strh r2, [r3, #0x7c]
ldr r3, [lr]
strh r2, [r3, #0x7e]
ldr r3, [lr]
add r3, r3, #0x200
strh r1, [r3, #0x58]
ldr r3, [lr]
str r2, [r3, #0x80]
ldr r3, [lr]
add r3, r3, #0x200
strh r4, [r3, #0x5a]
ldr r3, [lr]
add r3, r3, #0x200
strh r4, [r3, #0x5c]
ldr r3, [lr]
str r2, [r3, #0x264]
ldr r2, [lr]
add r2, r2, #0x200
strh r1, [r2, #0x68]
ldr r2, [ip]
ldr r1, [lr]
str r2, [r1, #0x260]
ldr r1, [lr]
strb r0, [r1]
ldr r1, [lr]
strb r0, [r1, #1]
ldr r1, [lr]
strb r0, [r1, #2]
ldr r1, [lr]
strb r0, [r1, #3]
ldr r1, [lr]
strb r0, [r1, #4]
ldr r1, [lr]
strb r0, [r1, #5]
ldr r1, [lr]
strb r0, [r1, #6]
ldr r1, [lr]
strb r0, [r1, #7]
ldr r1, [lr]
strb r0, [r1, #8]
ldr r0, [lr]
add r0, r0, #0x84
bl CopyMenuControlWindowExtraInfo
ldr r1, _0238A270 ; =OVERLAY17_UNKNOWN_POINTER__NA_238BE00
ldr r1, [r1]
str r0, [r1, #0x80]
mov r0, #1
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
_0238A270: .word OVERLAY17_UNKNOWN_POINTER__NA_238BE00
_0238A274: .word ov11_0238A08C
arm_func_end ov17_0238A140
arm_func_start ov17_0238A278
ov17_0238A278: ; 0x0238A278
stmdb sp!, {r3, lr}
ldr r0, _0238A360 ; =OVERLAY17_UNKNOWN_POINTER__NA_238BE00
ldr r1, [r0]
ldrh r0, [r1, #0x7e]
tst r0, #1
bne _0238A2A4
ldrsb r0, [r1]
mvn r1, #1
cmp r0, r1
beq _0238A2A4
bl sub_0202F334
_0238A2A4:
ldr r0, _0238A360 ; =OVERLAY17_UNKNOWN_POINTER__NA_238BE00
ldr r1, [r0]
ldrh r0, [r1, #0x7e]
tst r0, #2
bne _0238A2CC
ldrsb r0, [r1, #1]
mvn r1, #1
cmp r0, r1
beq _0238A2CC
bl HidePortraitBox
_0238A2CC:
ldr r0, _0238A360 ; =OVERLAY17_UNKNOWN_POINTER__NA_238BE00
ldr r0, [r0]
ldrh r0, [r0, #0x7e]
tst r0, #0x20
bne _0238A2E4
bl sub_0203A618
_0238A2E4:
ldr r0, _0238A360 ; =OVERLAY17_UNKNOWN_POINTER__NA_238BE00
ldr r1, [r0]
ldrh r0, [r1, #0x7e]
tst r0, #0x40
bne _0238A30C
ldrsb r0, [r1, #5]
mvn r1, #1
cmp r0, r1
beq _0238A30C
bl SetAdvancedTextBoxState5
_0238A30C:
ldr r0, _0238A360 ; =OVERLAY17_UNKNOWN_POINTER__NA_238BE00
ldr r1, [r0]
ldrh r0, [r1, #0x7e]
tst r0, #0x80
bne _0238A334
ldrsb r0, [r1, #6]
mvn r1, #1
cmp r0, r1
beq _0238A334
bl SetAdvancedTextBoxState5
_0238A334:
ldr r0, _0238A360 ; =OVERLAY17_UNKNOWN_POINTER__NA_238BE00
ldr r1, [r0]
ldrh r0, [r1, #0x7e]
tst r0, #0x100
ldmneia sp!, {r3, pc}
ldrsb r0, [r1, #7]
mvn r1, #1
cmp r0, r1
ldmeqia sp!, {r3, pc}
bl SetScrollBoxState7
ldmia sp!, {r3, pc}
.align 2, 0
_0238A360: .word OVERLAY17_UNKNOWN_POINTER__NA_238BE00
arm_func_end ov17_0238A278
arm_func_start ov17_0238A364
ov17_0238A364: ; 0x0238A364
stmdb sp!, {r3, lr}
ldr r0, _0238A718 ; =OVERLAY17_UNKNOWN_POINTER__NA_238BE00
ldr r1, [r0]
ldrh r0, [r1, #0x7e]
tst r0, #1
bne _0238A3D0
ldrsb r0, [r1]
mvn r1, #1
cmp r0, r1
moveq r2, #1
beq _0238A3C4
bl IsDialogueBoxActive
cmp r0, #0
movne r2, #0
bne _0238A3C4
ldr r0, _0238A718 ; =OVERLAY17_UNKNOWN_POINTER__NA_238BE00
ldr r0, [r0]
ldrsb r0, [r0]
bl CloseDialogueBox
ldr r0, _0238A718 ; =OVERLAY17_UNKNOWN_POINTER__NA_238BE00
mvn r1, #1
ldr r0, [r0]
mov r2, #1
strb r1, [r0]
_0238A3C4:
cmp r2, #0
moveq r0, #0
ldmeqia sp!, {r3, pc}
_0238A3D0:
ldr r0, _0238A718 ; =OVERLAY17_UNKNOWN_POINTER__NA_238BE00
ldr r1, [r0]
ldrh r0, [r1, #0x7e]
tst r0, #2
bne _0238A438
ldrsb r0, [r1, #1]
mvn r1, #1
cmp r0, r1
moveq r2, #1
beq _0238A42C
bl PortraitBoxNeedsUpdate
cmp r0, #0
movne r2, #0
bne _0238A42C
ldr r0, _0238A718 ; =OVERLAY17_UNKNOWN_POINTER__NA_238BE00
ldr r0, [r0]
ldrsb r0, [r0, #1]
bl ClosePortraitBox
ldr r0, _0238A718 ; =OVERLAY17_UNKNOWN_POINTER__NA_238BE00
mvn r1, #1
ldr r0, [r0]
mov r2, #1
strb r1, [r0, #1]
_0238A42C:
cmp r2, #0
moveq r0, #0
ldmeqia sp!, {r3, pc}
_0238A438:
ldr r0, _0238A718 ; =OVERLAY17_UNKNOWN_POINTER__NA_238BE00
ldr r1, [r0]
ldrh r0, [r1, #0x7e]
tst r0, #4
bne _0238A4A0
ldrsb r0, [r1, #2]
mvn r1, #1
cmp r0, r1
moveq r2, #1
beq _0238A494
bl IsSimpleMenuActive
cmp r0, #0
movne r2, #0
bne _0238A494
ldr r0, _0238A718 ; =OVERLAY17_UNKNOWN_POINTER__NA_238BE00
ldr r0, [r0]
ldrsb r0, [r0, #2]
bl CloseSimpleMenu
ldr r0, _0238A718 ; =OVERLAY17_UNKNOWN_POINTER__NA_238BE00
mvn r1, #1
ldr r0, [r0]
mov r2, #1
strb r1, [r0, #2]
_0238A494:
cmp r2, #0
moveq r0, #0
ldmeqia sp!, {r3, pc}
_0238A4A0:
ldr r0, _0238A718 ; =OVERLAY17_UNKNOWN_POINTER__NA_238BE00
ldr r1, [r0]
ldrh r0, [r1, #0x7e]
tst r0, #0x10
bne _0238A508
ldrsb r0, [r1, #3]
mvn r1, #1
cmp r0, r1
moveq r2, #1
beq _0238A4FC
bl IsSimpleMenuActive
cmp r0, #0
movne r2, #0
bne _0238A4FC
ldr r0, _0238A718 ; =OVERLAY17_UNKNOWN_POINTER__NA_238BE00
ldr r0, [r0]
ldrsb r0, [r0, #3]
bl CloseSimpleMenu
ldr r0, _0238A718 ; =OVERLAY17_UNKNOWN_POINTER__NA_238BE00
mvn r1, #1
ldr r0, [r0]
mov r2, #1
strb r1, [r0, #3]
_0238A4FC:
cmp r2, #0
moveq r0, #0
ldmeqia sp!, {r3, pc}
_0238A508:
ldr r0, _0238A718 ; =OVERLAY17_UNKNOWN_POINTER__NA_238BE00
ldr r0, [r0]
ldrh r0, [r0, #0x7e]
tst r0, #0x20
bne _0238A540
bl sub_0203A9B8
cmp r0, #0
movne r0, #0
bne _0238A534
bl sub_0203A51C
mov r0, #1
_0238A534:
cmp r0, #0
moveq r0, #0
ldmeqia sp!, {r3, pc}
_0238A540:
ldr r0, _0238A718 ; =OVERLAY17_UNKNOWN_POINTER__NA_238BE00
ldr r1, [r0]
ldrh r0, [r1, #0x7e]
tst r0, #8
bne _0238A5A8
ldrsb r0, [r1, #4]
mvn r1, #1
cmp r0, r1
moveq r2, #1
beq _0238A59C
bl IsSimpleMenuActive
cmp r0, #0
movne r2, #0
bne _0238A59C
ldr r0, _0238A718 ; =OVERLAY17_UNKNOWN_POINTER__NA_238BE00
ldr r0, [r0]
ldrsb r0, [r0, #4]
bl CloseSimpleMenu
ldr r0, _0238A718 ; =OVERLAY17_UNKNOWN_POINTER__NA_238BE00
mvn r1, #1
ldr r0, [r0]
mov r2, #1
strb r1, [r0, #4]
_0238A59C:
cmp r2, #0
moveq r0, #0
ldmeqia sp!, {r3, pc}
_0238A5A8:
ldr r0, _0238A718 ; =OVERLAY17_UNKNOWN_POINTER__NA_238BE00
ldr r3, [r0]
ldrh r2, [r3, #0x7e]
tst r2, #0x40
bne _0238A5DC
ldrsb r1, [r3, #5]
mvn r0, #1
cmp r1, r0
moveq r0, #1
movne r0, #0
tst r0, #0xff
moveq r0, #0
ldmeqia sp!, {r3, pc}
_0238A5DC:
tst r2, #0x80
bne _0238A63C
ldrsb r0, [r3, #6]
mvn r1, #1
cmp r0, r1
moveq r2, #1
beq _0238A630
bl IsAdvancedTextBoxActive
cmp r0, #0
movne r2, #0
bne _0238A630
ldr r0, _0238A718 ; =OVERLAY17_UNKNOWN_POINTER__NA_238BE00
ldr r0, [r0]
ldrsb r0, [r0, #6]
bl CloseAdvancedTextBox
bl sub_020407C0
ldr r0, _0238A718 ; =OVERLAY17_UNKNOWN_POINTER__NA_238BE00
mvn r1, #1
ldr r0, [r0]
mov r2, #1
strb r1, [r0, #6]
_0238A630:
cmp r2, #0
moveq r0, #0
ldmeqia sp!, {r3, pc}
_0238A63C:
ldr r0, _0238A718 ; =OVERLAY17_UNKNOWN_POINTER__NA_238BE00
ldr r1, [r0]
ldrh r0, [r1, #0x7e]
tst r0, #0x100
bne _0238A6A8
ldrsb r0, [r1, #7]
mvn r1, #1
cmp r0, r1
moveq r2, #1
beq _0238A69C
bl IsScrollBoxActive
cmp r0, #0
movne r2, #0
bne _0238A69C
ldr r0, _0238A718 ; =OVERLAY17_UNKNOWN_POINTER__NA_238BE00
ldr r0, [r0]
ldrsb r0, [r0, #7]
bl CloseScrollBox
bl sub_02041A00
ldr r0, _0238A718 ; =OVERLAY17_UNKNOWN_POINTER__NA_238BE00
mvn r1, #1
ldr r0, [r0]
mov r2, #1
strb r1, [r0, #7]
_0238A69C:
cmp r2, #0
moveq r0, #0
ldmeqia sp!, {r3, pc}
_0238A6A8:
ldr r0, _0238A718 ; =OVERLAY17_UNKNOWN_POINTER__NA_238BE00
ldr r1, [r0]
ldrh r0, [r1, #0x7e]
tst r0, #0x200
bne _0238A710
ldrsb r0, [r1, #8]
mvn r1, #1
cmp r0, r1
moveq r2, #1
beq _0238A704
bl IsSimpleMenuActive
cmp r0, #0
movne r2, #0
bne _0238A704
ldr r0, _0238A718 ; =OVERLAY17_UNKNOWN_POINTER__NA_238BE00
ldr r0, [r0]
ldrsb r0, [r0, #8]
bl CloseSimpleMenu
ldr r0, _0238A718 ; =OVERLAY17_UNKNOWN_POINTER__NA_238BE00
mvn r1, #1
ldr r0, [r0]
mov r2, #1
strb r1, [r0, #8]
_0238A704:
cmp r2, #0
moveq r0, #0
ldmeqia sp!, {r3, pc}
_0238A710:
mov r0, #1
ldmia sp!, {r3, pc}
.align 2, 0
_0238A718: .word OVERLAY17_UNKNOWN_POINTER__NA_238BE00
arm_func_end ov17_0238A364