Decomp ov29_0234BBE8

Decomped by ElectricGeorge
This commit is contained in:
AnonymousRandomPerson 2025-06-15 17:31:53 -05:00
parent 27676c96af
commit a4ecf5e46b
8 changed files with 2028 additions and 2057 deletions

View File

@ -7,26 +7,16 @@
.public ChangeDungeonMusic
.public CloseAlertBox
.public CreateAlertBox
.public Debug_Print0
.public DisplayMessageInternal
.public DUNGEON_FADES_PTR
.public DUNGEON_PTR
.public DungeonAlloc
.public DungeonFree
.public DisplayMessage
.public DisplayMessage2
.public DungeonRandInt
.public DungeonZInit
.public EndNegativeStatusConditionWrapper
.public EntityIsValid__0234987C
.public FemaleToMaleForm
.public FixedRoomIsSubstituteRoom
.public G3X_Reset
.public GetAcceptedMission
.public GetDungeonPtrMaster
.public GetDungeonTipShown
.public GetEvoParameters
.public GetForcedLossReason
.public GetGameMode
.public GetItemCategoryVeneer
.public GetItemToDeliver
.public GetItemToRetrieve
.public GetLeader
@ -35,9 +25,6 @@
.public GetMonsterGenderVeneer
.public GetMonsterPreEvolution
.public GetName
.public GetPerformanceFlagWithChecks
.public GetPlayerGender
.public GetRandomExplorerMazeMonster
.public GetRandomSpawnMonsterID
.public GetSecondFormIfValid
.public GetSpecialTargetItem
@ -45,7 +32,6 @@
.public HandleFaint
.public InitPortraitParams
.public InitPreprocessorArgs
.public InitRender3dElement64
.public IsAlertBoxActive
.public IsCastform
.public IsCherrim
@ -55,73 +41,42 @@
.public IsDestinationFloorWithFleeingOutlaw
.public IsDestinationFloorWithHiddenOutlaw
.public IsExperienceLocked
.public IsFullFloorFixedRoom
.public IsFutureDungeon
.public IsJirachiChallengeFloor
.public IsMonster__0234D460
.public IsSecretFloor
.public ItemZInit
.public LoadOverlay
.public LoadScriptVariableValue
.public MemAlloc
.public MemFree
.public MemZero
.public MusicTableIdxToMusicId
.public ov10_022BF764
.public ov10_022BF7D4
.public PositionIsOnStairs
.public PreprocessString
.public RemoveEmptyItemsInBagWrapper
.public RemoveGroundItem
.public SetPortraitLayout
.public ShouldDisplayEntityWrapper
.public ShouldMonsterHeadToStairs
.public StringFromId
.public SubstitutePlaceholderStringTags
.public YesNoMenu
.public ov10_022BFD20
.public ov29_022DC61C
.public ov29_022DC65C
.public ov29_022DC670
.public ov29_022DDC00
.public ov29_022DDCA0
.public ov29_022DDD50
.public ov29_022DDDA4
.public ov29_022DDE00
.public ov29_022DDE24
.public ov29_022DDEF8
.public ov29_022DDFF0
.public ov29_022DDFFC
.public ov29_022DE0A0
.public ov29_022DE0CC
.public ov29_022DE300
.public ov29_022DE418
.public ov29_022DE498
.public ov29_022DE868
.public ov29_022DEBA4
.public ov29_022DEBB0
.public ov29_022E09E8
.public ov29_022E0A64
.public ov29_022E0B60
.public ov29_022E0CFC
.public ov29_022E0E8C
.public ov29_022E0F14
.public ov29_022E2CA0
.public ov29_022E550C
.public ov29_022E68F0
.public ov29_022E6DD0
.public ov29_022E8244
.public ov29_022E9F9C
.public ov29_022E9FC0
.public ov29_022EA008
.public ov29_022EA428
.public ov29_022EAC8C
.public ov29_022EACBC
.public ov29_022EACE4
.public ov29_022EAEFC
.public ov29_022EAF34
.public ov29_022EAFB0
.public ov29_022F2FE4
.public ov29_022FA3D4
.public ov29_022FBA54
.public ov29_022FBBEC
.public ov29_023009CC
.public ov29_02300B04
.public ov29_0231ADA8
.public ov29_0231AF24
.public ov29_02337EE8
.public ov29_0233804C
.public ov29_0233992C
.public ov29_0233A248
.public ov29_02344B44
.public ov29_02344B9C
@ -129,126 +84,23 @@
.public ov29_02348A18
.public ov29_023491B8
.public ov29_023496B0
.public ov29_0234D558
.public ov29_0234D5D0
.public ov29_0234D630
.public ov29_0234D70C
.public ov29_0234D838
.public ov29_0234D8A0
.public ov29_02353214
.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_023537C8
.public ov29_023537CC
.public ov29_023537D8
.public ov29_023537E4
.public ov29_023537E8
.public ov29_0237C694
.public ov29_0237D000
.public ov30_02382820
.public ov30_02382874
.public ov30_0238298C
.public ov30_023829A0
.public ov30_023829CC
.public ov30_02382A34
.public ov30_02382C30
.public ov30_023842F4
.public OverlayIsLoaded
.public PositionIsOnStairs
.public PreprocessString
.public RemoveEmptyItemsInBagWrapper
.public RemoveGroundItem
.public RunDungeon
.public SetAdventureLogDungeonFloor
.public SetBothScreensWindowsColor
.public SetDungeonTipShown
.public SetPortraitLayout
.public ShouldDisplayEntityWrapper
.public ShouldMonsterHeadToStairs
.public StringFromId
.public strlen
.public strncmp
.public strncpy
.public sub_02001808
.public sub_0200383C
.public sub_020038D8
.public sub_020038E8
.public sub_02003990
.public sub_020039E4
.public sub_02003A40
.public sub_02006EC4
.public sub_02008ED0
.public sub_02008F3C
.public sub_02008F84
.public sub_02008F88
.public sub_02009120
.public sub_02009194
.public sub_020091B0
.public sub_020091CC
.public sub_020091F8
.public sub_020093BC
.public sub_02009514
.public sub_0200B330
.public sub_0200B3D4
.public sub_02017A68
.public sub_02017A80
.public sub_02017B70
.public sub_02017BEC
.public sub_02017C10
.public sub_0201BE28
.public sub_0201BE5C
.public sub_0201BE84
.public sub_0201BF4C
.public sub_0201BF64
.public sub_0201D7E0
.public sub_0201D804
.public sub_0201DDFC
.public sub_0201DE10
.public sub_0201F2A0
.public sub_0201F464
.public sub_02024FB8
.public sub_02025784
.public sub_02027148
.public sub_0202715C
.public sub_0202836C
.public sub_02028848
.public sub_02028A64
.public sub_02028E2C
.public sub_02028E40
.public sub_02028E88
.public sub_0203010C
.public sub_02030214
.public sub_02034710
.public sub_02034A80
.public sub_02047FFC
.public sub_0204804C
.public sub_020480CC
@ -257,13 +109,3 @@
.public sub_02048240
.public sub_0204833C
.public sub_02048360
.public sub_02048DC4
.public sub_0204AFF8
.public sub_0204F9CC
.public sub_02051DD0
.public sub_02051E60
.public sub_0205BAB0
.public SubstitutePlaceholderStringTags
.public UnloadOverlay
.public WriteQuicksaveData
.public YesNoMenu

