Luminous Cave data

This commit is contained in:
Kermalis
2023-09-14 23:55:49 -04:00
parent 7de83b9dc3
commit 7e713ef0eb
10 changed files with 340 additions and 359 deletions

View File

@@ -370,44 +370,4 @@ gUnknown_80DC9C8: @ 80DC9C8
.byte 0x02, 0x00, 0x02, 0x00
.byte 0x12, 0x00, 0x0e, 0x00
.byte 0x12, 0x00, 0x02, 0x00
.byte 0x00, 0x00, 0x00, 0x00
@ luminous_cave
.string "pksdir0\0"
.align 2,0
.global gUnknown_80DC9E8
gUnknown_80DC9E8: @ 80DC9E8
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80DCA00
gUnknown_80DCA00: @ 80DCA00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x14, 0x00, 0x04, 0x00
.byte 0x06, 0x00, 0x03, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80DCA18
gUnknown_80DCA18: @ 80DCA18
.string "Evolve\0"
.align 2,0
.4byte gUnknown_80DCA18
.global gUnknown_80DCA24
gUnknown_80DCA24: @ 80DCA24
.string "No\0"
.align 2,0
.4byte gUnknown_80DCA24
.global gUnknown_80DCA2C
gUnknown_80DCA2C: @ 80DCA2C
.string "Yes\0"
.align 2,0
.4byte gUnknown_80DCA2C
.byte 0x00, 0x00, 0x00, 0x00

View File

@@ -2,6 +2,7 @@
#define GUARD_CODE_8098BDC_H
// code_8098DBC.s
extern void nullsub_104(void);
extern void sub_80993D8(void);
extern void sub_80993E4(void);
extern void sub_8099690(u32);

View File

@@ -7,21 +7,21 @@
#include "pokemon_3.h"
#include "text.h"
struct unkStruct_203B2B0
// size: 0x174
typedef struct LuminousCaveWork
{
// size: 0x174
bool8 evolutionComplete;
EvolveStatus evolveStatus;
PokemonStruct1 *pokeStruct;
/* 0x0 */ bool8 evolutionComplete;
/* 0x4 */ EvolveStatus evolveStatus;
/* 0xC */ PokemonStruct1 *pokeStruct;
/* 0x10 */ bool8 pokeRenamed;
/* 0x14 */ u32 evoItem1_InvIndex; // inventory index of item
/* 0x18 */ u32 evoItem2_InvIndex; // inventory index of item
Item chosenItem;
u32 state;
u32 fallbackState;
u32 menuAction1;
u32 menuAction2;
u32 menuAction3;
/* 0x1C */ Item chosenItem;
/* 0x20 */ u32 state;
/* 0x24 */ u32 fallbackState;
/* 0x28 */ u32 menuAction1;
/* 0x2C */ u32 menuAction2;
/* 0x30 */ u32 menuAction3;
MenuItem unk34[8];
u16 unk74[0x8];
MenuStruct unk84;
@@ -34,7 +34,7 @@ struct unkStruct_203B2B0
u8 unk111;
u8 unk112;
UnkTextStruct2 unk114[4];
};
} LuminousCaveWork;
void CleanLuminousCave(void);
bool8 HasEvolutionCompleted(void);
@@ -42,4 +42,4 @@ bool8 HasEvolutionCompleted(void);
u32 sub_802465C(void);
u32 sub_80246F0(void);
#endif // GUARD_LUMINOUS_CAVE_H
#endif // GUARD_LUMINOUS_CAVE_H

View File

@@ -45,4 +45,4 @@ typedef struct unkStructFor8013AA0
SpriteOAM unk28;
} unkStructFor8013AA0;
#endif // GUARD_MENU_H
#endif // GUARD_MENU_H

View File

@@ -3,13 +3,14 @@
#include "pokemon.h"
// size: 0x8
typedef struct EvolveStatus
{
u8 evoItem1;
u8 evoItem2;
u8 unk6;
u16 evolutionConditionStatus;
s16 targetEvolveSpecies;
/* 0x0 */ u8 evoItem1;
/* 0x1 */ u8 evoItem2;
/* 0x2 */ u8 unk6;
/* 0x4 */ u16 evolutionConditionStatus;
/* 0x6 */ s16 targetEvolveSpecies;
} EvolveStatus;
bool8 HasRecruitedMon(s16 species);
@@ -29,4 +30,4 @@ void SetDefaultIQSkills(u8 *param_1, bool8 enableSelfCurer);
void sub_808F468(PokemonStruct1 *param_1, EvolveStatus *evolveStatus, u8 param_3);
u32 sub_808F734(PokemonStruct1 *pokemon, s16 _species);
#endif
#endif // GUARD_POKEMON_3_H

View File

