mirror of
https://github.com/pret/pmd-sky.git
synced 2026-03-21 17:25:15 -05:00
1479 lines
33 KiB
ArmAsm
1479 lines
33 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "overlay_25.inc"
|
|
|
|
.text
|
|
|
|
arm_func_start ov25_0238A140
|
|
ov25_0238A140: ; 0x0238A140
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0238A67C ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
ldr r2, [r0]
|
|
ldr r1, [r2]
|
|
cmp r1, #0x1f
|
|
addls pc, pc, r1, lsl #2
|
|
b _0238A63C
|
|
_0238A15C: ; jump table
|
|
b _0238A1DC ; case 0
|
|
b _0238A1DC ; case 1
|
|
b _0238A63C ; case 2
|
|
b _0238A63C ; case 3
|
|
b _0238A3FC ; case 4
|
|
b _0238A63C ; case 5
|
|
b _0238A63C ; case 6
|
|
b _0238A63C ; case 7
|
|
b _0238A63C ; case 8
|
|
b _0238A63C ; case 9
|
|
b _0238A63C ; case 10
|
|
b _0238A63C ; case 11
|
|
b _0238A210 ; case 12
|
|
b _0238A210 ; case 13
|
|
b _0238A2C4 ; case 14
|
|
b _0238A350 ; case 15
|
|
b _0238A394 ; case 16
|
|
b _0238A63C ; case 17
|
|
b _0238A63C ; case 18
|
|
b _0238A5C0 ; case 19
|
|
b _0238A5F8 ; case 20
|
|
b _0238A63C ; case 21
|
|
b _0238A63C ; case 22
|
|
b _0238A63C ; case 23
|
|
b _0238A63C ; case 24
|
|
b _0238A404 ; case 25
|
|
b _0238A464 ; case 26
|
|
b _0238A63C ; case 27
|
|
b _0238A63C ; case 28
|
|
b _0238A394 ; case 29
|
|
b _0238A4F8 ; case 30
|
|
b _0238A56C ; case 31
|
|
_0238A1DC:
|
|
add r0, r2, #0x100
|
|
ldrsb r0, [r0, #0x38]
|
|
bl IsDialogueBoxActive
|
|
cmp r0, #0
|
|
bne _0238A674
|
|
mov r0, #0x1a
|
|
bl ov25_0238A694
|
|
ldr r0, _0238A67C ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x100
|
|
ldrsb r0, [r0, #0x38]
|
|
bl ShowDialogueBox
|
|
b _0238A674
|
|
_0238A210:
|
|
bl ov11_0230BA64
|
|
cmp r0, #2
|
|
beq _0238A228
|
|
cmp r0, #3
|
|
beq _0238A248
|
|
b _0238A260
|
|
_0238A228:
|
|
ldr r0, _0238A67C ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
mov r3, #0x1f
|
|
ldr r2, [r0]
|
|
mov r1, #1
|
|
str r3, [r2]
|
|
ldr r0, [r0]
|
|
str r1, [r0, #4]
|
|
b _0238A674
|
|
_0238A248:
|
|
ldr r0, _0238A67C ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
ldr r0, [r0]
|
|
add r0, r0, #0xc
|
|
bl ov11_0230B8C0
|
|
mov r0, #0xe
|
|
bl ov25_0238A694
|
|
_0238A260:
|
|
bl ov11_0230BD28
|
|
cmp r0, #0
|
|
beq _0238A674
|
|
add r1, sp, #0
|
|
mov r0, #0
|
|
bl GetPressedButtons
|
|
ldrh r0, [sp]
|
|
tst r0, #8
|
|
beq _0238A674
|
|
ldr r0, _0238A680 ; =0x00003F02
|
|
mov r1, #0x100
|
|
bl sub_02017C74
|
|
ldr r0, _0238A67C ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
ldr r0, [r0]
|
|
add r0, r0, #0xc
|
|
bl ov11_0230B8C0
|
|
bl ov25_0238B380
|
|
ldr r0, _0238A67C ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
mov r3, #0xf
|
|
ldr r2, [r0]
|
|
mov r1, #0x1f
|
|
str r3, [r2, #4]
|
|
ldr r0, [r0]
|
|
str r1, [r0]
|
|
b _0238A674
|
|
_0238A2C4:
|
|
add r0, r2, #0x100
|
|
ldrsb r0, [r0, #0x3a]
|
|
bl GetSimpleMenuResult
|
|
cmp r0, #1
|
|
beq _0238A334
|
|
cmp r0, #6
|
|
beq _0238A310
|
|
cmp r0, #7
|
|
bne _0238A674
|
|
ldr r0, _0238A67C ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
mov r1, #0x10
|
|
ldr r0, [r0]
|
|
str r1, [r0, #4]
|
|
bl ov25_0238B380
|
|
ldr r0, _0238A67C ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
mov r1, #0x1f
|
|
ldr r0, [r0]
|
|
str r1, [r0]
|
|
b _0238A674
|
|
_0238A310:
|
|
bl ov25_0238B380
|
|
ldr r0, _0238A67C ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
mov r3, #0xf
|
|
ldr r2, [r0]
|
|
mov r1, #0x1f
|
|
str r3, [r2, #4]
|
|
ldr r0, [r0]
|
|
str r1, [r0]
|
|
b _0238A674
|
|
_0238A334:
|
|
bl ov25_0238B380
|
|
ldr r0, _0238A67C ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
mov r1, #0xd
|
|
ldr r0, [r0]
|
|
str r1, [r0]
|
|
bl ov11_0230BCF8
|
|
b _0238A674
|
|
_0238A350:
|
|
add r0, r2, #0x100
|
|
ldrsb r0, [r0, #0x3b]
|
|
bl IsScrollBoxActive
|
|
cmp r0, #0
|
|
bne _0238A674
|
|
ldr r0, _0238A67C ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x100
|
|
ldrsb r0, [r0, #0x3b]
|
|
bl CloseScrollBox
|
|
ldr r0, _0238A67C ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
mvn r2, #1
|
|
ldr r1, [r0]
|
|
mov r0, #0xd
|
|
strb r2, [r1, #0x13b]
|
|
bl ov25_0238A694
|
|
b _0238A674
|
|
_0238A394:
|
|
add r0, r2, #0x100
|
|
ldrsb r0, [r0, #0x3a]
|
|
bl GetSimpleMenuResult
|
|
cmp r0, #1
|
|
beq _0238A3EC
|
|
cmp r0, #4
|
|
beq _0238A3BC
|
|
cmp r0, #5
|
|
beq _0238A3EC
|
|
b _0238A674
|
|
_0238A3BC:
|
|
bl ov25_0238B380
|
|
bl GetMoneyCarried
|
|
cmp r0, #0x96
|
|
bge _0238A3D8
|
|
mov r0, #9
|
|
bl ov25_0238A694
|
|
b _0238A674
|
|
_0238A3D8:
|
|
mov r0, #0x11
|
|
bl ov25_0238A694
|
|
ldr r0, _0238A684 ; =0x00001308
|
|
bl PlaySeByIdVolumeWrapper
|
|
b _0238A674
|
|
_0238A3EC:
|
|
bl ov25_0238B380
|
|
mov r0, #0x12
|
|
bl ov25_0238A694
|
|
b _0238A674
|
|
_0238A3FC:
|
|
mov r0, #3
|
|
ldmia sp!, {r3, pc}
|
|
_0238A404:
|
|
add r0, r2, #0x100
|
|
ldrsb r0, [r0, #0x38]
|
|
bl IsDialogueBoxActive
|
|
cmp r0, #0
|
|
bne _0238A674
|
|
ldr r0, _0238A67C ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x100
|
|
ldrsb r0, [r0, #0x38]
|
|
bl ShowDialogueBox
|
|
ldr r0, _0238A67C ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
mov r2, #0x20
|
|
ldr r1, [r0]
|
|
str r2, [r1]
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x100
|
|
ldrsb r0, [r0, #0x38]
|
|
bl sub_0202F2C4
|
|
ldr r0, _0238A67C ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x100
|
|
ldrsb r0, [r0, #0x39]
|
|
bl HidePortraitBox
|
|
b _0238A674
|
|
_0238A464:
|
|
add r0, r2, #0x100
|
|
ldrsb r0, [r0, #0x3a]
|
|
bl GetSimpleMenuResult
|
|
cmp r0, #1
|
|
ldrne r1, _0238A67C ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
ldrne r1, [r1]
|
|
strne r0, [r1, #0x14]
|
|
cmp r0, #1
|
|
beq _0238A4E8
|
|
cmp r0, #6
|
|
beq _0238A4D8
|
|
cmp r0, #7
|
|
bne _0238A674
|
|
bl ov25_0238B380
|
|
bl GetNbItemsInBag
|
|
cmp r0, #0
|
|
bne _0238A4B4
|
|
mov r0, #5
|
|
bl ov25_0238A694
|
|
b _0238A674
|
|
_0238A4B4:
|
|
bl ov11_0230B724
|
|
cmp r0, #0
|
|
bne _0238A4CC
|
|
mov r0, #6
|
|
bl ov25_0238A694
|
|
b _0238A674
|
|
_0238A4CC:
|
|
mov r0, #0xa
|
|
bl ov25_0238A694
|
|
b _0238A674
|
|
_0238A4D8:
|
|
bl ov25_0238B380
|
|
mov r0, #2
|
|
bl ov25_0238A694
|
|
b _0238A674
|
|
_0238A4E8:
|
|
bl ov25_0238B380
|
|
mov r0, #3
|
|
bl ov25_0238A694
|
|
b _0238A674
|
|
_0238A4F8:
|
|
ldr r1, [r2, #8]
|
|
add r1, r1, #1
|
|
str r1, [r2, #8]
|
|
ldr r1, [r0]
|
|
ldr r0, [r1, #8]
|
|
cmp r0, #1
|
|
beq _0238A528
|
|
cmp r0, #2
|
|
beq _0238A674
|
|
cmp r0, #3
|
|
beq _0238A550
|
|
b _0238A674
|
|
_0238A528:
|
|
add r0, r1, #0x100
|
|
ldrsb r0, [r0, #0x3c]
|
|
bl sub_0202836C
|
|
ldr r0, _0238A67C ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x100
|
|
ldrsb r0, [r0, #0x3c]
|
|
bl CloseTextBox2
|
|
bl ov11_0230B9BC
|
|
b _0238A674
|
|
_0238A550:
|
|
ldr r0, [r1, #4]
|
|
bl ov25_0238A694
|
|
ldr r0, _0238A67C ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
mov r1, #0
|
|
ldr r0, [r0]
|
|
str r1, [r0, #8]
|
|
b _0238A674
|
|
_0238A56C:
|
|
ldr r1, [r2, #8]
|
|
add r1, r1, #1
|
|
str r1, [r2, #8]
|
|
ldr r1, [r0]
|
|
ldr r0, [r1, #8]
|
|
cmp r0, #1
|
|
beq _0238A59C
|
|
cmp r0, #2
|
|
beq _0238A674
|
|
cmp r0, #3
|
|
beq _0238A5A4
|
|
b _0238A674
|
|
_0238A59C:
|
|
bl ov11_0230B9BC
|
|
b _0238A674
|
|
_0238A5A4:
|
|
ldr r0, [r1, #4]
|
|
bl ov25_0238A694
|
|
ldr r0, _0238A67C ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
mov r1, #0
|
|
ldr r0, [r0]
|
|
str r1, [r0, #8]
|
|
b _0238A674
|
|
_0238A5C0:
|
|
mov r1, #0x14
|
|
str r1, [r2, #4]
|
|
ldr r3, [r0]
|
|
ldr r1, _0238A688 ; =0x00003008
|
|
add r0, r3, #0x100
|
|
ldrsb r0, [r0, #0x38]
|
|
ldr r2, _0238A68C ; =0x000003E2
|
|
add r3, r3, #0x28
|
|
bl ShowStringIdInDialogueBox
|
|
ldr r0, _0238A67C ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
mov r1, #0x1b
|
|
ldr r0, [r0]
|
|
str r1, [r0]
|
|
b _0238A674
|
|
_0238A5F8:
|
|
mov r1, #4
|
|
str r1, [r2, #0x50]
|
|
ldr r1, [r0]
|
|
mov r2, #1
|
|
str r2, [r1, #4]
|
|
ldr r3, [r0]
|
|
ldr r1, _0238A690 ; =0x00003018
|
|
add r0, r3, #0x100
|
|
ldrsb r0, [r0, #0x38]
|
|
#ifdef JAPAN
|
|
ldr r2, _0238BBF4 ; =0x000032C7
|
|
#else
|
|
rsb r2, r2, #0x3e4
|
|
#endif
|
|
add r3, r3, #0x28
|
|
bl ShowStringIdInDialogueBox
|
|
ldr r0, _0238A67C ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
mov r1, #0x1b
|
|
ldr r0, [r0]
|
|
str r1, [r0]
|
|
b _0238A674
|
|
_0238A63C:
|
|
add r0, r2, #0x100
|
|
ldrsb r0, [r0, #0x38]
|
|
bl IsDialogueBoxActive
|
|
cmp r0, #0
|
|
bne _0238A674
|
|
ldr r0, _0238A67C ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x100
|
|
ldrsb r0, [r0, #0x38]
|
|
bl ShowDialogueBox
|
|
ldr r0, _0238A67C ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, #4]
|
|
bl ov25_0238A694
|
|
_0238A674:
|
|
mov r0, #0
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0238A67C: .word OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
_0238A680: .word 0x00003F02
|
|
_0238A684: .word 0x00001308
|
|
_0238A688: .word 0x00003008
|
|
#ifdef JAPAN
|
|
_0238A68C: .word 0x000032C6
|
|
_0238A690: .word 0x00003018
|
|
_0238BBF4: .word 0x000032C7
|
|
#else
|
|
_0238A68C: .word 0x000003E2
|
|
_0238A690: .word 0x00003018
|
|
#endif
|
|
arm_func_end ov25_0238A140
|
|
|
|
arm_func_start ov25_0238A694
|
|
ov25_0238A694: ; 0x0238A694
|
|
stmdb sp!, {r3, lr}
|
|
sub sp, sp, #0x68
|
|
ldr ip, _0238B0D0 ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
ldr r1, [ip]
|
|
str r0, [r1]
|
|
ldr r1, [ip]
|
|
ldr r0, [r1]
|
|
cmp r0, #0x1d
|
|
addls pc, pc, r0, lsl #2
|
|
b _0238B0C8
|
|
_0238A6BC: ; jump table
|
|
b _0238A734 ; case 0
|
|
b _0238A828 ; case 1
|
|
b _0238A890 ; case 2
|
|
b _0238A904 ; case 3
|
|
b _0238B0C8 ; case 4
|
|
b _0238A96C ; case 5
|
|
b _0238A9E0 ; case 6
|
|
b _0238AA54 ; case 7
|
|
b _0238AAC8 ; case 8
|
|
b _0238AB3C ; case 9
|
|
b _0238ABBC ; case 10
|
|
b _0238AC1C ; case 11
|
|
b _0238AD04 ; case 12
|
|
b _0238AD48 ; case 13
|
|
b _0238AD8C ; case 14
|
|
b _0238ADC0 ; case 15
|
|
b _0238AE64 ; case 16
|
|
b _0238AF64 ; case 17
|
|
b _0238AC90 ; case 18
|
|
b _0238AF34 ; case 19
|
|
b _0238AF40 ; case 20
|
|
b _0238AF4C ; case 21
|
|
b _0238B0C8 ; case 22
|
|
b _0238B0C8 ; case 23
|
|
b _0238B0C8 ; case 24
|
|
b _0238B0C8 ; case 25
|
|
b _0238A7E4 ; case 26
|
|
b _0238B0C8 ; case 27
|
|
b _0238B0C8 ; case 28
|
|
b _0238AEF0 ; case 29
|
|
_0238A734:
|
|
mov r2, #0x96
|
|
mov r0, #0
|
|
str r2, [r1, #0x4c]
|
|
bl CreateDialogueBox
|
|
ldr r3, _0238B0D0 ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
ldr r1, _0238B0D4 ; =0x00003008
|
|
ldr ip, [r3]
|
|
ldr r2, _0238B0D8 ; =0x000003D7
|
|
strb r0, [ip, #0x138]
|
|
ldr r3, [r3]
|
|
add r0, r3, #0x100
|
|
ldrsb r0, [r0, #0x38]
|
|
add r3, r3, #0x28
|
|
bl ShowStringIdInDialogueBox
|
|
mov r0, #0
|
|
mov r1, #3
|
|
mov r2, #1
|
|
bl CreatePortraitBox
|
|
ldr r2, _0238B0D0 ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
mov r1, #0xb2
|
|
ldr r3, [r2]
|
|
strb r0, [r3, #0x139]
|
|
ldr r0, [r2]
|
|
add r0, r0, #0x140
|
|
bl InitPortraitParamsWithMonsterId
|
|
ldr r0, _0238B0D0 ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
mov r1, #0
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x140
|
|
bl SetPortraitLayout
|
|
ldr r0, _0238B0D0 ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
ldr r1, [r0]
|
|
add r0, r1, #0x140
|
|
ldr r1, [r1, #0x20]
|
|
mov r1, r1, lsl #0x18
|
|
mov r1, r1, asr #0x18
|
|
bl SetPortraitEmotion
|
|
ldr r0, _0238B0D0 ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
ldr r1, [r0]
|
|
add r0, r1, #0x100
|
|
ldrsb r0, [r0, #0x39]
|
|
add r1, r1, #0x140
|
|
bl ShowPortraitInPortraitBox
|
|
b _0238B0C8
|
|
_0238A7E4:
|
|
ldr r0, _0238B0DC ; =APPRAISAL_WINDOW_PARAMS_1
|
|
ldr r1, _0238B0E0 ; =ov25_0238B414
|
|
bl CreateTextBox
|
|
ldr r2, _0238B0D0 ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
ldr r1, _0238B0E4 ; =0x00300013
|
|
ldr r2, [r2]
|
|
ldr r3, _0238B0E8 ; =APPRAISAL_MAIN_MENU_ITEMS
|
|
strb r0, [r2, #0x13d]
|
|
mov ip, #4
|
|
ldr r0, _0238B0EC ; =APPRAISAL_WINDOW_PARAMS_5
|
|
mov r2, #0
|
|
str ip, [sp]
|
|
bl CreateSimpleMenuFromStringIds
|
|
ldr r1, _0238B0D0 ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
ldr r1, [r1]
|
|
strb r0, [r1, #0x13a]
|
|
b _0238B0C8
|
|
_0238A828:
|
|
bl ov25_0238B380
|
|
ldr r0, _0238B0D0 ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
mov r2, #0
|
|
ldr r1, [r0]
|
|
str r2, [r1, #0x20]
|
|
ldr r0, [r0]
|
|
ldr r1, [r0, #0x20]
|
|
add r0, r0, #0x140
|
|
mov r1, r1, lsl #0x18
|
|
mov r1, r1, asr #0x18
|
|
bl SetPortraitEmotion
|
|
ldr r0, _0238B0D0 ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
ldr r1, [r0]
|
|
add r0, r1, #0x100
|
|
ldrsb r0, [r0, #0x39]
|
|
add r1, r1, #0x140
|
|
bl ShowPortraitInPortraitBox
|
|
ldr r0, _0238B0D0 ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
ldr r1, _0238B0D4 ; =0x00003008
|
|
ldr r3, [r0]
|
|
ldr r2, _0238B0F0 ; =0x000003DD
|
|
add r0, r3, #0x100
|
|
ldrsb r0, [r0, #0x38]
|
|
add r3, r3, #0x28
|
|
bl ShowStringIdInDialogueBox
|
|
b _0238B0C8
|
|
_0238A890:
|
|
bl ov25_0238B380
|
|
ldr r0, _0238B0D0 ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
mov r3, #1
|
|
ldr r1, [r0]
|
|
mov r2, #0
|
|
str r3, [r1, #4]
|
|
ldr r1, [r0]
|
|
str r2, [r1, #0x20]
|
|
ldr r0, [r0]
|
|
ldr r1, [r0, #0x20]
|
|
add r0, r0, #0x140
|
|
mov r1, r1, lsl #0x18
|
|
mov r1, r1, asr #0x18
|
|
bl SetPortraitEmotion
|
|
ldr r0, _0238B0D0 ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
ldr r1, [r0]
|
|
add r0, r1, #0x100
|
|
ldrsb r0, [r0, #0x39]
|
|
add r1, r1, #0x140
|
|
bl ShowPortraitInPortraitBox
|
|
ldr r0, _0238B0D0 ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
ldr r1, _0238B0F4 ; =0x00003018
|
|
ldr r3, [r0]
|
|
#ifdef JAPAN
|
|
add r2, r1, #0x2b0
|
|
#else
|
|
mov r2, #0x3e4
|
|
#endif
|
|
add r0, r3, #0x100
|
|
ldrsb r0, [r0, #0x38]
|
|
add r3, r3, #0x28
|
|
bl ShowStringIdInDialogueBox
|
|
b _0238B0C8
|
|
_0238A904:
|
|
bl ov25_0238B380
|
|
ldr r0, _0238B0D0 ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
mov r2, #4
|
|
ldr r1, [r0]
|
|
str r2, [r1, #4]
|
|
ldr r0, [r0]
|
|
ldr r1, [r0, #0x20]
|
|
add r0, r0, #0x140
|
|
mov r1, r1, lsl #0x18
|
|
mov r1, r1, asr #0x18
|
|
bl SetPortraitEmotion
|
|
ldr r0, _0238B0D0 ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
ldr r1, [r0]
|
|
add r0, r1, #0x100
|
|
ldrsb r0, [r0, #0x39]
|
|
add r1, r1, #0x140
|
|
bl ShowPortraitInPortraitBox
|
|
ldr r0, _0238B0D0 ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
ldr r1, _0238B0F4 ; =0x00003018
|
|
ldr r3, [r0]
|
|
ldr r2, _0238B0F8 ; =0x000003E5
|
|
add r0, r3, #0x100
|
|
ldrsb r0, [r0, #0x38]
|
|
add r3, r3, #0x28
|
|
bl ShowStringIdInDialogueBox
|
|
b _0238B0C8
|
|
_0238A96C:
|
|
bl ov25_0238B380
|
|
ldr r0, _0238B0D0 ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
mov r3, #1
|
|
ldr r1, [r0]
|
|
mov r2, #0
|
|
str r3, [r1, #4]
|
|
ldr r1, [r0]
|
|
str r2, [r1, #0x20]
|
|
ldr r0, [r0]
|
|
ldr r1, [r0, #0x20]
|
|
add r0, r0, #0x140
|
|
mov r1, r1, lsl #0x18
|
|
mov r1, r1, asr #0x18
|
|
bl SetPortraitEmotion
|
|
ldr r0, _0238B0D0 ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
ldr r1, [r0]
|
|
add r0, r1, #0x100
|
|
ldrsb r0, [r0, #0x39]
|
|
add r1, r1, #0x140
|
|
bl ShowPortraitInPortraitBox
|
|
ldr r0, _0238B0D0 ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
ldr r1, _0238B0F4 ; =0x00003018
|
|
ldr r3, [r0]
|
|
#ifdef JAPAN
|
|
add r2, r1, #0x2a4
|
|
#else
|
|
mov r2, #0x3d8
|
|
#endif
|
|
add r0, r3, #0x100
|
|
ldrsb r0, [r0, #0x38]
|
|
add r3, r3, #0x28
|
|
bl ShowStringIdInDialogueBox
|
|
b _0238B0C8
|
|
_0238A9E0:
|
|
bl ov25_0238B380
|
|
ldr r0, _0238B0D0 ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
mov r3, #1
|
|
ldr r1, [r0]
|
|
mov r2, #0
|
|
str r3, [r1, #4]
|
|
ldr r1, [r0]
|
|
str r2, [r1, #0x20]
|
|
ldr r0, [r0]
|
|
ldr r1, [r0, #0x20]
|
|
add r0, r0, #0x140
|
|
mov r1, r1, lsl #0x18
|
|
mov r1, r1, asr #0x18
|
|
bl SetPortraitEmotion
|
|
ldr r0, _0238B0D0 ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
ldr r1, [r0]
|
|
add r0, r1, #0x100
|
|
ldrsb r0, [r0, #0x39]
|
|
add r1, r1, #0x140
|
|
bl ShowPortraitInPortraitBox
|
|
ldr r0, _0238B0D0 ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
ldr r1, _0238B0F4 ; =0x00003018
|
|
ldr r3, [r0]
|
|
ldr r2, _0238B0FC ; =0x000003D9
|
|
add r0, r3, #0x100
|
|
ldrsb r0, [r0, #0x38]
|
|
add r3, r3, #0x28
|
|
bl ShowStringIdInDialogueBox
|
|
b _0238B0C8
|
|
_0238AA54:
|
|
bl ov25_0238B380
|
|
ldr r0, _0238B0D0 ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
mov r3, #1
|
|
ldr r1, [r0]
|
|
mov r2, #0
|
|
str r3, [r1, #4]
|
|
ldr r1, [r0]
|
|
str r2, [r1, #0x20]
|
|
ldr r0, [r0]
|
|
ldr r1, [r0, #0x20]
|
|
add r0, r0, #0x140
|
|
mov r1, r1, lsl #0x18
|
|
mov r1, r1, asr #0x18
|
|
bl SetPortraitEmotion
|
|
ldr r0, _0238B0D0 ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
ldr r1, [r0]
|
|
add r0, r1, #0x100
|
|
ldrsb r0, [r0, #0x39]
|
|
add r1, r1, #0x140
|
|
bl ShowPortraitInPortraitBox
|
|
ldr r0, _0238B0D0 ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
ldr r1, _0238B0F4 ; =0x00003018
|
|
ldr r3, [r0]
|
|
ldr r2, _0238B0FC ; =0x000003D9
|
|
add r0, r3, #0x100
|
|
ldrsb r0, [r0, #0x38]
|
|
add r3, r3, #0x28
|
|
bl ShowStringIdInDialogueBox
|
|
b _0238B0C8
|
|
_0238AAC8:
|
|
bl ov25_0238B380
|
|
ldr r0, _0238B0D0 ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
mov r3, #1
|
|
ldr r1, [r0]
|
|
mov r2, #0
|
|
str r3, [r1, #4]
|
|
ldr r1, [r0]
|
|
str r2, [r1, #0x20]
|
|
ldr r0, [r0]
|
|
ldr r1, [r0, #0x20]
|
|
add r0, r0, #0x140
|
|
mov r1, r1, lsl #0x18
|
|
mov r1, r1, asr #0x18
|
|
bl SetPortraitEmotion
|
|
ldr r0, _0238B0D0 ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
ldr r1, [r0]
|
|
add r0, r1, #0x100
|
|
ldrsb r0, [r0, #0x39]
|
|
add r1, r1, #0x140
|
|
bl ShowPortraitInPortraitBox
|
|
ldr r0, _0238B0D0 ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
ldr r1, _0238B0F4 ; =0x00003018
|
|
ldr r3, [r0]
|
|
#ifdef JAPAN
|
|
add r2, r1, #0x2ac
|
|
#else
|
|
mov r2, #0x3e0
|
|
#endif
|
|
add r0, r3, #0x100
|
|
ldrsb r0, [r0, #0x38]
|
|
add r3, r3, #0x28
|
|
bl ShowStringIdInDialogueBox
|
|
b _0238B0C8
|
|
_0238AB3C:
|
|
bl ov25_0238B380
|
|
ldr r0, _0238B0D0 ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
mov r2, #0x96
|
|
ldr r1, [r0]
|
|
mov r3, #1
|
|
str r2, [r1, #0x4c]
|
|
ldr r1, [r0]
|
|
mov r2, #0
|
|
str r3, [r1, #4]
|
|
ldr r1, [r0]
|
|
str r2, [r1, #0x20]
|
|
ldr r0, [r0]
|
|
ldr r1, [r0, #0x20]
|
|
add r0, r0, #0x140
|
|
mov r1, r1, lsl #0x18
|
|
mov r1, r1, asr #0x18
|
|
bl SetPortraitEmotion
|
|
ldr r0, _0238B0D0 ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
ldr r1, [r0]
|
|
add r0, r1, #0x100
|
|
ldrsb r0, [r0, #0x39]
|
|
add r1, r1, #0x140
|
|
bl ShowPortraitInPortraitBox
|
|
ldr r0, _0238B0D0 ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
ldr r1, _0238B0F4 ; =0x00003018
|
|
ldr r3, [r0]
|
|
#ifdef JAPAN
|
|
add r2, r1, #0x2ac
|
|
#else
|
|
mov r2, #0x3e0
|
|
#endif
|
|
add r0, r3, #0x100
|
|
ldrsb r0, [r0, #0x38]
|
|
add r3, r3, #0x28
|
|
bl ShowStringIdInDialogueBox
|
|
b _0238B0C8
|
|
_0238ABBC:
|
|
bl ov25_0238B380
|
|
ldr r0, _0238B0D0 ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
mov r2, #0xc
|
|
ldr r1, [r0]
|
|
mov r3, #0x19
|
|
str r2, [r1, #4]
|
|
ldr r1, [r0]
|
|
mov r2, #0
|
|
str r3, [r1]
|
|
ldr r1, [r0]
|
|
str r2, [r1, #0x20]
|
|
ldr r0, [r0]
|
|
ldr r1, [r0, #0x20]
|
|
add r0, r0, #0x140
|
|
mov r1, r1, lsl #0x18
|
|
mov r1, r1, asr #0x18
|
|
bl SetPortraitEmotion
|
|
ldr r0, _0238B0D0 ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
ldr r1, [r0]
|
|
add r0, r1, #0x100
|
|
ldrsb r0, [r0, #0x39]
|
|
add r1, r1, #0x140
|
|
bl ShowPortraitInPortraitBox
|
|
b _0238B0C8
|
|
_0238AC1C:
|
|
mov r0, #0xd
|
|
str r0, [r1, #4]
|
|
ldr r0, [ip]
|
|
mov r1, #0x19
|
|
str r1, [r0]
|
|
ldr r0, [ip]
|
|
mov r1, #0
|
|
str r1, [r0, #0x20]
|
|
ldr r0, [ip]
|
|
ldr r1, [r0, #0x20]
|
|
add r0, r0, #0x140
|
|
mov r1, r1, lsl #0x18
|
|
mov r1, r1, asr #0x18
|
|
bl SetPortraitEmotion
|
|
ldr r0, _0238B0D0 ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
ldr r1, [r0]
|
|
add r0, r1, #0x100
|
|
ldrsb r0, [r0, #0x39]
|
|
add r1, r1, #0x140
|
|
bl ShowPortraitInPortraitBox
|
|
ldr r0, _0238B0D0 ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
ldr r1, _0238B0D4 ; =0x00003008
|
|
ldr r3, [r0]
|
|
ldr r2, _0238B0F0 ; =0x000003DD
|
|
add r0, r3, #0x100
|
|
ldrsb r0, [r0, #0x38]
|
|
add r3, r3, #0x28
|
|
bl ShowStringIdInDialogueBox
|
|
b _0238B0C8
|
|
_0238AC90:
|
|
mov r0, #0xd
|
|
str r0, [r1, #4]
|
|
ldr r0, [ip]
|
|
mov r1, #0x1b
|
|
str r1, [r0]
|
|
ldr r0, [ip]
|
|
mov r1, #0
|
|
str r1, [r0, #0x20]
|
|
ldr r0, [ip]
|
|
ldr r1, [r0, #0x20]
|
|
add r0, r0, #0x140
|
|
mov r1, r1, lsl #0x18
|
|
mov r1, r1, asr #0x18
|
|
bl SetPortraitEmotion
|
|
ldr r0, _0238B0D0 ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
ldr r1, [r0]
|
|
add r0, r1, #0x100
|
|
ldrsb r0, [r0, #0x39]
|
|
add r1, r1, #0x140
|
|
bl ShowPortraitInPortraitBox
|
|
ldr r0, _0238B0D0 ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
ldr r1, _0238B0F4 ; =0x00003018
|
|
ldr r3, [r0]
|
|
ldr r2, _0238B100 ; =0x000003DF
|
|
add r0, r3, #0x100
|
|
ldrsb r0, [r0, #0x38]
|
|
add r3, r3, #0x28
|
|
bl ShowStringIdInDialogueBox
|
|
b _0238B0C8
|
|
_0238AD04:
|
|
add r0, r1, #0x100
|
|
ldrsb r0, [r0, #0x38]
|
|
bl ShowDialogueBox
|
|
ldr r0, _0238B0D0 ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x100
|
|
ldrsb r0, [r0, #0x38]
|
|
bl sub_0202F2C4
|
|
ldr r0, _0238B0D0 ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x100
|
|
ldrsb r0, [r0, #0x39]
|
|
bl HidePortraitBox
|
|
mov r0, #1
|
|
mov r1, #0
|
|
bl SwapShopInventoryManager
|
|
b _0238B0C8
|
|
_0238AD48:
|
|
add r0, r1, #0x100
|
|
ldrsb r0, [r0, #0x38]
|
|
bl ShowDialogueBox
|
|
ldr r0, _0238B0D0 ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x100
|
|
ldrsb r0, [r0, #0x38]
|
|
bl sub_0202F2C4
|
|
ldr r0, _0238B0D0 ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x100
|
|
ldrsb r0, [r0, #0x39]
|
|
bl HidePortraitBox
|
|
mov r0, #1
|
|
mov r1, #0
|
|
bl SwapShopInventoryManager
|
|
b _0238B0C8
|
|
_0238AD8C:
|
|
mov r2, #0x96
|
|
ldr r0, _0238B104 ; =APPRAISAL_WINDOW_PARAMS_6
|
|
ldr r3, _0238B108 ; =APPRAISAL_SUBMENU_ITEMS
|
|
str r2, [r1, #0x4c]
|
|
mov ip, #3
|
|
mov r1, #0x13
|
|
mov r2, #0
|
|
str ip, [sp]
|
|
bl CreateSimpleMenuFromStringIds
|
|
ldr r1, _0238B0D0 ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
ldr r1, [r1]
|
|
strb r0, [r1, #0x13a]
|
|
b _0238B0C8
|
|
_0238ADC0:
|
|
ldrh r0, [r1, #0xe]
|
|
ldr r2, _0238B10C ; =ov25_0238B5A4
|
|
ldr r3, _0238B110 ; =0x0000C402
|
|
str r0, [r1, #0x28]
|
|
ldr lr, [ip]
|
|
mov r1, #0x400
|
|
ldrsh r0, [lr, #0xc]
|
|
str r0, [lr, #0x38]
|
|
ldr lr, [ip]
|
|
ldrh r0, [lr, #0xe]
|
|
str r0, [lr, #0x4c]
|
|
ldr r0, [ip]
|
|
add ip, r0, #0x28
|
|
add r0, r0, #0x78
|
|
str ip, [sp]
|
|
bl PreprocessString
|
|
add r0, sp, #0x18
|
|
bl InitPreprocessorArgs
|
|
ldr r0, _0238B0D0 ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
add r1, sp, #0x18
|
|
ldr ip, [r0]
|
|
ldr r0, _0238B114 ; =APPRAISAL_WINDOW_PARAMS_8
|
|
add r2, ip, #0x78
|
|
str r2, [sp, #0x50]
|
|
str r1, [sp]
|
|
ldrsh r2, [ip, #0xc]
|
|
ldr r1, _0238B118 ; =0x00001013
|
|
ldr r3, _0238B11C ; =0x0000033E
|
|
#if defined(EUROPE)
|
|
add r2, r2, #0xd3
|
|
add r2, r2, #0x2900
|
|
#elif defined(JAPAN)
|
|
add r2, r2, #0xce
|
|
add r2, r2, #0x4100
|
|
#else
|
|
add r2, r2, #0xd1
|
|
add r2, r2, #0x2900
|
|
#endif
|
|
mov r2, r2, lsl #0x10
|
|
mov r2, r2, lsr #0x10
|
|
str r2, [sp, #4]
|
|
add ip, ip, #0x28
|
|
mov r2, #0
|
|
str ip, [sp, #8]
|
|
bl CreateScrollBoxSingle
|
|
ldr r1, _0238B0D0 ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
ldr r1, [r1]
|
|
strb r0, [r1, #0x13b]
|
|
b _0238B0C8
|
|
_0238AE64:
|
|
mov r0, #0
|
|
str r0, [r1, #0x20]
|
|
ldr r0, [ip]
|
|
ldr r1, [r0, #0x20]
|
|
add r0, r0, #0x140
|
|
mov r1, r1, lsl #0x18
|
|
mov r1, r1, asr #0x18
|
|
bl SetPortraitEmotion
|
|
ldr r0, _0238B0D0 ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
mov r3, #0x1b
|
|
ldr r1, [r0]
|
|
mov r2, #0x1d
|
|
str r3, [r1]
|
|
ldr r1, [r0]
|
|
str r2, [r1, #4]
|
|
ldr r1, [r0]
|
|
add r0, r1, #0x100
|
|
ldrsb r0, [r0, #0x39]
|
|
add r1, r1, #0x140
|
|
bl ShowPortraitInPortraitBox
|
|
ldr r0, _0238B0D0 ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
ldr r1, _0238B0D4 ; =0x00003008
|
|
ldr ip, [r0]
|
|
#ifdef JAPAN
|
|
mov r2, #0x32c0
|
|
#else
|
|
mov r2, #0x3dc
|
|
#endif
|
|
ldrsh r3, [ip, #0xc]
|
|
str r3, [ip, #0x3c]
|
|
ldr ip, [r0]
|
|
ldrh r3, [ip, #0xe]
|
|
str r3, [ip, #0x50]
|
|
ldr r3, [r0]
|
|
add r0, r3, #0x100
|
|
ldrsb r0, [r0, #0x38]
|
|
add r3, r3, #0x28
|
|
bl ShowStringIdInDialogueBox
|
|
b _0238B0C8
|
|
_0238AEF0:
|
|
ldr r0, _0238B0DC ; =APPRAISAL_WINDOW_PARAMS_1
|
|
ldr r1, _0238B0E0 ; =ov25_0238B414
|
|
bl CreateTextBox
|
|
ldr r1, _0238B0D0 ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
ldr r3, _0238B120 ; =APPRAISAL_MENU_ITEMS_CONFIRM
|
|
ldr r1, [r1]
|
|
mov ip, #2
|
|
strb r0, [r1, #0x13d]
|
|
ldr r0, _0238B124 ; =APPRAISAL_WINDOW_PARAMS_7
|
|
mov r1, #0x80000013
|
|
mov r2, #0
|
|
str ip, [sp]
|
|
bl CreateSimpleMenuFromStringIds
|
|
ldr r1, _0238B0D0 ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
ldr r1, [r1]
|
|
strb r0, [r1, #0x13a]
|
|
b _0238B0C8
|
|
_0238AF34:
|
|
mov r0, #7
|
|
str r0, [r1, #0x24]
|
|
b _0238B0C8
|
|
_0238AF40:
|
|
mov r0, #8
|
|
str r0, [r1, #0x24]
|
|
b _0238B0C8
|
|
_0238AF4C:
|
|
mov r0, #8
|
|
str r0, [r1, #0x24]
|
|
ldr r0, [ip]
|
|
mov r1, #1
|
|
str r1, [r0, #4]
|
|
b _0238B0C8
|
|
_0238AF64:
|
|
mvn r0, #0x95
|
|
bl AddMoneyCarried
|
|
ldr r1, _0238B0D0 ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
add r0, sp, #0x12
|
|
ldr ip, [r1]
|
|
add r1, sp, #0xc
|
|
ldrsh r3, [ip, #0xc]
|
|
mov r2, #1
|
|
strh r3, [sp, #0x10]
|
|
ldrh r3, [ip, #0xe]
|
|
strh r3, [sp, #0xe]
|
|
strb r2, [sp, #0xc]
|
|
bl ItemToBulkItem
|
|
add r0, sp, #0x12
|
|
bl RemoveItemByIdAndStackNoHole
|
|
ldr r0, _0238B0D0 ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
mov r1, #0
|
|
ldr r0, [r0]
|
|
ldrh r0, [r0, #0xe]
|
|
strh r0, [sp, #0x10]
|
|
ldrsh r0, [sp, #0x10]
|
|
strh r1, [sp, #0xe]
|
|
bl IsThrownItem
|
|
cmp r0, #0
|
|
movne r0, #0xa
|
|
strneh r0, [sp, #0xe]
|
|
bne _0238B00C
|
|
ldrsh r0, [sp, #0x10]
|
|
cmp r0, #0xbb
|
|
moveq r0, #0x55
|
|
streqh r0, [sp, #0x10]
|
|
ldrsh r1, [sp, #0x10]
|
|
cmp r1, #0x16c
|
|
blt _0238AFFC
|
|
ldr r0, _0238B128 ; =0x0000018F
|
|
cmp r1, r0
|
|
movle r0, #0x55
|
|
strleh r0, [sp, #0x10]
|
|
_0238AFFC:
|
|
ldrsh r0, [sp, #0x10]
|
|
cmp r0, #0xb7
|
|
moveq r0, #0x55
|
|
streqh r0, [sp, #0x10]
|
|
_0238B00C:
|
|
mov r1, #1
|
|
add r0, sp, #0xc
|
|
strb r1, [sp, #0xc]
|
|
bl AddItemToBagNoHeld
|
|
bl ov11_022DC504
|
|
ldr r0, _0238B0D0 ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
mov r2, #0x13
|
|
ldr r1, [r0]
|
|
mov r3, #6
|
|
str r2, [r1, #4]
|
|
ldr r2, [r0]
|
|
add r1, sp, #0xc
|
|
str r3, [r2, #0x24]
|
|
ldr r0, [r0]
|
|
ldr r2, _0238B12C ; =OVERLAY25_UNKNOWN_STRUCT__NA_238B498
|
|
add r0, r0, #0xb8
|
|
bl sub_0200D670
|
|
ldr r0, _0238B0D0 ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
ldr r2, [r0]
|
|
add r1, r2, #0xb8
|
|
str r1, [r2, #0x60]
|
|
ldrsh r2, [sp, #0x10]
|
|
ldr r1, [r0]
|
|
str r2, [r1, #0x3c]
|
|
ldr r2, [r0]
|
|
ldrh r1, [r2, #0xe]
|
|
str r1, [r2, #0x50]
|
|
ldr r0, [r0]
|
|
ldr r1, [r0, #0x20]
|
|
add r0, r0, #0x140
|
|
mov r1, r1, lsl #0x18
|
|
mov r1, r1, asr #0x18
|
|
bl SetPortraitEmotion
|
|
ldr r0, _0238B0D0 ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
ldr r1, [r0]
|
|
add r0, r1, #0x100
|
|
ldrsb r0, [r0, #0x39]
|
|
add r1, r1, #0x140
|
|
bl ShowPortraitInPortraitBox
|
|
ldr r0, _0238B0D0 ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
ldr r1, _0238B0F4 ; =0x00003018
|
|
ldr r3, [r0]
|
|
ldr r2, _0238B130 ; =0x000003E1
|
|
add r0, r3, #0x100
|
|
ldrsb r0, [r0, #0x38]
|
|
add r3, r3, #0x28
|
|
bl ShowStringIdInDialogueBox
|
|
_0238B0C8:
|
|
add sp, sp, #0x68
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
#ifdef JAPAN
|
|
#define OV25_0238A694_OFFSET 0x2EE4
|
|
#else
|
|
#define OV25_0238A694_OFFSET 0
|
|
#endif
|
|
_0238B0D0: .word OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
_0238B0D4: .word 0x00003008
|
|
_0238B0D8: .word 0x000003D7 + OV25_0238A694_OFFSET
|
|
_0238B0DC: .word APPRAISAL_WINDOW_PARAMS_1
|
|
_0238B0E0: .word ov25_0238B414
|
|
_0238B0E4: .word 0x00300013
|
|
_0238B0E8: .word APPRAISAL_MAIN_MENU_ITEMS
|
|
_0238B0EC: .word APPRAISAL_WINDOW_PARAMS_5
|
|
_0238B0F0: .word 0x000003DD + OV25_0238A694_OFFSET
|
|
_0238B0F4: .word 0x00003018
|
|
_0238B0F8: .word 0x000003E5 + OV25_0238A694_OFFSET
|
|
_0238B0FC: .word 0x000003D9 + OV25_0238A694_OFFSET
|
|
_0238B100: .word 0x000003DF + OV25_0238A694_OFFSET
|
|
_0238B104: .word APPRAISAL_WINDOW_PARAMS_6
|
|
_0238B108: .word APPRAISAL_SUBMENU_ITEMS
|
|
_0238B10C: .word ov25_0238B5A4
|
|
_0238B110: .word 0x0000C402
|
|
_0238B114: .word APPRAISAL_WINDOW_PARAMS_8
|
|
_0238B118: .word 0x00001013
|
|
#ifdef JAPAN
|
|
_0238B11C: .word 0x00003203
|
|
#else
|
|
_0238B11C: .word 0x0000033E
|
|
#endif
|
|
_0238B120: .word APPRAISAL_MENU_ITEMS_CONFIRM
|
|
_0238B124: .word APPRAISAL_WINDOW_PARAMS_7
|
|
_0238B128: .word 0x0000018F
|
|
_0238B12C: .word OVERLAY25_UNKNOWN_STRUCT__NA_238B498
|
|
_0238B130: .word 0x000003E1 + OV25_0238A694_OFFSET
|
|
arm_func_end ov25_0238A694
|
|
|
|
arm_func_start ov25_0238B134
|
|
ov25_0238B134: ; 0x0238B134
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #0x150
|
|
mov r1, #6
|
|
bl MemAlloc
|
|
ldr r1, _0238B1C8 ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
mov r3, #0
|
|
str r0, [r1]
|
|
str r3, [r0, #0x14]
|
|
ldr r0, [r1]
|
|
sub r2, r3, #2
|
|
str r3, [r0, #0x18]
|
|
ldr r0, [r1]
|
|
str r3, [r0, #0x1c]
|
|
ldr r0, [r1]
|
|
strb r2, [r0, #0x13d]
|
|
ldr r0, [r1]
|
|
str r3, [r0, #0x24]
|
|
ldr r0, [r1]
|
|
add r0, r0, #0x28
|
|
bl InitPreprocessorArgs
|
|
ldr r0, _0238B1C8 ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
mov r3, #0xb2
|
|
ldr r2, [r0]
|
|
mov r1, #0
|
|
str r3, [r2, #0x74]
|
|
ldr r2, [r0]
|
|
str r3, [r2, #0x28]
|
|
ldr r0, [r0]
|
|
str r1, [r0, #8]
|
|
bl ov11_0230C910
|
|
ldr r1, _0238B1C8 ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
mov r0, #0
|
|
ldr r1, [r1]
|
|
str r0, [r1, #0x20]
|
|
bl ov25_0238A694
|
|
mov r0, #1
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0238B1C8: .word OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
arm_func_end ov25_0238B134
|
|
|
|
arm_func_start ov25_0238B1CC
|
|
ov25_0238B1CC: ; 0x0238B1CC
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0238B1F4 ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r3, pc}
|
|
bl MemFree
|
|
ldr r0, _0238B1F4 ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
mov r1, #0
|
|
str r1, [r0]
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0238B1F4: .word OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
arm_func_end ov25_0238B1CC
|
|
|
|
arm_func_start ov25_0238B1F8
|
|
ov25_0238B1F8: ; 0x0238B1F8
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0238B37C ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
ldr r2, [r0]
|
|
ldr r1, [r2, #0x24]
|
|
cmp r1, #8
|
|
addls pc, pc, r1, lsl #2
|
|
b _0238B374
|
|
_0238B214: ; jump table
|
|
b _0238B238 ; case 0
|
|
b _0238B248 ; case 1
|
|
b _0238B318 ; case 2
|
|
b _0238B364 ; case 3
|
|
b _0238B348 ; case 4
|
|
b _0238B374 ; case 5
|
|
b _0238B2A0 ; case 6
|
|
b _0238B2C8 ; case 7
|
|
b _0238B2F0 ; case 8
|
|
_0238B238:
|
|
mov r0, #4
|
|
str r0, [r2, #0x24]
|
|
bl ov11_022E6E68
|
|
b _0238B374
|
|
_0238B248:
|
|
bl ov25_0238A140
|
|
cmp r0, #3
|
|
bne _0238B374
|
|
ldr r0, _0238B37C ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
mov r2, #2
|
|
ldr r1, [r0]
|
|
str r2, [r1, #0x24]
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x100
|
|
ldrsb r0, [r0, #0x38]
|
|
bl sub_0202F2C4
|
|
ldr r0, _0238B37C ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x100
|
|
ldrsb r0, [r0, #0x39]
|
|
bl HidePortraitBox
|
|
ldr r0, _0238B37C ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x100
|
|
ldrsb r0, [r0, #0x38]
|
|
bl sub_0202836C
|
|
b _0238B374
|
|
_0238B2A0:
|
|
bl ov11_022E6EC8
|
|
cmp r0, #0
|
|
beq _0238B374
|
|
mov r0, #1
|
|
bl ov11_022E6E8C
|
|
ldr r0, _0238B37C ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
mov r1, #4
|
|
ldr r0, [r0]
|
|
str r1, [r0, #0x24]
|
|
b _0238B374
|
|
_0238B2C8:
|
|
bl ov11_022E6EC8
|
|
cmp r0, #0
|
|
beq _0238B374
|
|
mov r0, #2
|
|
bl ov11_022E6E8C
|
|
ldr r0, _0238B37C ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
mov r1, #4
|
|
ldr r0, [r0]
|
|
str r1, [r0, #0x24]
|
|
b _0238B374
|
|
_0238B2F0:
|
|
bl ov11_022E6EC8
|
|
cmp r0, #0
|
|
beq _0238B374
|
|
mov r0, #3
|
|
bl ov11_022E6E8C
|
|
ldr r0, _0238B37C ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
mov r1, #4
|
|
ldr r0, [r0]
|
|
str r1, [r0, #0x24]
|
|
b _0238B374
|
|
_0238B318:
|
|
mov r1, #3
|
|
str r1, [r2, #0x24]
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x100
|
|
ldrsb r0, [r0, #0x38]
|
|
bl CloseDialogueBox
|
|
ldr r0, _0238B37C ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x100
|
|
ldrsb r0, [r0, #0x39]
|
|
bl ClosePortraitBox
|
|
b _0238B374
|
|
_0238B348:
|
|
bl ov11_022E6EC8
|
|
cmp r0, #0
|
|
ldrne r0, _0238B37C ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
movne r1, #1
|
|
ldrne r0, [r0]
|
|
strne r1, [r0, #0x24]
|
|
b _0238B374
|
|
_0238B364:
|
|
mvn r0, #0
|
|
bl ov11_022E6E8C
|
|
mov r0, #4
|
|
ldmia sp!, {r3, pc}
|
|
_0238B374:
|
|
mov r0, #1
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0238B37C: .word OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
arm_func_end ov25_0238B1F8
|
|
|
|
arm_func_start ov25_0238B380
|
|
ov25_0238B380: ; 0x0238B380
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0238B410 ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
mvn r1, #1
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x100
|
|
ldrsb r0, [r0, #0x3a]
|
|
cmp r0, r1
|
|
beq _0238B3C8
|
|
bl sub_0202836C
|
|
ldr r0, _0238B410 ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x100
|
|
ldrsb r0, [r0, #0x3a]
|
|
bl CloseSimpleMenu
|
|
ldr r0, _0238B410 ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
mvn r1, #1
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #0x13a]
|
|
_0238B3C8:
|
|
ldr r0, _0238B410 ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
mvn r1, #1
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x100
|
|
ldrsb r0, [r0, #0x3d]
|
|
cmp r0, r1
|
|
ldmeqia sp!, {r3, pc}
|
|
bl sub_0202836C
|
|
ldr r0, _0238B410 ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x100
|
|
ldrsb r0, [r0, #0x3d]
|
|
bl CloseTextBox
|
|
ldr r0, _0238B410 ; =OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
mvn r1, #1
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #0x13d]
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0238B410: .word OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
arm_func_end ov25_0238B380
|
|
|
|
arm_func_start ov25_0238B414
|
|
ov25_0238B414: ; 0x0238B414
|
|
stmdb sp!, {r3, r4, lr}
|
|
sub sp, sp, #0x54
|
|
sub sp, sp, #0x400
|
|
mov r4, r0
|
|
bl sub_02027B1C
|
|
bl GetMoneyCarried
|
|
add ip, sp, #0x400
|
|
str r0, [sp, #0x428]
|
|
add ip, ip, #4
|
|
ldr r2, _0238B48C ; =ov25_0238B5B0
|
|
ldr r3, _0238B490 ; =0x0000C402
|
|
add r0, sp, #4
|
|
mov r1, #0x100
|
|
str ip, [sp]
|
|
bl PreprocessString
|
|
#ifdef JAPAN
|
|
mov r1, #4
|
|
mov r0, r4
|
|
mov r2, #2
|
|
rsb r3, r1, #0x430
|
|
#else
|
|
ldr r3, _0238B494 ; =0x00000225
|
|
mov r0, r4
|
|
mov r1, #4
|
|
mov r2, #2
|
|
#endif
|
|
bl sub_02026268
|
|
mov r1, #0x10
|
|
mov r0, r4
|
|
mov r2, r1
|
|
add r3, sp, #4
|
|
bl DrawTextInWindow
|
|
mov r0, r4
|
|
bl UpdateWindow
|
|
add sp, sp, #0x54
|
|
add sp, sp, #0x400
|
|
ldmia sp!, {r3, r4, pc}
|
|
.align 2, 0
|
|
_0238B48C: .word ov25_0238B5B0
|
|
_0238B490: .word 0x0000C402
|
|
#ifndef JAPAN
|
|
_0238B494: .word 0x00000225
|
|
#endif
|
|
arm_func_end ov25_0238B414
|
|
; 0x0238B498
|
|
|
|
.rodata
|
|
.global OVERLAY25_UNKNOWN_STRUCT__NA_238B498
|
|
OVERLAY25_UNKNOWN_STRUCT__NA_238B498:
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
|
|
.global APPRAISAL_WINDOW_PARAMS_1
|
|
APPRAISAL_WINDOW_PARAMS_1:
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x16, 0x02, 0x08, 0x04, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.global APPRAISAL_MENU_ITEMS_CONFIRM
|
|
APPRAISAL_MENU_ITEMS_CONFIRM:
|
|
#ifdef JAPAN
|
|
#define OV25_DATA_OFFSET 0x2EE4
|
|
#else
|
|
#define OV25_DATA_OFFSET 0
|
|
#endif
|
|
.word 0x3D1 + OV25_DATA_OFFSET
|
|
.byte 0x04, 0x00, 0x00, 0x00
|
|
.word 0x3D2 + OV25_DATA_OFFSET
|
|
.byte 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x01, 0x00, 0x00, 0x00
|
|
.global APPRAISAL_MAIN_MENU_ITEMS
|
|
APPRAISAL_MAIN_MENU_ITEMS:
|
|
.word 0x3D3 + OV25_DATA_OFFSET
|
|
.byte 0x07, 0x00, 0x00, 0x00
|
|
.word 0x3D5 + OV25_DATA_OFFSET
|
|
.byte 0x06, 0x00, 0x00, 0x00
|
|
.word 0x3D6 + OV25_DATA_OFFSET
|
|
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x01, 0x00, 0x00, 0x00
|
|
.global APPRAISAL_SUBMENU_ITEMS
|
|
APPRAISAL_SUBMENU_ITEMS:
|
|
.word 0x3DA + OV25_DATA_OFFSET
|
|
.byte 0x07, 0x00, 0x00, 0x00
|
|
.word 0x3D5 + OV25_DATA_OFFSET
|
|
.byte 0x06, 0x00, 0x00, 0x00
|
|
.word 0x3E6 + OV25_DATA_OFFSET
|
|
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x01, 0x00, 0x00, 0x00
|
|
.hword 0x3D3 + OV25_DATA_OFFSET, 0x3D4 + OV25_DATA_OFFSET, 0x3D5 + OV25_DATA_OFFSET, 0x3D6 + OV25_DATA_OFFSET, 0x3D7 + OV25_DATA_OFFSET, 0x3D8 + OV25_DATA_OFFSET
|
|
.hword 0x3D9 + OV25_DATA_OFFSET, 0x3DA + OV25_DATA_OFFSET, 0x3DB + OV25_DATA_OFFSET, 0x3DC + OV25_DATA_OFFSET, 0x3DD + OV25_DATA_OFFSET, 0x3DE + OV25_DATA_OFFSET, 0x3DF + OV25_DATA_OFFSET, 0x3E0 + OV25_DATA_OFFSET
|
|
.hword 0x3E1 + OV25_DATA_OFFSET, 0x3E4 + OV25_DATA_OFFSET, 0x3E5 + OV25_DATA_OFFSET, 0x3E2 + OV25_DATA_OFFSET, 0x3E3 + OV25_DATA_OFFSET
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x02, 0x02, 0x12, 0x10, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x16, 0x0A, 0x08, 0x03, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x16, 0x0F, 0x08, 0x03, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.global APPRAISAL_WINDOW_PARAMS_5
|
|
APPRAISAL_WINDOW_PARAMS_5:
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x1E, 0x0F, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.global APPRAISAL_WINDOW_PARAMS_6
|
|
APPRAISAL_WINDOW_PARAMS_6:
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x16, 0x02, 0x08, 0x05, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.global APPRAISAL_WINDOW_PARAMS_7
|
|
APPRAISAL_WINDOW_PARAMS_7:
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x18, 0x0B, 0x06, 0x04, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.global APPRAISAL_WINDOW_PARAMS_8
|
|
APPRAISAL_WINDOW_PARAMS_8:
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x02, 0x02, 0x18, 0x13, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.global ov25_0238B5A4
|
|
ov25_0238B5A4:
|
|
.byte 0x5B, 0x69, 0x74, 0x65
|
|
.byte 0x6D, 0x3A, 0x30, 0x5D, 0x00, 0x00, 0x00, 0x00
|
|
.global ov25_0238B5B0
|
|
ov25_0238B5B0:
|
|
.byte 0x5B, 0x43, 0x53, 0x3A, 0x56, 0x5D, 0x5B, 0x67
|
|
.byte 0x6F, 0x6C, 0x64, 0x3A, 0x30, 0x5D, 0x5B, 0x43, 0x52, 0x5D, 0x00, 0x00
|
|
|
|
.data
|
|
.global OVERLAY25_UNKNOWN_POINTER__NA_238B5E0
|
|
OVERLAY25_UNKNOWN_POINTER__NA_238B5E0:
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|