mirror of
https://github.com/pret/pmd-red.git
synced 2026-09-08 17:15:51 -05:00
DungeonSetupSubstruct
This commit is contained in:
@@ -7,7 +7,8 @@
|
||||
#include "structs/str_pokemon.h"
|
||||
#include "structs/str_wonder_mail.h"
|
||||
|
||||
typedef struct DungeonSetupInfo
|
||||
// Apparently used in Dungeon and World Map SetUp Structs
|
||||
typedef struct DungeonSetupSubstruct
|
||||
{
|
||||
DungeonLocation unk0;
|
||||
u8 unk4;
|
||||
@@ -20,6 +21,11 @@ typedef struct DungeonSetupInfo
|
||||
u8 unkB;
|
||||
u8 unkC;
|
||||
u8 unkD;
|
||||
} DungeonSetupSubstruct;
|
||||
|
||||
typedef struct DungeonSetupInfo
|
||||
{
|
||||
DungeonSetupSubstruct sub0; // TODO: find a better name
|
||||
DungeonMailSeed dungeonSeed;
|
||||
PokemonStruct1 unk18;
|
||||
u8 *unk74;
|
||||
|
||||
@@ -759,7 +759,7 @@ const char *sub_80990B8(void)
|
||||
static inline bool8 sub_80990EC_sub(struct DungeonSetupInfo *iVar1, u32 iVar2)
|
||||
{
|
||||
bool8 flag = FALSE;
|
||||
iVar1->unkB = 0;
|
||||
iVar1->sub0.unkB = 0;
|
||||
|
||||
if ((u16)(iVar2 - 0x25) < 3)
|
||||
flag = TRUE;
|
||||
@@ -775,21 +775,20 @@ u8 sub_80990EC(struct DungeonSetupInfo *param_1, s16 param_2)
|
||||
const DungeonInfo *iVar1;
|
||||
u8 auStack_98 [24];
|
||||
u8 nameBuffer [24];
|
||||
u8 r5;
|
||||
u8 dungeonIndex;
|
||||
|
||||
iVar1 = GetDungeonInfo_80A2608(param_2);
|
||||
dungeonIndex = iVar1->dungeonIndex;
|
||||
r5 = 0;
|
||||
param_1->unk0.id = dungeonIndex;
|
||||
param_1->unk0.floor = 1;
|
||||
param_1->unkC = r5;
|
||||
|
||||
param_1->sub0.unk0.id = dungeonIndex;
|
||||
param_1->sub0.unk0.floor = 1;
|
||||
param_1->sub0.unkC = 0;
|
||||
|
||||
switch(sub_80A2750(param_2))
|
||||
{
|
||||
case 1:
|
||||
if (sub_80990EC_sub(param_1, param_2)) {
|
||||
param_1->unkC = 1;
|
||||
param_1->sub0.unkC = 1;
|
||||
sub_80A8EC0(auStack_98, 0x5b);
|
||||
BoundedCopyStringtoBuffer(nameBuffer, auStack_98, POKEMON_NAME_LENGTH);
|
||||
{
|
||||
@@ -813,14 +812,14 @@ u8 sub_80990EC(struct DungeonSetupInfo *param_1, s16 param_2)
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
param_1->unkB = 0;
|
||||
param_1->sub0.unkB = 0;
|
||||
break;
|
||||
case 2:
|
||||
param_1->unkB = 2;
|
||||
param_1->sub0.unkB = 2;
|
||||
break;
|
||||
}
|
||||
param_1->unk4 = 0;
|
||||
param_1->unkD = 0;
|
||||
param_1->sub0.unk4 = 0;
|
||||
param_1->sub0.unkD = 0;
|
||||
return iVar1->unk11;
|
||||
}
|
||||
|
||||
@@ -862,8 +861,8 @@ void sub_809927C(u8 param_1)
|
||||
SetScriptVarValue(0x0,DUNGEON_ENTER,0x50);
|
||||
SetScriptVarValue(0x0,DUNGEON_ENTER_INDEX,gUnknown_2039950);
|
||||
sub_8095494(&gUnknown_20398C8.dungeonSeed,param_1);
|
||||
gUnknown_20398C8.unkB = 1;
|
||||
gUnknown_20398C8.unkC = 0;
|
||||
gUnknown_20398C8.unk4 = 0;
|
||||
gUnknown_20398C8.unkD = 0;
|
||||
gUnknown_20398C8.sub0.unkB = 1;
|
||||
gUnknown_20398C8.sub0.unkC = 0;
|
||||
gUnknown_20398C8.sub0.unk4 = 0;
|
||||
gUnknown_20398C8.sub0.unkD = 0;
|
||||
}
|
||||
|
||||
@@ -1040,7 +1040,7 @@ s16 HandleAction(Action *action, DebugLocation *debug)
|
||||
s32 val;
|
||||
sub_8099220(&unkStruct, dungeonEnter);
|
||||
val = sub_80023E4(6);
|
||||
res = sub_809034C(unkStruct.unk0.id, 0, gUnknown_203B4B0, val, 0);
|
||||
res = sub_809034C(unkStruct.sub0.unk0.id, 0, gUnknown_203B4B0, val, 0);
|
||||
gUnknown_2039DA4 = res;
|
||||
switch (res) {
|
||||
case 2: {
|
||||
|
||||
@@ -45,6 +45,7 @@
|
||||
#include "text_2.h"
|
||||
#include "text_3.h"
|
||||
#include "text_util.h"
|
||||
#include "structs/str_dungeon_setup.h"
|
||||
|
||||
typedef struct unkTalkTable
|
||||
{
|
||||
@@ -71,7 +72,7 @@ static void LoadTitleScreen(void);
|
||||
static void NDS_LoadOverlay_GroundMain();
|
||||
static u32 sub_80009D0(u32 param_1);
|
||||
/* static */ // TODO: Uncomment
|
||||
void sub_80011E8(u8 *param_1);
|
||||
void sub_80011E8(DungeonSetupSubstruct *info);
|
||||
static void LoadAndRunDungeon_Async(DungeonSetupStruct *r0);
|
||||
/* static */ // TODO: Uncomment
|
||||
u32 xxx_script_related_8001334(u32 r0);
|
||||
@@ -1234,7 +1235,7 @@ void LoadAndRunQuickSaveDungeon_Async(DungeonSetupStruct *param_1)
|
||||
param_1->info.unk74 = MemoryAlloc(local_1c, 7); // size: 0x4800
|
||||
param_1->info.unk78 = MemoryAlloc(local_18, 7); // size: sizeof(Dungeon)
|
||||
|
||||
if (param_1->info.unk4) {
|
||||
if (param_1->info.sub0.unk4) {
|
||||
PrepareQuickSaveRead(param_1->info.unk74, local_1c);
|
||||
|
||||
while (TRUE) {
|
||||
@@ -1375,35 +1376,33 @@ u8 sub_8001170(void)
|
||||
|
||||
// arm9.bin::0200CDA4
|
||||
/* static */ // TODO: Uncomment
|
||||
void sub_80011CC(u8 *param_1, u8 param_2)
|
||||
void sub_80011CC(DungeonSetupSubstruct *info, u8 dungId)
|
||||
{
|
||||
u32 zero = 0;
|
||||
info->unk0.id = dungId;
|
||||
info->unk0.floor = 0;
|
||||
|
||||
param_1[0] = param_2;
|
||||
param_1[1] = zero;
|
||||
sub_80011E8(info);
|
||||
|
||||
sub_80011E8(param_1);
|
||||
|
||||
param_1[11] = 0;
|
||||
param_1[4] = 0;
|
||||
param_1[12] = 0;
|
||||
param_1[13] = 0;
|
||||
info->unkB = 0;
|
||||
info->unk4 = 0;
|
||||
info->unkC = 0;
|
||||
info->unkD = 0;
|
||||
}
|
||||
|
||||
// arm9.bin::0200CD1C
|
||||
/* static */ // TODO: Uncomment
|
||||
void sub_80011E8(u8 *param_1)
|
||||
void sub_80011E8(DungeonSetupSubstruct *info)
|
||||
{
|
||||
param_1[5] = sub_80023E4(8);
|
||||
param_1[6] = sub_80023E4(3);
|
||||
param_1[8] = sub_80023E4(7);
|
||||
param_1[9] = sub_80023E4(0);
|
||||
param_1[10] = sub_80023E4(5);
|
||||
info->unk5 = sub_80023E4(8);
|
||||
info->unk6 = sub_80023E4(3);
|
||||
info->unk8 = sub_80023E4(7);
|
||||
info->unk9 = sub_80023E4(0);
|
||||
info->unkA = sub_80023E4(5);
|
||||
|
||||
if (sub_80023E4(24) && sub_80023E4(25) && sub_80023E4(26))
|
||||
param_1[7] = 1;
|
||||
info->unk7 = 1;
|
||||
else
|
||||
param_1[7] = 0;
|
||||
info->unk7 = 0;
|
||||
}
|
||||
|
||||
// arm9.bin::0200CC4C
|
||||
|
||||
Reference in New Issue
Block a user