mirror of
https://github.com/pret/pmd-red.git
synced 2026-08-23 09:14:55 -05:00
Luminous Cave data
This commit is contained in:
@@ -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
|
||||
@@ -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);
|
||||
|
||||
@@ -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
|
||||
@@ -45,4 +45,4 @@ typedef struct unkStructFor8013AA0
|
||||
SpriteOAM unk28;
|
||||
} unkStructFor8013AA0;
|
||||
|
||||
#endif // GUARD_MENU_H
|
||||
#endif // GUARD_MENU_H
|
||||
@@ -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
|
||||
@@ -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");
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user