pmd-sky/asm/overlay_29_02348D3C.s
2025-10-22 23:18:06 -04:00

987 lines
19 KiB
ArmAsm

.include "asm/macros.inc"
.include "overlay_29_02348D3C.inc"
.text
arm_func_start ov29_02348D3C
ov29_02348D3C: ; 0x02348D3C
stmdb sp!, {r3, r4, r5, lr}
mov r5, r0
mov r0, #9
mov r4, #0
bl IsCurrentMissionType
cmp r0, #0
beq _02348D78
bl GetItemToRetrieve
ldrsh r1, [r5, #4]
cmp r1, r0
bne _02348DCC
ldrb r0, [r5]
tst r0, #0x80
movne r4, #1
b _02348DCC
_02348D78:
mov r0, #0xc
bl IsCurrentMissionType
cmp r0, #0
beq _02348DA8
bl GetSpecialTargetItem
ldrh r1, [r5, #2]
cmp r1, r0
bne _02348DCC
ldrb r0, [r5]
tst r0, #0x80
movne r4, #3
b _02348DCC
_02348DA8:
ldr r0, _02348DD4 ; =DUNGEON_PTR
ldr r0, [r0]
ldrb r0, [r0, #0x777]
cmp r0, #0
beq _02348DCC
bl GetItemToRetrieve
ldrsh r1, [r5, #4]
cmp r1, r0
moveq r4, #2
_02348DCC:
mov r0, r4
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
_02348DD4: .word DUNGEON_PTR
arm_func_end ov29_02348D3C
arm_func_start ov29_02348DD8
ov29_02348DD8: ; 0x02348DD8
stmdb sp!, {r4, r5, r6, lr}
mov r6, r0
mov r5, r1
mov r4, r2
bl GetSpecialTargetItem
cmp r0, #0
beq _02348E04
mov r0, r6
bl EntityIsValid__0234987C
cmp r0, #0
bne _02348E0C
_02348E04:
mov r0, #0
b _02348E64
_02348E0C:
ldr r0, [r6, #0xb4]
ldrb r0, [r0, #6]
cmp r0, #0
movne r0, #0
bne _02348E64
ldrsh r0, [r5, #4]
cmp r0, #0
beq _02348E60
bl GetSpecialTargetItem
ldrsh r1, [r5, #4]
cmp r1, r0
bne _02348E60
ldrb r0, [r5]
tst r0, #0x80
beq _02348E60
mov r0, r6
bl ov29_02348BA0
cmp r0, #0
moveq r0, #1
movne r0, #2
b _02348E64
_02348E60:
mov r0, #0
_02348E64:
cmp r0, #1
bne _02348EAC
cmp r4, #0
beq _02348E9C
mov r0, #0
mov r1, r6
mov r2, r0
bl SubstitutePlaceholderStringTags
mov r1, r5
mov r0, #0
bl PrepareItemForPrinting__02345728
ldr r1, _02348EC8 ; =0x00000BD2
mov r0, r6
bl LogMessageByIdWithPopupCheckUser
_02348E9C:
mov r0, r6
bl ov29_0234A244
mov r0, #1
ldmia sp!, {r4, r5, r6, pc}
_02348EAC:
cmp r0, #2
movne r0, #0
ldmneia sp!, {r4, r5, r6, pc}
mov r0, r6
bl ov29_0234AA98
mov r0, #1
ldmia sp!, {r4, r5, r6, pc}
.align 2, 0
#ifdef JAPAN
_02348EC8: .word 0x00000911
#else
_02348EC8: .word 0x00000BD2
#endif
arm_func_end ov29_02348DD8
arm_func_start ov29_02348ECC
ov29_02348ECC: ; 0x02348ECC
stmdb sp!, {r3, lr}
cmp r1, #1
mov r2, #0
bne _02348EF4
ldrb r1, [r0]
tst r1, #2
bne _02348F18
bl ov29_02348B28
mov r2, #1
b _02348F18
_02348EF4:
cmp r1, #2
bne _02348F08
bl ov29_02348ABC
mov r2, #1
b _02348F18
_02348F08:
cmp r1, #3
bne _02348F18
bl ov29_0234AC8C
mov r2, #1
_02348F18:
mov r0, r2
ldmia sp!, {r3, pc}
arm_func_end ov29_02348ECC
arm_func_start ov29_02348F20
ov29_02348F20: ; 0x02348F20
stmdb sp!, {r3, lr}
bl MissionTargetEnemyIsDefeated
cmp r0, #0
ldrne r0, _02348FD4 ; =DUNGEON_PTR
ldrne r0, [r0]
ldrneb r0, [r0, #1]
cmpne r0, #0
beq _02348FCC
mov r0, #0xa
bl IsCurrentMissionType
cmp r0, #0
beq _02348F68
ldr r0, _02348FD4 ; =DUNGEON_PTR
ldr r0, [r0]
add r0, r0, #0x700
ldrsh r0, [r0, #0x6e]
bl ov29_0234A790
b _02348FB4
_02348F68:
mov r0, #9
bl IsCurrentMissionType
cmp r0, #0
beq _02348F90
ldr r0, _02348FD4 ; =DUNGEON_PTR
ldr r0, [r0]
add r0, r0, #0x700
ldrsh r0, [r0, #0x6e]
bl ov29_0234A8BC
b _02348FB4
_02348F90:
mov r0, #0xb
bl IsCurrentMissionType
cmp r0, #0
beq _02348FB4
ldr r0, _02348FD4 ; =DUNGEON_PTR
ldr r0, [r0]
add r0, r0, #0x700
ldrsh r0, [r0, #0x6e]
bl ov29_0234ABB0
_02348FB4:
ldr r0, _02348FD4 ; =DUNGEON_PTR
mov r2, #0
ldr r1, [r0]
mov r0, #1
strb r2, [r1, #1]
ldmia sp!, {r3, pc}
_02348FCC:
mov r0, #0
ldmia sp!, {r3, pc}
.align 2, 0
_02348FD4: .word DUNGEON_PTR
arm_func_end ov29_02348F20
arm_func_start ov29_02348FD8
ov29_02348FD8: ; 0x02348FD8
stmdb sp!, {r4, lr}
mov r4, #0
bl IsDestinationFloorWithItem
cmp r0, #0
beq _02349014
ldr r0, _02349088 ; =DUNGEON_PTR
ldr r0, [r0]
ldrb r0, [r0, #0x77a]
cmp r0, #0
bne _02349014
bl GetItemToRetrieve
bl IsItemInBag
cmp r0, #0
movne r4, #1
b _02349058
_02349014:
mov r0, #9
bl IsCurrentMissionType
cmp r0, #0
beq _02349050
ldr r0, _02349088 ; =DUNGEON_PTR
ldr r0, [r0]
ldrb r0, [r0, #0x77a]
cmp r0, #0
bne _02349050
bl GetItemToRetrieve
mov r1, #0x40
bl IsItemWithFlagsInBag
cmp r0, #0
movne r4, #1
b _02349058
_02349050:
mov r0, #0
ldmia sp!, {r4, pc}
_02349058:
cmp r4, #0
beq _02349080
bl GetItemToRetrieve
mov r1, r0
mov r0, #0
bl ov29_02349AD4
ldr r0, _02349088 ; =DUNGEON_PTR
mov r1, #1
ldr r0, [r0]
strb r1, [r0, #0x77a]
_02349080:
mov r0, r4
ldmia sp!, {r4, pc}
.align 2, 0
_02349088: .word DUNGEON_PTR
arm_func_end ov29_02348FD8
arm_func_start ov29_0234908C
ov29_0234908C: ; 0x0234908C
stmdb sp!, {r3, r4, r5, lr}
mov r5, r0
mov r4, #0
bl IsDestinationFloorWithItem
cmp r0, #0
beq _023490CC
ldr r0, _02349148 ; =DUNGEON_PTR
ldr r0, [r0]
ldrb r0, [r0, #0x77a]
cmp r0, #0
bne _023490CC
bl GetItemToRetrieve
ldrsh r1, [r5, #4]
cmp r1, r0
moveq r4, #1
b _02349118
_023490CC:
mov r0, #9
bl IsCurrentMissionType
cmp r0, #0
beq _02349110
ldr r0, _02349148 ; =DUNGEON_PTR
ldr r0, [r0]
ldrb r0, [r0, #0x77a]
cmp r0, #0
bne _02349110
bl GetItemToRetrieve
ldrsh r1, [r5, #4]
cmp r1, r0
bne _02349118
ldrb r0, [r5]
tst r0, #0x40
movne r4, #1
b _02349118
_02349110:
mov r0, #0
ldmia sp!, {r3, r4, r5, pc}
_02349118:
cmp r4, #0
beq _02349140
bl GetItemToRetrieve
mov r1, r0
mov r0, #0
bl ov29_02349AD4
ldr r0, _02349148 ; =DUNGEON_PTR
mov r1, #1
ldr r0, [r0]
strb r1, [r0, #0x77a]
_02349140:
mov r0, r4
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
_02349148: .word DUNGEON_PTR
arm_func_end ov29_0234908C
arm_func_start CheckActiveChallengeRequest
CheckActiveChallengeRequest: ; 0x0234914C
stmdb sp!, {r3, lr}
ldr r0, _02349184 ; =DUNGEON_PTR
mov r1, #5
ldr r0, [r0]
strb r1, [sp]
ldrb r2, [r0, #0x748]
add r1, sp, #0
mov r0, #0xb
bl CheckAcceptedMissionByTypeAndDungeon
cmp r0, #0
movne r0, #1
moveq r0, #0
and r0, r0, #0xff
ldmia sp!, {r3, pc}
.align 2, 0
_02349184: .word DUNGEON_PTR
arm_func_end CheckActiveChallengeRequest
arm_func_start ov29_02349188
ov29_02349188: ; 0x02349188
ldr r0, _0234919C ; =DUNGEON_PTR
ldr ip, _023491A0 ; =ov29_023496EC
ldr r0, [r0]
add r0, r0, #0x760
bx ip
.align 2, 0
_0234919C: .word DUNGEON_PTR
_023491A0: .word ov29_023496EC
arm_func_end ov29_02349188
arm_func_start GetMissionDestination
GetMissionDestination: ; 0x023491A4
ldr r0, _023491B4 ; =DUNGEON_PTR
ldr r0, [r0]
add r0, r0, #0x760
bx lr
.align 2, 0
_023491B4: .word DUNGEON_PTR
arm_func_end GetMissionDestination
arm_func_start ov29_023491B8
ov29_023491B8: ; 0x023491B8
ldr ip, _023491C0 ; =ov29_02349A70
bx ip
.align 2, 0
_023491C0: .word ov29_02349A70
arm_func_end ov29_023491B8
arm_func_start IsOutlawOrChallengeRequestFloor
IsOutlawOrChallengeRequestFloor: ; 0x023491C4
stmdb sp!, {r3, lr}
mov r0, #0xb
bl IsCurrentMissionType
cmp r0, #0
bne _023491F8
mov r0, #0xa
bl IsCurrentMissionType
cmp r0, #0
bne _023491F8
mov r0, #9
bl IsCurrentMissionType
cmp r0, #0
beq _02349200
_023491F8:
mov r0, #1
ldmia sp!, {r3, pc}
_02349200:
mov r0, #0
ldmia sp!, {r3, pc}
arm_func_end IsOutlawOrChallengeRequestFloor
arm_func_start IsDestinationFloor
IsDestinationFloor: ; 0x02349208
ldr r0, _02349218 ; =DUNGEON_PTR
ldr r0, [r0]
ldrb r0, [r0, #0x760]
bx lr
.align 2, 0
_02349218: .word DUNGEON_PTR
arm_func_end IsDestinationFloor
arm_func_start IsCurrentMissionType
IsCurrentMissionType: ; 0x0234921C
ldr r1, _0234924C ; =DUNGEON_PTR
ldr r2, [r1]
ldrb r1, [r2, #0x760]
cmp r1, #0
beq _0234923C
ldrb r1, [r2, #0x761]
cmp r1, r0
beq _02349244
_0234923C:
mov r0, #0
bx lr
_02349244:
mov r0, #1
bx lr
.align 2, 0
_0234924C: .word DUNGEON_PTR
arm_func_end IsCurrentMissionType
arm_func_start IsCurrentMissionTypeExact
IsCurrentMissionTypeExact: ; 0x02349250
ldr r2, _02349288 ; =DUNGEON_PTR
ldr r3, [r2]
ldrb r2, [r3, #0x760]
cmp r2, #0
beq _02349278
ldrb r2, [r3, #0x761]
cmp r2, r0
ldreqb r0, [r3, #0x762]
cmpeq r0, r1
beq _02349280
_02349278:
mov r0, #0
bx lr
_02349280:
mov r0, #1
bx lr
.align 2, 0
_02349288: .word DUNGEON_PTR
arm_func_end IsCurrentMissionTypeExact
arm_func_start IsOutlawMonsterHouseFloor
IsOutlawMonsterHouseFloor: ; 0x0234928C
stmdb sp!, {r3, lr}
mov r0, #0xa
mov r1, #7
bl IsCurrentMissionTypeExact
cmp r0, #0
movne r0, #1
moveq r0, #0
and r0, r0, #0xff
ldmia sp!, {r3, pc}
arm_func_end IsOutlawMonsterHouseFloor
arm_func_start IsGoldenChamber
IsGoldenChamber: ; 0x023492B0
stmdb sp!, {r3, lr}
mov r0, #3
mov r1, #2
bl IsCurrentMissionTypeExact
cmp r0, #0
movne r0, #1
moveq r0, #0
and r0, r0, #0xff
ldmia sp!, {r3, pc}
arm_func_end IsGoldenChamber
arm_func_start IsLegendaryChallengeFloor
IsLegendaryChallengeFloor: ; 0x023492D4
stmdb sp!, {r3, lr}
mov r0, #0xb
bl IsCurrentMissionType
cmp r0, #0
beq _02349308
ldr r0, _02349310 ; =DUNGEON_PTR
ldr r0, [r0]
ldrb r0, [r0, #0x762]
add r0, r0, #0xff
and r0, r0, #0xff
cmp r0, #4
movls r0, #1
ldmlsia sp!, {r3, pc}
_02349308:
mov r0, #0
ldmia sp!, {r3, pc}
.align 2, 0
_02349310: .word DUNGEON_PTR
arm_func_end IsLegendaryChallengeFloor
arm_func_start IsJirachiChallengeFloor
IsJirachiChallengeFloor: ; 0x02349314
stmdb sp!, {r3, lr}
mov r0, #0xb
bl IsCurrentMissionType
cmp r0, #0
beq _02349340
ldr r0, _02349348 ; =DUNGEON_PTR
ldr r0, [r0]
ldrb r0, [r0, #0x762]
cmp r0, #5
moveq r0, #1
ldmeqia sp!, {r3, pc}
_02349340:
mov r0, #0
ldmia sp!, {r3, pc}
.align 2, 0
_02349348: .word DUNGEON_PTR
arm_func_end IsJirachiChallengeFloor
arm_func_start IsDestinationFloorWithMonster
IsDestinationFloorWithMonster: ; 0x0234934C
stmdb sp!, {r3, lr}
ldr r0, _02349374 ; =DUNGEON_PTR
ldr r0, [r0]
add r0, r0, #0x760
bl FloorHasMissionMonster
cmp r0, #0
movne r0, #1
moveq r0, #0
and r0, r0, #0xff
ldmia sp!, {r3, pc}
.align 2, 0
_02349374: .word DUNGEON_PTR
arm_func_end IsDestinationFloorWithMonster
arm_func_start ov29_02349378
ov29_02349378: ; 0x02349378
stmdb sp!, {r4, r5, r6, lr}
ldr r0, _023493F4 ; =DUNGEON_PTR
ldr r0, [r0]
add r6, r0, #0x760
mov r0, r6
bl FloorHasMissionMonster
cmp r0, #0
moveq r0, #0
ldmeqia sp!, {r4, r5, r6, pc}
ldrsh r0, [r6, #0xc]
mov r4, #0
mov r5, r4
cmp r0, #0
beq _023493E0
bl GetSpriteFileSize
add r4, r4, r0
b _023493E0
_023493BC:
add r0, r6, r5, lsl #1
ldrsh r0, [r0, #0xe]
cmp r0, #0
beq _023493D4
bl GetSpriteFileSize
add r4, r4, r0
_023493D4:
add r0, r5, #1
mov r0, r0, lsl #0x10
mov r5, r0, asr #0x10
_023493E0:
ldrsh r0, [r6, #0x14]
cmp r5, r0
blt _023493BC
mov r0, r4
ldmia sp!, {r4, r5, r6, pc}
.align 2, 0
_023493F4: .word DUNGEON_PTR
arm_func_end ov29_02349378
arm_func_start LoadMissionMonsterSprites
LoadMissionMonsterSprites: ; 0x023493F8
stmdb sp!, {r4, r5, r6, lr}
ldr r0, _0234946C ; =DUNGEON_PTR
ldr r0, [r0]
add r6, r0, #0x760
mov r0, r6
bl FloorHasMissionMonster
cmp r0, #0
ldmeqia sp!, {r4, r5, r6, pc}
ldrsh r0, [r6, #0xc]
cmp r0, #0
beq _0234942C
mov r1, #1
bl LoadMonsterSprite
_0234942C:
mov r5, #0
mov r4, #1
b _0234945C
_02349438:
add r0, r6, r5, lsl #1
ldrsh r0, [r0, #0xe]
cmp r0, #0
beq _02349450
mov r1, r4
bl LoadMonsterSprite
_02349450:
add r0, r5, #1
mov r0, r0, lsl #0x10
mov r5, r0, asr #0x10
_0234945C:
ldrsh r0, [r6, #0x14]
cmp r5, r0
blt _02349438
ldmia sp!, {r4, r5, r6, pc}
.align 2, 0
_0234946C: .word DUNGEON_PTR
arm_func_end LoadMissionMonsterSprites
arm_func_start MissionTargetEnemyIsDefeated
MissionTargetEnemyIsDefeated: ; 0x02349470
ldr r0, _0234948C ; =DUNGEON_PTR
ldr r1, [r0]
ldrb r0, [r1, #0x760]
cmp r0, #0
ldrneb r0, [r1, #0x77b]
moveq r0, #0
bx lr
.align 2, 0
_0234948C: .word DUNGEON_PTR
arm_func_end MissionTargetEnemyIsDefeated
arm_func_start SetMissionTargetEnemyDefeated
SetMissionTargetEnemyDefeated: ; 0x02349490
ldr r1, _023494A0 ; =DUNGEON_PTR
ldr r1, [r1]
strb r0, [r1, #0x77b]
bx lr
.align 2, 0
_023494A0: .word DUNGEON_PTR
arm_func_end SetMissionTargetEnemyDefeated
arm_func_start IsDestinationFloorWithFixedRoom
IsDestinationFloorWithFixedRoom: ; 0x023494A4
ldr r0, _023494C8 ; =DUNGEON_PTR
ldr r1, [r0]
ldrb r0, [r1, #0x760]
cmp r0, #0
ldrneb r0, [r1, #0x776]
cmpne r0, #0
moveq r0, #0
movne r0, #1
bx lr
.align 2, 0
_023494C8: .word DUNGEON_PTR
arm_func_end IsDestinationFloorWithFixedRoom
arm_func_start GetItemToRetrieve
GetItemToRetrieve: ; 0x023494CC
ldr r0, _023494EC ; =DUNGEON_PTR
ldr r1, [r0]
ldrb r0, [r1, #0x760]
add r1, r1, #0x760
cmp r0, #0
ldrnesh r0, [r1, #4]
moveq r0, #0
bx lr
.align 2, 0
_023494EC: .word DUNGEON_PTR
arm_func_end GetItemToRetrieve
arm_func_start GetItemToDeliver
GetItemToDeliver: ; 0x023494F0
stmdb sp!, {r4, lr}
ldr r1, _02349518 ; =DUNGEON_PTR
mov r0, #7
ldr r1, [r1]
add r4, r1, #0x760
bl IsCurrentMissionType
cmp r0, #0
ldrnesh r0, [r4, #6]
moveq r0, #0
ldmia sp!, {r4, pc}
.align 2, 0
_02349518: .word DUNGEON_PTR
arm_func_end GetItemToDeliver
arm_func_start GetSpecialTargetItem
GetSpecialTargetItem: ; 0x0234951C
stmdb sp!, {r4, lr}
ldr r1, _02349560 ; =DUNGEON_PTR
mov r0, #3
ldr r2, [r1]
mov r1, #1
add r4, r2, #0x760
bl IsCurrentMissionTypeExact
cmp r0, #0
bne _02349550
mov r0, #0xc
bl IsCurrentMissionType
cmp r0, #0
beq _02349558
_02349550:
ldrsh r0, [r4, #8]
ldmia sp!, {r4, pc}
_02349558:
mov r0, #0
ldmia sp!, {r4, pc}
.align 2, 0
_02349560: .word DUNGEON_PTR
arm_func_end GetSpecialTargetItem
arm_func_start IsDestinationFloorWithItem
IsDestinationFloorWithItem: ; 0x02349564
stmdb sp!, {r4, lr}
ldr r0, _023495C0 ; =DUNGEON_PTR
ldr r1, [r0]
ldrb r0, [r1, #0x760]
add r4, r1, #0x760
cmp r0, #0
moveq r0, #0
ldmeqia sp!, {r4, pc}
mov r0, #9
bl IsCurrentMissionType
cmp r0, #0
bne _023495B0
mov r0, #7
bl IsCurrentMissionType
cmp r0, #0
bne _023495B0
ldrsh r0, [r4, #4]
cmp r0, #0
bne _023495B8
_023495B0:
mov r0, #0
ldmia sp!, {r4, pc}
_023495B8:
mov r0, #1
ldmia sp!, {r4, pc}
.align 2, 0
_023495C0: .word DUNGEON_PTR
arm_func_end IsDestinationFloorWithItem
arm_func_start IsDestinationFloorWithHiddenOutlaw
IsDestinationFloorWithHiddenOutlaw: ; 0x023495C4
stmdb sp!, {r3, lr}
mov r0, #9
mov r1, #1
bl IsCurrentMissionTypeExact
cmp r0, #0
movne r0, #1
moveq r0, #0
and r0, r0, #0xff
ldmia sp!, {r3, pc}
arm_func_end IsDestinationFloorWithHiddenOutlaw
arm_func_start IsDestinationFloorWithFleeingOutlaw
IsDestinationFloorWithFleeingOutlaw: ; 0x023495E8
stmdb sp!, {r3, lr}
mov r0, #0xa
mov r1, #5
bl IsCurrentMissionTypeExact
cmp r0, #0
bne _02349618
mov r0, #9
mov r1, #2
bl IsCurrentMissionTypeExact
cmp r0, #0
moveq r0, #0
ldmeqia sp!, {r3, pc}
_02349618:
mov r0, #1
ldmia sp!, {r3, pc}
arm_func_end IsDestinationFloorWithFleeingOutlaw
arm_func_start GetMissionTargetEnemy
GetMissionTargetEnemy: ; 0x02349620
ldr r0, _02349634 ; =DUNGEON_PTR
ldr r0, [r0]
add r0, r0, #0x700
ldrsh r0, [r0, #0x6e]
bx lr
.align 2, 0
_02349634: .word DUNGEON_PTR
arm_func_end GetMissionTargetEnemy
arm_func_start GetMissionEnemyMinionGroup
GetMissionEnemyMinionGroup: ; 0x02349638
ldr r1, _02349654 ; =DUNGEON_PTR
add r0, r0, #1
ldr r1, [r1]
add r0, r1, r0, lsl #1
add r0, r0, #0x700
ldrsh r0, [r0, #0x6e]
bx lr
.align 2, 0
_02349654: .word DUNGEON_PTR
arm_func_end GetMissionEnemyMinionGroup
arm_func_start ov29_02349658
ov29_02349658: ; 0x02349658
ldr r0, _02349684 ; =DUNGEON_PTR
mov r2, #0
ldr r1, [r0]
strb r2, [r1]
ldr r1, [r0]
strb r2, [r1, #1]
ldr r1, [r0]
strb r2, [r1, #2]
ldr r0, [r0]
strb r2, [r0, #3]
bx lr
.align 2, 0
_02349684: .word DUNGEON_PTR
arm_func_end ov29_02349658
arm_func_start ov29_02349688
ov29_02349688: ; 0x02349688
ldr r1, _02349698 ; =DUNGEON_PTR
ldr r1, [r1]
strb r0, [r1, #1]
bx lr
.align 2, 0
_02349698: .word DUNGEON_PTR
arm_func_end ov29_02349688
arm_func_start ov29_0234969C
ov29_0234969C: ; 0x0234969C
ldr r1, _023496AC ; =DUNGEON_PTR
ldr r1, [r1]
strb r0, [r1, #2]
bx lr
.align 2, 0
_023496AC: .word DUNGEON_PTR
arm_func_end ov29_0234969C
arm_func_start ov29_023496B0
ov29_023496B0: ; 0x023496B0
ldr r0, _023496C0 ; =DUNGEON_PTR
ldr r0, [r0]
ldrb r0, [r0, #2]
bx lr
.align 2, 0
_023496C0: .word DUNGEON_PTR
arm_func_end ov29_023496B0
arm_func_start SetTargetMonsterNotFoundFlag
SetTargetMonsterNotFoundFlag: ; 0x023496C4
ldr r1, _023496D4 ; =DUNGEON_PTR
ldr r1, [r1]
strb r0, [r1, #3]
bx lr
.align 2, 0
_023496D4: .word DUNGEON_PTR
arm_func_end SetTargetMonsterNotFoundFlag
arm_func_start GetTargetMonsterNotFoundFlag
GetTargetMonsterNotFoundFlag: ; 0x023496D8
ldr r0, _023496E8 ; =DUNGEON_PTR
ldr r0, [r0]
ldrb r0, [r0, #3]
bx lr
.align 2, 0
_023496E8: .word DUNGEON_PTR
arm_func_end GetTargetMonsterNotFoundFlag
arm_func_start ov29_023496EC
ov29_023496EC: ; 0x023496EC
mov ip, #0
strb ip, [r0]
strb ip, [r0, #0x18]
strb ip, [r0, #0x17]
strb ip, [r0, #0x1a]
strh ip, [r0, #4]
strh ip, [r0, #6]
strh ip, [r0, #8]
strb ip, [r0, #0x16]
strh ip, [r0, #0xa]
strb ip, [r0, #0x1b]
strb ip, [r0, #0x1c]
strh ip, [r0, #0xc]
mov r3, ip
_02349724:
add r1, ip, #1
mov r1, r1, lsl #0x10
add r2, r0, ip, lsl #1
mov ip, r1, asr #0x10
strh r3, [r2, #0xe]
cmp ip, #3
blt _02349724
strh r3, [r0, #0x14]
bx lr
arm_func_end ov29_023496EC
arm_func_start FloorHasMissionMonster
FloorHasMissionMonster: ; 0x02349748
ldrb r1, [r0]
cmp r1, #0
moveq r0, #0
bxeq lr
ldrb r0, [r0, #1]
cmp r0, #7
cmpne r0, #0
cmpne r0, #2
cmpne r0, #1
beq _02349780
add r0, r0, #0xf8
and r0, r0, #0xff
cmp r0, #3
bhi _02349788
_02349780:
mov r0, #1
bx lr
_02349788:
mov r0, #0
bx lr
arm_func_end FloorHasMissionMonster
#ifndef JAPAN
arm_func_start GetMissionIfActiveOnFloor
GetMissionIfActiveOnFloor: ; 0x02349790
stmdb sp!, {r4, lr}
mov r4, r0
mov r0, r1
bl GetAcceptedMission
ldrb r1, [r0]
cmp r1, #5
ldreqb r2, [r4]
ldreqb r1, [r0, #4]
cmpeq r2, r1
ldreqb r2, [r4, #1]
ldreqb r1, [r0, #5]
cmpeq r2, r1
movne r0, #0
ldmia sp!, {r4, pc}
arm_func_end GetMissionIfActiveOnFloor
#endif
arm_func_start ov29_023497C8
ov29_023497C8: ; 0x023497C8
stmdb sp!, {r4, lr}
mov ip, #0
mov r4, ip
b _02349804
_023497D8:
mov r3, r4, lsl #1
ldrsh lr, [r1, r3]
cmp lr, #0
addne r3, ip, #1
addne ip, r0, ip, lsl #1
movne r3, r3, lsl #0x10
strneh lr, [ip, #0xe]
movne ip, r3, asr #0x10
add r3, r4, #1
mov r3, r3, lsl #0x10
mov r4, r3, asr #0x10
_02349804:
cmp r4, #2
cmplt ip, r2
blt _023497D8
strh ip, [r0, #0x14]
ldmia sp!, {r4, pc}
arm_func_end ov29_023497C8
arm_func_start ov29_02349818
ov29_02349818: ; 0x02349818
stmdb sp!, {r4, lr}
mov r4, #0
add ip, r4, #1
mov ip, ip, lsl #0x10
strh r1, [r0, #0xe]
cmp r2, #0
mov ip, ip, asr #0x10
beq _02349874
b _02349868
_0234983C:
mov r1, r4, lsl #1
ldrsh lr, [r2, r1]
cmp lr, #0
addne r1, ip, #1
addne ip, r0, ip, lsl #1
movne r1, r1, lsl #0x10
strneh lr, [ip, #0xe]
movne ip, r1, asr #0x10
add r1, r4, #1
mov r1, r1, lsl #0x10
mov r4, r1, asr #0x10
_02349868:
cmp r4, #2
cmplt ip, r3
blt _0234983C
_02349874:
strh ip, [r0, #0x14]
ldmia sp!, {r4, pc}
arm_func_end ov29_02349818