@@ -1,106 +1,137 @@
ALIGNED(4) static const u8 sLuminousCaveSeekAwakening[] = _(
"{CENTER_ALIGN}...{WAIT_PRESS}A voice emanates from somewhere...{EXTRA_MSG}"
"{CENTER_ALIGN}...Ye who seek awakening...{EXTRA_MSG}"
"{CENTER_ALIGN}This is Luminous Cave.{WAIT_PRESS}\n"
"{CENTER_ALIGN}Do ye seek a new evolution?");
ALIGNED(4) static const u8 sFill[] = _("pksdir0");
ALIGNED(4) static const u8 sLuminousCaveAskEvolution[] = _(
"{CENTER_ALIGN}Do ye seek evolution?");
// TODO: Add "$n0" to charmap
ALIGNED(4) static const u8 sLuminousCaveEvolutionInfo[] = _(
"{CENTER_ALIGN}There are those among Pokémon\n"
"{CENTER_ALIGN}that can evolve.{EXTRA_MSG}"
"{CENTER_ALIGN}Such Pokémon can evolve at this very\n"
"{CENTER_ALIGN}spot if they satisfy certain conditions.{EXTRA_MSG}"
"{CENTER_ALIGN}Evolution brings about changes\n"
"{CENTER_ALIGN}in appearance and abilities.{EXTRA_MSG}"
"{CENTER_ALIGN}Not only that{COMMA} some Pokémon even change\n"
"{CENTER_ALIGN}type and learn different moves.{EXTRA_MSG}"
"{CENTER_ALIGN}However...{WAIT_PRESS} The requirements for\n"
"{CENTER_ALIGN}evolution differ among Pokémon.{EXTRA_MSG}"
"{CENTER_ALIGN}Some become ready for evolution\n"
"{CENTER_ALIGN}merely by leveling up.{EXTRA_MSG}"
"{CENTER_ALIGN}Still others may need special items\n"
"{CENTER_ALIGN}to attain evolution.{EXTRA_MSG}"
"{CENTER_ALIGN}Ye must also be aware of this:{EXTRA_MSG}"
"{CENTER_ALIGN}Once it has evolved{COMMA} a Pokémon\n"
"{CENTER_ALIGN}can never regain its previous form.{EXTRA_MSG}"
"{CENTER_ALIGN}That is why ye must think carefully\n"
"{CENTER_ALIGN}before committing to evolution.");
static const UnkTextStruct2 sUnknown_80DC9E8 = {
0, 0, 0, 0,
3,
0, 0,
0, 0,
0, 0,
NULL
};
ALIGNED(4) static const u8 sLuminousCaveYeShallReturn[] = _(
"{CENTER_ALIGN}Ye shall return if evolution\n"
"{CENTER_ALIGN}is what ye seek...");
static const UnkTextStruct2 sUnknown_80DCA00 = {
0, 0, 0, 0,
3,
20, 4,
6, 3,
3, 0,
NULL
};
ALIGNED(4) static const u8 sLuminousCaveGiveItem[] = _(
"{CENTER_ALIGN}Will ye give an item for evolution?");
ALIGNED(4) static const u8 sEvolve0[] = _("Evolve");
UNUSED ALIGNED(4) const u8* const sEvolve[] = { sEvolve0 };
ALIGNED(4) static const u8 sLuminousCaveGiveAnotherItem[] = _(
"{CENTER_ALIGN}Will ye give yet another item?");
ALIGNED(4) static const u8 sNo0[] = _("No");
UNUSED ALIGNED(4) const u8* const sNo[] = { sNo0 };
ALIGNED(4) static const u8 sLuminousCaveLackWhatIsNeeded[] = _(
"{CENTER_ALIGN}Alas{COMMA} ye seem to lack what is needed\n"
"{CENTER_ALIGN}for evolution.");
ALIGNED(4) static const u8 sYes0[] = _("Yes");
UNUSED ALIGNED(4) const u8* const sYes[] = { sYes0 };
ALIGNED(4) static const u8 sLuminousCaveOnlyOneItem[] = _(
"{CENTER_ALIGN}Ye seem to have but one item.");
ALIGNED(4) static const u8 sSeekEvolutionIntro[] = _(
"{CENTER_ALIGN}...{WAIT_PRESS}A voice emanates from somewhere...{EXTRA_MSG}"
"{CENTER_ALIGN}...Ye who seek awakening...{EXTRA_MSG}"
"{CENTER_ALIGN}This is Luminous Cave.{WAIT_PRESS}\n"
"{CENTER_ALIGN}Do ye seek a new evolution?");
ALIGNED(4) static const u8 sLuminousCaveLetUsBegin[] = _(
"{CENTER_ALIGN}...Ye who seek awakening...\n"
"{CENTER_ALIGN}Let us begin.");
ALIGNED(4) static const u8 sSeekEvolutionPrompt[] = _(
"{CENTER_ALIGN}Do ye seek evolution?");
ALIGNED(4) static const u8 sLuminousCaveChangedAppearance[] = _(
"{CENTER_ALIGN}...{WAIT_PRESS}$n0 is undergoing changes...{EXTRA_MSG}"
"{CENTER_ALIGN}$n0{APOSTROPHE}s appearance changed...{EXTRA_MSG}");
ALIGNED(4) static const u8 sEvolveInfo[] = _(
"{CENTER_ALIGN}There are those among Pokémon\n"
"{CENTER_ALIGN}that can evolve.{EXTRA_MSG}"
"{CENTER_ALIGN}Such Pokémon can evolve at this very\n"
"{CENTER_ALIGN}spot if they satisfy certain conditions.{EXTRA_MSG}"
"{CENTER_ALIGN}Evolution brings about changes\n"
"{CENTER_ALIGN}in appearance and abilities.{EXTRA_MSG}"
"{CENTER_ALIGN}Not only that{COMMA} some Pokémon even change\n"
"{CENTER_ALIGN}type and learn different moves.{EXTRA_MSG}"
"{CENTER_ALIGN}However...{WAIT_PRESS} The requirements for\n"
"{CENTER_ALIGN}evolution differ among Pokémon.{EXTRA_MSG}"
"{CENTER_ALIGN}Some become ready for evolution\n"
"{CENTER_ALIGN}merely by leveling up.{EXTRA_MSG}"
"{CENTER_ALIGN}Still others may need special items\n"
"{CENTER_ALIGN}to attain evolution.{EXTRA_MSG}"
"{CENTER_ALIGN}Ye must also be aware of this:{EXTRA_MSG}"
"{CENTER_ALIGN}Once it has evolved{COMMA} a Pokémon\n"
"{CENTER_ALIGN}can never regain its previous form.{EXTRA_MSG}"
"{CENTER_ALIGN}That is why ye must think carefully\n"
"{CENTER_ALIGN}before committing to evolution.");
ALIGNED(4) static const u8 sLuminousCaveEvolved[] = _(
"{CENTER_ALIGN}It evolved from {COLOR_1 GREEN}{ARG_POKEMON_0}{END_COLOR_TEXT_1}\n"
"{CENTER_ALIGN}to {COLOR_1 YELLOW}{ARG_POKEMON_1}{END_COLOR_TEXT_1}!");
ALIGNED(4) static const u8 sYeShallReturn[] = _(
"{CENTER_ALIGN}Ye shall return if evolution\n"
"{CENTER_ALIGN}is what ye seek...");
ALIGNED(4) static const u8 sLuminousCaveComeAlone[] = _(
"{CENTER_ALIGN}...{EXTRA_MSG}"
"{CENTER_ALIGN}One cannot evolve if one\n"
"{CENTER_ALIGN}is in the company of others.{EXTRA_MSG}"
"{CENTER_ALIGN}Come alone if ye wish to evolve.");
ALIGNED(4) static const u8 sGiveItemPrompt[] = _(
"{CENTER_ALIGN}Will ye give an item for evolution?");
ALIGNED(4) static const u8 sLuminousCaveLackLevel[] = _(
"{CENTER_ALIGN}...{EXTRA_MSG}"
"{CENTER_ALIGN}Ye cannot evolve yet.{EXTRA_MSG}"
"{CENTER_ALIGN}Ye have not high enough a level.");
ALIGNED(4) static const u8 sGiveAnotherItemPrompt[] = _(
"{CENTER_ALIGN}Will ye give yet another item?");
ALIGNED(4) static const u8 sLuminousCaveCantEvolveAnymore[] = _(
"{CENTER_ALIGN}...{EXTRA_MSG}"
"{CENTER_ALIGN}Ye cannot evolve anymore.");
ALIGNED(4) static const u8 sLackWhatIsNeeded[] = _(
"{CENTER_ALIGN}Alas{COMMA} ye seem to lack what is needed\n"
"{CENTER_ALIGN}for evolution.");
ALIGNED(4) static const u8 sLuminousCaveLackFriendArea[] = _(
"{CENTER_ALIGN}...{EXTRA_MSG}"
"{CENTER_ALIGN}Ye cannot evolve yet.{EXTRA_MSG}"
"{CENTER_ALIGN}Ye need your Friend Area to evolve.");
ALIGNED(4) static const u8 sOnlyOneItem[] = _(
"{CENTER_ALIGN}Ye seem to have but one item.");
ALIGNED(4) static const u8 sLuminousCaveLackRoom[] = _(
"{CENTER_ALIGN}...{EXTRA_MSG}"
"{CENTER_ALIGN}Ye cannot evolve yet.{EXTRA_MSG}"
"{CENTER_ALIGN}The Friend Area to which ye shall go\n"
"{CENTER_ALIGN}has no room for ye.");
ALIGNED(4) static const u8 sLetUsBegin[] = _(
"{CENTER_ALIGN}...Ye who seek awakening...\n"
"{CENTER_ALIGN}Let us begin.");
ALIGNED(4) static const u8 sLuminousCaveLackIQ[] = _(
"{CENTER_ALIGN}...{EXTRA_MSG}"
"{CENTER_ALIGN}Ye cannot evolve yet.{EXTRA_MSG}"
"{CENTER_ALIGN}Ye seem to lack the IQ to evolve.");
ALIGNED(4) static const u8 sFmtChangedAppearance[] = _(
"{CENTER_ALIGN}...{WAIT_PRESS}$n0 is undergoing changes...{EXTRA_MSG}"
"{CENTER_ALIGN}$n0{APOSTROPHE}s appearance changed...{EXTRA_MSG}");
ALIGNED(4) static const u8 sLuminousCaveLackItem[] = _(
"{CENTER_ALIGN}{CENTER_ALIGN}...{EXTRA_MSG}"
"{CENTER_ALIGN}Ye cannot evolve yet.{EXTRA_MSG}"
"{CENTER_ALIGN}Ye seem to lack an item to evolve.");
ALIGNED(4) static const u8 sFmtEvolved[] = _(
"{CENTER_ALIGN}It evolved from {COLOR_1 GREEN}{ARG_POKEMON_0}{END_COLOR_TEXT_1}\n"
"{CENTER_ALIGN}to {COLOR_1 YELLOW}{ARG_POKEMON_1}{END_COLOR_TEXT_1}!");
ALIGNED(4) static const u8 sLuminousCaveCantEvolveYet[] = _(
"{CENTER_ALIGN}{CENTER_ALIGN}...{EXTRA_MSG}"
"{CENTER_ALIGN}Ye cannot evolve yet. ");
ALIGNED(4) static const u8 sComeAlone[] = _(
"{CENTER_ALIGN}...{EXTRA_MSG}"
"{CENTER_ALIGN}One cannot evolve if one\n"
"{CENTER_ALIGN}is in the company of others.{EXTRA_MSG}"
"{CENTER_ALIGN}Come alone if ye wish to evolve.");
ALIGNED(4) static const u8 sLuminousCaveGiveName[] = _(
"{CENTER_ALIGN}Ye must give a name to\n"
"{CENTER_ALIGN}the evolved Pokémon. ");
ALIGNED(4) static const u8 sLackLevel[] = _(
"{CENTER_ALIGN}...{EXTRA_MSG}"
"{CENTER_ALIGN}Ye cannot evolve yet.{EXTRA_MSG}"
"{CENTER_ALIGN}Ye have not high enough a level.");
ALIGNED(4) static const u8 sFill1[] = "pksdir0";
// TODO: This may be for the file after, which has no data?
ALIGNED(4) static const u8 sFill2[] = "pksdir0";
ALIGNED(4) static const u8 sNoMoreEvolutions[] = _(
"{CENTER_ALIGN}...{EXTRA_MSG}"
"{CENTER_ALIGN}Ye cannot evolve anymore.");
ALIGNED(4) static const u8 sLackFriendArea[] = _(
"{CENTER_ALIGN}...{EXTRA_MSG}"
"{CENTER_ALIGN}Ye cannot evolve yet.{EXTRA_MSG}"
"{CENTER_ALIGN}Ye need your Friend Area to evolve.");
ALIGNED(4) static const u8 sLackFriendAreaRoom[] = _(
"{CENTER_ALIGN}...{EXTRA_MSG}"
"{CENTER_ALIGN}Ye cannot evolve yet.{EXTRA_MSG}"
"{CENTER_ALIGN}The Friend Area to which ye shall go\n"
"{CENTER_ALIGN}has no room for ye.");
ALIGNED(4) static const u8 sLackIQ[] = _(
"{CENTER_ALIGN}...{EXTRA_MSG}"
"{CENTER_ALIGN}Ye cannot evolve yet.{EXTRA_MSG}"
"{CENTER_ALIGN}Ye seem to lack the IQ to evolve.");
ALIGNED(4) static const u8 sLackItem[] = _(
"{CENTER_ALIGN}{CENTER_ALIGN}...{EXTRA_MSG}"
"{CENTER_ALIGN}Ye cannot evolve yet.{EXTRA_MSG}"
"{CENTER_ALIGN}Ye seem to lack an item to evolve.");
ALIGNED(4) static const u8 sCannotEvolveYet[] = _(
"{CENTER_ALIGN}{CENTER_ALIGN}...{EXTRA_MSG}"
"{CENTER_ALIGN}Ye cannot evolve yet. ");
ALIGNED(4) static const u8 sMustGiveName[] = _(
"{CENTER_ALIGN}Ye must give a name to\n"
"{CENTER_ALIGN}the evolved Pokémon. ");
// TODO: These are for 2 files after, which have no data
ALIGNED(4) static const u8 sFill1[] = _("pksdir0");
ALIGNED(4) static const u8 sFill2[] = _("pksdir0");

