Decomped ov29_0234CA68

Decomped by ElectricGeorge
This commit is contained in:
AnonymousRandomPerson
2025-06-15 17:42:52 -05:00
parent ad92503af7
commit 8459169337
8 changed files with 863 additions and 851 deletions

View File

@@ -2,37 +2,16 @@
.public AdvanceFrame
.public DUNGEON_FADES_PTR
.public DUNGEON_PTR
.public Debug_Print0
.public DisplayMessageInternal
.public DungeonAlloc
.public DungeonFree
.public DungeonZInit
.public FixedRoomIsSubstituteRoom
.public G3X_Reset
.public GetDungeonTipShown
.public GetGameMode
.public GetItemCategoryVeneer
.public GetLeader
.public GetPerformanceFlagWithChecks
.public GetPlayerGender
.public GetRandomExplorerMazeMonster
.public InitRender3dElement64
.public IsFullFloorFixedRoom
.public IsFutureDungeon
.public IsMonster__0234D460
.public IsSecretFloor
.public LoadOverlay
.public LoadScriptVariableValue
.public LogMessageByIdQuiet
.public MemAlloc
.public MemFree
.public MemZero
.public OverlayIsLoaded
.public SetBothScreensWindowsColor
.public SetDungeonTipShown
.public StringFromId
.public UnloadOverlay
.public WriteQuicksaveData
.public ov10_022BF764
.public ov10_022BF7D4
.public ov29_022DC670
@@ -55,56 +34,14 @@
.public ov29_022E6DD0
.public ov29_022E9F9C
.public ov29_022EA008
.public ov29_022EA428
.public ov29_022EACBC
.public ov29_022EAFB0
.public ov29_0231ADA8
.public ov29_02337EE8
.public ov29_0233804C
.public ov29_0233992C
.public ov29_0234B034
.public ov29_0234BA54
.public ov29_0234BBDC
.public ov29_0234BBE8
.public ov29_0234D558
.public ov29_0234D5D0
.public ov29_02353238
.public ov29_02353240
.public ov29_02353248
.public ov29_02353250
.public ov29_02353258
.public ov29_02353260
.public ov29_02353268
.public ov29_02353270
.public ov29_02353278
.public ov29_02353280
.public ov29_02353288
.public ov29_02353290
.public ov29_02353298
.public ov29_023532A0
.public ov29_023532A8
.public ov29_023532B0
.public ov29_023532B8
.public ov29_023532C0
.public ov29_023532C8
.public ov29_023532D8
.public ov29_023532E0
.public ov29_023532E8
.public ov29_023532F0
.public ov29_023532F8
.public ov29_02353300
.public ov29_02353308
.public ov29_02353310
.public ov29_02353368
.public ov29_02353380
.public ov29_0235352C
.public ov29_02353563
.public ov29_023537D8
.public ov29_023537E4
.public ov29_023537E8
.public ov29_0237D000
.public ov30_02382A34
.public ov30_023842F4
.public sub_0200383C
.public sub_020038D8
.public sub_020038E8
@@ -138,7 +75,6 @@
.public sub_0201DE10
.public sub_0201F2A0
.public sub_0201F464
.public sub_02025784
.public sub_02027148
.public sub_0202715C
.public sub_02028848

View File

@@ -0,0 +1,69 @@
#pragma once
.public DUNGEON_PTR
.public Debug_Print0
.public DisplayMessageInternal
.public FixedRoomIsSubstituteRoom
.public GetDungeonTipShown
.public GetGameMode
.public GetItemCategoryVeneer
.public GetLeader
.public GetPerformanceFlagWithChecks
.public GetPlayerGender
.public GetRandomExplorerMazeMonster
.public IsFullFloorFixedRoom
.public IsFutureDungeon
.public IsMonster__0234D460
.public IsSecretFloor
.public LoadOverlay
.public LoadScriptVariableValue
.public LogMessageByIdQuiet
.public OverlayIsLoaded
.public SetBothScreensWindowsColor
.public SetDungeonTipShown
.public StringFromId
.public UnloadOverlay
.public WriteQuicksaveData
.public ov29_022EA428
.public ov29_022EACBC
.public ov29_0231ADA8
.public ov29_02337EE8
.public ov29_0233804C
.public ov29_0234B034
.public ov29_0234BA54
.public ov29_0234D558
.public ov29_0234D5D0
.public ov29_02353238
.public ov29_02353240
.public ov29_02353248
.public ov29_02353250
.public ov29_02353258
.public ov29_02353260
.public ov29_02353268
.public ov29_02353270
.public ov29_02353278
.public ov29_02353280
.public ov29_02353288
.public ov29_02353290
.public ov29_02353298
.public ov29_023532A0
.public ov29_023532A8
.public ov29_023532B0
.public ov29_023532B8
.public ov29_023532C0
.public ov29_023532C8
.public ov29_023532D8
.public ov29_023532E0
.public ov29_023532E8
.public ov29_023532F0
.public ov29_023532F8
.public ov29_02353300
.public ov29_02353308
.public ov29_02353310
.public ov29_02353368
.public ov29_02353380
.public ov29_02353563
.public ov29_023537E4
.public ov29_023537E8
.public ov29_0237D000
.public ov30_023842F4
.public sub_02025784

View File

