mirror of
https://github.com/pret/pmd-sky.git
synced 2026-03-21 17:25:15 -05:00
747 lines
14 KiB
ArmAsm
747 lines
14 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "overlay_29_0234D484.inc"
|
|
|
|
.text
|
|
|
|
arm_func_start ov29_0234D484
|
|
ov29_0234D484: ; 0x0234D484
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
mov r5, r0
|
|
mov r0, r1
|
|
bl StringFromId
|
|
mov r4, r0
|
|
mov r0, #0
|
|
mov r1, r0
|
|
mov r2, r4
|
|
mov r3, #1
|
|
bl ov29_0234D304
|
|
mov r0, r5
|
|
mov r1, r4
|
|
bl LogMessageQuiet
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
arm_func_end ov29_0234D484
|
|
|
|
arm_func_start ov29_0234D4BC
|
|
ov29_0234D4BC: ; 0x0234D4BC
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
mov r7, r0
|
|
mov r6, r1
|
|
mov r5, r2
|
|
mov r4, r3
|
|
bl ov29_0234D558
|
|
bl ov29_0234D630
|
|
bl GetMessageLogPreprocessorArgs
|
|
mov r1, r0
|
|
mov r2, r7
|
|
mov r3, r5
|
|
mov r0, r6
|
|
str r4, [sp]
|
|
bl ov29_0234D750
|
|
mov r4, r0
|
|
ldrb r0, [sp, #0x18]
|
|
cmp r0, #0
|
|
moveq r0, #1
|
|
movne r0, #0
|
|
and r0, r0, #0xff
|
|
bl ov29_0234D8A0
|
|
mov r0, r4
|
|
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
|
arm_func_end ov29_0234D4BC
|
|
|
|
arm_func_start YesNoMenu
|
|
YesNoMenu: ; 0x0234D518
|
|
stmdb sp!, {r3, r4, r5, r6, lr}
|
|
sub sp, sp, #4
|
|
mov r6, r0
|
|
mov r0, r1
|
|
mov r5, r2
|
|
mov r4, r3
|
|
bl StringFromId
|
|
ldrb ip, [sp, #0x18]
|
|
mov r1, r0
|
|
mov r0, r6
|
|
mov r2, r5
|
|
mov r3, r4
|
|
str ip, [sp]
|
|
bl ov29_0234D4BC
|
|
add sp, sp, #4
|
|
ldmia sp!, {r3, r4, r5, r6, pc}
|
|
arm_func_end YesNoMenu
|
|
|
|
arm_func_start ov29_0234D558
|
|
ov29_0234D558: ; 0x0234D558
|
|
stmdb sp!, {r4, lr}
|
|
bl ov29_0234B73C
|
|
mov r4, r0
|
|
mov r0, #2
|
|
mov r1, #0
|
|
bl ov29_022EA428
|
|
cmp r4, #0
|
|
ldmeqia sp!, {r4, pc}
|
|
mov r0, #0
|
|
bl ov29_0234B1A4
|
|
mov r0, #0xa
|
|
mov r1, r0
|
|
bl ov29_022EA370
|
|
ldmia sp!, {r4, pc}
|
|
arm_func_end ov29_0234D558
|
|
|
|
arm_func_start DisplayMessageInternal
|
|
DisplayMessageInternal: ; 0x0234D590
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
sub sp, sp, #8
|
|
mov r6, r1
|
|
mov r5, r2
|
|
mov r4, r3
|
|
bl StringFromId
|
|
ldr r1, [sp, #0x18]
|
|
ldrb ip, [sp, #0x1c]
|
|
str r1, [sp]
|
|
mov r1, r6
|
|
mov r2, r5
|
|
mov r3, r4
|
|
str ip, [sp, #4]
|
|
bl ov29_0234D5D0
|
|
add sp, sp, #8
|
|
ldmia sp!, {r4, r5, r6, pc}
|
|
arm_func_end DisplayMessageInternal
|
|
|
|
arm_func_start ov29_0234D5D0
|
|
ov29_0234D5D0: ; 0x0234D5D0
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
mov r7, r0
|
|
mov r6, r1
|
|
mov r0, #2
|
|
mov r1, #0
|
|
mov r5, r2
|
|
mov r4, r3
|
|
bl ov29_022EA428
|
|
mov r0, #1
|
|
bl ov29_0234B4CC
|
|
bl ov29_0234DB58
|
|
mov r0, r5
|
|
bl ov29_0234DBE0
|
|
mov r0, r7
|
|
mov r3, r4
|
|
str r6, [sp]
|
|
ldr r1, [sp, #0x18]
|
|
mov r2, #0
|
|
bl ov29_0234DC3C
|
|
bl ov29_0234D9C0
|
|
mov r0, r6
|
|
ldrb r1, [sp, #0x1c]
|
|
bl ov29_0234D8B4
|
|
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
|
arm_func_end ov29_0234D5D0
|
|
|
|
arm_func_start ov29_0234D630
|
|
ov29_0234D630: ; 0x0234D630
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #2
|
|
mov r1, #0
|
|
bl ov29_022EA428
|
|
mov r0, #1
|
|
bl ov29_0234B4CC
|
|
bl ov29_0234DB58
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end ov29_0234D630
|
|
|
|
arm_func_start ov29_0234D650
|
|
ov29_0234D650: ; 0x0234D650
|
|
ldr ip, _0234D658 ; =ov29_0234D9C0
|
|
bx ip
|
|
.align 2, 0
|
|
_0234D658: .word ov29_0234D9C0
|
|
arm_func_end ov29_0234D650
|
|
|
|
arm_func_start ov29_0234D65C
|
|
ov29_0234D65C: ; 0x0234D65C
|
|
ldr ip, _0234D664 ; =ov29_0234DBE0
|
|
bx ip
|
|
.align 2, 0
|
|
_0234D664: .word ov29_0234DBE0
|
|
arm_func_end ov29_0234D65C
|
|
|
|
arm_func_start ov29_0234D668
|
|
ov29_0234D668: ; 0x0234D668
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0234D68C ; =ov29_02382800
|
|
mvn r1, #1
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #0x12]
|
|
cmp r0, r1
|
|
ldmeqia sp!, {r3, pc}
|
|
bl HidePortraitBox
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0234D68C: .word ov29_02382800
|
|
arm_func_end ov29_0234D668
|
|
|
|
arm_func_start ov29_0234D690
|
|
ov29_0234D690: ; 0x0234D690
|
|
stmdb sp!, {r3, r4, r5, r6, lr}
|
|
sub sp, sp, #4
|
|
mov r6, r1
|
|
mov r5, r2
|
|
mov r4, r3
|
|
bl StringFromId
|
|
ldrb ip, [sp, #0x18]
|
|
mov r1, r6
|
|
mov r2, r5
|
|
mov r3, r4
|
|
str ip, [sp]
|
|
bl ov29_0234DC3C
|
|
add sp, sp, #4
|
|
ldmia sp!, {r3, r4, r5, r6, pc}
|
|
arm_func_end ov29_0234D690
|
|
|
|
arm_func_start ov29_0234D6C8
|
|
ov29_0234D6C8: ; 0x0234D6C8
|
|
stmdb sp!, {r3, r4, r5, r6, lr}
|
|
sub sp, sp, #4
|
|
mov r6, r0
|
|
mov r0, r2
|
|
mov r5, r1
|
|
mov r4, r3
|
|
bl ov29_0234DBE0
|
|
ldrb ip, [sp, #0x18]
|
|
mov r0, r6
|
|
mov r1, r5
|
|
mov r3, r4
|
|
mov r2, #0
|
|
str ip, [sp]
|
|
bl ov29_0234DC3C
|
|
bl ov29_0234D9C0
|
|
add sp, sp, #4
|
|
ldmia sp!, {r3, r4, r5, r6, pc}
|
|
arm_func_end ov29_0234D6C8
|
|
|
|
arm_func_start ov29_0234D70C
|
|
ov29_0234D70C: ; 0x0234D70C
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
mov r6, r2
|
|
mov r7, r1
|
|
mov r5, r3
|
|
bl StringFromId
|
|
mov r4, r0
|
|
mov r0, r6
|
|
bl ov29_0234DBE0
|
|
mov r0, r4
|
|
mov r1, r7
|
|
mov r3, r5
|
|
ldrb ip, [sp, #0x18]
|
|
mov r2, #0
|
|
str ip, [sp]
|
|
bl ov29_0234DC3C
|
|
bl ov29_0234D9C0
|
|
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
|
arm_func_end ov29_0234D70C
|
|
|
|
arm_func_start ov29_0234D750
|
|
ov29_0234D750: ; 0x0234D750
|
|
stmdb sp!, {r3, r4, r5, r6, lr}
|
|
sub sp, sp, #0xc
|
|
ldrb ip, [sp, #0x20]
|
|
mov r4, r2
|
|
mov r6, r0
|
|
mov r5, r1
|
|
mov r2, #0
|
|
mov r1, r3
|
|
add r0, sp, #4
|
|
mov r3, r2
|
|
str ip, [sp]
|
|
bl ov29_0234D860
|
|
mov r0, r4
|
|
bl ov29_0234DBE0
|
|
mov r2, #1
|
|
str r2, [sp]
|
|
mov r0, r6
|
|
mov r1, r5
|
|
add r2, sp, #4
|
|
mov r3, #0
|
|
bl ov29_0234DC3C
|
|
bl ov29_0234D9C0
|
|
ldr r0, _0234D7BC ; =ov29_02382800
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, #0x46c]
|
|
add sp, sp, #0xc
|
|
ldmia sp!, {r3, r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_0234D7BC: .word ov29_02382800
|
|
arm_func_end ov29_0234D750
|
|
|
|
arm_func_start ov29_0234D7C0
|
|
ov29_0234D7C0: ; 0x0234D7C0
|
|
stmdb sp!, {r4, r5, r6, r7, lr}
|
|
sub sp, sp, #0xc
|
|
mov r7, r1
|
|
mov r6, r2
|
|
mov r5, r3
|
|
bl StringFromId
|
|
ldrb r1, [sp, #0x20]
|
|
mov r2, #0
|
|
mov r4, r0
|
|
str r1, [sp]
|
|
add r0, sp, #4
|
|
mov r1, r5
|
|
mov r3, r2
|
|
bl ov29_0234D860
|
|
mov r0, r6
|
|
bl ov29_0234DBE0
|
|
mov r2, #1
|
|
str r2, [sp]
|
|
mov r0, r4
|
|
mov r1, r7
|
|
add r2, sp, #4
|
|
mov r3, #0
|
|
bl ov29_0234DC3C
|
|
bl ov29_0234D9C0
|
|
ldr r0, _0234D834 ; =ov29_02382800
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, #0x46c]
|
|
add sp, sp, #0xc
|
|
ldmia sp!, {r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_0234D834: .word ov29_02382800
|
|
arm_func_end ov29_0234D7C0
|
|
|
|
arm_func_start ov29_0234D838
|
|
ov29_0234D838: ; 0x0234D838
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0234D85C ; =ov29_02382800
|
|
mvn r1, #1
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #0x10]
|
|
cmp r0, r1
|
|
ldmeqia sp!, {r3, pc}
|
|
bl sub_0202F334
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0234D85C: .word ov29_02382800
|
|
arm_func_end ov29_0234D838
|
|
|
|
arm_func_start ov29_0234D860
|
|
ov29_0234D860: ; 0x0234D860
|
|
ldrb ip, [sp]
|
|
strb r3, [r0]
|
|
strb ip, [r0, #1]
|
|
strh r1, [r0, #2]
|
|
str r2, [r0, #4]
|
|
bx lr
|
|
arm_func_end ov29_0234D860
|
|
|
|
arm_func_start ov29_0234D878
|
|
ov29_0234D878: ; 0x0234D878
|
|
ldr r1, _0234D888 ; =ov29_02382800
|
|
ldr r1, [r1]
|
|
str r0, [r1, #0x474]
|
|
bx lr
|
|
.align 2, 0
|
|
_0234D888: .word ov29_02382800
|
|
arm_func_end ov29_0234D878
|
|
|
|
arm_func_start ov29_0234D88C
|
|
ov29_0234D88C: ; 0x0234D88C
|
|
ldr r0, _0234D89C ; =ov29_02382800
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, #0x46c]
|
|
bx lr
|
|
.align 2, 0
|
|
_0234D89C: .word ov29_02382800
|
|
arm_func_end ov29_0234D88C
|
|
|
|
arm_func_start ov29_0234D8A0
|
|
ov29_0234D8A0: ; 0x0234D8A0
|
|
ldr ip, _0234D8B0 ; =ov29_0234D8B4
|
|
mov r1, r0
|
|
mov r0, #0
|
|
bx ip
|
|
.align 2, 0
|
|
_0234D8B0: .word ov29_0234D8B4
|
|
arm_func_end ov29_0234D8A0
|
|
|
|
arm_func_start ov29_0234D8B4
|
|
ov29_0234D8B4: ; 0x0234D8B4
|
|
stmdb sp!, {r3, r4, r5, lr}
|
|
ldr r2, _0234D9BC ; =ov29_02382800
|
|
mov r5, r0
|
|
ldr r0, [r2]
|
|
mov r4, r1
|
|
cmp r0, #0
|
|
beq _0234D970
|
|
ldrsb r0, [r0, #0x12]
|
|
mvn r1, #1
|
|
cmp r0, r1
|
|
beq _0234D8E4
|
|
bl HidePortraitBox
|
|
_0234D8E4:
|
|
ldr r0, _0234D9BC ; =ov29_02382800
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #0x10]
|
|
bl sub_0202F334
|
|
mov r0, #8
|
|
mov r1, #0x62
|
|
bl ov29_022EA370
|
|
ldr r0, _0234D9BC ; =ov29_02382800
|
|
mvn r1, #1
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #0x11]
|
|
cmp r0, r1
|
|
beq _0234D91C
|
|
bl CloseParentMenu
|
|
_0234D91C:
|
|
ldr r0, _0234D9BC ; =ov29_02382800
|
|
mvn r1, #1
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #0x12]
|
|
cmp r0, r1
|
|
beq _0234D948
|
|
bl ClosePortraitBox
|
|
ldr r0, _0234D9BC ; =ov29_02382800
|
|
mvn r1, #1
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #0x12]
|
|
_0234D948:
|
|
ldr r0, _0234D9BC ; =ov29_02382800
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #0x10]
|
|
bl CloseDialogueBox
|
|
ldr r0, _0234D9BC ; =ov29_02382800
|
|
ldr r0, [r0]
|
|
bl MemFree
|
|
ldr r0, _0234D9BC ; =ov29_02382800
|
|
mov r1, #0
|
|
str r1, [r0]
|
|
_0234D970:
|
|
mov r0, #0x62
|
|
bl AdvanceFrame
|
|
cmp r5, #0
|
|
beq _0234D994
|
|
bl ov29_022F2FE4
|
|
bl ov29_02339148
|
|
mov r0, #8
|
|
mov r1, #9
|
|
bl ov29_022EA370
|
|
_0234D994:
|
|
cmp r4, #0
|
|
beq _0234D9A8
|
|
mov r0, #0
|
|
mov r1, r0
|
|
bl ov29_022EA428
|
|
_0234D9A8:
|
|
bl sub_02006B70
|
|
bl ov29_022E0B44
|
|
mov r0, #0
|
|
bl ov29_0234B4CC
|
|
ldmia sp!, {r3, r4, r5, pc}
|
|
.align 2, 0
|
|
_0234D9BC: .word ov29_02382800
|
|
arm_func_end ov29_0234D8B4
|
|
|
|
arm_func_start ov29_0234D9C0
|
|
ov29_0234D9C0: ; 0x0234D9C0
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
mvn r8, #1
|
|
mov r7, #0
|
|
ldr r6, _0234DB50 ; =ov29_02382800
|
|
sub r5, r8, #3
|
|
sub r4, r8, #2
|
|
mov sb, #1
|
|
mov fp, r7
|
|
_0234D9E0:
|
|
mov r0, #0x62
|
|
bl AdvanceFrame
|
|
ldr r1, [r6]
|
|
ldrb r0, [r1, #0x466]
|
|
cmp r0, #0
|
|
beq _0234DB2C
|
|
add r0, r1, #0x400
|
|
ldrsh r0, [r0, #0x6a]
|
|
mov sl, #0
|
|
cmp r0, #0
|
|
bne _0234DA90
|
|
ldrsb r0, [r1, #0x10]
|
|
bl IsDialogueBoxActive
|
|
cmp r0, #0
|
|
bne _0234DB44
|
|
ldr r0, [r6]
|
|
add r0, r0, #0x400
|
|
strh sb, [r0, #0x6a]
|
|
ldr r0, [r6]
|
|
ldr r3, [r0, #0x470]
|
|
ldrb r0, [r0, #0x467]
|
|
cmp r3, #0
|
|
ldreq r3, _0234DB54 ; =ov29_02353398
|
|
cmp r0, #0
|
|
movne r1, #0x11
|
|
mov r0, #0
|
|
moveq r1, #0x13
|
|
mov r2, r0
|
|
bl CreateParentMenuFromStringIds
|
|
ldr r1, [r6]
|
|
strb r0, [r1, #0x11]
|
|
ldr r1, [r6]
|
|
ldrsb r0, [r1, #0x11]
|
|
add r1, r1, #0x400
|
|
ldrsh r1, [r1, #0x68]
|
|
bl sub_0202AB94
|
|
ldr r0, [r6]
|
|
ldr r0, [r0, #0x474]
|
|
cmp r0, #0
|
|
beq _0234DB44
|
|
blx r0
|
|
ldr r0, [r6]
|
|
str fp, [r0, #0x474]
|
|
b _0234DB44
|
|
_0234DA90:
|
|
ldrsb r0, [r1, #0x11]
|
|
bl sub_020282F4
|
|
ldr r2, [r6]
|
|
ldrb r1, [r2, #0x467]
|
|
cmp r1, #0
|
|
cmpeq r0, r5
|
|
moveq r0, #2
|
|
streq r0, [r2, #0x46c]
|
|
moveq sl, #1
|
|
beq _0234DAD4
|
|
cmp r0, r4
|
|
bne _0234DAD4
|
|
ldrsb r0, [r2, #0x11]
|
|
bl GetSimpleMenuResult__0202AEA4
|
|
ldr r1, [r6]
|
|
mov sl, #1
|
|
str r0, [r1, #0x46c]
|
|
_0234DAD4:
|
|
cmp sl, #0
|
|
beq _0234DB44
|
|
ldr r0, [r6]
|
|
ldrsb r0, [r0, #0x11]
|
|
cmp r0, r8
|
|
beq _0234DAF8
|
|
bl CloseParentMenu
|
|
ldr r0, [r6]
|
|
strb r8, [r0, #0x11]
|
|
_0234DAF8:
|
|
ldr r0, [r6]
|
|
add r0, r0, #0x400
|
|
strh r7, [r0, #0x6a]
|
|
ldr r0, [r6]
|
|
strb r7, [r0, #0x466]
|
|
ldr r0, [r6]
|
|
strb r7, [r0, #0x467]
|
|
ldr r0, [r6]
|
|
add r0, r0, #0x400
|
|
strh r7, [r0, #0x68]
|
|
ldr r0, [r6]
|
|
str r7, [r0, #0x470]
|
|
b _0234DB44
|
|
_0234DB2C:
|
|
ldrsb r0, [r1, #0x10]
|
|
bl IsDialogueBoxActive
|
|
cmp r0, #0
|
|
moveq r0, #1
|
|
movne r0, #0
|
|
and sl, r0, #0xff
|
|
_0234DB44:
|
|
cmp sl, #0
|
|
beq _0234D9E0
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
.align 2, 0
|
|
_0234DB50: .word ov29_02382800
|
|
_0234DB54: .word ov29_02353398
|
|
arm_func_end ov29_0234D9C0
|
|
|
|
arm_func_start ov29_0234DB58
|
|
ov29_0234DB58: ; 0x0234DB58
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0234DBD8 ; =0x00000478
|
|
mov r1, #8
|
|
bl MemAlloc
|
|
ldr r2, _0234DBDC ; =ov29_02382800
|
|
ldr r1, _0234DBD8 ; =0x00000478
|
|
str r0, [r2]
|
|
bl MemZero
|
|
ldr r0, _0234DBDC ; =ov29_02382800
|
|
mvn r2, #0
|
|
ldr r1, [r0]
|
|
str r2, [r1, #0x46c]
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x14
|
|
bl InitPreprocessorArgs
|
|
ldr r1, _0234DBDC ; =ov29_02382800
|
|
mov r3, #0
|
|
ldr r0, [r1]
|
|
sub r2, r3, #2
|
|
strb r3, [r0, #0x466]
|
|
ldr r0, [r1]
|
|
add r0, r0, #0x400
|
|
strh r3, [r0, #0x6a]
|
|
ldr r0, [r1]
|
|
strb r2, [r0, #0x12]
|
|
ldr r0, [r1]
|
|
strb r2, [r0, #0x11]
|
|
ldr r0, [r1]
|
|
strb r2, [r0, #0x10]
|
|
ldr r0, [r1]
|
|
str r3, [r0, #0x474]
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0234DBD8: .word 0x00000478
|
|
_0234DBDC: .word ov29_02382800
|
|
arm_func_end ov29_0234DB58
|
|
|
|
arm_func_start ov29_0234DBE0
|
|
ov29_0234DBE0: ; 0x0234DBE0
|
|
stmdb sp!, {r4, lr}
|
|
movs r4, r0
|
|
ldmeqia sp!, {r4, pc}
|
|
ldr r1, _0234DC38 ; =ov29_02382800
|
|
mvn r0, #1
|
|
ldr r1, [r1]
|
|
ldrsb r1, [r1, #0x12]
|
|
cmp r1, r0
|
|
bne _0234DC20
|
|
mov r0, #0
|
|
mov r1, #3
|
|
mov r2, #1
|
|
bl CreatePortraitBox
|
|
ldr r1, _0234DC38 ; =ov29_02382800
|
|
ldr r1, [r1]
|
|
strb r0, [r1, #0x12]
|
|
_0234DC20:
|
|
ldr r0, _0234DC38 ; =ov29_02382800
|
|
mov r1, r4
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #0x12]
|
|
bl ShowPortraitInPortraitBox
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_0234DC38: .word ov29_02382800
|
|
arm_func_end ov29_0234DBE0
|
|
|
|
arm_func_start ov29_0234DC3C
|
|
ov29_0234DC3C: ; 0x0234DC3C
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
|
|
ldr r4, _0234DD88 ; =ov29_02382800
|
|
mvn ip, #1
|
|
ldr r4, [r4]
|
|
mov r7, r0
|
|
ldrsb r0, [r4, #0x10]
|
|
mov r6, r1
|
|
mov r5, r2
|
|
mov r4, r3
|
|
cmp r0, ip
|
|
bne _0234DC8C
|
|
mov r0, #0
|
|
bl CreateDialogueBox
|
|
ldr r2, _0234DD88 ; =ov29_02382800
|
|
mov r1, #0
|
|
ldr r3, [r2]
|
|
strb r0, [r3, #0x10]
|
|
ldr r0, [r2]
|
|
ldrsb r0, [r0, #0x10]
|
|
bl sub_0202F474
|
|
_0234DC8C:
|
|
ldr r0, _0234DD88 ; =ov29_02382800
|
|
mov r8, r6
|
|
ldr sb, [r0]
|
|
mov ip, #5
|
|
add lr, sb, #0x14
|
|
_0234DCA0:
|
|
ldmia r8!, {r0, r1, r2, r3}
|
|
stmia lr!, {r0, r1, r2, r3}
|
|
subs ip, ip, #1
|
|
bne _0234DCA0
|
|
ldr r1, _0234DD8C ; =0x00001004
|
|
add r0, sb, #0x400
|
|
strh r1, [r0, #0x64]
|
|
cmp r4, #0
|
|
beq _0234DCDC
|
|
ldr r0, _0234DD88 ; =ov29_02382800
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x400
|
|
ldrh r1, [r0, #0x64]
|
|
orr r1, r1, #0x2000
|
|
strh r1, [r0, #0x64]
|
|
_0234DCDC:
|
|
ldrb r0, [sp, #0x20]
|
|
cmp r0, #0
|
|
beq _0234DD24
|
|
cmp r5, #0
|
|
beq _0234DD0C
|
|
ldr r0, _0234DD88 ; =ov29_02382800
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x400
|
|
ldrh r1, [r0, #0x64]
|
|
orr r1, r1, #8
|
|
strh r1, [r0, #0x64]
|
|
b _0234DD24
|
|
_0234DD0C:
|
|
ldr r0, _0234DD88 ; =ov29_02382800
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x400
|
|
ldrh r1, [r0, #0x64]
|
|
orr r1, r1, #0x18
|
|
strh r1, [r0, #0x64]
|
|
_0234DD24:
|
|
cmp r5, #0
|
|
beq _0234DD64
|
|
ldr r1, _0234DD88 ; =ov29_02382800
|
|
mov r2, #1
|
|
ldr r0, [r1]
|
|
strb r2, [r0, #0x466]
|
|
ldrb r2, [r5, #1]
|
|
ldr r0, [r1]
|
|
strb r2, [r0, #0x467]
|
|
ldr r0, [r1]
|
|
ldrsh r2, [r5, #2]
|
|
add r0, r0, #0x400
|
|
strh r2, [r0, #0x68]
|
|
ldr r2, [r5, #4]
|
|
ldr r0, [r1]
|
|
str r2, [r0, #0x470]
|
|
_0234DD64:
|
|
ldr r0, _0234DD88 ; =ov29_02382800
|
|
mov r2, r7
|
|
ldr r0, [r0]
|
|
mov r3, r6
|
|
add r1, r0, #0x400
|
|
ldrsb r0, [r0, #0x10]
|
|
ldrh r1, [r1, #0x64]
|
|
bl ShowStringInDialogueBox
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
|
.align 2, 0
|
|
_0234DD88: .word ov29_02382800
|
|
_0234DD8C: .word 0x00001004
|
|
arm_func_end ov29_0234DC3C
|
|
|
|
arm_func_start ov29_0234DD90
|
|
ov29_0234DD90: ; 0x0234DD90
|
|
ldr ip, _0234DD9C ; =LoadOverlay
|
|
mov r0, #0x22
|
|
bx ip
|
|
.align 2, 0
|
|
_0234DD9C: .word LoadOverlay
|
|
arm_func_end ov29_0234DD90
|
|
|
|
arm_func_start ov29_0234DDA0
|
|
ov29_0234DDA0: ; 0x0234DDA0
|
|
ldr ip, _0234DDAC ; =OverlayIsLoaded
|
|
mov r0, #0x22
|
|
bx ip
|
|
.align 2, 0
|
|
_0234DDAC: .word OverlayIsLoaded
|
|
arm_func_end ov29_0234DDA0
|
|
|
|
arm_func_start ov29_0234DDB0
|
|
ov29_0234DDB0: ; 0x0234DDB0
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #0x22
|
|
bl OverlayIsLoaded
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r3, pc}
|
|
mov r0, #0x22
|
|
bl UnloadOverlay
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end ov29_0234DDB0
|