View File

@@ -46,7 +46,6 @@ extern u8 sub_8027DCC(PokemonStruct1 *);
extern void SetFriendAreaActionMenuState(u32);
extern void PlaySound(u32);
extern void nullsub_104();
extern void sub_808D31C(PokemonStruct1 *);
extern PokemonStruct1 *sub_808D3F8(void);

View File

@@ -59,7 +59,6 @@ EWRAM_DATA_2 unkStruct_203B2B4 *gUnknown_203B2B4 = {0};
extern s16 sub_80A5728(void);
extern u8 sub_8002658(s16);
extern bool8 sub_8024108(u32);
extern void nullsub_104(void);
extern void sub_808ED00(void);
extern u32 sub_80244E4(void);

View File

@@ -21,44 +21,6 @@
#include "text1.h"
#include "text2.h"
extern u8 gAvailablePokemonNames[]; // 202DF98
extern u8 gPlayerName[]; // 202E2B8
static EWRAM_DATA_2 struct unkStruct_203B2B0 *sUnknown_203B2B0 = {0};
extern const UnkTextStruct2 gUnknown_80DC9E8;
extern const UnkTextStruct2 gUnknown_80DCA00;
extern const u8 gUnknown_80DCA18[];
extern const u8 gUnknown_80DCA24[];
extern const u8 gUnknown_80DCA2C[];
#include "data/luminous_cave.h"
// code_8098BDC.s
extern void nullsub_104(void);
static void LuminousCave_AdvancetoFallbackState(void);
static bool8 LuminousCave_HasOnly1Member(void);
static void UpdateLuminousCaveDialogue(void);
static void UpdateLuminousCaveState(u32);
static void sub_8024804(void);
static void sub_8024CFC(void);
static void sub_8024D48(void);
static void sub_8024DBC(void);
static void sub_8024E30(void);
static void sub_8024E9C(void);
static void sub_8024F00(void);
static void sub_8024F70(void);
static void sub_8024FD4(void);
static void sub_8025058(void);
static void sub_80250EC(void);
static void sub_802515C(void);
static void sub_80251CC(void);
static void sub_80251E8(void);
static void sub_8025204(void);
static void sub_8025254(void);
enum
{
LUMINOUS_CAVE_ENTRY,
@@ -87,34 +49,63 @@ enum
LUMINOUS_CAVE_CANT_EVOLVE_YET,
};
extern u8 gAvailablePokemonNames[]; // 202DF98
extern u8 gPlayerName[]; // 202E2B8
static EWRAM_DATA_2 LuminousCaveWork *sLuminousCaveWork = {0};
#include "data/luminous_cave.h"
static void LuminousCave_AdvancetoFallbackState(void);
static bool8 LuminousCave_HasOnly1Member(void);
static void UpdateLuminousCaveDialogue(void);
static void UpdateLuminousCaveState(u32);
static void sub_8024804(void);
static void sub_8024CFC(void);
static void sub_8024D48(void);
static void sub_8024DBC(void);
static void sub_8024E30(void);
static void sub_8024E9C(void);
static void sub_8024F00(void);
static void sub_8024F70(void);
static void sub_8024FD4(void);
static void sub_8025058(void);
static void sub_80250EC(void);
static void sub_802515C(void);
static void sub_80251CC(void);
static void sub_80251E8(void);
static void sub_8025204(void);
static void sub_8025254(void);
u32 sub_802465C(void)
{
OpenedFile *faceFile;
ResetUnusedInputStruct();
sub_800641C(NULL, TRUE, TRUE);
sUnknown_203B2B0 = MemoryAlloc(sizeof(struct unkStruct_203B2B0), 8);
sUnknown_203B2B0->menuAction1 = 0;
sUnknown_203B2B0->menuAction2 = 0;
sUnknown_203B2B0->menuAction3 = 0;
sUnknown_203B2B0->pokeStruct = GetPlayerPokemonStruct();
sUnknown_203B2B0->pokeRenamed = IsPokemonRenamed(sUnknown_203B2B0->pokeStruct);
sUnknown_203B2B0->evolutionComplete = FALSE;
sLuminousCaveWork = MemoryAlloc(sizeof(LuminousCaveWork), 8);
sLuminousCaveWork->menuAction1 = 0;
sLuminousCaveWork->menuAction2 = 0;
sLuminousCaveWork->menuAction3 = 0;
sLuminousCaveWork->pokeStruct = GetPlayerPokemonStruct();
sLuminousCaveWork->pokeRenamed = IsPokemonRenamed(sLuminousCaveWork->pokeStruct);
sLuminousCaveWork->evolutionComplete = FALSE;
faceFile = GetDialogueSpriteDataPtr(MONSTER_GULPIN);
sUnknown_203B2B0->unk104 = faceFile;
sUnknown_203B2B0->unk108 = faceFile->data;
sUnknown_203B2B0->unk110 = 0;
sUnknown_203B2B0->unk111 = 0;
sUnknown_203B2B0->unk112 = 0;
sUnknown_203B2B0->unk10C = 2;
sUnknown_203B2B0->unk10E = 8;
sLuminousCaveWork->unk104 = faceFile;
sLuminousCaveWork->unk108 = faceFile->data;
sLuminousCaveWork->unk110 = 0;
sLuminousCaveWork->unk111 = 0;
sLuminousCaveWork->unk112 = 0;
sLuminousCaveWork->unk10C = 2;
sLuminousCaveWork->unk10E = 8;
UpdateLuminousCaveState(LUMINOUS_CAVE_ENTRY);
return TRUE;
}
u32 sub_80246F0(void)
{
switch (sUnknown_203B2B0->state) {
switch (sLuminousCaveWork->state) {
case LUMINOUS_CAVE_ENTRY:
case LUMINOUS_CAVE_ASK_EVOLVE:
sub_8024E9C();
@@ -159,21 +150,21 @@ u32 sub_80246F0(void)
bool8 HasEvolutionCompleted(void)
{
return sUnknown_203B2B0->evolutionComplete;
return sLuminousCaveWork->evolutionComplete;
}
void CleanLuminousCave(void)
{
if (sUnknown_203B2B0 != NULL) {
CloseFile(sUnknown_203B2B0->unk104);
MemoryFree(sUnknown_203B2B0);
sUnknown_203B2B0 = NULL;
if (sLuminousCaveWork != NULL) {
CloseFile(sLuminousCaveWork->unk104);
MemoryFree(sLuminousCaveWork);
sLuminousCaveWork = NULL;
}
}
static void UpdateLuminousCaveState(u32 newState)
{
sUnknown_203B2B0->state = newState;
sLuminousCaveWork->state = newState;
sub_8024804();
UpdateLuminousCaveDialogue();
}
@@ -182,12 +173,12 @@ static void sub_8024804(void)
{
s32 i;
sub_8006518(sUnknown_203B2B0->unk114);
sub_8006518(sLuminousCaveWork->unk114);
switch (sUnknown_203B2B0->state) {
switch (sLuminousCaveWork->state) {
case 8:
case 13:
sUnknown_203B2B0->unk114[2] = gUnknown_80DCA00;
sLuminousCaveWork->unk114[2] = sUnknown_80DCA00;
break;
case LUMINOUS_CAVE_LET_US_BEGIN:
case LUMINOUS_CAVE_CHANGED_APPEARANCE:
@@ -202,44 +193,44 @@ static void sub_8024804(void)
break;
default:
for (i = 0; i < 4; i++)
sUnknown_203B2B0->unk114[i] = gUnknown_80DC9E8;
sLuminousCaveWork->unk114[i] = sUnknown_80DC9E8;
break;
}
ResetUnusedInputStruct();
sub_800641C(sUnknown_203B2B0->unk114, TRUE, TRUE);
sub_800641C(sLuminousCaveWork->unk114, TRUE, TRUE);
}
static void UpdateLuminousCaveDialogue(void)
{
u8 *monName;
switch (sUnknown_203B2B0->state) {
switch (sLuminousCaveWork->state) {
case LUMINOUS_CAVE_ENTRY:
if (LuminousCave_HasOnly1Member())
sUnknown_203B2B0->menuAction1 = 3;
sLuminousCaveWork->menuAction1 = 3;
else
sUnknown_203B2B0->menuAction1 = 1;
sLuminousCaveWork->menuAction1 = 1;
sub_8024CFC();
sub_8014248(sLuminousCaveSeekAwakening,0,sUnknown_203B2B0->menuAction1,sUnknown_203B2B0->unk34,sUnknown_203B2B0->unk74,4,0,0,5);
sub_8014248(sSeekEvolutionIntro,0,sLuminousCaveWork->menuAction1,sLuminousCaveWork->unk34,sLuminousCaveWork->unk74,4,0,0,5);
break;
case LUMINOUS_CAVE_ASK_EVOLVE:
sub_8024CFC();
sub_8014248(sLuminousCaveAskEvolution,0,sUnknown_203B2B0->menuAction1,sUnknown_203B2B0->unk34,sUnknown_203B2B0->unk74,4,0,0,5);
sub_8014248(sSeekEvolutionPrompt,0,sLuminousCaveWork->menuAction1,sLuminousCaveWork->unk34,sLuminousCaveWork->unk74,4,0,0,5);
break;
case LUMINOUS_CAVE_EVOLVE_INFO:
sUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_ASK_EVOLVE;
sub_80141B4(sLuminousCaveEvolutionInfo,0,0,0x105);
sLuminousCaveWork->fallbackState = LUMINOUS_CAVE_ASK_EVOLVE;
sub_80141B4(sEvolveInfo,0,0,0x105);
break;
case LUMINOUS_CAVE_SHALL_RETURN:
sUnknown_203B2B0->fallbackState = 4;
sLuminousCaveWork->fallbackState = 4;
xxx_call_fade_in_new_bgm(MUS_FILE_SELECT,0x3c);
sub_80141B4(sLuminousCaveYeShallReturn,0,0,0x305);
sub_80141B4(sYeShallReturn,0,0,0x305);
break;
case LUMINOUS_CAVE_GIVE_ITEM_1:
sub_8024D48();
sub_8014248(sLuminousCaveGiveItem,0,sUnknown_203B2B0->menuAction2,sUnknown_203B2B0->unk34,sUnknown_203B2B0->unk74,4,0,0,5);
sub_8014248(sGiveItemPrompt,0,sLuminousCaveWork->menuAction2,sLuminousCaveWork->unk34,sLuminousCaveWork->unk74,4,0,0,5);
break;
case 6:
sub_801A5D8(2,3,NULL,10);
@@ -249,132 +240,132 @@ static void UpdateLuminousCaveDialogue(void)
break;
case LUMINOUS_CAVE_GIVE_ITEM_2:
sub_8024DBC();
sub_8014248(sLuminousCaveGiveAnotherItem,0,sUnknown_203B2B0->menuAction2,sUnknown_203B2B0->unk34,sUnknown_203B2B0->unk74,4,0,0,5);
sub_8014248(sGiveAnotherItemPrompt,0,sLuminousCaveWork->menuAction2,sLuminousCaveWork->unk34,sLuminousCaveWork->unk74,4,0,0,5);
break;
case 11:
sub_801A5D8(2,3,NULL,10);
sub_801AEE4(sUnknown_203B2B0->evoItem1_InvIndex,1);
sub_801AEE4(sLuminousCaveWork->evoItem1_InvIndex,1);
sub_801A9E0();
break;
case 12:
sub_801A8D0(TRUE);
sub_801AEE4(sUnknown_203B2B0->evoItem1_InvIndex,1);
sub_801AEE4(sLuminousCaveWork->evoItem1_InvIndex,1);
sub_801A9E0();
break;
case 8:
case 13:
sub_801A9E0();
sub_8024E30();
sub_8012D60(&sUnknown_203B2B0->unk84,sUnknown_203B2B0->unk34,0,sUnknown_203B2B0->unk74,
sUnknown_203B2B0->menuAction3,2);
sub_8012D60(&sLuminousCaveWork->unk84,sLuminousCaveWork->unk34,0,sLuminousCaveWork->unk74,
sLuminousCaveWork->menuAction3,2);
break;
case 9:
case 14:
sub_801B3C0(&sUnknown_203B2B0->chosenItem);
sub_801B3C0(&sLuminousCaveWork->chosenItem);
break;
case LUMINOUS_CAVE_LACK_WHAT_NEEDED:
sUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_GIVE_ITEM_1;
sub_80141B4(sLuminousCaveLackWhatIsNeeded,0,0,0x105);
sLuminousCaveWork->fallbackState = LUMINOUS_CAVE_GIVE_ITEM_1;
sub_80141B4(sLackWhatIsNeeded,0,0,0x105);
break;
case LUMINOUS_CAVE_ONLY_ONE_ITEM:
sUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_GIVE_ITEM_2;
sub_80141B4(sLuminousCaveOnlyOneItem,0,0,0x105);
sLuminousCaveWork->fallbackState = LUMINOUS_CAVE_GIVE_ITEM_2;
sub_80141B4(sOnlyOneItem,0,0,0x105);
break;
case LUMINOUS_CAVE_LET_US_BEGIN:
sub_8025254();
if((sUnknown_203B2B0->evolveStatus.evolutionConditionStatus & EVOLUTION_GOOD))
sUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_CHANGED_APPEARANCE;
else if(sUnknown_203B2B0->evolveStatus.evolutionConditionStatus == EVOLUTION_NO_MORE)
sUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_CANT_EVOLVE_ANYMORE;
else if(sUnknown_203B2B0->evolveStatus.evolutionConditionStatus == EVOLUTION_LACK_LEVEL)
sUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_LACK_LEVEL;
else if(sUnknown_203B2B0->evolveStatus.evolutionConditionStatus == EVOLUTION_LACK_IQ)
sUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_LACK_IQ;
else if(sUnknown_203B2B0->evolveStatus.evolutionConditionStatus == EVOLUTION_LACK_FRIEND_AREA)
sUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_LACK_FRIEND_AREA;
else if(sUnknown_203B2B0->evolveStatus.evolutionConditionStatus == EVOLUTION_LACK_ROOM)
sUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_LACK_ROOM;
else if(sUnknown_203B2B0->evolveStatus.evolutionConditionStatus == EVOLUTION_LACK_ITEM)
sUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_LACK_ITEM;
if((sLuminousCaveWork->evolveStatus.evolutionConditionStatus & EVOLUTION_GOOD))
sLuminousCaveWork->fallbackState = LUMINOUS_CAVE_CHANGED_APPEARANCE;
else if(sLuminousCaveWork->evolveStatus.evolutionConditionStatus == EVOLUTION_NO_MORE)
sLuminousCaveWork->fallbackState = LUMINOUS_CAVE_CANT_EVOLVE_ANYMORE;
else if(sLuminousCaveWork->evolveStatus.evolutionConditionStatus == EVOLUTION_LACK_LEVEL)
sLuminousCaveWork->fallbackState = LUMINOUS_CAVE_LACK_LEVEL;
else if(sLuminousCaveWork->evolveStatus.evolutionConditionStatus == EVOLUTION_LACK_IQ)
sLuminousCaveWork->fallbackState = LUMINOUS_CAVE_LACK_IQ;
else if(sLuminousCaveWork->evolveStatus.evolutionConditionStatus == EVOLUTION_LACK_FRIEND_AREA)
sLuminousCaveWork->fallbackState = LUMINOUS_CAVE_LACK_FRIEND_AREA;
else if(sLuminousCaveWork->evolveStatus.evolutionConditionStatus == EVOLUTION_LACK_ROOM)
sLuminousCaveWork->fallbackState = LUMINOUS_CAVE_LACK_ROOM;
else if(sLuminousCaveWork->evolveStatus.evolutionConditionStatus == EVOLUTION_LACK_ITEM)
sLuminousCaveWork->fallbackState = LUMINOUS_CAVE_LACK_ITEM;
else
sUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_CANT_EVOLVE_YET;
sLuminousCaveWork->fallbackState = LUMINOUS_CAVE_CANT_EVOLVE_YET;
xxx_call_fade_out_bgm(0x3c);
sub_80141B4(sLuminousCaveLetUsBegin,0,0,0x105);
sub_80141B4(sLetUsBegin,0,0,0x105);
break;
case LUMINOUS_CAVE_CHANGED_APPEARANCE:
PrintColoredPokeNameToBuffer(gPlayerName,sUnknown_203B2B0->pokeStruct, COLOR_CYAN);
PrintColoredPokeNameToBuffer(gPlayerName,sLuminousCaveWork->pokeStruct, COLOR_CYAN);
PlaySound(0x1ff);
sUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_EVOLVED;
sub_80141B4(sLuminousCaveChangedAppearance,0,0,0x105);
sLuminousCaveWork->fallbackState = LUMINOUS_CAVE_EVOLVED;
sub_80141B4(sFmtChangedAppearance,0,0,0x105);
break;
case LUMINOUS_CAVE_EVOLVED:
monName = GetMonSpecies(sUnknown_203B2B0->pokeStruct->speciesNum);
monName = GetMonSpecies(sLuminousCaveWork->pokeStruct->speciesNum);
strcpy(gAvailablePokemonNames,monName);
monName = GetMonSpecies(sUnknown_203B2B0->evolveStatus.targetEvolveSpecies);
monName = GetMonSpecies(sLuminousCaveWork->evolveStatus.targetEvolveSpecies);
strcpy(gAvailablePokemonNames + 0x50,monName);
sUnknown_203B2B0->evolutionComplete = TRUE;
sLuminousCaveWork->evolutionComplete = TRUE;
sub_80977D0();
sub_808F734(sUnknown_203B2B0->pokeStruct,sUnknown_203B2B0->evolveStatus.targetEvolveSpecies);
sub_808F734(sLuminousCaveWork->pokeStruct,sLuminousCaveWork->evolveStatus.targetEvolveSpecies);
nullsub_104();
sUnknown_203B2B0->pokeStruct = GetPlayerPokemonStruct();
if (sUnknown_203B2B0->evoItem1_InvIndex != INVENTORY_SIZE) {
ClearItemSlotAt(sUnknown_203B2B0->evoItem1_InvIndex);
sLuminousCaveWork->pokeStruct = GetPlayerPokemonStruct();
if (sLuminousCaveWork->evoItem1_InvIndex != INVENTORY_SIZE) {
ClearItemSlotAt(sLuminousCaveWork->evoItem1_InvIndex);
}
if (sUnknown_203B2B0->evoItem2_InvIndex != INVENTORY_SIZE) {
ClearItemSlotAt(sUnknown_203B2B0->evoItem2_InvIndex);
if (sLuminousCaveWork->evoItem2_InvIndex != INVENTORY_SIZE) {
ClearItemSlotAt(sLuminousCaveWork->evoItem2_InvIndex);
}
FillInventoryGaps();
xxx_call_stop_fanfare_se(0x1ff);
PlaySound(0xd2);
if (sUnknown_203B2B0->pokeRenamed) {
BoundedCopyStringtoBuffer(sUnknown_203B2B0->pokeStruct->name,GetMonSpecies(sUnknown_203B2B0->pokeStruct->speciesNum),POKEMON_NAME_LENGTH);
if (sLuminousCaveWork->pokeRenamed) {
BoundedCopyStringtoBuffer(sLuminousCaveWork->pokeStruct->name,GetMonSpecies(sLuminousCaveWork->pokeStruct->speciesNum),POKEMON_NAME_LENGTH);
}
sUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_SHALL_RETURN;
sub_80141B4(sLuminousCaveEvolved,0,0,0x105);
sLuminousCaveWork->fallbackState = LUMINOUS_CAVE_SHALL_RETURN;
sub_80141B4(sFmtEvolved,0,0,0x105);
break;
case LUMINOUS_CAVE_COME_ALONE:
sUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_SHALL_RETURN;
sub_80141B4(sLuminousCaveComeAlone,0,0,0x105);
sLuminousCaveWork->fallbackState = LUMINOUS_CAVE_SHALL_RETURN;
sub_80141B4(sComeAlone,0,0,0x105);
break;
case LUMINOUS_CAVE_LACK_LEVEL:
sUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_SHALL_RETURN;
sub_80141B4(sLuminousCaveLackLevel,0,0,0x105);
sLuminousCaveWork->fallbackState = LUMINOUS_CAVE_SHALL_RETURN;
sub_80141B4(sLackLevel,0,0,0x105);
break;
case LUMINOUS_CAVE_CANT_EVOLVE_ANYMORE:
sUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_SHALL_RETURN;
sub_80141B4(sLuminousCaveCantEvolveAnymore,0,0,0x105);
sLuminousCaveWork->fallbackState = LUMINOUS_CAVE_SHALL_RETURN;
sub_80141B4(sNoMoreEvolutions,0,0,0x105);
break;
case LUMINOUS_CAVE_LACK_FRIEND_AREA:
sUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_SHALL_RETURN;
sub_80141B4(sLuminousCaveLackFriendArea,0,0,0x105);
sLuminousCaveWork->fallbackState = LUMINOUS_CAVE_SHALL_RETURN;
sub_80141B4(sLackFriendArea,0,0,0x105);
break;
case LUMINOUS_CAVE_LACK_ROOM:
sUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_SHALL_RETURN;
sub_80141B4(sLuminousCaveLackRoom,0,0,0x105);
sLuminousCaveWork->fallbackState = LUMINOUS_CAVE_SHALL_RETURN;
sub_80141B4(sLackFriendAreaRoom,0,0,0x105);
break;
case LUMINOUS_CAVE_LACK_IQ:
sUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_SHALL_RETURN;
sub_80141B4(sLuminousCaveLackIQ,0,0,0x105);
sLuminousCaveWork->fallbackState = LUMINOUS_CAVE_SHALL_RETURN;
sub_80141B4(sLackIQ,0,0,0x105);
break;
case LUMINOUS_CAVE_LACK_ITEM:
sUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_SHALL_RETURN;
sub_80141B4(sLuminousCaveLackItem,0,0,0x105);
sLuminousCaveWork->fallbackState = LUMINOUS_CAVE_SHALL_RETURN;
sub_80141B4(sLackItem,0,0,0x105);
break;
case LUMINOUS_CAVE_CANT_EVOLVE_YET:
sUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_SHALL_RETURN;
sub_80141B4(sLuminousCaveCantEvolveYet,0,0,0x105);
sLuminousCaveWork->fallbackState = LUMINOUS_CAVE_SHALL_RETURN;
sub_80141B4(sCannotEvolveYet,0,0,0x105);
break;
case LUMINOUS_CAVE_PROMPT_NAME:
xxx_call_fade_in_new_bgm(8,0x3c);
sUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_FINISH_NAME;
sub_80141B4(sLuminousCaveGiveName,0,0,0x105);
sLuminousCaveWork->fallbackState = LUMINOUS_CAVE_FINISH_NAME;
sub_80141B4(sMustGiveName,0,0,0x105);
break;
case LUMINOUS_CAVE_FINISH_NAME:
if (sUnknown_203B2B0->pokeRenamed) {
BoundedCopyStringtoBuffer(sUnknown_203B2B0->pokeStruct->name,GetMonSpecies(sUnknown_203B2B0->pokeStruct->speciesNum),POKEMON_NAME_LENGTH);
if (sLuminousCaveWork->pokeRenamed) {
BoundedCopyStringtoBuffer(sLuminousCaveWork->pokeStruct->name,GetMonSpecies(sLuminousCaveWork->pokeStruct->speciesNum),POKEMON_NAME_LENGTH);
}
sub_801602C(0,sUnknown_203B2B0->pokeStruct->name);
sub_801602C(0,sLuminousCaveWork->pokeStruct->name);
break;
default:
break;
@@ -385,22 +376,22 @@ static void sub_8024CFC(void)
{
s32 loopMax = 0;
MemoryFill16(sUnknown_203B2B0->unk74, 0, sizeof(sUnknown_203B2B0->unk74));
MemoryFill16(sLuminousCaveWork->unk74, 0, sizeof(sLuminousCaveWork->unk74));
sUnknown_203B2B0->unk34[loopMax].text = gUnknown_80DCA18;
sUnknown_203B2B0->unk34[loopMax].menuAction = 3;
sLuminousCaveWork->unk34[loopMax].text = sEvolve0;
sLuminousCaveWork->unk34[loopMax].menuAction = 3;
loopMax += 1;
sUnknown_203B2B0->unk34[loopMax].text = *gCommonInfo;
sUnknown_203B2B0->unk34[loopMax].menuAction = 2;
sLuminousCaveWork->unk34[loopMax].text = gCommonInfo[0];
sLuminousCaveWork->unk34[loopMax].menuAction = 2;
loopMax += 1;
sUnknown_203B2B0->unk34[loopMax].text = *gCommonCancel;
sUnknown_203B2B0->unk34[loopMax].menuAction = 1;
sLuminousCaveWork->unk34[loopMax].text = gCommonCancel[0];
sLuminousCaveWork->unk34[loopMax].menuAction = 1;
loopMax += 1;
sUnknown_203B2B0->unk34[loopMax].text = NULL;
sUnknown_203B2B0->unk34[loopMax].menuAction = 1;
sLuminousCaveWork->unk34[loopMax].text = NULL;
sLuminousCaveWork->unk34[loopMax].menuAction = 1;
}
static void sub_8024D48(void)
@@ -409,27 +400,27 @@ static void sub_8024D48(void)
s32 loopMax;
loopMax = 0;
MemoryFill16(sUnknown_203B2B0->unk74, 0, sizeof(sUnknown_203B2B0->unk74));
sUnknown_203B2B0->unk34[loopMax].text = gUnknown_80DCA24;
sUnknown_203B2B0->unk34[loopMax].menuAction = 4;
MemoryFill16(sLuminousCaveWork->unk74, 0, sizeof(sLuminousCaveWork->unk74));
sLuminousCaveWork->unk34[loopMax].text = sNo0;
sLuminousCaveWork->unk34[loopMax].menuAction = 4;
loopMax += 1;
sUnknown_203B2B0->unk34[loopMax].text = gUnknown_80DCA2C;
sUnknown_203B2B0->unk34[loopMax].menuAction = 5;
sLuminousCaveWork->unk34[loopMax].text = sYes0;
sLuminousCaveWork->unk34[loopMax].menuAction = 5;
loopMax += 1;
sUnknown_203B2B0->unk34[loopMax].text = *gCommonCancel;
sUnknown_203B2B0->unk34[loopMax].menuAction = 1;
sLuminousCaveWork->unk34[loopMax].text = gCommonCancel[0];
sLuminousCaveWork->unk34[loopMax].menuAction = 1;
loopMax += 1;
sUnknown_203B2B0->unk34[loopMax].text = NULL;
sUnknown_203B2B0->unk34[loopMax].menuAction = 1;
sLuminousCaveWork->unk34[loopMax].text = NULL;
sLuminousCaveWork->unk34[loopMax].menuAction = 1;
for (index = 0; index < loopMax; index++) {
if (sUnknown_203B2B0->unk74[index] == 0) {
if (sUnknown_203B2B0->unk34[index].menuAction == sUnknown_203B2B0->menuAction2)
if (sLuminousCaveWork->unk74[index] == 0) {
if (sLuminousCaveWork->unk34[index].menuAction == sLuminousCaveWork->menuAction2)
return;
}
}
sUnknown_203B2B0->menuAction2 = 4;
sLuminousCaveWork->menuAction2 = 4;
}
static void sub_8024DBC(void)
@@ -438,29 +429,29 @@ static void sub_8024DBC(void)
s32 loopMax;
loopMax = 0;
MemoryFill16(sUnknown_203B2B0->unk74, 0, sizeof(sUnknown_203B2B0->unk74));
sUnknown_203B2B0->unk34[loopMax].text = gUnknown_80DCA24;
sUnknown_203B2B0->unk34[loopMax].menuAction = 4;
MemoryFill16(sLuminousCaveWork->unk74, 0, sizeof(sLuminousCaveWork->unk74));
sLuminousCaveWork->unk34[loopMax].text = sNo0;
sLuminousCaveWork->unk34[loopMax].menuAction = 4;
loopMax += 1;
sUnknown_203B2B0->unk34[loopMax].text = gUnknown_80DCA2C;
sUnknown_203B2B0->unk34[loopMax].menuAction = 5;
sLuminousCaveWork->unk34[loopMax].text = sYes0;
sLuminousCaveWork->unk34[loopMax].menuAction = 5;
loopMax += 1;
sUnknown_203B2B0->unk34[loopMax].text = *gCommonCancel;
sUnknown_203B2B0->unk34[loopMax].menuAction = 1;
sLuminousCaveWork->unk34[loopMax].text = gCommonCancel[0];
sLuminousCaveWork->unk34[loopMax].menuAction = 1;
loopMax += 1;
sUnknown_203B2B0->unk34[loopMax].text = NULL;
sUnknown_203B2B0->unk34[loopMax].menuAction = 1;
sLuminousCaveWork->unk34[loopMax].text = NULL;
sLuminousCaveWork->unk34[loopMax].menuAction = 1;
for(index = 0; index < loopMax; index++)
{
if(sUnknown_203B2B0->unk74[index] == 0)
if(sLuminousCaveWork->unk74[index] == 0)
{
if(sUnknown_203B2B0->unk34[index].menuAction == sUnknown_203B2B0->menuAction2)
if(sLuminousCaveWork->unk34[index].menuAction == sLuminousCaveWork->menuAction2)
return;
}
}
sUnknown_203B2B0->menuAction2 = 4;
sLuminousCaveWork->menuAction2 = 4;
}
static void sub_8024E30(void)
@@ -469,26 +460,26 @@ static void sub_8024E30(void)
s32 loopMax;
loopMax = 0;
MemoryFill16(sUnknown_203B2B0->unk74, 0, sizeof(sUnknown_203B2B0->unk74));
sUnknown_203B2B0->unk34[loopMax].text = gUnknown_80DCA2C;
sUnknown_203B2B0->unk34[loopMax].menuAction = 5;
MemoryFill16(sLuminousCaveWork->unk74, 0, sizeof(sLuminousCaveWork->unk74));
sLuminousCaveWork->unk34[loopMax].text = sYes0;
sLuminousCaveWork->unk34[loopMax].menuAction = 5;
loopMax += 1;
sUnknown_203B2B0->unk34[loopMax].text = *gCommonInfo;
sUnknown_203B2B0->unk34[loopMax].menuAction = 2;
sLuminousCaveWork->unk34[loopMax].text = gCommonInfo[0];
sLuminousCaveWork->unk34[loopMax].menuAction = 2;
loopMax += 1;
sUnknown_203B2B0->unk34[loopMax].text = NULL;
sUnknown_203B2B0->unk34[loopMax].menuAction = 1;
sLuminousCaveWork->unk34[loopMax].text = NULL;
sLuminousCaveWork->unk34[loopMax].menuAction = 1;
for(index = 0; index < loopMax; index++)
{
if(sUnknown_203B2B0->unk74[index] == 0)
if(sLuminousCaveWork->unk74[index] == 0)
{
if(sUnknown_203B2B0->unk34[index].menuAction == sUnknown_203B2B0->menuAction3)
if(sLuminousCaveWork->unk34[index].menuAction == sLuminousCaveWork->menuAction3)
return;
}
}
sUnknown_203B2B0->menuAction3 = 5;
sLuminousCaveWork->menuAction3 = 5;
}
static void sub_8024E9C(void)
@@ -496,7 +487,7 @@ static void sub_8024E9C(void)
s32 menuAction;
if(sub_80144A4(&menuAction) == 0)
{
if(menuAction != 1) sUnknown_203B2B0->menuAction1 = menuAction;
if(menuAction != 1) sLuminousCaveWork->menuAction1 = menuAction;
switch(menuAction)
{
case 3:
@@ -520,12 +511,12 @@ static void sub_8024F00(void)
s32 menuAction;
if(sub_80144A4(&menuAction) == 0)
{
if(menuAction != 1) sUnknown_203B2B0->menuAction2 = menuAction;
if(menuAction != 1) sLuminousCaveWork->menuAction2 = menuAction;
switch(menuAction)
{
case 4:
sUnknown_203B2B0->evoItem1_InvIndex = INVENTORY_SIZE;
sUnknown_203B2B0->evoItem2_InvIndex = INVENTORY_SIZE;
sLuminousCaveWork->evoItem1_InvIndex = INVENTORY_SIZE;
sLuminousCaveWork->evoItem2_InvIndex = INVENTORY_SIZE;
UpdateLuminousCaveState(LUMINOUS_CAVE_LET_US_BEGIN);
break;
case 5:
@@ -546,7 +537,7 @@ static void sub_8024F70(void)
s32 menuAction;
if(sub_80144A4(&menuAction) == 0)
{
if(menuAction != 1) sUnknown_203B2B0->menuAction2 = menuAction;
if(menuAction != 1) sLuminousCaveWork->menuAction2 = menuAction;
switch(menuAction)
{
case 4:
@@ -570,13 +561,13 @@ static void sub_8024FD4(void)
switch(sub_801A6E8(TRUE))
{
case 3:
sUnknown_203B2B0->evoItem1_InvIndex = sub_801A8AC();
sUnknown_203B2B0->evoItem2_InvIndex = INVENTORY_SIZE;
sUnknown_203B2B0->chosenItem = gTeamInventoryRef->teamItems[sUnknown_203B2B0->evoItem1_InvIndex];
sLuminousCaveWork->evoItem1_InvIndex = sub_801A8AC();
sLuminousCaveWork->evoItem2_InvIndex = INVENTORY_SIZE;
sLuminousCaveWork->chosenItem = gTeamInventoryRef->teamItems[sLuminousCaveWork->evoItem1_InvIndex];
UpdateLuminousCaveState(8);
break;
case 4:
sUnknown_203B2B0->chosenItem = gTeamInventoryRef->teamItems[sub_801A8AC()];
sLuminousCaveWork->chosenItem = gTeamInventoryRef->teamItems[sub_801A8AC()];
sub_8099690(0);
UpdateLuminousCaveState(9);
break;
@@ -592,17 +583,17 @@ static void sub_8025058(void)
switch(sub_801A6E8(TRUE))
{
case 3:
if(sUnknown_203B2B0->evoItem1_InvIndex != sub_801A8AC())
if(sLuminousCaveWork->evoItem1_InvIndex != sub_801A8AC())
{
sUnknown_203B2B0->evoItem2_InvIndex = sub_801A8AC();
sUnknown_203B2B0->chosenItem = gTeamInventoryRef->teamItems[sUnknown_203B2B0->evoItem2_InvIndex];
sLuminousCaveWork->evoItem2_InvIndex = sub_801A8AC();
sLuminousCaveWork->chosenItem = gTeamInventoryRef->teamItems[sLuminousCaveWork->evoItem2_InvIndex];
UpdateLuminousCaveState(0xD);
}
else
PlayMenuSoundEffect(2);
break;
case 4:
sUnknown_203B2B0->chosenItem = gTeamInventoryRef->teamItems[sub_801A8AC()];
sLuminousCaveWork->chosenItem = gTeamInventoryRef->teamItems[sub_801A8AC()];
sub_8099690(0);
UpdateLuminousCaveState(0xE);
break;
@@ -619,10 +610,10 @@ static void sub_80250EC(void)
menuAction = 0;
sub_801A6E8(FALSE);
if(!sub_8012FD8(&sUnknown_203B2B0->unk84))
if(!sub_8012FD8(&sLuminousCaveWork->unk84))
{
sub_8013114(&sUnknown_203B2B0->unk84, &menuAction);
if(menuAction != 1) sUnknown_203B2B0->menuAction3 = menuAction;
sub_8013114(&sLuminousCaveWork->unk84, &menuAction);
if(menuAction != 1) sLuminousCaveWork->menuAction3 = menuAction;
}
switch(menuAction)
{
@@ -646,10 +637,10 @@ static void sub_802515C(void)
menuAction = 0;
sub_801A6E8(FALSE);
if(!sub_8012FD8(&sUnknown_203B2B0->unk84))
if(!sub_8012FD8(&sLuminousCaveWork->unk84))
{
sub_8013114(&sUnknown_203B2B0->unk84, &menuAction);
if(menuAction != 1) sUnknown_203B2B0->menuAction3 = menuAction;
sub_8013114(&sLuminousCaveWork->unk84, &menuAction);
if(menuAction != 1) sLuminousCaveWork->menuAction3 = menuAction;
}
switch(menuAction)
{
@@ -703,7 +694,7 @@ static void sub_8025204(void)
{
case 3:
sub_80160D8();
sUnknown_203B2B0->pokeRenamed = IsPokemonRenamed(sUnknown_203B2B0->pokeStruct);
sLuminousCaveWork->pokeRenamed = IsPokemonRenamed(sLuminousCaveWork->pokeStruct);
UpdateLuminousCaveState(LUMINOUS_CAVE_SHALL_RETURN);
break;
default:
@@ -716,27 +707,27 @@ static void LuminousCave_AdvancetoFallbackState(void)
s32 temp;
if(sub_80144A4(&temp) == 0)
{
UpdateLuminousCaveState(sUnknown_203B2B0->fallbackState);
UpdateLuminousCaveState(sLuminousCaveWork->fallbackState);
}
}
static void sub_8025254(void)
{
if(sUnknown_203B2B0->evoItem1_InvIndex == INVENTORY_SIZE)
sUnknown_203B2B0->evolveStatus.evoItem1 = 0;
if(sLuminousCaveWork->evoItem1_InvIndex == INVENTORY_SIZE)
sLuminousCaveWork->evolveStatus.evoItem1 = 0;
else
{
sUnknown_203B2B0->evolveStatus.evoItem1 = gTeamInventoryRef->teamItems[sUnknown_203B2B0->evoItem1_InvIndex].id;
sLuminousCaveWork->evolveStatus.evoItem1 = gTeamInventoryRef->teamItems[sLuminousCaveWork->evoItem1_InvIndex].id;
}
if(sUnknown_203B2B0->evoItem2_InvIndex == INVENTORY_SIZE)
sUnknown_203B2B0->evolveStatus.evoItem2 = 0;
if(sLuminousCaveWork->evoItem2_InvIndex == INVENTORY_SIZE)
sLuminousCaveWork->evolveStatus.evoItem2 = 0;
else
{
sUnknown_203B2B0->evolveStatus.evoItem2 = gTeamInventoryRef->teamItems[sUnknown_203B2B0->evoItem2_InvIndex].id;
sLuminousCaveWork->evolveStatus.evoItem2 = gTeamInventoryRef->teamItems[sLuminousCaveWork->evoItem2_InvIndex].id;
}
sUnknown_203B2B0->evolveStatus.unk6 = RandInt(0xFF);
sub_808F468(sUnknown_203B2B0->pokeStruct, &sUnknown_203B2B0->evolveStatus, 1);
sLuminousCaveWork->evolveStatus.unk6 = RandInt(0xFF);
sub_808F468(sLuminousCaveWork->pokeStruct, &sLuminousCaveWork->evolveStatus, 1);
}
static bool8 LuminousCave_HasOnly1Member(void)

View File

@@ -63,7 +63,6 @@ bool8 CanTakePokemonHeldItem(PokemonStruct1 *r0);
extern PokemonStruct1 *sub_808D3F8(void);
extern PokemonStruct1 *sub_808D3BC(void);
extern s32 sub_8008ED0(u8 *);
extern void nullsub_104(void);
extern u32 sub_8022860(void);
extern void sub_8022908(void);
extern u32 sub_80244E4(void);