@@ -896,786 +896,3 @@ _0234CA48:
.align 2, 0
_0234CA64: .word ov29_023537E4
arm_func_end ov29_0234CA2C
arm_func_start ov29_0234CA68
ov29_0234CA68: ; 0x0234CA68
ldr r0, _0234CA78 ; =ov29_023537E4
ldr r0, [r0]
ldr r0, [r0, #4]
bx lr
.align 2, 0
_0234CA78: .word ov29_023537E4
arm_func_end ov29_0234CA68
arm_func_start ov29_0234CA7C
ov29_0234CA7C: ; 0x0234CA7C
mov r0, #0x5800
bx lr
arm_func_end ov29_0234CA7C
arm_func_start ov29_0234CA84
ov29_0234CA84: ; 0x0234CA84
stmdb sp!, {r3, lr}
ldr r0, _0234CAC4 ; =ov29_023537E4
mov r3, #1
ldr r1, [r0]
ldr r2, _0234CAC8 ; =ov29_0237D000
str r3, [r1]
ldr r1, [r0]
mov r0, #0x21
str r2, [r1, #4]
bl LoadOverlay
ldr r0, _0234CAC4 ; =ov29_023537E4
mov r1, #0x5800
ldr r0, [r0]
ldr r0, [r0, #4]
bl WriteQuicksaveData
ldmia sp!, {r3, pc}
.align 2, 0
_0234CAC4: .word ov29_023537E4
_0234CAC8: .word ov29_0237D000
arm_func_end ov29_0234CA84
arm_func_start ov29_0234CACC
ov29_0234CACC: ; 0x0234CACC
stmdb sp!, {r3, lr}
mov r0, #0x21
bl OverlayIsLoaded
cmp r0, #0
beq _0234CAE8
mov r0, #0x21
bl UnloadOverlay
_0234CAE8:
ldr r0, _0234CAFC ; =ov29_023537E4
mov r1, #0
ldr r0, [r0]
str r1, [r0]
ldmia sp!, {r3, pc}
.align 2, 0
_0234CAFC: .word ov29_023537E4
arm_func_end ov29_0234CACC
arm_func_start ov29_0234CB00
ov29_0234CB00: ; 0x0234CB00
ldr r0, _0234CB28 ; =ov29_023537E4
mov r3, #2
ldr r1, [r0]
ldr r2, _0234CB2C ; =ov29_0237D000
str r3, [r1]
ldr r1, [r0]
ldr ip, _0234CB30 ; =LoadOverlay
mov r0, #0x21
str r2, [r1, #4]
bx ip
.align 2, 0
_0234CB28: .word ov29_023537E4
_0234CB2C: .word ov29_0237D000
_0234CB30: .word LoadOverlay
arm_func_end ov29_0234CB00
arm_func_start ov29_0234CB34
ov29_0234CB34: ; 0x0234CB34
ldr r0, _0234CB4C ; =ov29_023537E4
ldr ip, _0234CB50 ; =ov30_023842F4
ldr r0, [r0]
mov r1, #0x5800
ldr r0, [r0, #4]
bx ip
.align 2, 0
_0234CB4C: .word ov29_023537E4
_0234CB50: .word ov30_023842F4
arm_func_end ov29_0234CB34
arm_func_start ov29_0234CB54
ov29_0234CB54: ; 0x0234CB54
stmdb sp!, {r3, lr}
mov r0, #0x21
bl OverlayIsLoaded
cmp r0, #0
beq _0234CB70
mov r0, #0x21
bl UnloadOverlay
_0234CB70:
ldr r0, _0234CB84 ; =ov29_023537E4
mov r1, #0
ldr r0, [r0]
str r1, [r0]
ldmia sp!, {r3, pc}
.align 2, 0
_0234CB84: .word ov29_023537E4
arm_func_end ov29_0234CB54
arm_func_start DisplayFloorTip
DisplayFloorTip: ; 0x0234CB88
stmdb sp!, {r3, lr}
bl GetLeader
ldr r2, _0234CC88 ; =DUNGEON_PTR
mvn r3, #0
ldr r1, [r2]
ldr r0, _0234CC8C ; =ov29_023532C0
add r1, r1, #0x100
strh r3, [r1, #0xd8]
ldr r2, [r2]
mov r1, #1
add r2, r2, #0x100
strh r3, [r2, #0xda]
bl DisplayDungeonTip
cmp r0, #0
ldmneia sp!, {r3, pc}
ldr r0, _0234CC90 ; =ov29_023532B8
mov r1, #1
bl DisplayDungeonTip
cmp r0, #0
ldmneia sp!, {r3, pc}
ldr r0, _0234CC94 ; =ov29_023532B0
mov r1, #1
bl DisplayDungeonTip
cmp r0, #0
ldmneia sp!, {r3, pc}
ldr r0, _0234CC98 ; =ov29_02353240
mov r1, #1
bl DisplayDungeonTip
cmp r0, #0
ldreq r0, _0234CC88 ; =DUNGEON_PTR
ldreq r0, [r0]
ldreqb r0, [r0, #0x748]
cmpeq r0, #3
ldmneia sp!, {r3, pc}
ldr r0, _0234CC9C ; =ov29_023532A0
mov r1, #1
bl DisplayDungeonTip
cmp r0, #0
ldmneia sp!, {r3, pc}
ldr r0, _0234CCA0 ; =ov29_02353298
mov r1, #1
bl DisplayDungeonTip
cmp r0, #0
ldmneia sp!, {r3, pc}
ldr r0, _0234CCA4 ; =ov29_02353290
mov r1, #1
bl DisplayDungeonTip
cmp r0, #0
ldmneia sp!, {r3, pc}
ldr r0, _0234CCA8 ; =ov29_02353278
mov r1, #1
bl DisplayDungeonTip
cmp r0, #0
ldmneia sp!, {r3, pc}
ldr r0, _0234CCAC ; =ov29_02353238
mov r1, #1
bl DisplayDungeonTip
cmp r0, #0
ldmneia sp!, {r3, pc}
ldr r0, _0234CCB0 ; =ov29_023532E0
mov r1, #1
bl DisplayDungeonTip
cmp r0, #0
ldmia sp!, {r3, pc}
.align 2, 0
_0234CC88: .word DUNGEON_PTR
_0234CC8C: .word ov29_023532C0
_0234CC90: .word ov29_023532B8
_0234CC94: .word ov29_023532B0
_0234CC98: .word ov29_02353240
_0234CC9C: .word ov29_023532A0
_0234CCA0: .word ov29_02353298
_0234CCA4: .word ov29_02353290
_0234CCA8: .word ov29_02353278
_0234CCAC: .word ov29_02353238
_0234CCB0: .word ov29_023532E0
arm_func_end DisplayFloorTip
arm_func_start DisplayItemTip
DisplayItemTip: ; 0x0234CCB4
stmdb sp!, {r4, lr}
ldr r2, _0234CEA4 ; =DUNGEON_PTR
mvn r3, #0
ldr r1, [r2]
mov r4, r0
add r1, r1, #0x100
strh r3, [r1, #0xd8]
ldr r1, [r2]
add r1, r1, #0x100
strh r3, [r1, #0xda]
bl GetItemCategoryVeneer
cmp r0, #3
bne _0234CCF8
ldr r0, _0234CEA8 ; =ov29_023532F0
mov r1, #0
bl DisplayDungeonTip
ldmia sp!, {r4, pc}
_0234CCF8:
cmp r4, #0x46
bne _0234CD10
ldr r0, _0234CEAC ; =ov29_023532F8
mov r1, #0
bl DisplayDungeonTip
ldmia sp!, {r4, pc}
_0234CD10:
cmp r4, #0x52
bne _0234CD28
ldr r0, _0234CEB0 ; =ov29_023532D8
mov r1, #0
bl DisplayDungeonTip
ldmia sp!, {r4, pc}
_0234CD28:
cmp r4, #0x57
bne _0234CD40
ldr r0, _0234CEB4 ; =ov29_023532C8
mov r1, #0
bl DisplayDungeonTip
ldmia sp!, {r4, pc}
_0234CD40:
cmp r4, #8
bne _0234CD58
ldr r0, _0234CEB8 ; =ov29_02353250
mov r1, #0
bl DisplayDungeonTip
ldmia sp!, {r4, pc}
_0234CD58:
cmp r4, #0x51
bne _0234CD70
ldr r0, _0234CEBC ; =ov29_02353248
mov r1, #0
bl DisplayDungeonTip
ldmia sp!, {r4, pc}
_0234CD70:
cmp r4, #0x54
bne _0234CD88
ldr r0, _0234CEC0 ; =ov29_02353270
mov r1, #0
bl DisplayDungeonTip
ldmia sp!, {r4, pc}
_0234CD88:
cmp r4, #0xb7
bne _0234CDA0
ldr r0, _0234CEC4 ; =ov29_02353280
mov r1, #0
bl DisplayDungeonTip
ldmia sp!, {r4, pc}
_0234CDA0:
cmp r4, #0x63
bne _0234CDB8
ldr r0, _0234CEC8 ; =ov29_023532A8
mov r1, #0
bl DisplayDungeonTip
ldmia sp!, {r4, pc}
_0234CDB8:
cmp r4, #0x45
bne _0234CDD0
ldr r0, _0234CECC ; =ov29_02353300
mov r1, #0
bl DisplayDungeonTip
ldmia sp!, {r4, pc}
_0234CDD0:
cmp r4, #0x5b
bne _0234CDE8
ldr r0, _0234CED0 ; =ov29_02353258
mov r1, #0
bl DisplayDungeonTip
ldmia sp!, {r4, pc}
_0234CDE8:
cmp r4, #0x56
bne _0234CE00
ldr r0, _0234CED4 ; =ov29_02353268
mov r1, #0
bl DisplayDungeonTip
ldmia sp!, {r4, pc}
_0234CE00:
cmp r4, #0x5e
bne _0234CE18
ldr r0, _0234CED8 ; =ov29_02353288
mov r1, #0
bl DisplayDungeonTip
ldmia sp!, {r4, pc}
_0234CE18:
cmp r4, #0x4c
bne _0234CE30
ldr r0, _0234CEDC ; =ov29_023532E8
mov r1, #0
bl DisplayDungeonTip
ldmia sp!, {r4, pc}
_0234CE30:
cmp r4, #0x60
bne _0234CE48
ldr r0, _0234CEE0 ; =ov29_02353260
mov r1, #0
bl DisplayDungeonTip
ldmia sp!, {r4, pc}
_0234CE48:
cmp r4, #0x75
bne _0234CE60
ldr r0, _0234CEE4 ; =ov29_02353308
mov r1, #0
bl DisplayDungeonTip
ldmia sp!, {r4, pc}
_0234CE60:
ldr r0, _0234CEA4 ; =DUNGEON_PTR
ldr r0, [r0]
ldrb r0, [r0, #0x748]
#ifdef JAPAN
cmp r0, #0x7a
#else
cmp r0, #0x7b
#endif
ldmneia sp!, {r4, pc}
ldr r0, _0234CEE8 ; =0xFFFFFED2
add r0, r4, r0
mov r0, r0, lsl #0x10
mov r0, r0, asr #0x10
mov r0, r0, lsl #0x10
mov r0, r0, lsr #0x10
cmp r0, #1
ldmhiia sp!, {r4, pc}
ldr r0, _0234CEEC ; =ov29_02353310
mov r1, #0
bl DisplayDungeonTip
ldmia sp!, {r4, pc}
.align 2, 0
_0234CEA4: .word DUNGEON_PTR
_0234CEA8: .word ov29_023532F0
_0234CEAC: .word ov29_023532F8
_0234CEB0: .word ov29_023532D8
_0234CEB4: .word ov29_023532C8
_0234CEB8: .word ov29_02353250
_0234CEBC: .word ov29_02353248
_0234CEC0: .word ov29_02353270
_0234CEC4: .word ov29_02353280
_0234CEC8: .word ov29_023532A8
_0234CECC: .word ov29_02353300
_0234CED0: .word ov29_02353258
_0234CED4: .word ov29_02353268
_0234CED8: .word ov29_02353288
_0234CEDC: .word ov29_023532E8
_0234CEE0: .word ov29_02353260
_0234CEE4: .word ov29_02353308
_0234CEE8: .word 0xFFFFFED2
_0234CEEC: .word ov29_02353310
arm_func_end DisplayItemTip
arm_func_start DisplayDungeonTip
DisplayDungeonTip: ; 0x0234CEF0
stmdb sp!, {r3, r4, r5, lr}
mov r5, r0
ldr r0, [r5]
mov r4, r1
bl GetDungeonTipShown
cmp r0, #0
bne _0234CF58
ldrh r0, [r5, #4]
bl StringFromId
ldrb r0, [r0]
cmp r0, #0
beq _0234CF58
ldr r0, [r5]
bl SetDungeonTipShown
bl ov29_022EACBC
ldrh r1, [r5, #4]
mov r0, #0
mov r2, #1
bl DisplayMessage2
cmp r4, #0
beq _0234CF50
bl GetLeader
ldrh r1, [r5, #4]
bl LogMessageByIdQuiet
_0234CF50:
mov r0, #1
ldmia sp!, {r3, r4, r5, pc}
_0234CF58:
mov r0, #0
ldmia sp!, {r3, r4, r5, pc}
arm_func_end DisplayDungeonTip
arm_func_start SetBothScreensWindowColorToDefault
SetBothScreensWindowColorToDefault: ; 0x0234CF60
stmdb sp!, {r3, lr}
bl GetGameMode
cmp r0, #3
bne _0234CF7C
mov r0, #2
bl SetBothScreensWindowsColor
ldmia sp!, {r3, pc}
_0234CF7C:
bl GetPlayerGender
cmp r0, #1
bne _0234CF94
mov r0, #0
bl SetBothScreensWindowsColor
ldmia sp!, {r3, pc}
_0234CF94:
mov r0, #1
bl SetBothScreensWindowsColor
ldmia sp!, {r3, pc}
arm_func_end SetBothScreensWindowColorToDefault
arm_func_start ov29_0234CFA0
ov29_0234CFA0: ; 0x0234CFA0
stmdb sp!, {r3, lr}
bl IsFullFloorFixedRoom
cmp r0, #0
movne r0, #2
ldmneia sp!, {r3, pc}
ldr r0, _0234CFE8 ; =DUNGEON_PTR
ldr r0, [r0]
ldrb r0, [r0, #0x748]
bl IsFutureDungeon
cmp r0, #0
bne _0234CFD8
bl IsSecretFloor
cmp r0, #0
beq _0234CFE0
_0234CFD8:
mov r0, #1
ldmia sp!, {r3, pc}
_0234CFE0:
mov r0, #0
ldmia sp!, {r3, pc}
.align 2, 0
_0234CFE8: .word DUNGEON_PTR
arm_func_end ov29_0234CFA0
arm_func_start GetPersonalityIndex
GetPersonalityIndex: ; 0x0234CFEC
stmdb sp!, {r3, r4, r5, lr}
mov r5, r0
ldrb r0, [r5, #0x48]
cmp r0, #0xd8
cmpne r0, #0xf9
cmpne r0, #0xf7
cmpne r0, #0xf8
beq _0234D1D4
cmp r0, #0xd6
blo _0234D1D4
cmp r0, #0xd7
bne _0234D04C
mov r0, #0
mov r1, #0x43
bl LoadScriptVariableValue
cmp r0, #1
moveq r4, #0x4b0
beq _0234D1E0
cmp r0, #2
ldreq r4, _0234D1E8 ; =0x000004B1
beq _0234D1E0
cmp r0, #3
ldreq r4, _0234D1EC ; =0x000004B2
b _0234D1E0
_0234D04C:
cmp r0, #0xd6
bne _0234D0A0
ldrsh r2, [r5, #2]
ldr r1, _0234D1F0 ; =0x000001B2
cmp r2, r1
ldreq r4, _0234D1F4 ; =0x000004CD
beq _0234D1E0
cmp r2, #0xae
addeq r4, r1, #0x31c
beq _0234D1E0
add r0, r1, #0x27c
cmp r2, r0
ldreq r4, _0234D1F8 ; =0x000004CF
beq _0234D1E0
sub r0, r1, #0x99
cmp r2, r0
moveq r4, #0x4d0
beq _0234D1E0
cmp r2, #0x318
ldreq r4, _0234D1FC ; =0x000004D1
b _0234D1E0
_0234D0A0:
cmp r0, #0xda
#ifdef JAPAN
bne _0234E334
ldr r0, _0234D204 ; =DUNGEON_PTR
ldr r0, [r0]
ldrb r0, [r0, #0x748]
bl IsFutureDungeon
cmp r0, #0
ldrne r0, _0234E48C ; =0x000004BC
ldreq r0, _0234D200 ; =0x000004B3
mov r0, r0, lsl #0x10
mov r4, r0, asr #0x10
b _0234D1E0
_0234E334:
#else
ldreq r4, _0234D200 ; =0x000004B3
beq _0234D1E0
#endif
cmp r0, #0xed
bne _0234D148
ldr r0, _0234D204 ; =DUNGEON_PTR
ldr r0, [r0]
ldrb r1, [r0, #0x748]
add r0, r1, #0x7b
and r0, r0, #0xff
cmp r0, #2
ldrls r4, _0234D208 ; =0x000004C4
bls _0234D1E0
cmp r1, #0x88
ldreq r4, _0234D20C ; =0x000004C6
beq _0234D1E0
add r0, r1, #0x77
and r0, r0, #0xff
cmp r0, #1
ldrls r4, _0234D210 ; =0x000004C7
bls _0234D1E0
add r0, r1, #0x75
and r0, r0, #0xff
cmp r0, #1
ldrls r4, _0234D214 ; =0x000004C8
bls _0234D1E0
cmp r1, #0x8d
ldreq r4, _0234D218 ; =0x000004C9
beq _0234D1E0
add r0, r1, #0x72
and r0, r0, #0xff
cmp r0, #2
ldrls r4, _0234D21C ; =0x000004CA
bls _0234D1E0
cmp r1, #0x91
ldreq r4, _0234D220 ; =0x000004CB
beq _0234D1E0
add r0, r1, #0x6e
and r0, r0, #0xff
cmp r0, #2
ldrls r4, _0234D224 ; =0x000004CC
b _0234D1E0
_0234D148:
cmp r0, #0xe2
bne _0234D170
mov r0, #0x1a
bl GetPerformanceFlagWithChecks
cmp r0, #0
beq _0234D170
ldrsh r0, [r5, #2]
bl sub_02025784
mov r4, r0
b _0234D1E0
_0234D170:
ldr r1, _0234D228 ; =ov29_023537E8
b _0234D1C4
_0234D178:
ldrb r0, [r5, #0x48]
cmp r0, r2
bne _0234D1C0
ldrsh r4, [r1, #2]
ldr r0, _0234D22C ; =0x000004B8
cmp r4, r0
bne _0234D1A8
ldrsh r0, [r5, #2]
cmp r0, #0x1f8
cmpne r0, #0x51
ldreq r4, _0234D230 ; =0x000004D3
beq _0234D1E0
_0234D1A8:
cmp r4, #0
bne _0234D1E0
ldrsh r0, [r5, #2]
bl sub_02025784
mov r4, r0
b _0234D1E0
_0234D1C0:
add r1, r1, #4
_0234D1C4:
ldrb r2, [r1]
cmp r2, #0xff
bne _0234D178
b _0234D1E0
_0234D1D4:
ldrsh r0, [r5, #4]
bl sub_02025784
mov r4, r0
_0234D1E0:
mov r0, r4
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
_0234D1E8: .word 0x000004B1
_0234D1EC: .word 0x000004B2
_0234D1F0: .word 0x000001B2
_0234D1F4: .word 0x000004CD
_0234D1F8: .word 0x000004CF
_0234D1FC: .word 0x000004D1
#ifdef JAPAN
_0234D204: .word DUNGEON_PTR
_0234E48C: .word 0x000004BC
_0234D200: .word 0x000004B3
#else
_0234D200: .word 0x000004B3
_0234D204: .word DUNGEON_PTR
#endif
_0234D208: .word 0x000004C4
_0234D20C: .word 0x000004C6
_0234D210: .word 0x000004C7
_0234D214: .word 0x000004C8
_0234D218: .word 0x000004C9
_0234D21C: .word 0x000004CA
_0234D220: .word 0x000004CB
_0234D224: .word 0x000004CC
_0234D228: .word ov29_023537E8
_0234D22C: .word 0x000004B8
_0234D230: .word 0x000004D3
arm_func_end GetPersonalityIndex
arm_func_start ov29_0234D234
ov29_0234D234: ; 0x0234D234
stmdb sp!, {r3, lr}
sub sp, sp, #8
ldr lr, [sp, #0x10]
ldrb ip, [sp, #0x14]
str lr, [sp]
str ip, [sp, #4]
bl ov29_0234D5D0
add sp, sp, #8
ldmia sp!, {r3, pc}
arm_func_end ov29_0234D234
arm_func_start DisplayMessage
DisplayMessage: ; 0x0234D258
stmdb sp!, {r4, r5, r6, lr}
sub sp, sp, #8
mov r6, r0
mov r5, r1
mov r4, r2
mov r0, #0xa
bl ov29_0234BA54
bl ov29_0234D558
bl ov29_0234B034
mov r1, r4
mov r2, r6
str r0, [sp]
mov r0, r5
mov r3, #0
str r3, [sp, #4]
bl DisplayMessageInternal
mov r0, #0xb
mov r1, #0
bl ov29_022EA428
add sp, sp, #8
ldmia sp!, {r4, r5, r6, pc}
arm_func_end DisplayMessage
arm_func_start DisplayMessage2
DisplayMessage2: ; 0x0234D2AC
stmdb sp!, {r4, r5, r6, lr}
sub sp, sp, #8
mov r6, r0
mov r5, r1
mov r4, r2
mov r0, #0xa
bl ov29_0234BA54
bl ov29_0234D558
bl ov29_0234B034
mov r1, r4
mov r2, r6
str r0, [sp]
mov r0, r5
mov r3, #1
str r3, [sp, #4]
mov r3, #0
bl DisplayMessageInternal
mov r0, #0
mov r1, r0
bl ov29_022EA428
add sp, sp, #8
ldmia sp!, {r4, r5, r6, pc}
arm_func_end DisplayMessage2
arm_func_start ov29_0234D304
ov29_0234D304: ; 0x0234D304
stmdb sp!, {r4, r5, r6, r7, r8, lr}
sub sp, sp, #0x58
ldr r4, _0234D454 ; =ov29_02353563
mov r8, r0
ldrb r0, [r4]
mov r7, r1
mov r6, r2
mov r5, r3
cmp r0, #0
beq _0234D334
mov r0, #0xa
bl ov29_0234BA54
_0234D334:
bl ov29_0234D558
mov r0, r8
bl IsMonster__0234D460
cmp r0, #0
beq _0234D41C
mov r0, r8
bl IsMonster__0234D460
cmp r0, #0
beq _0234D3F8
ldr r4, [r8, #0xb4]
bl FixedRoomIsSubstituteRoom
cmp r0, #0
beq _0234D3BC
bl GetRandomExplorerMazeMonster
cmp r0, #0
moveq r1, #0
beq _0234D38C
ldr r1, [r0]
cmp r1, #0
movne r1, #1
moveq r1, #0
and r1, r1, #0xff
_0234D38C:
cmp r1, #0
moveq r0, #0
streq r0, [sp, #8]
beq _0234D3D0
ldr r1, [r0, #0xb4]
ldr r0, _0234D458 ; =ov29_02353368
ldrb r1, [r1, #0xbc]
sub r1, r1, #0xb
orr r1, r1, #0x90000
str r1, [sp, #8]
bl Debug_Print0
b _0234D3D0
_0234D3BC:
bl ov29_02337EE8
mov r1, r0
ldr r0, _0234D45C ; =ov29_02353380
str r1, [sp, #8]
bl Debug_Print0
_0234D3D0:
ldrsh r0, [r4, #4]
str r0, [sp, #0xc]
bl ov29_0233804C
str r0, [sp, #0x18]
mov r0, r8
bl ov29_0231ADA8
str r0, [sp, #0x1c]
ldrsh r0, [r4, #0xc]
orr r0, r0, #0x30000
str r0, [sp, #0x54]
_0234D3F8:
add r3, sp, #8
str r3, [sp]
mov r3, #1
mov r0, r6
mov r1, r5
mov r2, r7
str r3, [sp, #4]
bl ov29_0234D5D0
b _0234D440
_0234D41C:
bl ov29_0234B034
str r0, [sp]
mov r4, #1
mov r0, r6
mov r1, r5
mov r2, r7
mov r3, #0
str r4, [sp, #4]
bl ov29_0234D5D0
_0234D440:
mov r0, #0
mov r1, r0
bl ov29_022EA428
add sp, sp, #0x58
ldmia sp!, {r4, r5, r6, r7, r8, pc}
.align 2, 0
_0234D454: .word ov29_02353563
_0234D458: .word ov29_02353368
_0234D45C: .word ov29_02353380
arm_func_end ov29_0234D304

777
asm/overlay_29_0234CA7C.s Normal file
View File

@@ -0,0 +1,777 @@
.include "asm/macros.inc"
.include "overlay_29_0234CA7C.inc"
.text
arm_func_start ov29_0234CA7C
ov29_0234CA7C: ; 0x0234CA7C
mov r0, #0x5800
bx lr
arm_func_end ov29_0234CA7C
arm_func_start ov29_0234CA84
ov29_0234CA84: ; 0x0234CA84
stmdb sp!, {r3, lr}
ldr r0, _0234CAC4 ; =ov29_023537E4
mov r3, #1
ldr r1, [r0]
ldr r2, _0234CAC8 ; =ov29_0237D000
str r3, [r1]
ldr r1, [r0]
mov r0, #0x21
str r2, [r1, #4]
bl LoadOverlay
ldr r0, _0234CAC4 ; =ov29_023537E4
mov r1, #0x5800
ldr r0, [r0]
ldr r0, [r0, #4]
bl WriteQuicksaveData
ldmia sp!, {r3, pc}
.align 2, 0
_0234CAC4: .word ov29_023537E4
_0234CAC8: .word ov29_0237D000
arm_func_end ov29_0234CA84
arm_func_start ov29_0234CACC
ov29_0234CACC: ; 0x0234CACC
stmdb sp!, {r3, lr}
mov r0, #0x21
bl OverlayIsLoaded
cmp r0, #0
beq _0234CAE8
mov r0, #0x21
bl UnloadOverlay
_0234CAE8:
ldr r0, _0234CAFC ; =ov29_023537E4
mov r1, #0
ldr r0, [r0]
str r1, [r0]
ldmia sp!, {r3, pc}
.align 2, 0
_0234CAFC: .word ov29_023537E4
arm_func_end ov29_0234CACC
arm_func_start ov29_0234CB00
ov29_0234CB00: ; 0x0234CB00
ldr r0, _0234CB28 ; =ov29_023537E4
mov r3, #2
ldr r1, [r0]
ldr r2, _0234CB2C ; =ov29_0237D000
str r3, [r1]
ldr r1, [r0]
ldr ip, _0234CB30 ; =LoadOverlay
mov r0, #0x21
str r2, [r1, #4]
bx ip
.align 2, 0
_0234CB28: .word ov29_023537E4
_0234CB2C: .word ov29_0237D000
_0234CB30: .word LoadOverlay
arm_func_end ov29_0234CB00
arm_func_start ov29_0234CB34
ov29_0234CB34: ; 0x0234CB34
ldr r0, _0234CB4C ; =ov29_023537E4
ldr ip, _0234CB50 ; =ov30_023842F4
ldr r0, [r0]
mov r1, #0x5800
ldr r0, [r0, #4]
bx ip
.align 2, 0
_0234CB4C: .word ov29_023537E4
_0234CB50: .word ov30_023842F4
arm_func_end ov29_0234CB34
arm_func_start ov29_0234CB54
ov29_0234CB54: ; 0x0234CB54
stmdb sp!, {r3, lr}
mov r0, #0x21
bl OverlayIsLoaded
cmp r0, #0
beq _0234CB70
mov r0, #0x21
bl UnloadOverlay
_0234CB70:
ldr r0, _0234CB84 ; =ov29_023537E4
mov r1, #0
ldr r0, [r0]
str r1, [r0]
ldmia sp!, {r3, pc}
.align 2, 0
_0234CB84: .word ov29_023537E4
arm_func_end ov29_0234CB54
arm_func_start DisplayFloorTip
DisplayFloorTip: ; 0x0234CB88
stmdb sp!, {r3, lr}
bl GetLeader
ldr r2, _0234CC88 ; =DUNGEON_PTR
mvn r3, #0
ldr r1, [r2]
ldr r0, _0234CC8C ; =ov29_023532C0
add r1, r1, #0x100
strh r3, [r1, #0xd8]
ldr r2, [r2]
mov r1, #1
add r2, r2, #0x100
strh r3, [r2, #0xda]
bl DisplayDungeonTip
cmp r0, #0
ldmneia sp!, {r3, pc}
ldr r0, _0234CC90 ; =ov29_023532B8
mov r1, #1
bl DisplayDungeonTip
cmp r0, #0
ldmneia sp!, {r3, pc}
ldr r0, _0234CC94 ; =ov29_023532B0
mov r1, #1
bl DisplayDungeonTip
cmp r0, #0
ldmneia sp!, {r3, pc}
ldr r0, _0234CC98 ; =ov29_02353240
mov r1, #1
bl DisplayDungeonTip
cmp r0, #0
ldreq r0, _0234CC88 ; =DUNGEON_PTR
ldreq r0, [r0]
ldreqb r0, [r0, #0x748]
cmpeq r0, #3
ldmneia sp!, {r3, pc}
ldr r0, _0234CC9C ; =ov29_023532A0
mov r1, #1
bl DisplayDungeonTip
cmp r0, #0
ldmneia sp!, {r3, pc}
ldr r0, _0234CCA0 ; =ov29_02353298
mov r1, #1
bl DisplayDungeonTip
cmp r0, #0
ldmneia sp!, {r3, pc}
ldr r0, _0234CCA4 ; =ov29_02353290
mov r1, #1
bl DisplayDungeonTip
cmp r0, #0
ldmneia sp!, {r3, pc}
ldr r0, _0234CCA8 ; =ov29_02353278
mov r1, #1
bl DisplayDungeonTip
cmp r0, #0
ldmneia sp!, {r3, pc}
ldr r0, _0234CCAC ; =ov29_02353238
mov r1, #1
bl DisplayDungeonTip
cmp r0, #0
ldmneia sp!, {r3, pc}
ldr r0, _0234CCB0 ; =ov29_023532E0
mov r1, #1
bl DisplayDungeonTip
cmp r0, #0
ldmia sp!, {r3, pc}
.align 2, 0
_0234CC88: .word DUNGEON_PTR
_0234CC8C: .word ov29_023532C0
_0234CC90: .word ov29_023532B8
_0234CC94: .word ov29_023532B0
_0234CC98: .word ov29_02353240
_0234CC9C: .word ov29_023532A0
_0234CCA0: .word ov29_02353298
_0234CCA4: .word ov29_02353290
_0234CCA8: .word ov29_02353278
_0234CCAC: .word ov29_02353238
_0234CCB0: .word ov29_023532E0
arm_func_end DisplayFloorTip
arm_func_start DisplayItemTip
DisplayItemTip: ; 0x0234CCB4
stmdb sp!, {r4, lr}
ldr r2, _0234CEA4 ; =DUNGEON_PTR
mvn r3, #0
ldr r1, [r2]
mov r4, r0
add r1, r1, #0x100
strh r3, [r1, #0xd8]
ldr r1, [r2]
add r1, r1, #0x100
strh r3, [r1, #0xda]
bl GetItemCategoryVeneer
cmp r0, #3
bne _0234CCF8
ldr r0, _0234CEA8 ; =ov29_023532F0
mov r1, #0
bl DisplayDungeonTip
ldmia sp!, {r4, pc}
_0234CCF8:
cmp r4, #0x46
bne _0234CD10
ldr r0, _0234CEAC ; =ov29_023532F8
mov r1, #0
bl DisplayDungeonTip
ldmia sp!, {r4, pc}
_0234CD10:
cmp r4, #0x52
bne _0234CD28
ldr r0, _0234CEB0 ; =ov29_023532D8
mov r1, #0
bl DisplayDungeonTip
ldmia sp!, {r4, pc}
_0234CD28:
cmp r4, #0x57
bne _0234CD40
ldr r0, _0234CEB4 ; =ov29_023532C8
mov r1, #0
bl DisplayDungeonTip
ldmia sp!, {r4, pc}
_0234CD40:
cmp r4, #8
bne _0234CD58
ldr r0, _0234CEB8 ; =ov29_02353250
mov r1, #0
bl DisplayDungeonTip
ldmia sp!, {r4, pc}
_0234CD58:
cmp r4, #0x51
bne _0234CD70
ldr r0, _0234CEBC ; =ov29_02353248
mov r1, #0
bl DisplayDungeonTip
ldmia sp!, {r4, pc}
_0234CD70:
cmp r4, #0x54
bne _0234CD88
ldr r0, _0234CEC0 ; =ov29_02353270
mov r1, #0
bl DisplayDungeonTip
ldmia sp!, {r4, pc}
_0234CD88:
cmp r4, #0xb7
bne _0234CDA0
ldr r0, _0234CEC4 ; =ov29_02353280
mov r1, #0
bl DisplayDungeonTip
ldmia sp!, {r4, pc}
_0234CDA0:
cmp r4, #0x63
bne _0234CDB8
ldr r0, _0234CEC8 ; =ov29_023532A8
mov r1, #0
bl DisplayDungeonTip
ldmia sp!, {r4, pc}
_0234CDB8:
cmp r4, #0x45
bne _0234CDD0
ldr r0, _0234CECC ; =ov29_02353300
mov r1, #0
bl DisplayDungeonTip
ldmia sp!, {r4, pc}
_0234CDD0:
cmp r4, #0x5b
bne _0234CDE8
ldr r0, _0234CED0 ; =ov29_02353258
mov r1, #0
bl DisplayDungeonTip
ldmia sp!, {r4, pc}
_0234CDE8:
cmp r4, #0x56
bne _0234CE00
ldr r0, _0234CED4 ; =ov29_02353268
mov r1, #0
bl DisplayDungeonTip
ldmia sp!, {r4, pc}
_0234CE00:
cmp r4, #0x5e
bne _0234CE18
ldr r0, _0234CED8 ; =ov29_02353288
mov r1, #0
bl DisplayDungeonTip
ldmia sp!, {r4, pc}
_0234CE18:
cmp r4, #0x4c
bne _0234CE30
ldr r0, _0234CEDC ; =ov29_023532E8
mov r1, #0
bl DisplayDungeonTip
ldmia sp!, {r4, pc}
_0234CE30:
cmp r4, #0x60
bne _0234CE48
ldr r0, _0234CEE0 ; =ov29_02353260
mov r1, #0
bl DisplayDungeonTip
ldmia sp!, {r4, pc}
_0234CE48:
cmp r4, #0x75
bne _0234CE60
ldr r0, _0234CEE4 ; =ov29_02353308
mov r1, #0
bl DisplayDungeonTip
ldmia sp!, {r4, pc}
_0234CE60:
ldr r0, _0234CEA4 ; =DUNGEON_PTR
ldr r0, [r0]
ldrb r0, [r0, #0x748]
#ifdef JAPAN
cmp r0, #0x7a
#else
cmp r0, #0x7b
#endif
ldmneia sp!, {r4, pc}
ldr r0, _0234CEE8 ; =0xFFFFFED2
add r0, r4, r0
mov r0, r0, lsl #0x10
mov r0, r0, asr #0x10
mov r0, r0, lsl #0x10
mov r0, r0, lsr #0x10
cmp r0, #1
ldmhiia sp!, {r4, pc}
ldr r0, _0234CEEC ; =ov29_02353310
mov r1, #0
bl DisplayDungeonTip
ldmia sp!, {r4, pc}
.align 2, 0
_0234CEA4: .word DUNGEON_PTR
_0234CEA8: .word ov29_023532F0
_0234CEAC: .word ov29_023532F8
_0234CEB0: .word ov29_023532D8
_0234CEB4: .word ov29_023532C8
_0234CEB8: .word ov29_02353250
_0234CEBC: .word ov29_02353248
_0234CEC0: .word ov29_02353270
_0234CEC4: .word ov29_02353280
_0234CEC8: .word ov29_023532A8
_0234CECC: .word ov29_02353300
_0234CED0: .word ov29_02353258
_0234CED4: .word ov29_02353268
_0234CED8: .word ov29_02353288
_0234CEDC: .word ov29_023532E8
_0234CEE0: .word ov29_02353260
_0234CEE4: .word ov29_02353308
_0234CEE8: .word 0xFFFFFED2
_0234CEEC: .word ov29_02353310
arm_func_end DisplayItemTip
arm_func_start DisplayDungeonTip
DisplayDungeonTip: ; 0x0234CEF0
stmdb sp!, {r3, r4, r5, lr}
mov r5, r0
ldr r0, [r5]
mov r4, r1
bl GetDungeonTipShown
cmp r0, #0
bne _0234CF58
ldrh r0, [r5, #4]
bl StringFromId
ldrb r0, [r0]
cmp r0, #0
beq _0234CF58
ldr r0, [r5]
bl SetDungeonTipShown
bl ov29_022EACBC
ldrh r1, [r5, #4]
mov r0, #0
mov r2, #1
bl DisplayMessage2
cmp r4, #0
beq _0234CF50
bl GetLeader
ldrh r1, [r5, #4]
bl LogMessageByIdQuiet
_0234CF50:
mov r0, #1
ldmia sp!, {r3, r4, r5, pc}
_0234CF58:
mov r0, #0
ldmia sp!, {r3, r4, r5, pc}
arm_func_end DisplayDungeonTip
arm_func_start SetBothScreensWindowColorToDefault
SetBothScreensWindowColorToDefault: ; 0x0234CF60
stmdb sp!, {r3, lr}
bl GetGameMode
cmp r0, #3
bne _0234CF7C
mov r0, #2
bl SetBothScreensWindowsColor
ldmia sp!, {r3, pc}
_0234CF7C:
bl GetPlayerGender
cmp r0, #1
bne _0234CF94
mov r0, #0
bl SetBothScreensWindowsColor
ldmia sp!, {r3, pc}
_0234CF94:
mov r0, #1
bl SetBothScreensWindowsColor
ldmia sp!, {r3, pc}
arm_func_end SetBothScreensWindowColorToDefault
arm_func_start ov29_0234CFA0
ov29_0234CFA0: ; 0x0234CFA0
stmdb sp!, {r3, lr}
bl IsFullFloorFixedRoom
cmp r0, #0
movne r0, #2
ldmneia sp!, {r3, pc}
ldr r0, _0234CFE8 ; =DUNGEON_PTR
ldr r0, [r0]
ldrb r0, [r0, #0x748]
bl IsFutureDungeon
cmp r0, #0
bne _0234CFD8
bl IsSecretFloor
cmp r0, #0
beq _0234CFE0
_0234CFD8:
mov r0, #1
ldmia sp!, {r3, pc}
_0234CFE0:
mov r0, #0
ldmia sp!, {r3, pc}
.align 2, 0
_0234CFE8: .word DUNGEON_PTR
arm_func_end ov29_0234CFA0
arm_func_start GetPersonalityIndex
GetPersonalityIndex: ; 0x0234CFEC
stmdb sp!, {r3, r4, r5, lr}
mov r5, r0
ldrb r0, [r5, #0x48]
cmp r0, #0xd8
cmpne r0, #0xf9
cmpne r0, #0xf7
cmpne r0, #0xf8
beq _0234D1D4
cmp r0, #0xd6
blo _0234D1D4
cmp r0, #0xd7
bne _0234D04C
mov r0, #0
mov r1, #0x43
bl LoadScriptVariableValue
cmp r0, #1
moveq r4, #0x4b0
beq _0234D1E0
cmp r0, #2
ldreq r4, _0234D1E8 ; =0x000004B1
beq _0234D1E0
cmp r0, #3
ldreq r4, _0234D1EC ; =0x000004B2
b _0234D1E0
_0234D04C:
cmp r0, #0xd6
bne _0234D0A0
ldrsh r2, [r5, #2]
ldr r1, _0234D1F0 ; =0x000001B2
cmp r2, r1
ldreq r4, _0234D1F4 ; =0x000004CD
beq _0234D1E0
cmp r2, #0xae
addeq r4, r1, #0x31c
beq _0234D1E0
add r0, r1, #0x27c
cmp r2, r0
ldreq r4, _0234D1F8 ; =0x000004CF
beq _0234D1E0
sub r0, r1, #0x99
cmp r2, r0
moveq r4, #0x4d0
beq _0234D1E0
cmp r2, #0x318
ldreq r4, _0234D1FC ; =0x000004D1
b _0234D1E0
_0234D0A0:
cmp r0, #0xda
#ifdef JAPAN
bne _0234E334
ldr r0, _0234D204 ; =DUNGEON_PTR
ldr r0, [r0]
ldrb r0, [r0, #0x748]
bl IsFutureDungeon
cmp r0, #0
ldrne r0, _0234E48C ; =0x000004BC
ldreq r0, _0234D200 ; =0x000004B3
mov r0, r0, lsl #0x10
mov r4, r0, asr #0x10
b _0234D1E0
_0234E334:
#else
ldreq r4, _0234D200 ; =0x000004B3
beq _0234D1E0
#endif
cmp r0, #0xed
bne _0234D148
ldr r0, _0234D204 ; =DUNGEON_PTR
ldr r0, [r0]
ldrb r1, [r0, #0x748]
add r0, r1, #0x7b
and r0, r0, #0xff
cmp r0, #2
ldrls r4, _0234D208 ; =0x000004C4
bls _0234D1E0
cmp r1, #0x88
ldreq r4, _0234D20C ; =0x000004C6
beq _0234D1E0
add r0, r1, #0x77
and r0, r0, #0xff
cmp r0, #1
ldrls r4, _0234D210 ; =0x000004C7
bls _0234D1E0
add r0, r1, #0x75
and r0, r0, #0xff
cmp r0, #1
ldrls r4, _0234D214 ; =0x000004C8
bls _0234D1E0
cmp r1, #0x8d
ldreq r4, _0234D218 ; =0x000004C9
beq _0234D1E0
add r0, r1, #0x72
and r0, r0, #0xff
cmp r0, #2
ldrls r4, _0234D21C ; =0x000004CA
bls _0234D1E0
cmp r1, #0x91
ldreq r4, _0234D220 ; =0x000004CB
beq _0234D1E0
add r0, r1, #0x6e
and r0, r0, #0xff
cmp r0, #2
ldrls r4, _0234D224 ; =0x000004CC
b _0234D1E0
_0234D148:
cmp r0, #0xe2
bne _0234D170
mov r0, #0x1a
bl GetPerformanceFlagWithChecks
cmp r0, #0
beq _0234D170
ldrsh r0, [r5, #2]
bl sub_02025784
mov r4, r0
b _0234D1E0
_0234D170:
ldr r1, _0234D228 ; =ov29_023537E8
b _0234D1C4
_0234D178:
ldrb r0, [r5, #0x48]
cmp r0, r2
bne _0234D1C0
ldrsh r4, [r1, #2]
ldr r0, _0234D22C ; =0x000004B8
cmp r4, r0
bne _0234D1A8
ldrsh r0, [r5, #2]
cmp r0, #0x1f8
cmpne r0, #0x51
ldreq r4, _0234D230 ; =0x000004D3
beq _0234D1E0
_0234D1A8:
cmp r4, #0
bne _0234D1E0
ldrsh r0, [r5, #2]
bl sub_02025784
mov r4, r0
b _0234D1E0
_0234D1C0:
add r1, r1, #4
_0234D1C4:
ldrb r2, [r1]
cmp r2, #0xff
bne _0234D178
b _0234D1E0
_0234D1D4:
ldrsh r0, [r5, #4]
bl sub_02025784
mov r4, r0
_0234D1E0:
mov r0, r4
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
_0234D1E8: .word 0x000004B1
_0234D1EC: .word 0x000004B2
_0234D1F0: .word 0x000001B2
_0234D1F4: .word 0x000004CD
_0234D1F8: .word 0x000004CF
_0234D1FC: .word 0x000004D1
#ifdef JAPAN
_0234D204: .word DUNGEON_PTR
_0234E48C: .word 0x000004BC
_0234D200: .word 0x000004B3
#else
_0234D200: .word 0x000004B3
_0234D204: .word DUNGEON_PTR
#endif
_0234D208: .word 0x000004C4
_0234D20C: .word 0x000004C6
_0234D210: .word 0x000004C7
_0234D214: .word 0x000004C8
_0234D218: .word 0x000004C9
_0234D21C: .word 0x000004CA
_0234D220: .word 0x000004CB
_0234D224: .word 0x000004CC
_0234D228: .word ov29_023537E8
_0234D22C: .word 0x000004B8
_0234D230: .word 0x000004D3
arm_func_end GetPersonalityIndex
arm_func_start ov29_0234D234
ov29_0234D234: ; 0x0234D234
stmdb sp!, {r3, lr}
sub sp, sp, #8
ldr lr, [sp, #0x10]
ldrb ip, [sp, #0x14]
str lr, [sp]
str ip, [sp, #4]
bl ov29_0234D5D0
add sp, sp, #8
ldmia sp!, {r3, pc}
arm_func_end ov29_0234D234
arm_func_start DisplayMessage
DisplayMessage: ; 0x0234D258
stmdb sp!, {r4, r5, r6, lr}
sub sp, sp, #8
mov r6, r0
mov r5, r1
mov r4, r2
mov r0, #0xa
bl ov29_0234BA54
bl ov29_0234D558
bl ov29_0234B034
mov r1, r4
mov r2, r6
str r0, [sp]
mov r0, r5
mov r3, #0
str r3, [sp, #4]
bl DisplayMessageInternal
mov r0, #0xb
mov r1, #0
bl ov29_022EA428
add sp, sp, #8
ldmia sp!, {r4, r5, r6, pc}
arm_func_end DisplayMessage
arm_func_start DisplayMessage2
DisplayMessage2: ; 0x0234D2AC
stmdb sp!, {r4, r5, r6, lr}
sub sp, sp, #8
mov r6, r0
mov r5, r1
mov r4, r2
mov r0, #0xa
bl ov29_0234BA54
bl ov29_0234D558
bl ov29_0234B034
mov r1, r4
mov r2, r6
str r0, [sp]
mov r0, r5
mov r3, #1
str r3, [sp, #4]
mov r3, #0
bl DisplayMessageInternal
mov r0, #0
mov r1, r0
bl ov29_022EA428
add sp, sp, #8
ldmia sp!, {r4, r5, r6, pc}
arm_func_end DisplayMessage2
arm_func_start ov29_0234D304
ov29_0234D304: ; 0x0234D304
stmdb sp!, {r4, r5, r6, r7, r8, lr}
sub sp, sp, #0x58
ldr r4, _0234D454 ; =ov29_02353563
mov r8, r0
ldrb r0, [r4]
mov r7, r1
mov r6, r2
mov r5, r3
cmp r0, #0
beq _0234D334
mov r0, #0xa
bl ov29_0234BA54
_0234D334:
bl ov29_0234D558
mov r0, r8
bl IsMonster__0234D460
cmp r0, #0
beq _0234D41C
mov r0, r8
bl IsMonster__0234D460
cmp r0, #0
beq _0234D3F8
ldr r4, [r8, #0xb4]
bl FixedRoomIsSubstituteRoom
cmp r0, #0
beq _0234D3BC
bl GetRandomExplorerMazeMonster
cmp r0, #0
moveq r1, #0
beq _0234D38C
ldr r1, [r0]
cmp r1, #0
movne r1, #1
moveq r1, #0
and r1, r1, #0xff
_0234D38C:
cmp r1, #0
moveq r0, #0
streq r0, [sp, #8]
beq _0234D3D0
ldr r1, [r0, #0xb4]
ldr r0, _0234D458 ; =ov29_02353368
ldrb r1, [r1, #0xbc]
sub r1, r1, #0xb
orr r1, r1, #0x90000
str r1, [sp, #8]
bl Debug_Print0
b _0234D3D0
_0234D3BC:
bl ov29_02337EE8
mov r1, r0
ldr r0, _0234D45C ; =ov29_02353380
str r1, [sp, #8]
bl Debug_Print0
_0234D3D0:
ldrsh r0, [r4, #4]
str r0, [sp, #0xc]
bl ov29_0233804C
str r0, [sp, #0x18]
mov r0, r8
bl ov29_0231ADA8
str r0, [sp, #0x1c]
ldrsh r0, [r4, #0xc]
orr r0, r0, #0x30000
str r0, [sp, #0x54]
_0234D3F8:
add r3, sp, #8
str r3, [sp]
mov r3, #1
mov r0, r6
mov r1, r5
mov r2, r7
str r3, [sp, #4]
bl ov29_0234D5D0
b _0234D440
_0234D41C:
bl ov29_0234B034
str r0, [sp]
mov r4, #1
mov r0, r6
mov r1, r5
mov r2, r7
mov r3, #0
str r4, [sp, #4]
bl ov29_0234D5D0
_0234D440:
mov r0, #0
mov r1, r0
bl ov29_022EA428
add sp, sp, #0x58
ldmia sp!, {r4, r5, r6, r7, r8, pc}
.align 2, 0
_0234D454: .word ov29_02353563
_0234D458: .word ov29_02353368
_0234D45C: .word ov29_02353380
arm_func_end ov29_0234D304

View File

@@ -0,0 +1,6 @@
#ifndef PMDSKY_OVERLAY_29_0234CA68_H
#define PMDSKY_OVERLAY_29_0234CA68_H
s32 ov29_0234CA68();
#endif //PMDSKY_OVERLAY_29_0234CA68_H

View File

@@ -483,6 +483,8 @@ Overlay OVY_29
Object asm/overlay_29_023498A0.o
Object src/overlay_29_0234BBE8.o
Object asm/overlay_29_0234BEE0.o
Object src/overlay_29_0234CA68.o
Object asm/overlay_29_0234CA7C.o
Object src/overlay_29_0234D460.o
Object asm/overlay_29_0234D484.o
Object src/overlay_29_0234DDD0.o

View File

@@ -1,5 +1,6 @@
#include "overlay_29_0234BBE8.h"
#include "overlay_29_022DC61C.h"
#include "overlay_29_0234CA68.h"
#include "util.h"
struct unk_ov29_023537DC {
@@ -18,7 +19,6 @@ typedef struct {
extern unk_ov29_023537D8_t ov29_023537D8;
void ov29_022DEBA4(); // thunk_FUN_022deadc
void ov29_0234CB00();
s32 ov29_0234CA68();
s32 ov29_0234CA7C();
bool8 sub_0204AFF8(); // is GAME_MODE rescue?
void ov30_02382820(s32, s32, s32);
@@ -42,9 +42,6 @@ void StartFadeDungeonWrapper(s32,s32,s32);
void ov29_0234C738(s32);
void SetAdventureLogDungeonFloor(void *);
void StopBgmCommand();
bool8 sub_0204AFF8();
s32 ov29_0234CA68();
s32 ov29_0234CA7C();
void ov30_023829CC(s32, s32, s32);
void ov29_022DDE00(s32);
void ov30_02382C30();

View File

@@ -0,0 +1,8 @@
#include "overlay_29_0234CA68.h"
extern s32* ov29_023537E4;
s32 ov29_0234CA68()
{
return ov29_023537E4[1];
}