mirror of
https://github.com/pret/pmd-sky.git
synced 2026-03-21 17:25:15 -05:00
927 lines
20 KiB
ArmAsm
927 lines
20 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "overlay_15_0238A234.inc"
|
|
|
|
.text
|
|
|
|
arm_func_start ov15_0238A234
|
|
ov15_0238A234: ; 0x0238A234
|
|
stmdb sp!, {r4, lr}
|
|
ldr r0, _0238A4DC ; =OVERLAY15_UNKNOWN_POINTER__NA_238B180
|
|
ldr r1, [r0]
|
|
ldr r0, [r1, #4]
|
|
cmp r0, #0xc
|
|
addls pc, pc, r0, lsl #2
|
|
b _0238A4B4
|
|
_0238A250: ; jump table
|
|
b _0238A4B4 ; case 0
|
|
b _0238A284 ; case 1
|
|
b _0238A2A8 ; case 2
|
|
b _0238A4B4 ; case 3
|
|
b _0238A4B4 ; case 4
|
|
b _0238A4B4 ; case 5
|
|
b _0238A4AC ; case 6
|
|
b _0238A4B4 ; case 7
|
|
b _0238A35C ; case 8
|
|
b _0238A4B4 ; case 9
|
|
b _0238A4B4 ; case 10
|
|
b _0238A400 ; case 11
|
|
b _0238A4B4 ; case 12
|
|
_0238A284:
|
|
ldrsb r0, [r1, #0x80]
|
|
bl IsDialogueBoxActive
|
|
cmp r0, #0
|
|
bne _0238A4D4
|
|
ldr r0, _0238A4DC ; =OVERLAY15_UNKNOWN_POINTER__NA_238B180
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, #8]
|
|
bl ov15_0238A4E8
|
|
b _0238A4D4
|
|
_0238A2A8:
|
|
ldrsb r0, [r1, #0x83]
|
|
bl GetSimpleMenuResult__0202B870
|
|
ldr r1, _0238A4DC ; =OVERLAY15_UNKNOWN_POINTER__NA_238B180
|
|
mov r4, r0
|
|
ldr r0, [r1]
|
|
ldrsb r0, [r0, #0x80]
|
|
bl IsDialogueBoxActive
|
|
cmp r0, #0
|
|
bne _0238A4D4
|
|
cmp r4, #4
|
|
addls pc, pc, r4, lsl #2
|
|
b _0238A4D4
|
|
_0238A2D8: ; jump table
|
|
b _0238A4D4 ; case 0
|
|
b _0238A340 ; case 1
|
|
b _0238A2EC ; case 2
|
|
b _0238A308 ; case 3
|
|
b _0238A324 ; case 4
|
|
_0238A2EC:
|
|
ldr r0, _0238A4DC ; =OVERLAY15_UNKNOWN_POINTER__NA_238B180
|
|
mov r2, #7
|
|
ldr r1, [r0]
|
|
mov r0, #0xd
|
|
str r2, [r1, #8]
|
|
bl ov15_0238A4E8
|
|
b _0238A4D4
|
|
_0238A308:
|
|
ldr r0, _0238A4DC ; =OVERLAY15_UNKNOWN_POINTER__NA_238B180
|
|
mov r2, #0xa
|
|
ldr r1, [r0]
|
|
mov r0, #0xd
|
|
str r2, [r1, #8]
|
|
bl ov15_0238A4E8
|
|
b _0238A4D4
|
|
_0238A324:
|
|
ldr r0, _0238A4DC ; =OVERLAY15_UNKNOWN_POINTER__NA_238B180
|
|
mov r2, #3
|
|
ldr r1, [r0]
|
|
mov r0, #0xd
|
|
str r2, [r1, #8]
|
|
bl ov15_0238A4E8
|
|
b _0238A4D4
|
|
_0238A340:
|
|
ldr r0, _0238A4DC ; =OVERLAY15_UNKNOWN_POINTER__NA_238B180
|
|
mov r2, #4
|
|
ldr r1, [r0]
|
|
mov r0, #0xd
|
|
str r2, [r1, #8]
|
|
bl ov15_0238A4E8
|
|
b _0238A4D4
|
|
_0238A35C:
|
|
add r0, r1, #0x54
|
|
bl sub_020396E4
|
|
cmp r0, #3
|
|
addls pc, pc, r0, lsl #2
|
|
b _0238A4D4
|
|
_0238A370: ; jump table
|
|
b _0238A4D4 ; case 0
|
|
b _0238A380 ; case 1
|
|
b _0238A3E4 ; case 2
|
|
b _0238A3A0 ; case 3
|
|
_0238A380:
|
|
ldr r0, _0238A4DC ; =OVERLAY15_UNKNOWN_POINTER__NA_238B180
|
|
mov r2, #1
|
|
ldr r1, [r0]
|
|
strb r2, [r1, #0xd8]
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #0x68]
|
|
bl SetAdvancedTextBoxField0x1C2
|
|
b _0238A4D4
|
|
_0238A3A0:
|
|
ldr r0, _0238A4DC ; =OVERLAY15_UNKNOWN_POINTER__NA_238B180
|
|
ldr r2, [r0]
|
|
ldr r1, [r2, #0x54]
|
|
str r1, [r2, #0xc]
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, #0xc]
|
|
bl AddMoneyStored
|
|
ldr r0, _0238A4DC ; =OVERLAY15_UNKNOWN_POINTER__NA_238B180
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, #0xc]
|
|
rsb r0, r0, #0
|
|
bl AddMoneyCarried
|
|
ldr r0, _0238A4E0 ; =0x00001308
|
|
bl PlaySeByIdVolumeWrapper
|
|
mov r0, #9
|
|
bl ov15_0238A4E8
|
|
b _0238A4D4
|
|
_0238A3E4:
|
|
#ifdef EUROPE
|
|
mov r0, #1
|
|
bl PlaySeVolumeWrapper
|
|
#endif
|
|
ldr r0, _0238A4DC ; =OVERLAY15_UNKNOWN_POINTER__NA_238B180
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #0x80]
|
|
bl ShowDialogueBox
|
|
mov r0, #5
|
|
bl ov15_0238A4E8
|
|
b _0238A4D4
|
|
_0238A400:
|
|
add r0, r1, #0x54
|
|
bl sub_020396E4
|
|
cmp r0, #3
|
|
addls pc, pc, r0, lsl #2
|
|
b _0238A4D4
|
|
_0238A414: ; jump table
|
|
b _0238A4D4 ; case 0
|
|
b _0238A424 ; case 1
|
|
b _0238A488 ; case 2
|
|
b _0238A444 ; case 3
|
|
_0238A424:
|
|
ldr r0, _0238A4DC ; =OVERLAY15_UNKNOWN_POINTER__NA_238B180
|
|
mov r2, #0
|
|
ldr r1, [r0]
|
|
strb r2, [r1, #0xd8]
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #0x68]
|
|
bl SetAdvancedTextBoxField0x1C2
|
|
b _0238A4D4
|
|
_0238A444:
|
|
ldr r0, _0238A4DC ; =OVERLAY15_UNKNOWN_POINTER__NA_238B180
|
|
ldr r2, [r0]
|
|
ldr r1, [r2, #0x54]
|
|
str r1, [r2, #0xc]
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, #0xc]
|
|
rsb r0, r0, #0
|
|
bl AddMoneyStored
|
|
ldr r0, _0238A4DC ; =OVERLAY15_UNKNOWN_POINTER__NA_238B180
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, #0xc]
|
|
bl AddMoneyCarried
|
|
ldr r0, _0238A4E0 ; =0x00001308
|
|
bl PlaySeByIdVolumeWrapper
|
|
mov r0, #0xc
|
|
bl ov15_0238A4E8
|
|
b _0238A4D4
|
|
_0238A488:
|
|
#ifdef EUROPE
|
|
mov r0, #1
|
|
bl PlaySeVolumeWrapper
|
|
#else
|
|
ldr r0, _0238A4E4 ; =ov15_0238B0CC
|
|
bl Debug_Print0
|
|
#endif
|
|
ldr r0, _0238A4DC ; =OVERLAY15_UNKNOWN_POINTER__NA_238B180
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #0x80]
|
|
bl ShowDialogueBox
|
|
mov r0, #5
|
|
bl ov15_0238A4E8
|
|
b _0238A4D4
|
|
_0238A4AC:
|
|
mov r0, #3
|
|
ldmia sp!, {r4, pc}
|
|
_0238A4B4:
|
|
ldrsb r0, [r1, #0x80]
|
|
bl IsDialogueBoxActive
|
|
cmp r0, #0
|
|
bne _0238A4D4
|
|
ldr r0, _0238A4DC ; =OVERLAY15_UNKNOWN_POINTER__NA_238B180
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, #8]
|
|
bl ov15_0238A4E8
|
|
_0238A4D4:
|
|
mov r0, #0
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_0238A4DC: .word OVERLAY15_UNKNOWN_POINTER__NA_238B180
|
|
_0238A4E0: .word 0x00001308
|
|
#ifndef EUROPE
|
|
_0238A4E4: .word ov15_0238B0CC
|
|
#endif
|
|
arm_func_end ov15_0238A234
|
|
|
|
arm_func_start ov15_0238A4E8
|
|
ov15_0238A4E8: ; 0x0238A4E8
|
|
stmdb sp!, {r3, lr}
|
|
sub sp, sp, #8
|
|
ldr r1, _0238AD10 ; =OVERLAY15_UNKNOWN_POINTER__NA_238B180
|
|
ldr r2, [r1]
|
|
str r0, [r2, #4]
|
|
#ifdef JAPAN
|
|
ldr r2, [r1]
|
|
ldr r0, [r2, #4]
|
|
#else
|
|
ldr r3, [r1]
|
|
ldr r0, [r3, #4]
|
|
#endif
|
|
cmp r0, #0xd
|
|
addls pc, pc, r0, lsl #2
|
|
b _0238AD08
|
|
_0238A510: ; jump table
|
|
b _0238A548 ; case 0
|
|
b _0238A56C ; case 1
|
|
b _0238A634 ; case 2
|
|
b _0238A68C ; case 3
|
|
b _0238A708 ; case 4
|
|
b _0238A7AC ; case 5
|
|
b _0238AD08 ; case 6
|
|
b _0238A820 ; case 7
|
|
b _0238A914 ; case 8
|
|
b _0238AA08 ; case 9
|
|
b _0238AA88 ; case 10
|
|
b _0238AB94 ; case 11
|
|
b _0238AC80 ; case 12
|
|
b _0238AD00 ; case 13
|
|
_0238A548:
|
|
#ifdef JAPAN
|
|
mov r0, #1
|
|
str r0, [r2, #8]
|
|
#else
|
|
mov r2, #1
|
|
str r2, [r3, #8]
|
|
#endif
|
|
ldr r3, [r1]
|
|
ldr r1, _0238AD14 ; =0x00003008
|
|
ldrsb r0, [r3, #0x80]
|
|
#ifdef JAPAN
|
|
ldr r2, _0238C278 ; =0x0000323A
|
|
#else
|
|
add r2, r2, #0x374
|
|
#endif
|
|
add r3, r3, #0x88
|
|
bl ShowStringIdInDialogueBox
|
|
b _0238AD08
|
|
_0238A56C:
|
|
#ifdef JAPAN
|
|
ldrsb r1, [r2, #0x68]
|
|
#else
|
|
ldrsb r1, [r3, #0x68]
|
|
#endif
|
|
mvn r0, #1
|
|
cmp r1, r0
|
|
beq _0238A5CC
|
|
tst r1, #0x80
|
|
beq _0238A5CC
|
|
ldr r0, _0238AD18 ; =ov15_0238B0D4
|
|
and r1, r1, #0x1f
|
|
#ifdef JAPAN
|
|
strb r1, [r2, #0x68]
|
|
#else
|
|
strb r1, [r3, #0x68]
|
|
#endif
|
|
bl Debug_Print0
|
|
ldr r0, _0238AD10 ; =OVERLAY15_UNKNOWN_POINTER__NA_238B180
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #0x68]
|
|
bl CloseAdvancedTextBox
|
|
ldr r0, _0238AD10 ; =OVERLAY15_UNKNOWN_POINTER__NA_238B180
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #0x82]
|
|
bl CloseTextBox
|
|
ldr r0, _0238AD10 ; =OVERLAY15_UNKNOWN_POINTER__NA_238B180
|
|
mvn r2, #1
|
|
ldr r1, [r0]
|
|
strb r2, [r1, #0x82]
|
|
ldr r0, [r0]
|
|
strb r2, [r0, #0x68]
|
|
_0238A5CC:
|
|
ldr r0, _0238AD10 ; =OVERLAY15_UNKNOWN_POINTER__NA_238B180
|
|
mov r1, #2
|
|
ldr r0, [r0]
|
|
str r1, [r0, #8]
|
|
bl GetMoneyStored
|
|
cmp r0, #0
|
|
bne _0238A608
|
|
ldr r0, _0238AD10 ; =OVERLAY15_UNKNOWN_POINTER__NA_238B180
|
|
ldr r1, _0238AD14 ; =0x00003008
|
|
ldr r3, [r0]
|
|
ldr r2, _0238AD1C ; =0x00000376
|
|
ldrsb r0, [r3, #0x80]
|
|
add r3, r3, #0x88
|
|
bl ShowStringIdInDialogueBox
|
|
b _0238AD08
|
|
_0238A608:
|
|
bl GetMoneyStored
|
|
ldr r3, _0238AD10 ; =OVERLAY15_UNKNOWN_POINTER__NA_238B180
|
|
ldr r1, _0238AD14 ; =0x00003008
|
|
ldr ip, [r3]
|
|
#ifdef JAPAN
|
|
add r2, r1, #0x234
|
|
#else
|
|
ldr r2, _0238AD20 ; =0x00000377
|
|
#endif
|
|
str r0, [ip, #0xac]
|
|
ldr r3, [r3]
|
|
ldrsb r0, [r3, #0x80]
|
|
add r3, r3, #0x88
|
|
bl ShowStringIdInDialogueBox
|
|
b _0238AD08
|
|
_0238A634:
|
|
ldr r0, _0238AD24 ; =BANK_WINDOW_PARAMS_2
|
|
ldr r1, _0238AD28 ; =ov15_0238ADC4
|
|
bl CreateTextBox
|
|
ldr r1, _0238AD10 ; =OVERLAY15_UNKNOWN_POINTER__NA_238B180
|
|
ldr r2, [r1]
|
|
strb r0, [r2, #0x82]
|
|
ldr r0, [r1]
|
|
ldrsb r0, [r0, #0x80]
|
|
bl ShowDialogueBox
|
|
ldr r0, _0238AD2C ; =ov15_0238B0E0
|
|
bl Debug_Print0
|
|
mov r1, #4
|
|
ldr r0, _0238AD30 ; =BANK_WINDOW_PARAMS_4
|
|
str r1, [sp]
|
|
ldr r1, _0238AD34 ; =0x00300013
|
|
mov r2, #0
|
|
ldr r3, _0238AD38 ; =BANK_MAIN_MENU_ITEMS
|
|
bl CreateSimpleMenuFromStringIds
|
|
ldr r1, _0238AD10 ; =OVERLAY15_UNKNOWN_POINTER__NA_238B180
|
|
ldr r1, [r1]
|
|
strb r0, [r1, #0x83]
|
|
b _0238AD08
|
|
_0238A68C:
|
|
ldr r0, _0238AD3C ; =ov15_0238B0E8
|
|
bl Debug_Print0
|
|
ldr r0, _0238AD10 ; =OVERLAY15_UNKNOWN_POINTER__NA_238B180
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #0x83]
|
|
bl CloseSimpleMenu
|
|
ldr r0, _0238AD10 ; =OVERLAY15_UNKNOWN_POINTER__NA_238B180
|
|
mvn r2, #1
|
|
ldr r1, [r0]
|
|
strb r2, [r1, #0x83]
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #0x82]
|
|
bl sub_0202F954
|
|
ldr r0, _0238AD10 ; =OVERLAY15_UNKNOWN_POINTER__NA_238B180
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #0x82]
|
|
bl CloseTextBox
|
|
mvn r3, #1
|
|
ldr r0, _0238AD10 ; =OVERLAY15_UNKNOWN_POINTER__NA_238B180
|
|
mov ip, #1
|
|
ldr r2, [r0]
|
|
ldr r1, _0238AD14 ; =0x00003008
|
|
strb r3, [r2, #0x82]
|
|
ldr r3, [r0]
|
|
#ifdef JAPAN
|
|
ldr r2, _0238C2A0_JP ; =0x0000323D
|
|
#else
|
|
mov r2, #0x378
|
|
#endif
|
|
str ip, [r3, #8]
|
|
ldr r3, [r0]
|
|
ldrsb r0, [r3, #0x80]
|
|
add r3, r3, #0x88
|
|
bl ShowStringIdInDialogueBox
|
|
b _0238AD08
|
|
_0238A708:
|
|
ldr r0, _0238AD3C ; =ov15_0238B0E8
|
|
mov r1, #6
|
|
#ifdef JAPAN
|
|
str r1, [r2, #8]
|
|
#else
|
|
str r1, [r3, #8]
|
|
#endif
|
|
bl Debug_Print0
|
|
ldr r0, _0238AD10 ; =OVERLAY15_UNKNOWN_POINTER__NA_238B180
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #0x83]
|
|
bl CloseSimpleMenu
|
|
ldr r0, _0238AD10 ; =OVERLAY15_UNKNOWN_POINTER__NA_238B180
|
|
mvn r2, #1
|
|
ldr r1, [r0]
|
|
strb r2, [r1, #0x83]
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #0x82]
|
|
bl sub_0202F954
|
|
ldr r0, _0238AD10 ; =OVERLAY15_UNKNOWN_POINTER__NA_238B180
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #0x82]
|
|
bl CloseTextBox
|
|
ldr r0, _0238AD10 ; =OVERLAY15_UNKNOWN_POINTER__NA_238B180
|
|
mvn r1, #1
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #0x82]
|
|
bl GetMoneyStored
|
|
cmp r0, #0
|
|
ldr r1, _0238AD40 ; =0x00003018
|
|
bne _0238A790
|
|
ldr r0, _0238AD10 ; =OVERLAY15_UNKNOWN_POINTER__NA_238B180
|
|
ldr r2, _0238AD44 ; =0x00000379
|
|
ldr r3, [r0]
|
|
ldrsb r0, [r3, #0x80]
|
|
add r3, r3, #0x88
|
|
bl ShowStringIdInDialogueBox
|
|
b _0238AD08
|
|
_0238A790:
|
|
ldr r0, _0238AD10 ; =OVERLAY15_UNKNOWN_POINTER__NA_238B180
|
|
ldr r2, _0238AD48 ; =0x0000037A
|
|
ldr r3, [r0]
|
|
ldrsb r0, [r3, #0x80]
|
|
add r3, r3, #0x88
|
|
bl ShowStringIdInDialogueBox
|
|
b _0238AD08
|
|
_0238A7AC:
|
|
ldr r0, _0238AD4C ; =ov15_0238B0F4
|
|
bl Debug_Print0
|
|
ldr r0, _0238AD10 ; =OVERLAY15_UNKNOWN_POINTER__NA_238B180
|
|
mov r2, #1
|
|
ldr r1, [r0]
|
|
str r2, [r1, #8]
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #0x68]
|
|
bl SetAdvancedTextBoxState5
|
|
ldr r0, _0238AD10 ; =OVERLAY15_UNKNOWN_POINTER__NA_238B180
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #0x82]
|
|
bl sub_0202F954
|
|
ldr r0, _0238AD10 ; =OVERLAY15_UNKNOWN_POINTER__NA_238B180
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #0x68]
|
|
bl sub_020288DC
|
|
ldr r0, _0238AD10 ; =OVERLAY15_UNKNOWN_POINTER__NA_238B180
|
|
ldr r1, _0238AD14 ; =0x00003008
|
|
ldr ip, [r0]
|
|
#ifdef JAPAN
|
|
mov r2, #0x3240
|
|
#else
|
|
ldr r2, _0238AD50 ; =0x0000037B
|
|
#endif
|
|
ldrsb r3, [ip, #0x68]
|
|
orr r3, r3, #0x80
|
|
strb r3, [ip, #0x68]
|
|
ldr r3, [r0]
|
|
ldrsb r0, [r3, #0x80]
|
|
add r3, r3, #0x88
|
|
bl ShowStringIdInDialogueBox
|
|
b _0238AD08
|
|
_0238A820:
|
|
ldr r0, _0238AD3C ; =ov15_0238B0E8
|
|
bl Debug_Print0
|
|
ldr r0, _0238AD10 ; =OVERLAY15_UNKNOWN_POINTER__NA_238B180
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #0x83]
|
|
bl CloseSimpleMenu
|
|
ldr r0, _0238AD10 ; =OVERLAY15_UNKNOWN_POINTER__NA_238B180
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #0x82]
|
|
bl sub_0202F954
|
|
ldr r0, _0238AD10 ; =OVERLAY15_UNKNOWN_POINTER__NA_238B180
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #0x82]
|
|
bl CloseTextBox
|
|
ldr r0, _0238AD10 ; =OVERLAY15_UNKNOWN_POINTER__NA_238B180
|
|
mvn r2, #1
|
|
ldr r1, [r0]
|
|
strb r2, [r1, #0x82]
|
|
ldr r0, [r0]
|
|
strb r2, [r0, #0x83]
|
|
bl GetMoneyCarried
|
|
cmp r0, #0
|
|
bne _0238A8AC
|
|
ldr r0, _0238AD10 ; =OVERLAY15_UNKNOWN_POINTER__NA_238B180
|
|
ldr r1, _0238AD14 ; =0x00003008
|
|
ldr r3, [r0]
|
|
#ifdef JAPAN
|
|
ldr r2, _0238C2B4 ; =0x00003241
|
|
#else
|
|
mov r2, #0x37c
|
|
#endif
|
|
ldrsb r0, [r3, #0x80]
|
|
add r3, r3, #0x88
|
|
bl ShowStringIdInDialogueBox
|
|
ldr r0, _0238AD10 ; =OVERLAY15_UNKNOWN_POINTER__NA_238B180
|
|
mov r1, #1
|
|
ldr r0, [r0]
|
|
str r1, [r0, #8]
|
|
b _0238AD08
|
|
_0238A8AC:
|
|
bl GetMoneyStored
|
|
ldr r1, _0238AD54 ; =0x0098967F
|
|
cmp r0, r1
|
|
blt _0238A8E8
|
|
ldr r0, _0238AD10 ; =OVERLAY15_UNKNOWN_POINTER__NA_238B180
|
|
#ifdef JAPAN
|
|
mov r3, #1
|
|
ldr r2, [r0]
|
|
ldr r1, _0238AD14 ; =0x00003008
|
|
str r3, [r2, #8]
|
|
ldr r3, [r0]
|
|
ldr r2, _0238C2BC ; =0x00003242
|
|
#else
|
|
mov ip, #1
|
|
ldr r2, [r0]
|
|
ldr r1, _0238AD14 ; =0x00003008
|
|
str ip, [r2, #8]
|
|
ldr r3, [r0]
|
|
add r2, ip, #0x37c
|
|
#endif
|
|
ldrsb r0, [r3, #0x80]
|
|
add r3, r3, #0x88
|
|
bl ShowStringIdInDialogueBox
|
|
b _0238AD08
|
|
_0238A8E8:
|
|
ldr r0, _0238AD10 ; =OVERLAY15_UNKNOWN_POINTER__NA_238B180
|
|
mov ip, #8
|
|
ldr r1, [r0]
|
|
ldr r2, _0238AD58 ; =0x0000037E
|
|
str ip, [r1, #8]
|
|
ldr r3, [r0]
|
|
add r1, ip, #0x3000
|
|
ldrsb r0, [r3, #0x80]
|
|
add r3, r3, #0x88
|
|
bl ShowStringIdInDialogueBox
|
|
b _0238AD08
|
|
_0238A914:
|
|
#ifdef JAPAN
|
|
ldrsb r0, [r2, #0x80]
|
|
#else
|
|
ldrsb r0, [r3, #0x80]
|
|
#endif
|
|
bl ShowDialogueBox
|
|
bl GetMoneyStored
|
|
ldr r2, _0238AD10 ; =OVERLAY15_UNKNOWN_POINTER__NA_238B180
|
|
ldr r1, _0238AD54 ; =0x0098967F
|
|
ldr r2, [r2]
|
|
sub r0, r1, r0
|
|
str r0, [r2, #0x60]
|
|
bl GetMoneyCarried
|
|
ldr r1, _0238AD10 ; =OVERLAY15_UNKNOWN_POINTER__NA_238B180
|
|
ldr r1, [r1]
|
|
ldr r1, [r1, #0x60]
|
|
cmp r1, r0
|
|
ble _0238A95C
|
|
bl GetMoneyCarried
|
|
ldr r1, _0238AD10 ; =OVERLAY15_UNKNOWN_POINTER__NA_238B180
|
|
ldr r1, [r1]
|
|
str r0, [r1, #0x60]
|
|
_0238A95C:
|
|
ldr r1, _0238AD10 ; =OVERLAY15_UNKNOWN_POINTER__NA_238B180
|
|
mov r3, #1
|
|
ldr r2, [r1]
|
|
mov lr, #5
|
|
ldr r0, [r2, #0x60]
|
|
mov ip, #0x50
|
|
str r0, [r2, #0x58]
|
|
ldr r2, [r1]
|
|
ldr r0, _0238AD5C ; =ov15_0238B10C
|
|
str r3, [r2, #0x5c]
|
|
ldr r3, [r1]
|
|
mov r2, #0x12
|
|
str lr, [r3, #0x64]
|
|
ldr r3, [r1]
|
|
str ip, [r3, #0x74]
|
|
ldr r1, [r1]
|
|
str r2, [r1, #0x78]
|
|
bl Debug_Print0
|
|
ldr r0, _0238AD24 ; =BANK_WINDOW_PARAMS_2
|
|
ldr r1, _0238AD28 ; =ov15_0238ADC4
|
|
bl CreateTextBox
|
|
ldr r1, _0238AD10 ; =OVERLAY15_UNKNOWN_POINTER__NA_238B180
|
|
mov r2, #0
|
|
ldr r3, [r1]
|
|
ldr r1, _0238AD60 ; =0x00001017
|
|
strb r0, [r3, #0x82]
|
|
str r2, [sp]
|
|
ldr r0, _0238AD64 ; =BANK_WINDOW_PARAMS_3
|
|
ldr r3, _0238AD68 ; =ov15_0238AE6C
|
|
str r2, [sp, #4]
|
|
bl CreateAdvancedTextBox
|
|
#ifdef EUROPE
|
|
ldr r2, _0238AD10 ; =OVERLAY15_UNKNOWN_POINTER__NA_238B180
|
|
mov r1, #0
|
|
ldr r3, [r2]
|
|
strb r0, [r3, #0x68]
|
|
ldr r0, [r2]
|
|
ldrsb r0, [r0, #0x68]
|
|
bl SetAdvancedTextBoxField0x1C4
|
|
ldr r0, _0238AD10 ; =OVERLAY15_UNKNOWN_POINTER__NA_238B180
|
|
ldr r0, [r0]
|
|
#else
|
|
ldr r1, _0238AD10 ; =OVERLAY15_UNKNOWN_POINTER__NA_238B180
|
|
ldr r2, [r1]
|
|
strb r0, [r2, #0x68]
|
|
ldr r0, [r1]
|
|
#endif
|
|
add r0, r0, #0x54
|
|
bl sub_020395CC
|
|
ldr r1, _0238AD10 ; =OVERLAY15_UNKNOWN_POINTER__NA_238B180
|
|
mov r0, #1
|
|
ldr r1, [r1]
|
|
strb r0, [r1, #0xd8]
|
|
bl ov15_0238AD78
|
|
b _0238AD08
|
|
_0238AA08:
|
|
#ifdef JAPAN
|
|
ldrsb r0, [r2, #0x80]
|
|
#else
|
|
ldrsb r0, [r3, #0x80]
|
|
#endif
|
|
bl ShowDialogueBox
|
|
ldr r0, _0238AD10 ; =OVERLAY15_UNKNOWN_POINTER__NA_238B180
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #0x82]
|
|
bl sub_0202F954
|
|
ldr r0, _0238AD10 ; =OVERLAY15_UNKNOWN_POINTER__NA_238B180
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #0x68]
|
|
bl SetAdvancedTextBoxState5
|
|
ldr r0, _0238AD10 ; =OVERLAY15_UNKNOWN_POINTER__NA_238B180
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #0x68]
|
|
bl sub_020288DC
|
|
ldr r0, _0238AD10 ; =OVERLAY15_UNKNOWN_POINTER__NA_238B180
|
|
mov ip, #1
|
|
ldr lr, [r0]
|
|
ldr r1, _0238AD14 ; =0x00003008
|
|
ldrsb r3, [lr, #0x68]
|
|
#ifdef JAPAN
|
|
add r2, r1, #0x23c
|
|
#else
|
|
rsb r2, ip, #0x380
|
|
#endif
|
|
orr r3, r3, #0x80
|
|
strb r3, [lr, #0x68]
|
|
ldr r3, [r0]
|
|
str ip, [r3, #8]
|
|
ldr ip, [r0]
|
|
ldr r3, [ip, #0xc]
|
|
str r3, [ip, #0xac]
|
|
ldr r3, [r0]
|
|
ldrsb r0, [r3, #0x80]
|
|
add r3, r3, #0x88
|
|
bl ShowStringIdInDialogueBox
|
|
b _0238AD08
|
|
_0238AA88:
|
|
ldr r0, _0238AD3C ; =ov15_0238B0E8
|
|
bl Debug_Print0
|
|
ldr r0, _0238AD10 ; =OVERLAY15_UNKNOWN_POINTER__NA_238B180
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #0x83]
|
|
bl CloseSimpleMenu
|
|
ldr r0, _0238AD10 ; =OVERLAY15_UNKNOWN_POINTER__NA_238B180
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #0x82]
|
|
bl sub_0202F954
|
|
ldr r0, _0238AD10 ; =OVERLAY15_UNKNOWN_POINTER__NA_238B180
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #0x82]
|
|
bl CloseTextBox
|
|
ldr r0, _0238AD10 ; =OVERLAY15_UNKNOWN_POINTER__NA_238B180
|
|
mvn r2, #1
|
|
ldr r1, [r0]
|
|
strb r2, [r1, #0x82]
|
|
ldr r1, [r0]
|
|
strb r2, [r1, #0x83]
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #0x80]
|
|
bl ShowDialogueBox
|
|
bl GetMoneyCarried
|
|
ldr r1, _0238AD6C ; =0x0001869F
|
|
cmp r0, r1
|
|
blt _0238AB20
|
|
ldr r0, _0238AD10 ; =OVERLAY15_UNKNOWN_POINTER__NA_238B180
|
|
mov r3, #1
|
|
ldr r2, [r0]
|
|
ldr r1, _0238AD14 ; =0x00003008
|
|
str r3, [r2, #8]
|
|
ldr r3, [r0]
|
|
#ifdef JAPAN
|
|
ldr r2, _0238C2D8 ; =0x00003245
|
|
#else
|
|
mov r2, #0x380
|
|
#endif
|
|
ldrsb r0, [r3, #0x80]
|
|
add r3, r3, #0x88
|
|
bl ShowStringIdInDialogueBox
|
|
b _0238AD08
|
|
_0238AB20:
|
|
bl GetMoneyStored
|
|
cmp r0, #0
|
|
bne _0238AB58
|
|
ldr r0, _0238AD10 ; =OVERLAY15_UNKNOWN_POINTER__NA_238B180
|
|
#ifdef JAPAN
|
|
mov r3, #1
|
|
ldr r2, [r0]
|
|
ldr r1, _0238AD14 ; =0x00003008
|
|
str r3, [r2, #8]
|
|
ldr r3, [r0]
|
|
ldr r2, _0238C2DC ; =0x00003246
|
|
#else
|
|
mov ip, #1
|
|
ldr r2, [r0]
|
|
ldr r1, _0238AD14 ; =0x00003008
|
|
str ip, [r2, #8]
|
|
ldr r3, [r0]
|
|
add r2, ip, #0x380
|
|
#endif
|
|
ldrsb r0, [r3, #0x80]
|
|
add r3, r3, #0x88
|
|
bl ShowStringIdInDialogueBox
|
|
b _0238AD08
|
|
_0238AB58:
|
|
ldr r0, _0238AD10 ; =OVERLAY15_UNKNOWN_POINTER__NA_238B180
|
|
mov r1, #0xb
|
|
ldr r0, [r0]
|
|
str r1, [r0, #8]
|
|
bl GetMoneyStored
|
|
ldr r3, _0238AD10 ; =OVERLAY15_UNKNOWN_POINTER__NA_238B180
|
|
ldr r1, _0238AD14 ; =0x00003008
|
|
ldr ip, [r3]
|
|
ldr r2, _0238AD70 ; =0x00000382
|
|
str r0, [ip, #0xac]
|
|
ldr r3, [r3]
|
|
ldrsb r0, [r3, #0x80]
|
|
add r3, r3, #0x88
|
|
bl ShowStringIdInDialogueBox
|
|
b _0238AD08
|
|
_0238AB94:
|
|
bl GetMoneyCarried
|
|
ldr r2, _0238AD10 ; =OVERLAY15_UNKNOWN_POINTER__NA_238B180
|
|
ldr r1, _0238AD6C ; =0x0001869F
|
|
ldr r2, [r2]
|
|
sub r0, r1, r0
|
|
str r0, [r2, #0x60]
|
|
bl GetMoneyStored
|
|
ldr r1, _0238AD10 ; =OVERLAY15_UNKNOWN_POINTER__NA_238B180
|
|
ldr r1, [r1]
|
|
ldr r1, [r1, #0x60]
|
|
cmp r1, r0
|
|
ble _0238ABD4
|
|
bl GetMoneyStored
|
|
ldr r1, _0238AD10 ; =OVERLAY15_UNKNOWN_POINTER__NA_238B180
|
|
ldr r1, [r1]
|
|
str r0, [r1, #0x60]
|
|
_0238ABD4:
|
|
ldr r1, _0238AD10 ; =OVERLAY15_UNKNOWN_POINTER__NA_238B180
|
|
mov r3, #1
|
|
ldr r2, [r1]
|
|
mov lr, #5
|
|
ldr r0, [r2, #0x60]
|
|
mov ip, #0x50
|
|
str r0, [r2, #0x58]
|
|
ldr r2, [r1]
|
|
ldr r0, _0238AD74 ; =ov15_0238B114
|
|
str r3, [r2, #0x5c]
|
|
ldr r3, [r1]
|
|
mov r2, #0x12
|
|
str lr, [r3, #0x64]
|
|
ldr r3, [r1]
|
|
str ip, [r3, #0x74]
|
|
ldr r1, [r1]
|
|
str r2, [r1, #0x78]
|
|
bl Debug_Print0
|
|
ldr r0, _0238AD24 ; =BANK_WINDOW_PARAMS_2
|
|
ldr r1, _0238AD28 ; =ov15_0238ADC4
|
|
bl CreateTextBox
|
|
ldr r1, _0238AD10 ; =OVERLAY15_UNKNOWN_POINTER__NA_238B180
|
|
mov r2, #0
|
|
ldr r3, [r1]
|
|
ldr r1, _0238AD60 ; =0x00001017
|
|
strb r0, [r3, #0x82]
|
|
str r2, [sp]
|
|
ldr r0, _0238AD64 ; =BANK_WINDOW_PARAMS_3
|
|
ldr r3, _0238AD68 ; =ov15_0238AE6C
|
|
str r2, [sp, #4]
|
|
bl CreateAdvancedTextBox
|
|
#ifdef EUROPE
|
|
ldr r2, _0238AD10 ; =OVERLAY15_UNKNOWN_POINTER__NA_238B180
|
|
mov r1, #0
|
|
ldr r3, [r2]
|
|
strb r0, [r3, #0x68]
|
|
ldr r0, [r2]
|
|
ldrsb r0, [r0, #0x68]
|
|
bl SetAdvancedTextBoxField0x1C4
|
|
ldr r0, _0238AD10 ; =OVERLAY15_UNKNOWN_POINTER__NA_238B180
|
|
ldr r0, [r0]
|
|
#else
|
|
ldr r1, _0238AD10 ; =OVERLAY15_UNKNOWN_POINTER__NA_238B180
|
|
ldr r2, [r1]
|
|
strb r0, [r2, #0x68]
|
|
ldr r0, [r1]
|
|
#endif
|
|
add r0, r0, #0x54
|
|
bl sub_020395CC
|
|
ldr r1, _0238AD10 ; =OVERLAY15_UNKNOWN_POINTER__NA_238B180
|
|
mov r0, #0
|
|
ldr r1, [r1]
|
|
strb r0, [r1, #0xd8]
|
|
bl ov15_0238AD78
|
|
b _0238AD08
|
|
_0238AC80:
|
|
#ifdef JAPAN
|
|
ldrsb r0, [r2, #0x80]
|
|
#else
|
|
ldrsb r0, [r3, #0x80]
|
|
#endif
|
|
bl ShowDialogueBox
|
|
ldr r0, _0238AD10 ; =OVERLAY15_UNKNOWN_POINTER__NA_238B180
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #0x82]
|
|
bl sub_0202F954
|
|
ldr r0, _0238AD10 ; =OVERLAY15_UNKNOWN_POINTER__NA_238B180
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #0x68]
|
|
bl SetAdvancedTextBoxState5
|
|
ldr r0, _0238AD10 ; =OVERLAY15_UNKNOWN_POINTER__NA_238B180
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #0x68]
|
|
bl sub_020288DC
|
|
ldr r0, _0238AD10 ; =OVERLAY15_UNKNOWN_POINTER__NA_238B180
|
|
mov ip, #1
|
|
ldr lr, [r0]
|
|
ldr r1, _0238AD14 ; =0x00003008
|
|
ldrsb r3, [lr, #0x68]
|
|
#ifdef JAPAN
|
|
add r2, r1, #0x240
|
|
#else
|
|
rsb r2, ip, #0x384
|
|
#endif
|
|
orr r3, r3, #0x80
|
|
strb r3, [lr, #0x68]
|
|
ldr r3, [r0]
|
|
str ip, [r3, #8]
|
|
ldr ip, [r0]
|
|
ldr r3, [ip, #0xc]
|
|
str r3, [ip, #0xac]
|
|
ldr r3, [r0]
|
|
ldrsb r0, [r3, #0x80]
|
|
add r3, r3, #0x88
|
|
bl ShowStringIdInDialogueBox
|
|
b _0238AD08
|
|
_0238AD00:
|
|
#ifdef JAPAN
|
|
ldrsb r0, [r2, #0x82]
|
|
#else
|
|
ldrsb r0, [r3, #0x82]
|
|
#endif
|
|
bl sub_0202F954
|
|
_0238AD08:
|
|
add sp, sp, #8
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
#ifdef JAPAN
|
|
#define OV15_0238A4E8_OFFSET 0x2EC5
|
|
#else
|
|
#define OV15_0238A4E8_OFFSET 0
|
|
#endif
|
|
_0238AD10: .word OVERLAY15_UNKNOWN_POINTER__NA_238B180
|
|
_0238AD14: .word 0x00003008
|
|
#ifdef JAPAN
|
|
_0238C278: .word 0x0000323A
|
|
#endif
|
|
_0238AD18: .word ov15_0238B0D4
|
|
_0238AD1C: .word 0x00000376 + OV15_0238A4E8_OFFSET
|
|
#ifndef JAPAN
|
|
_0238AD20: .word 0x00000377
|
|
#endif
|
|
_0238AD24: .word BANK_WINDOW_PARAMS_2
|
|
_0238AD28: .word ov15_0238ADC4
|
|
_0238AD2C: .word ov15_0238B0E0
|
|
_0238AD30: .word BANK_WINDOW_PARAMS_4
|
|
_0238AD34: .word 0x00300013
|
|
_0238AD38: .word BANK_MAIN_MENU_ITEMS
|
|
_0238AD3C: .word ov15_0238B0E8
|
|
#ifdef JAPAN
|
|
_0238C2A0_JP: .word 0x0000323D
|
|
#endif
|
|
_0238AD40: .word 0x00003018
|
|
_0238AD44: .word 0x00000379 + OV15_0238A4E8_OFFSET
|
|
_0238AD48: .word 0x0000037A + OV15_0238A4E8_OFFSET
|
|
_0238AD4C: .word ov15_0238B0F4
|
|
#ifdef JAPAN
|
|
_0238C2B4: .word 0x00003241
|
|
_0238AD54: .word 0x0098967F
|
|
_0238C2BC: .word 0x00003242
|
|
#else
|
|
_0238AD50: .word 0x0000037B
|
|
_0238AD54: .word 0x0098967F
|
|
#endif
|
|
_0238AD58: .word 0x0000037E + OV15_0238A4E8_OFFSET
|
|
_0238AD5C: .word ov15_0238B10C
|
|
_0238AD60: .word 0x00001017
|
|
_0238AD64: .word BANK_WINDOW_PARAMS_3
|
|
_0238AD68: .word ov15_0238AE6C
|
|
_0238AD6C: .word 0x0001869F
|
|
#ifdef JAPAN
|
|
_0238C2D8: .word 0x00003245
|
|
_0238C2DC: .word 0x00003246
|
|
#endif
|
|
_0238AD70: .word 0x00000382 + OV15_0238A4E8_OFFSET
|
|
_0238AD74: .word ov15_0238B114
|
|
arm_func_end ov15_0238A4E8
|