View File

@ -0,0 +1,151 @@
#pragma once
.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
.public ov29_022DDC00
.public ov29_022DDCA0
.public ov29_022DDD50
.public ov29_022DDDA4
.public ov29_022DDE24
.public ov29_022DDFF0
.public ov29_022DDFFC
.public ov29_022DE0A0
.public ov29_022DE0CC
.public ov29_022DE300
.public ov29_022DE498
.public ov29_022DE868
.public ov29_022E0A64
.public ov29_022E0CFC
.public ov29_022E0E8C
.public ov29_022E0F14
.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
.public sub_02003990
.public sub_020039E4
.public sub_02003A40
.public sub_02006EC4
.public sub_02008ED0
.public sub_02008F3C
.public sub_02008F84
.public sub_02008F88
.public sub_02009120
.public sub_020091CC
.public sub_020091F8
.public sub_020093BC
.public sub_02009514
.public sub_0200B330
.public sub_0200B3D4
.public sub_02017A68
.public sub_02017A80
.public sub_02017B70
.public sub_02017BEC
.public sub_0201BE28
.public sub_0201BE5C
.public sub_0201BE84
.public sub_0201BF4C
.public sub_0201BF64
.public sub_0201D7E0
.public sub_0201D804
.public sub_0201DDFC
.public sub_0201DE10
.public sub_0201F2A0
.public sub_0201F464
.public sub_02025784
.public sub_02027148
.public sub_0202715C
.public sub_02028848
.public sub_02028A64
.public sub_02028E2C
.public sub_02028E40
.public sub_02028E88
.public sub_02034710
.public sub_02034A80
.public sub_0204F9CC

View File

@ -316,6 +316,7 @@ _022DEF30: .word 0x000003E7
_022DEF34: .word FIXED_ROOM_REVISIT_OVERRIDES
arm_func_end ov29_022DEBBC
; https://decomp.me/scratch/7xQSQ
arm_func_start RunDungeon
RunDungeon: ; 0x022DEF38
#ifdef JAPAN

File diff suppressed because it is too large Load Diff

1681
asm/overlay_29_0234BEE0.s Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,6 @@
#ifndef PMDSKY_OVERLAY_29_0234BBE8_H
#define PMDSKY_OVERLAY_29_0234BBE8_H
void ov29_0234BBE8();
#endif //PMDSKY_OVERLAY_29_0234BBE8_H

View File

@ -479,6 +479,8 @@ Overlay OVY_29
Object asm/overlay_29_02347BC8.o
Object src/overlay_29_0234987C.o
Object asm/overlay_29_023498A0.o
Object src/overlay_29_0234BBE8.o
Object asm/overlay_29_0234BEE0.o
Object src/overlay_29_0234D460.o
Object asm/overlay_29_0234D484.o
Object src/overlay_29_0234DDD0.o

