pmd-sky/asm/overlay_29_0234AEE8.s
2026-03-17 21:59:30 -04:00

1115 lines
23 KiB
ArmAsm

.include "asm/macros.inc"
.include "overlay_29_0234AEE8.inc"
.text
arm_func_start ov29_0234AEE8
ov29_0234AEE8: ; 0x0234AEE8
stmdb sp!, {r3, lr}
ldr r0, _0234AF30 ; =DUNGEON_PTR
ldr r0, [r0]
ldrb r0, [r0, #0x790]
cmp r0, #0
bne _0234AF24
bl ov29_022EAEFC
cmp r0, #0
beq _0234AF24
ldr r0, _0234AF30 ; =DUNGEON_PTR
ldr r0, [r0]
add r0, r0, #0x4000
#ifdef JAPAN
ldrsh r0, [r0, #0x32]
#else
ldrsh r0, [r0, #0xd6]
#endif
bl MusicTableIdxToMusicId
bl ChangeDungeonMusic
_0234AF24:
mov r0, #0
bl ov29_022EAF34
ldmia sp!, {r3, pc}
.align 2, 0
_0234AF30: .word DUNGEON_PTR
arm_func_end ov29_0234AEE8
arm_func_start ov29_0234AF34
ov29_0234AF34: ; 0x0234AF34
stmdb sp!, {r4, r5, r6, lr}
mov r6, r0
ldrb ip, [r2]
ldr r2, [r6, #0xb4]
mov r5, r1
mov r4, r3
strb ip, [r2, #0x48]
bl ov29_022E68F0
cmp r5, #0
beq _0234AF64
mov r0, r5
bl ov29_022E68F0
_0234AF64:
ldr r1, _0234AFA0 ; =0x0000025B
mov r0, r6
mov r2, #0
bl HandleFaint
cmp r5, #0
beq _0234AF8C
ldr r1, _0234AFA0 ; =0x0000025B
mov r0, r5
mov r2, #0
bl HandleFaint
_0234AF8C:
mov r0, #1
bl AnimationDelayOrSomething
mov r0, r4
bl ov29_02348A18
ldmia sp!, {r4, r5, r6, pc}
.align 2, 0
_0234AFA0: .word 0x0000025B
arm_func_end ov29_0234AF34
arm_func_start InitAlertBoxInfo
InitAlertBoxInfo: ; 0x0234AFA4
stmdb sp!, {r3, lr}
mov r0, #0xcf0
mov r1, #0
bl MemAlloc
ldr r2, _0234AFCC ; =MESSAGE_LOG_INFO
mov r1, #0xcf0
str r0, [r2, #4]
bl MemZero
bl ov29_0234B130
ldmia sp!, {r3, pc}
.align 2, 0
_0234AFCC: .word MESSAGE_LOG_INFO
arm_func_end InitAlertBoxInfo
arm_func_start FreeAlertBoxInfo
FreeAlertBoxInfo: ; 0x0234AFD0
stmdb sp!, {r3, lr}
ldr r0, _0234AFF8 ; =MESSAGE_LOG_INFO
ldr r0, [r0, #4]
cmp r0, #0
ldmeqia sp!, {r3, pc}
bl MemFree
ldr r0, _0234AFF8 ; =MESSAGE_LOG_INFO
mov r1, #0
str r1, [r0, #4]
ldmia sp!, {r3, pc}
.align 2, 0
_0234AFF8: .word MESSAGE_LOG_INFO
arm_func_end FreeAlertBoxInfo
arm_func_start ov29_0234AFFC
ov29_0234AFFC: ; 0x0234AFFC
ldr r1, _0234B00C ; =MESSAGE_LOG_INFO
ldr r1, [r1, #4]
strb r0, [r1, #0xced]
bx lr
.align 2, 0
_0234B00C: .word MESSAGE_LOG_INFO
arm_func_end ov29_0234AFFC
arm_func_start ov29_0234B010
ov29_0234B010: ; 0x0234B010
ldr r1, _0234B020 ; =MESSAGE_LOG_INFO
ldr r1, [r1, #4]
strb r0, [r1, #0xcee]
bx lr
.align 2, 0
_0234B020: .word MESSAGE_LOG_INFO
arm_func_end ov29_0234B010
arm_func_start SetMessageLogGroupStartFlag
SetMessageLogGroupStartFlag: ; 0x0234B024
ldr r1, _0234B030 ; =MESSAGE_LOG_INFO
strb r0, [r1]
bx lr
.align 2, 0
_0234B030: .word MESSAGE_LOG_INFO
arm_func_end SetMessageLogGroupStartFlag
arm_func_start GetMessageLogPreprocessorArgs
GetMessageLogPreprocessorArgs: ; 0x0234B034
ldr r0, _0234B048 ; =MESSAGE_LOG_INFO
ldr r0, [r0, #4]
add r0, r0, #0x9c
add r0, r0, #0xc00
bx lr
.align 2, 0
_0234B048: .word MESSAGE_LOG_INFO
arm_func_end GetMessageLogPreprocessorArgs
arm_func_start InitMessageLogPreprocessorArgs
InitMessageLogPreprocessorArgs: ; 0x0234B04C
ldr r0, _0234B064 ; =MESSAGE_LOG_INFO
ldr ip, _0234B068 ; =InitPreprocessorArgs
ldr r0, [r0, #4]
add r0, r0, #0x9c
add r0, r0, #0xc00
bx ip
.align 2, 0
_0234B064: .word MESSAGE_LOG_INFO
_0234B068: .word InitPreprocessorArgs
arm_func_end InitMessageLogPreprocessorArgs
arm_func_start SetMessageLogPreprocessorArgsFlagVal
SetMessageLogPreprocessorArgsFlagVal: ; 0x0234B06C
ldr r2, _0234B080 ; =MESSAGE_LOG_INFO
ldr r2, [r2, #4]
add r0, r2, r0, lsl #2
str r1, [r0, #0xc9c]
bx lr
.align 2, 0
_0234B080: .word MESSAGE_LOG_INFO
arm_func_end SetMessageLogPreprocessorArgsFlagVal
arm_func_start SetPreprocessorArgsIdVal
SetPreprocessorArgsIdVal: ; 0x0234B084
ldr r2, _0234B098 ; =MESSAGE_LOG_INFO
ldr r2, [r2, #4]
add r0, r2, r0, lsl #2
str r1, [r0, #0xcac]
bx lr
.align 2, 0
_0234B098: .word MESSAGE_LOG_INFO
arm_func_end SetPreprocessorArgsIdVal
arm_func_start SetMessageLogPreprocessorArgsNumberVal
SetMessageLogPreprocessorArgsNumberVal: ; 0x0234B09C
ldr r2, _0234B0B0 ; =MESSAGE_LOG_INFO
ldr r2, [r2, #4]
add r0, r2, r0, lsl #2
str r1, [r0, #0xcc0]
bx lr
.align 2, 0
_0234B0B0: .word MESSAGE_LOG_INFO
arm_func_end SetMessageLogPreprocessorArgsNumberVal
arm_func_start SetMessageLogPreprocessorArgsString
SetMessageLogPreprocessorArgsString: ; 0x0234B0B4
ldr r2, _0234B0C8 ; =MESSAGE_LOG_INFO
ldr r2, [r2, #4]
add r0, r2, r0, lsl #2
str r1, [r0, #0xcd4]
bx lr
.align 2, 0
_0234B0C8: .word MESSAGE_LOG_INFO
arm_func_end SetMessageLogPreprocessorArgsString
arm_func_start SetMessageLogPreprocessorArgsStringToName
SetMessageLogPreprocessorArgsStringToName: ; 0x0234B0CC
stmdb sp!, {r3, r4, r5, lr}
mov r4, r1
mov r5, r0
bl GetSize0x80Buffer
mov r1, r4
mov r2, #0x4e
mov r4, r0
bl GetName
ldr r0, _0234B100 ; =MESSAGE_LOG_INFO
ldr r0, [r0, #4]
add r0, r0, r5, lsl #2
str r4, [r0, #0xcd4]
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
_0234B100: .word MESSAGE_LOG_INFO
arm_func_end SetMessageLogPreprocessorArgsStringToName
arm_func_start SetMessageLogPreprocessorArgsSpeakerId
SetMessageLogPreprocessorArgsSpeakerId: ; 0x0234B104
ldr r1, _0234B114 ; =MESSAGE_LOG_INFO
ldr r1, [r1, #4]
str r0, [r1, #0xce8]
bx lr
.align 2, 0
_0234B114: .word MESSAGE_LOG_INFO
arm_func_end SetMessageLogPreprocessorArgsSpeakerId
arm_func_start SetMessageLogPreprocessorArgsSpeakerId0x30000
SetMessageLogPreprocessorArgsSpeakerId0x30000: ; 0x0234B118
ldr r1, _0234B12C ; =MESSAGE_LOG_INFO
orr r2, r0, #0x30000
ldr r0, [r1, #4]
str r2, [r0, #0xce8]
bx lr
.align 2, 0
_0234B12C: .word MESSAGE_LOG_INFO
arm_func_end SetMessageLogPreprocessorArgsSpeakerId0x30000
arm_func_start ov29_0234B130
ov29_0234B130: ; 0x0234B130
stmdb sp!, {r3, lr}
mov r3, #0
ldr r1, _0234B1A0 ; =MESSAGE_LOG_INFO
mov r0, r3
_0234B140:
ldr r2, [r1, #4]
add r2, r2, r3
add r3, r3, #1
strb r0, [r2, #0xc80]
cmp r3, #0xa
blt _0234B140
ldr r1, _0234B1A0 ; =MESSAGE_LOG_INFO
mvn ip, #1
ldr r3, [r1, #4]
mov r2, #1
strb ip, [r3, #0xcec]
ldr r3, [r1, #4]
strb r0, [r3, #0xcee]
ldr r3, [r1, #4]
strb r0, [r3, #0xced]
str r0, [r1, #8]
strb r2, [r1]
bl ov29_0234B1A4
ldr r0, _0234B1A0 ; =MESSAGE_LOG_INFO
ldr r0, [r0, #4]
add r0, r0, #0x9c
add r0, r0, #0xc00
bl InitPreprocessorArgs
ldmia sp!, {r3, pc}
.align 2, 0
_0234B1A0: .word MESSAGE_LOG_INFO
arm_func_end ov29_0234B130
arm_func_start ov29_0234B1A4
ov29_0234B1A4: ; 0x0234B1A4
stmdb sp!, {r4, lr}
mov r4, r0
bl ov29_022E9FC0
cmp r0, #0
ldmeqia sp!, {r4, pc}
mov ip, #0
ldr r2, _0234B24C ; =MESSAGE_LOG_INFO
mov r0, ip
_0234B1C4:
ldr r3, [r2, #4]
add r1, ip, ip, lsl #2
add ip, ip, #1
strb r0, [r3, r1, lsl #6]
cmp ip, #0xa
blt _0234B1C4
ldr r2, _0234B24C ; =MESSAGE_LOG_INFO
mov r3, #4
ldr r1, [r2, #4]
strb r0, [r1, #0xc8b]
ldr r1, [r2, #4]
add r1, r1, #0xc00
strh r0, [r1, #0x8c]
ldr r1, [r2, #4]
add r1, r1, #0xc00
strh r0, [r1, #0x8e]
ldr r1, [r2, #4]
add r1, r1, #0xc00
strh r0, [r1, #0x90]
ldr r1, [r2, #4]
add r1, r1, #0xc00
strh r3, [r1, #0x92]
ldr r1, [r2, #4]
str r0, [r1, #0xc98]
bl ov29_0234B768
cmp r0, #0
cmpne r4, #0
ldmeqia sp!, {r4, pc}
mov r0, #0
mov r1, r0
bl ov29_022EA428
mov r0, #0xb
bl AdvanceFrame
ldmia sp!, {r4, pc}
.align 2, 0
_0234B24C: .word MESSAGE_LOG_INFO
arm_func_end ov29_0234B1A4
arm_func_start LogMessageByIdWithPopupCheckParticipants
LogMessageByIdWithPopupCheckParticipants: ; 0x0234B250
stmdb sp!, {r3, lr}
ldr ip, _0234B290 ; =MESSAGE_LOG_INFO
cmp r1, #0
ldr ip, [ip, #4]
ldrsh lr, [sp, #8]
add r3, ip, r3, lsl #2
cmpne r0, #0
str lr, [r3, #0xcac]
beq _0234B27C
bl LogMessageByIdWithPopupCheckUserTarget
ldmia sp!, {r3, pc}
_0234B27C:
cmp r0, #0
ldmeqia sp!, {r3, pc}
mov r1, r2
bl LogMessageByIdWithPopupCheckUser
ldmia sp!, {r3, pc}
.align 2, 0
_0234B290: .word MESSAGE_LOG_INFO
arm_func_end LogMessageByIdWithPopupCheckParticipants
arm_func_start WaitUntilAlertBoxTextIsLoadedWrapper
WaitUntilAlertBoxTextIsLoadedWrapper: ; 0x0234B294
ldr ip, _0234B2A0 ; =WaitUntilAlertBoxTextIsLoaded
mov r0, #0x50
bx ip
.align 2, 0
_0234B2A0: .word WaitUntilAlertBoxTextIsLoaded
arm_func_end WaitUntilAlertBoxTextIsLoadedWrapper
arm_func_start LogMessageByIdWithPopupCheckUser
LogMessageByIdWithPopupCheckUser: ; 0x0234B2A4
stmdb sp!, {r4, r5, r6, lr}
mov r4, #0
mov r6, r0
mov r5, r1
bl ShouldDisplayEntityWrapper
cmp r0, #0
movne r4, #1
cmp r4, #0
ldmeqia sp!, {r4, r5, r6, pc}
mov r0, r5
bl StringFromId
mov r1, r0
mov r0, r6
mov r2, #1
bl LogMessage
ldmia sp!, {r4, r5, r6, pc}
arm_func_end LogMessageByIdWithPopupCheckUser
arm_func_start LogMessageWithPopupCheckUser
LogMessageWithPopupCheckUser: ; 0x0234B2E4
stmdb sp!, {r4, r5, r6, lr}
mov r4, #0
mov r6, r0
mov r5, r1
bl ShouldDisplayEntityWrapper
cmp r0, #0
movne r4, #1
cmp r4, #0
ldmeqia sp!, {r4, r5, r6, pc}
mov r0, r6
mov r1, r5
mov r2, #1
bl LogMessage
ldmia sp!, {r4, r5, r6, pc}
arm_func_end LogMessageWithPopupCheckUser
arm_func_start LogMessageByIdQuiet
LogMessageByIdQuiet: ; 0x0234B31C
stmdb sp!, {r4, lr}
mov r4, r0
mov r0, r1
bl StringFromId
mov r1, r0
mov r0, r4
mov r2, #0
bl LogMessage
ldmia sp!, {r4, pc}
arm_func_end LogMessageByIdQuiet
arm_func_start LogMessageQuiet
LogMessageQuiet: ; 0x0234B340
ldr ip, _0234B34C ; =LogMessage
mov r2, #0
bx ip
.align 2, 0
_0234B34C: .word LogMessage
arm_func_end LogMessageQuiet
arm_func_start LogMessageByIdWithPopupCheckUserTarget
LogMessageByIdWithPopupCheckUserTarget: ; 0x0234B350
stmdb sp!, {r3, r4, r5, r6, r7, lr}
mov r6, r1
mov r4, #0
mov r7, r0
mov r5, r2
bl ShouldDisplayEntityWrapper
cmp r0, #0
movne r4, #1
mov r0, r6
bl ShouldDisplayEntityWrapper
cmp r0, #0
movne r4, #1
cmp r4, #0
ldmeqia sp!, {r3, r4, r5, r6, r7, pc}
mov r0, r5
bl StringFromId
mov r1, r0
mov r0, r7
mov r2, #1
bl LogMessage
ldmia sp!, {r3, r4, r5, r6, r7, pc}
arm_func_end LogMessageByIdWithPopupCheckUserTarget
arm_func_start LogMessageWithPopupCheckUserTarget
LogMessageWithPopupCheckUserTarget: ; 0x0234B3A4
stmdb sp!, {r3, r4, r5, r6, r7, lr}
mov r6, r1
mov r4, #0
mov r7, r0
mov r5, r2
bl ShouldDisplayEntityWrapper
cmp r0, #0
movne r4, #1
mov r0, r6
bl ShouldDisplayEntityWrapper
cmp r0, #0
movne r4, #1
cmp r4, #0
ldmeqia sp!, {r3, r4, r5, r6, r7, pc}
mov r0, r7
mov r1, r5
mov r2, #1
bl LogMessage
ldmia sp!, {r3, r4, r5, r6, r7, pc}
arm_func_end LogMessageWithPopupCheckUserTarget
arm_func_start LogMessageByIdQuietCheckUserTarget
LogMessageByIdQuietCheckUserTarget: ; 0x0234B3F0
stmdb sp!, {r3, r4, r5, r6, r7, lr}
mov r6, r1
mov r4, #0
mov r7, r0
mov r5, r2
bl ShouldDisplayEntityWrapper
cmp r0, #0
movne r4, #1
mov r0, r6
bl ShouldDisplayEntityWrapper
cmp r0, #0
movne r4, #1
cmp r4, #0
ldmeqia sp!, {r3, r4, r5, r6, r7, pc}
mov r0, r5
bl StringFromId
mov r1, r0
mov r0, r7
mov r2, #0
bl LogMessage
ldmia sp!, {r3, r4, r5, r6, r7, pc}
arm_func_end LogMessageByIdQuietCheckUserTarget
arm_func_start LogMessageByIdWithPopupCheckUserUnknown
LogMessageByIdWithPopupCheckUserUnknown: ; 0x0234B444
stmdb sp!, {r3, r4, r5, r6, r7, lr}
mov r6, r1
mov r4, #0
mov r7, r0
mov r5, r2
bl ShouldDisplayEntityWrapper
cmp r0, #0
movne r4, #1
mov r0, r6
bl ov29_022E2CA0
cmp r0, #0
movne r4, #1
cmp r4, #0
ldmeqia sp!, {r3, r4, r5, r6, r7, pc}
mov r0, r5
bl StringFromId
mov r1, r0
mov r0, r7
mov r2, #1
bl LogMessage
ldmia sp!, {r3, r4, r5, r6, r7, pc}
arm_func_end LogMessageByIdWithPopupCheckUserUnknown
arm_func_start LogMessageByIdWithPopup
LogMessageByIdWithPopup: ; 0x0234B498
stmdb sp!, {r4, lr}
mov r4, r0
mov r0, r1
bl StringFromId
mov r1, r0
mov r0, r4
mov r2, #1
bl LogMessage
ldmia sp!, {r4, pc}
arm_func_end LogMessageByIdWithPopup
arm_func_start LogMessageWithPopup
LogMessageWithPopup: ; 0x0234B4BC
ldr ip, _0234B4C8 ; =LogMessage
mov r2, #1
bx ip
.align 2, 0
_0234B4C8: .word LogMessage
arm_func_end LogMessageWithPopup
arm_func_start ov29_0234B4CC
ov29_0234B4CC: ; 0x0234B4CC
ldr r1, _0234B4DC ; =MESSAGE_LOG_INFO
ldr r1, [r1, #4]
strb r0, [r1, #0xc8a]
bx lr
.align 2, 0
_0234B4DC: .word MESSAGE_LOG_INFO
arm_func_end ov29_0234B4CC
arm_func_start ov29_0234B4E0
ov29_0234B4E0: ; 0x0234B4E0
ldr r0, _0234B4F0 ; =MESSAGE_LOG_INFO
ldr r0, [r0, #4]
ldrb r0, [r0, #0xc8b]
bx lr
.align 2, 0
_0234B4F0: .word MESSAGE_LOG_INFO
arm_func_end ov29_0234B4E0
arm_func_start ov29_0234B4F4
ov29_0234B4F4: ; 0x0234B4F4
ldr r0, _0234B504 ; =MESSAGE_LOG_INFO
ldr r0, [r0, #4]
ldr r0, [r0, #0xc98]
bx lr
.align 2, 0
_0234B504: .word MESSAGE_LOG_INFO
arm_func_end ov29_0234B4F4
arm_func_start LogMessage
LogMessage: ; 0x0234B508
#ifdef EUROPE
#define LOG_MESSAGE_STACK_OFFSET 0xC0
#else
#define LOG_MESSAGE_STACK_OFFSET 0
#endif
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0x284 + LOG_MESSAGE_STACK_OFFSET
ldr r4, _0234B708 ; =MESSAGE_LOG_INFO
mov fp, r2
ldr r3, [r4, #4]
ldrb r2, [r3, #0xced]
cmp r2, #0
ldreqb r2, [r3, #0xcee]
cmpeq r2, #0
bne _0234B700
ldr r3, _0234B70C ; =DUNGEON_PTR
mov r7, #0
ldr r2, [r3]
mvn r5, #0
add r2, r2, #0x100
strh r5, [r2, #0xd8]
ldr r2, [r3]
mov r3, #0x400
add r2, r2, #0x100
strh r5, [r2, #0xda]
ldr r2, [r4, #8]
mov r8, r7
cmp r2, r0
movne sl, #1
ldreqb sl, [r4]
ldr r2, _0234B708 ; =MESSAGE_LOG_INFO
mov r6, #1
str r0, [r2, #8]
strb r7, [r2]
ldr r2, [r2, #4]
add r0, sp, #0x144
add r2, r2, #0x9c
add r4, r2, #0xc00
mov r2, r1
mov r1, #0x140 + LOG_MESSAGE_STACK_OFFSET
str r4, [sp]
bl PreprocessString
ldr r4, _0234B708 ; =MESSAGE_LOG_INFO
add r5, sp, #0x144
_0234B5A4:
ldr r0, [r4, #4]
add r1, r0, #0xc00
ldrsh sb, [r1, #0x8c]
add r1, r0, #0xc00
ldrsh r2, [r1, #0x8e]
add r3, sb, #1
cmp r3, #0xa
moveq r3, #0
cmp r3, r2
bne _0234B5D8
mov r0, #0
bl AdvanceFrame
b _0234B5A4
_0234B5D8:
ldrb r2, [r5, r8]
cmp r2, #0
beq _0234B6D4
add r0, r0, sb
strb sl, [r0, #0xc80]
ldr r1, [r4, #4]
add r0, sp, #4
add r1, r1, #0x9c
add r1, r1, #0xc00
str r1, [sp]
mov r1, #0x140
add r2, r5, r8
mov r3, #0x440
bl PreprocessString
add r8, r8, r0
ldrb sb, [r5, r8]
mov r2, #0
add r1, sp, #4
strb r2, [r1, r0]
cmp sb, #0
beq _0234B660
ldr r1, _0234B710 ; =ov29_02353214
add r0, r5, r8
mov r2, #3
bl strncmp
cmp r0, #0
bne _0234B654
ldr r0, _0234B710 ; =ov29_02353214
bl strlen
add r8, r8, r0
b _0234B660
_0234B654:
cmp sb, #0xd
cmpne sb, #0xa
addeq r8, r8, #1
_0234B660:
add r0, sp, #4
mov r1, sl
mov r2, r6
bl ov29_0234BB44
mov sl, #0
cmp fp, #0
mov r6, sl
beq _0234B5A4
ldr sb, [r4, #4]
mov r2, #0x140
add r0, sb, #0xc00
ldrsh r3, [r0, #0x8c]
mov r0, r2
add r1, sp, #4
smlabb r0, r3, r0, sb
mov r7, #1
bl strncpy
ldr r0, [r4, #4]
add r0, r0, #0xc00
ldrsh r1, [r0, #0x8c]
add r1, r1, #1
strh r1, [r0, #0x8c]
ldr r0, [r4, #4]
add r1, r0, #0xc00
ldrsh r0, [r1, #0x8c]
cmp r0, #0xa
moveq r0, sl
streqh r0, [r1, #0x8c]
b _0234B5A4
_0234B6D4:
cmp r7, #0
beq _0234B700
ldr r0, _0234B708 ; =MESSAGE_LOG_INFO
mov r2, #0xf0
strh r2, [r1, #0x90]
ldr r1, [r0, #4]
ldr r0, [r1, #0xc98]
cmp r0, #0
moveq r0, #1
streq r0, [r1, #0xc98]
bl ov29_022F2FE4
_0234B700:
add sp, sp, #0x284 + LOG_MESSAGE_STACK_OFFSET
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
.align 2, 0
_0234B708: .word MESSAGE_LOG_INFO
_0234B70C: .word DUNGEON_PTR
_0234B710: .word ov29_02353214
arm_func_end LogMessage
arm_func_start LogMessageById
LogMessageById: ; 0x0234B714
stmdb sp!, {r3, r4, r5, lr}
mov r5, r0
mov r4, r2
mov r0, r1
bl StringFromId
mov r1, r0
mov r0, r5
mov r2, r4
bl LogMessage
ldmia sp!, {r3, r4, r5, pc}
arm_func_end LogMessageById
arm_func_start ov29_0234B73C
ov29_0234B73C: ; 0x0234B73C
ldr r0, _0234B764 ; =MESSAGE_LOG_INFO
mvn r1, #1
ldr r0, [r0, #4]
add r0, r0, #0xc00
ldrsb r0, [r0, #0xec]
cmp r0, r1
movne r0, #1
moveq r0, #0
and r0, r0, #0xff
bx lr
.align 2, 0
_0234B764: .word MESSAGE_LOG_INFO
arm_func_end ov29_0234B73C
arm_func_start ov29_0234B768
ov29_0234B768: ; 0x0234B768
stmdb sp!, {r3, lr}
ldr r0, _0234B7E8 ; =MESSAGE_LOG_INFO
mvn r1, #1
ldr r0, [r0, #4]
add r0, r0, #0xc00
ldrsb r0, [r0, #0xec]
cmp r0, r1
movne r1, #1
moveq r1, #0
tst r1, #0xff
moveq r0, #0
ldmeqia sp!, {r3, pc}
bl sub_0202836C
ldr r0, _0234B7E8 ; =MESSAGE_LOG_INFO
ldr r0, [r0, #4]
add r0, r0, #0xc00
ldrsb r0, [r0, #0xec]
bl sub_02030214
ldr r0, _0234B7E8 ; =MESSAGE_LOG_INFO
ldr r0, [r0, #4]
add r0, r0, #0xc00
ldrsb r0, [r0, #0xec]
bl CloseAlertBox
ldr r0, _0234B7E8 ; =MESSAGE_LOG_INFO
mvn r3, #1
ldr r1, [r0, #4]
mov r2, #0
strb r3, [r1, #0xcec]
ldr r1, [r0, #4]
mov r0, #1
str r2, [r1, #0xc98]
ldmia sp!, {r3, pc}
.align 2, 0
_0234B7E8: .word MESSAGE_LOG_INFO
arm_func_end ov29_0234B768
arm_func_start AlertBoxIsScrolling
AlertBoxIsScrolling: ; 0x0234B7EC
stmdb sp!, {r3, lr}
ldr r0, _0234B850 ; =MESSAGE_LOG_INFO
mvn r1, #1
ldr r0, [r0, #4]
add r0, r0, #0xc00
ldrsb r0, [r0, #0xec]
cmp r0, r1
movne r1, #1
moveq r1, #0
tst r1, #0xff
moveq r0, #0
ldmeqia sp!, {r3, pc}
ldr r1, _0234B850 ; =MESSAGE_LOG_INFO
ldr r1, [r1, #4]
add r1, r1, #0xc00
ldrsh r2, [r1, #0x8c]
ldrsh r1, [r1, #0x8e]
cmp r2, r1
bne _0234B848
bl IsAlertBoxActive
cmp r0, #0
moveq r0, #0
ldmeqia sp!, {r3, pc}
_0234B848:
mov r0, #1
ldmia sp!, {r3, pc}
.align 2, 0
_0234B850: .word MESSAGE_LOG_INFO
arm_func_end AlertBoxIsScrolling
arm_func_start ov29_0234B854
ov29_0234B854: ; 0x0234B854
stmdb sp!, {r3, r4, r5, lr}
ldr r0, _0234BA14 ; =MESSAGE_LOG_INFO
ldr r1, [r0, #4]
cmp r1, #0
ldmeqia sp!, {r3, r4, r5, pc}
ldrb r0, [r1, #0xced]
cmp r0, #0
movne r0, #0
strne r0, [r1, #0xc98]
ldr r0, _0234BA14 ; =MESSAGE_LOG_INFO
ldr r4, [r0, #4]
ldr r0, [r4, #0xc98]
cmp r0, #0
beq _0234B9C8
cmp r0, #1
beq _0234B8A0
cmp r0, #2
beq _0234B908
b _0234B9C8
_0234B8A0:
bl ov10_022BFD20
cmp r0, #0
bne _0234B9C8
#ifndef JAPAN
bl sub_02001808
cmp r0, #0x3000
blt _0234B9C8
#endif
ldr r0, _0234BA14 ; =MESSAGE_LOG_INFO
mvn r1, #1
ldr r0, [r0, #4]
add r0, r0, #0xc00
ldrsb r0, [r0, #0xec]
cmp r0, r1
movne r0, #1
moveq r0, #0
tst r0, #0xff
bne _0234B900
mov r0, #0
bl CreateAlertBox
ldr r1, _0234BA14 ; =MESSAGE_LOG_INFO
mov r2, #0
ldr r3, [r1, #4]
strb r0, [r3, #0xcec]
ldr r0, [r1, #4]
str r2, [r0, #0xce8]
_0234B900:
mov r0, #2
str r0, [r4, #0xc98]
_0234B908:
ldr r0, _0234BA14 ; =MESSAGE_LOG_INFO
mvn r2, #1
ldr r1, [r0, #4]
add r0, r1, #0xc00
ldrsb r0, [r0, #0xec]
cmp r0, r2
movne r2, #1
moveq r2, #0
tst r2, #0xff
moveq r0, #1
beq _0234B9BC
ldr r3, _0234BA14 ; =MESSAGE_LOG_INFO
mov r2, #0x140
ldr r5, [r3, #4]
add r3, r5, #0xc00
ldrsh ip, [r3, #0x8e]
ldrsh r3, [r3, #0x8c]
smulbb lr, ip, r2
cmp r3, ip
bne _0234B96C
bl AlertBoxIsScrolling
cmp r0, #0
bne _0234B9B8
mov r0, #1
b _0234B9BC
_0234B96C:
add r2, r5, ip
ldrb ip, [r2, #0xc80]
add r1, r1, #0x9c
add r3, r1, #0xc00
add r2, r5, lr
mov r1, #0x400
str ip, [sp]
bl AddMessageToAlertBox
cmp r0, #0
moveq r0, #0
beq _0234B9BC
add r0, r5, #0xc00
ldrsh r1, [r0, #0x8e]
add r1, r1, #1
strh r1, [r0, #0x8e]
ldrsh r1, [r0, #0x8e]
cmp r1, #0xa
moveq r1, #0
streqh r1, [r0, #0x8e]
_0234B9B8:
mov r0, #0
_0234B9BC:
cmp r0, #0
movne r0, #0
strne r0, [r4, #0xc98]
_0234B9C8:
ldrb r0, [r4, #0xc8a]
cmp r0, #0
ldmneia sp!, {r3, r4, r5, pc}
add r0, r4, #0xc00
ldrsh r1, [r0, #0x90]
cmp r1, #0
ldmeqia sp!, {r3, r4, r5, pc}
sub r1, r1, #1
strh r1, [r0, #0x90]
ldrsh r0, [r0, #0x90]
cmp r0, #0
ldmneia sp!, {r3, r4, r5, pc}
mov r0, #0
str r0, [r4, #0xc98]
bl ov29_0234B768
mov r0, #0
mov r1, r0
bl ov29_022EA428
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
_0234BA14: .word MESSAGE_LOG_INFO
arm_func_end ov29_0234B854
arm_func_start WaitUntilAlertBoxTextIsLoaded
WaitUntilAlertBoxTextIsLoaded: ; 0x0234BA18
stmdb sp!, {r3, r4, r5, lr}
ldr r1, _0234BA50 ; =MESSAGE_LOG_INFO
mov r5, r0
ldr r4, [r1, #4]
_0234BA28:
ldr r0, [r4, #0xc98]
cmp r0, #0
bne _0234BA40
bl AlertBoxIsScrolling
cmp r0, #0
ldmeqia sp!, {r3, r4, r5, pc}
_0234BA40:
mov r0, r5
bl AdvanceFrame
b _0234BA28
_0234BA4C:
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
_0234BA50: .word MESSAGE_LOG_INFO
arm_func_end WaitUntilAlertBoxTextIsLoaded
arm_func_start ov29_0234BA54
ov29_0234BA54: ; 0x0234BA54
stmdb sp!, {r3, r4, r5, r6, r7, lr}
ldr r1, _0234BAB8 ; =MESSAGE_LOG_INFO
mov r5, r0
ldr r6, [r1, #4]
bl WaitUntilAlertBoxTextIsLoaded
mov r4, #0
add r6, r6, #0xc00
ldr r7, _0234BABC ; =DUNGEON_BUTTON_INPUT
b _0234BAAC
_0234BA78:
ldrsh r0, [r6, #0x90]
cmp r0, #0xb4
ldmltia sp!, {r3, r4, r5, r6, r7, pc}
ldrh r0, [r7]
and r0, r0, #3
cmp r0, #3
ldmeqia sp!, {r3, r4, r5, r6, r7, pc}
ldrh r0, [r7, #2]
tst r0, #0xf0
ldmneia sp!, {r3, r4, r5, r6, r7, pc}
mov r0, r5
bl AdvanceFrame
add r4, r4, #1
_0234BAAC:
cmp r4, #0xf0
blt _0234BA78
ldmia sp!, {r3, r4, r5, r6, r7, pc}
.align 2, 0
_0234BAB8: .word MESSAGE_LOG_INFO
_0234BABC: .word DUNGEON_BUTTON_INPUT
arm_func_end ov29_0234BA54
arm_func_start InitPortraitDungeon
InitPortraitDungeon: ; 0x0234BAC0
stmdb sp!, {r4, r5, r6, lr}
mov r6, r0
mov r5, r1
mov r4, r2
bl InitPortraitParams
strh r5, [r6]
strb r4, [r6, #2]
mov r2, #0
strb r2, [r6, #3]
mov r0, #2
str r0, [r6, #4]
mov r0, #9
str r0, [r6, #8]
strb r2, [r6, #0xc]
strb r2, [r6, #0xd]
mov r0, r6
mov r1, #1
strb r2, [r6, #0xe]
bl AllowPortraitDefault
ldmia sp!, {r4, r5, r6, pc}
arm_func_end InitPortraitDungeon
arm_func_start ov29_0234BB10
ov29_0234BB10: ; 0x0234BB10
ldr ip, _0234BB1C ; =sub_02047FFC
mov r0, #0
bx ip
.align 2, 0
_0234BB1C: .word sub_02047FFC
arm_func_end ov29_0234BB10
arm_func_start ov29_0234BB20
ov29_0234BB20: ; 0x0234BB20
ldr ip, _0234BB28 ; =sub_0204804C
bx ip
.align 2, 0
_0234BB28: .word sub_0204804C
arm_func_end ov29_0234BB20
arm_func_start ov29_0234BB2C
ov29_0234BB2C: ; 0x0234BB2C
ldr ip, _0234BB34 ; =sub_020480CC
bx ip
.align 2, 0
_0234BB34: .word sub_020480CC
arm_func_end ov29_0234BB2C
arm_func_start ov29_0234BB38
ov29_0234BB38: ; 0x0234BB38
ldr ip, _0234BB40 ; =sub_02048134
bx ip
.align 2, 0
_0234BB40: .word sub_02048134
arm_func_end ov29_0234BB38
arm_func_start ov29_0234BB44
ov29_0234BB44: ; 0x0234BB44
ldr ip, _0234BB4C ; =sub_02048150
bx ip
.align 2, 0
_0234BB4C: .word sub_02048150
arm_func_end ov29_0234BB44
arm_func_start ov29_0234BB50
ov29_0234BB50: ; 0x0234BB50
ldr ip, _0234BB58 ; =sub_02048240
bx ip
.align 2, 0
_0234BB58: .word sub_02048240
arm_func_end ov29_0234BB50
arm_func_start OpenMessageLog
OpenMessageLog: ; 0x0234BB5C
stmdb sp!, {r4, r5, r6, lr}
mov r4, r0
mov r6, r1
mov r0, #6
mov r1, #0
bl ov29_022EA428
cmp r4, #0
bne _0234BB84
mov r0, #0
bl ov29_0233A248
_0234BB84:
mov r0, #0x62
bl AdvanceFrame
mov r0, #0x62
bl AdvanceFrame
bl sub_0204833C
mov r4, #0x62
_0234BB9C:
mov r0, r4
bl AdvanceFrame
bl sub_02048360
movs r5, r0
beq _0234BB9C
mov r0, #0x62
bl AdvanceFrame
cmp r6, #0
beq _0234BBCC
mov r0, #0
mov r1, r0
bl ov29_022EA428
_0234BBCC:
cmp r5, #1
moveq r0, #1
movne r0, #0
ldmia sp!, {r4, r5, r6, pc}
arm_func_end OpenMessageLog
arm_func_start ov29_0234BBDC
ov29_0234BBDC: ; 0x0234BBDC
ldr ip, _0234BBE4 ; =ov29_022E0B60
bx ip
.align 2, 0
_0234BBE4: .word ov29_022E0B60
arm_func_end ov29_0234BBDC