175
src/overlay_29_0234BBE8.c Normal file
View File

@ -0,0 +1,175 @@
#include "overlay_29_0234BBE8.h"
#include "util.h"
struct unk_ov29_023537DC {
s32 v0;
u8 v4;
s32 v8;
u8 v0xc;
u8 v0xd;
};
typedef struct {
u8 v0;
struct unk_ov29_023537DC *v4;
} unk_ov29_023537D8_t;
extern unk_ov29_023537D8_t ov29_023537D8;
void ov29_022DC61C(); // mem init?
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);
s32 ov30_02382874();
void ov29_022DDEF8();
s32 ov30_0238298C();
void ov30_023829A0();
void sub_02048DC4(s32);
void ov29_022DEBB0();
void sub_02051DD0(s32, s32);
void sub_02051E60(s32, s32);
void ov29_0234BEE0(s32);
void ov29_0234BF04(s32);
s32 GetDungeonPtrMaster();
void RunDungeon(void *, s32);
s32 sub_0205BAB0(void *);
void ov29_022DE418();
void sub_020091B0(s32, s32);
void sub_02009194(s32, s32);
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();
void ov29_0234CACC();
void ov29_022DC65C();
void sub_02017B70();
void ov29_0234BBE8(void)
{
s32 uVar3;
s32 uVar4;
s32 uVar5;
s32 iVar6;
bool8 bVar1 = FALSE;
struct unk_ov29_023537DC *iVar7 = ov29_023537D8.v4;
ov29_022DC61C(); // mem init?
if (iVar7[1].v4 != 0)
{
ov29_022DEBA4(); // thunk_FUN_022deadc/fade?
ov29_0234CB00(); // do something with overlays
uVar3 = ov29_0234CA68();
uVar4 = ov29_0234CA7C();
uVar5 = sub_0204AFF8(); // is GAME_MODE rescue?
ov30_02382820(uVar3,uVar4,uVar5); // alloc these values
while (iVar6 = ov30_02382874(), iVar6 != 0)
{
ov29_022DDEF8();
}
iVar6 = ov30_0238298C();
ov30_023829A0();
if (iVar6 != 0)
{
sub_02048DC4(0xF1208);
}
else
{
sub_02048DC4(0xF1209);
}
ov29_022DEBB0();
if (iVar6 == 0)
{
iVar7[12].v0 = 5;
bVar1 = TRUE;
ov29_022DDEF8();
}
}
while (!bVar1)
{
ov29_022DDEF8();
if (ov29_023537D8.v0 != 0) continue;
switch (ov29_023537D8.v4->v8)
{
case 1:
sub_02051DD0(0,0);
sub_02051DD0(1,0);
sub_02051DD0(0,1);
sub_02051DD0(1,1);
sub_02051E60(0,0);
sub_02051E60(1,0);
sub_02051E60(0,1);
sub_02051E60(1,1);
ov29_0234BEE0(0);
ov29_0234BEE0(1);
ov29_0234BF04(0);
ov29_0234BF04(1);
uVar3 = GetDungeonPtrMaster();
RunDungeon(&(ov29_023537D8.v4[1]), uVar3);
bVar1 = TRUE;
break;
case 2:
bVar1 = TRUE;
break;
}
}
if (&(ov29_023537D8.v4[1]) == (void *)0) goto _0234beb8;
iVar7 = &(ov29_023537D8.v4[1]);
iVar6 = -2;
if (iVar7[11].v0 == -2)
{
iVar6 = sub_0205BAB0(&(iVar7[11].v8));
}
if (iVar7[11].v0 != 3)
{
iVar6 = -2;
if (iVar7[11].v0 != iVar6) goto _0234beb8;
}
iVar7 = ov29_023537D8.v4;
ov29_022DE418();
sub_020091B0(0,0);
sub_020091B0(1,0);
sub_02009194(2,0);
sub_02009194(3,0);
sub_020091B0(4,0);
StartFadeDungeonWrapper(1,0x4000,0);
ov29_0234C738(0);
SetAdventureLogDungeonFloor(&(iVar7[12].v4));
sub_02017B70();
if (iVar7[12].v0 != -2 && sub_0204AFF8())
{
uVar3 = 1;
}
else
{
uVar3 = 0;
}
uVar4 = ov29_0234CA68();
uVar5 = ov29_0234CA7C();
ov30_023829CC(uVar4,uVar5,uVar3);
ov29_022DDE00(0x10);
iVar7 = ov29_023537D8.v4;
iVar7[0x1b].v0xc = 1;
while (ov29_023537D8.v4[0x1b].v0xc != 0)
{
ov29_022DDEF8();
}
ov30_02382C30();
ov29_0234CACC();
ov29_022DDE00(2);
StartFadeDungeonWrapper(2,0x4000,0);
ov29_0234C738(0);
_0234beb8:
ov29_022DC65C();
ov29_023537D8.v4[0x1b].v0xd = 1;
do
{
ov29_022DDEF8();
} while( TRUE );
}