|
|
|
|
@@ -11,143 +11,138 @@
|
|
|
|
|
extern u8 gUnknown_202DE58[];
|
|
|
|
|
extern u8 gUnknown_202E1C8[];
|
|
|
|
|
extern u8 gUnknown_202E5D8[];
|
|
|
|
|
EWRAM_DATA_2 struct unkStruct_203B208 *gUnknown_203B208 = {0};
|
|
|
|
|
EWRAM_DATA_2 struct KangaskhanStorageWork *gKangaskhanStorageWork = {0};
|
|
|
|
|
EWRAM_DATA_2 struct unkStruct_203B20C *gUnknown_203B20C = {0};
|
|
|
|
|
|
|
|
|
|
extern const u8 *gUnknown_80D4920[];
|
|
|
|
|
extern const u8 *gUnknown_80D4928[];
|
|
|
|
|
extern const u8 *gUnknown_80D4934[];
|
|
|
|
|
extern const u8 *gUnknown_80D4958[];
|
|
|
|
|
extern const u8 *gUnknown_80D4964[];
|
|
|
|
|
extern const u8 *gUnknown_80D4970[];
|
|
|
|
|
extern const u8 *gUnknown_80D4984[];
|
|
|
|
|
extern struct UnkTextStruct2 gUnknown_80DB748;
|
|
|
|
|
extern struct UnkTextStruct2 gUnknown_80DB760;
|
|
|
|
|
extern struct UnkTextStruct2 gUnknown_80DB778;
|
|
|
|
|
extern struct UnkTextStruct2 gUnknown_80DB790;
|
|
|
|
|
extern struct UnkTextStruct2 gUnknown_80DB760;
|
|
|
|
|
extern const u8 gUnknown_80DB7A8;
|
|
|
|
|
extern struct UnkTextStruct2 gUnknown_80DB7B8;
|
|
|
|
|
extern struct UnkTextStruct2 gUnknown_80DB7E8;
|
|
|
|
|
extern struct UnkTextStruct2 gUnknown_80DB7D0;
|
|
|
|
|
extern struct UnkTextStruct2 gUnknown_80DB7E8;
|
|
|
|
|
extern struct UnkTextStruct2 gUnknown_80DB800;
|
|
|
|
|
extern struct UnkTextStruct2 gUnknown_80DB818;
|
|
|
|
|
extern u8 gUnknown_80DB830[];
|
|
|
|
|
extern u8 *gUnknown_80D4920[];
|
|
|
|
|
extern u8 *gUnknown_80D4928[];
|
|
|
|
|
extern u8 gUnknown_80DB7A8;
|
|
|
|
|
|
|
|
|
|
extern u8 *gUnknown_80D4970[];
|
|
|
|
|
extern u8 *gUnknown_80D4964[];
|
|
|
|
|
extern u8 *gUnknown_80D4958[];
|
|
|
|
|
extern u8 *gUnknown_80D4984[];
|
|
|
|
|
extern u8 *gUnknown_80D4934[];
|
|
|
|
|
extern const u8 gUnknown_80DB830[];
|
|
|
|
|
|
|
|
|
|
extern const u8 *gKangaskhanStorageDialogue[2][20];
|
|
|
|
|
void UpdateKangaskhanStorageState(u32);
|
|
|
|
|
|
|
|
|
|
extern void sub_8017828();
|
|
|
|
|
extern void sub_8017AF8();
|
|
|
|
|
extern void sub_8017C7C();
|
|
|
|
|
extern void sub_8017DC0();
|
|
|
|
|
extern void sub_80178D0();
|
|
|
|
|
extern void sub_80179A8();
|
|
|
|
|
extern void sub_8017B88();
|
|
|
|
|
extern void sub_8017C28();
|
|
|
|
|
extern void sub_8017D24();
|
|
|
|
|
extern void sub_8017DDC();
|
|
|
|
|
extern void sub_8017928();
|
|
|
|
|
extern void sub_8017A1C();
|
|
|
|
|
extern void AdvanceToKangaskhanStorageFallbackState();
|
|
|
|
|
void sub_8016E80();
|
|
|
|
|
extern void sub_8016FF8();
|
|
|
|
|
extern void sub_8008C54(u32);
|
|
|
|
|
// text.s
|
|
|
|
|
extern void sub_80073B8(u32);
|
|
|
|
|
extern void sub_8013C68(u32 *);
|
|
|
|
|
extern void sub_80073E0(u32);
|
|
|
|
|
extern s32 sub_80144A4(s32 *);
|
|
|
|
|
extern u8 sub_801CF50(u32);
|
|
|
|
|
extern void sub_801C8C4(u32, u32, u32, u32);
|
|
|
|
|
extern void sub_801CB5C(u32);
|
|
|
|
|
extern u32 sub_801CFE0(u8);
|
|
|
|
|
extern void sub_801CF94(void);
|
|
|
|
|
extern u8 sub_801CF14(u32);
|
|
|
|
|
extern u8 sub_801CF50(u32);
|
|
|
|
|
extern u32 sub_801A6E8(bool8);
|
|
|
|
|
extern void sub_80182E4(void);
|
|
|
|
|
extern void sub_8008C54(u32);
|
|
|
|
|
extern void sub_80073B8(u32);
|
|
|
|
|
extern void sub_8013C68(u32 *);
|
|
|
|
|
extern void sub_80073E0(u32);
|
|
|
|
|
extern void sub_8099690(u32);
|
|
|
|
|
// code_80130A8.s
|
|
|
|
|
extern void sub_8013AA0(u32 *);
|
|
|
|
|
extern u32 sub_8013BBC(u32 *);
|
|
|
|
|
extern void sub_8017598(void);
|
|
|
|
|
extern u32 sub_801CA08(u32);
|
|
|
|
|
extern u32 sub_801CFB8(void);
|
|
|
|
|
extern u8 sub_801CB24();
|
|
|
|
|
extern void sub_801B450();
|
|
|
|
|
extern void sub_8013C68(u32 *);
|
|
|
|
|
extern void sub_80141B4(const u8 *r0, u32, struct OpenedFile **r1, u32);
|
|
|
|
|
extern void sub_8014248(const u8 *r0, u32, u32, const struct MenuItem *r4, u16 *, u32, u32, struct OpenedFile **r5, u32);
|
|
|
|
|
extern s32 sub_80144A4(s32 *);
|
|
|
|
|
// code_801B3C0.c
|
|
|
|
|
extern void sub_801B3C0(struct Item *);
|
|
|
|
|
extern u32 sub_801B410(void);
|
|
|
|
|
extern void sub_8017F10(u32);
|
|
|
|
|
extern void sub_8018588(void);
|
|
|
|
|
extern void sub_8018620(void);
|
|
|
|
|
extern void sub_8018904(void);
|
|
|
|
|
extern void sub_8018AC8(void);
|
|
|
|
|
extern void sub_80186F8(void);
|
|
|
|
|
extern void sub_8018854(void);
|
|
|
|
|
extern void sub_80189C8(void);
|
|
|
|
|
extern void sub_8018AE4(void);
|
|
|
|
|
extern void sub_8017F28();
|
|
|
|
|
extern void sub_8018100();
|
|
|
|
|
extern void sub_801841C();
|
|
|
|
|
extern void sub_801CCD8();
|
|
|
|
|
extern void sub_80184D4();
|
|
|
|
|
extern void sub_8018280();
|
|
|
|
|
void sub_80175FC(void);
|
|
|
|
|
extern void sub_80141B4(const char *r0, u32, struct OpenedFile **r1, u32);
|
|
|
|
|
extern void sub_8014248(const char *r0, u32, u32, const struct MenuItem *r4, u16 *, u32, u32, struct OpenedFile **r5, u32);
|
|
|
|
|
extern void sub_801C8C4(u32, u32, u32, u32);
|
|
|
|
|
extern void sub_801CB5C(u32);
|
|
|
|
|
extern void sub_801B450(void);
|
|
|
|
|
extern void sub_801BB20(void);
|
|
|
|
|
extern void sub_801BC24(void);
|
|
|
|
|
void sub_80176B8(void);
|
|
|
|
|
void sub_80177F8(void);
|
|
|
|
|
void sub_8017758(void);
|
|
|
|
|
void sub_801A928(void);
|
|
|
|
|
extern void sub_8013AA0(u32 *);
|
|
|
|
|
extern void sub_8017598(void);
|
|
|
|
|
extern void sub_801CCD8(void);
|
|
|
|
|
// code_801C620.c
|
|
|
|
|
extern void sub_801C8C4(u32, u32, u32, u32);
|
|
|
|
|
extern u32 sub_801CA08(u32);
|
|
|
|
|
extern u8 sub_801CB24(void);
|
|
|
|
|
extern void sub_801CB5C(u32);
|
|
|
|
|
extern void sub_801CBB8(void);
|
|
|
|
|
extern void sub_801B3C0(struct Item *);
|
|
|
|
|
extern u8 sub_801CF14(u32);
|
|
|
|
|
extern void sub_801CCD8(void);
|
|
|
|
|
extern bool8 sub_801CF14(u32);
|
|
|
|
|
extern bool8 sub_801CF50(u32);
|
|
|
|
|
extern void sub_801CF94(void);
|
|
|
|
|
extern u32 sub_801CFB8(void);
|
|
|
|
|
extern u32 sub_801CFE0(u8);
|
|
|
|
|
// code_8098BDC.s
|
|
|
|
|
extern void sub_8099690(u32);
|
|
|
|
|
|
|
|
|
|
u32 CreateKangaskhanStorage(bool32 isAsleep)
|
|
|
|
|
|
|
|
|
|
void sub_8016E80(void);
|
|
|
|
|
void sub_8016FF8(void);
|
|
|
|
|
void sub_8017598(void);
|
|
|
|
|
void sub_80175FC(void);
|
|
|
|
|
void sub_80176B8(void);
|
|
|
|
|
void sub_8017758(void);
|
|
|
|
|
void sub_80177F8(void);
|
|
|
|
|
void sub_8017828(void);
|
|
|
|
|
void sub_80178D0(void);
|
|
|
|
|
void sub_8017928(void);
|
|
|
|
|
void sub_80179A8(void);
|
|
|
|
|
void sub_8017A1C(void);
|
|
|
|
|
void sub_8017AF8(void);
|
|
|
|
|
void sub_8017B88(void);
|
|
|
|
|
void sub_8017C28(void);
|
|
|
|
|
void sub_8017C7C(void);
|
|
|
|
|
void sub_8017D24(void);
|
|
|
|
|
void sub_8017DC0(void);
|
|
|
|
|
void sub_8017DDC(void);
|
|
|
|
|
void sub_8017F10(u32);
|
|
|
|
|
void sub_8017F28(void);
|
|
|
|
|
void sub_8018100(void);
|
|
|
|
|
void sub_8018280(void);
|
|
|
|
|
void sub_80182E4(void);
|
|
|
|
|
void sub_801841C(void);
|
|
|
|
|
void sub_80184D4(void);
|
|
|
|
|
void sub_8018588(void);
|
|
|
|
|
void sub_8018620(void);
|
|
|
|
|
void sub_80186F8(void);
|
|
|
|
|
void sub_8018854(void);
|
|
|
|
|
void sub_8018904(void);
|
|
|
|
|
void sub_80189C8(void);
|
|
|
|
|
void sub_8018AC8(void);
|
|
|
|
|
void sub_8018AE4(void);
|
|
|
|
|
|
|
|
|
|
void AdvanceToKangaskhanStorageFallbackState(void);
|
|
|
|
|
void UpdateKangaskhanStorageState(u32);
|
|
|
|
|
|
|
|
|
|
u32 KangaskhanStorage_New(bool32 isAsleep)
|
|
|
|
|
{
|
|
|
|
|
char *monName;
|
|
|
|
|
struct OpenedFile *faceFile;
|
|
|
|
|
|
|
|
|
|
ResetUnusedInputStruct();
|
|
|
|
|
sub_800641C(0, 1, 1);
|
|
|
|
|
gUnknown_203B208 = MemoryAlloc(sizeof(struct unkStruct_203B208), 8);
|
|
|
|
|
gUnknown_203B208->menuAction1 = 0;
|
|
|
|
|
gUnknown_203B208->menuAction2 = 0;
|
|
|
|
|
gUnknown_203B208->menuAction3 = 0;
|
|
|
|
|
gUnknown_203B208->isAsleep = isAsleep;
|
|
|
|
|
gKangaskhanStorageWork = MemoryAlloc(sizeof(struct KangaskhanStorageWork), 8);
|
|
|
|
|
gKangaskhanStorageWork->menuAction1 = 0;
|
|
|
|
|
gKangaskhanStorageWork->menuAction2 = 0;
|
|
|
|
|
gKangaskhanStorageWork->menuAction3 = 0;
|
|
|
|
|
gKangaskhanStorageWork->isAsleep = isAsleep;
|
|
|
|
|
CopyYellowMonsterNametoBuffer(gUnknown_202E5D8, MONSTER_KANGASKHAN);
|
|
|
|
|
CopyYellowMonsterNametoBuffer(gUnknown_202E1C8, MONSTER_KANGASKHAN);
|
|
|
|
|
monName = GetMonSpecies(MONSTER_KANGASKHAN);
|
|
|
|
|
strcpy(gUnknown_202E1C8 - 0x50, monName);
|
|
|
|
|
|
|
|
|
|
if (gUnknown_203B208->isAsleep == TRUE)
|
|
|
|
|
gUnknown_203B208->unkE8 = NULL;
|
|
|
|
|
if (gKangaskhanStorageWork->isAsleep == TRUE)
|
|
|
|
|
gKangaskhanStorageWork->unkE8 = NULL;
|
|
|
|
|
else
|
|
|
|
|
gUnknown_203B208->unkE8 = &gUnknown_203B208->faceFile;
|
|
|
|
|
gKangaskhanStorageWork->unkE8 = &gKangaskhanStorageWork->faceFile;
|
|
|
|
|
|
|
|
|
|
faceFile = GetDialogueSpriteDataPtr(MONSTER_KANGASKHAN);
|
|
|
|
|
gUnknown_203B208->faceFile = faceFile;
|
|
|
|
|
gUnknown_203B208->faceData = faceFile->data;
|
|
|
|
|
gUnknown_203B208->unkE4 = 0;
|
|
|
|
|
gUnknown_203B208->unkE5 = 0;
|
|
|
|
|
gUnknown_203B208->unkE6 = 0;
|
|
|
|
|
gUnknown_203B208->unkE0 = 2;
|
|
|
|
|
gUnknown_203B208->unkE2 = 8;
|
|
|
|
|
gKangaskhanStorageWork->faceFile = faceFile;
|
|
|
|
|
gKangaskhanStorageWork->faceData = faceFile->data;
|
|
|
|
|
gKangaskhanStorageWork->unkE4 = 0;
|
|
|
|
|
gKangaskhanStorageWork->unkE5 = 0;
|
|
|
|
|
gKangaskhanStorageWork->unkE6 = 0;
|
|
|
|
|
gKangaskhanStorageWork->unkE0 = 2;
|
|
|
|
|
gKangaskhanStorageWork->unkE2 = 8;
|
|
|
|
|
UpdateKangaskhanStorageState(KANGASKHAN_STORAGE_INIT);
|
|
|
|
|
return 1;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
u32 sub_8016D54(void)
|
|
|
|
|
{
|
|
|
|
|
switch (gUnknown_203B208->currState) {
|
|
|
|
|
u32 KangaskhanStorage_Callback(void)
|
|
|
|
|
{
|
|
|
|
|
switch (gKangaskhanStorageWork->currState) {
|
|
|
|
|
case KANGASKHAN_STORAGE_INIT:
|
|
|
|
|
case KANGASKHAN_STORAGE_MAIN_MENU:
|
|
|
|
|
sub_8017828();
|
|
|
|
|
@@ -196,18 +191,18 @@ u32 sub_8016D54(void)
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void sub_8016E40(void)
|
|
|
|
|
void KangaskhanStorage_Delete(void)
|
|
|
|
|
{
|
|
|
|
|
if (gUnknown_203B208 != NULL) {
|
|
|
|
|
CloseFile(gUnknown_203B208->faceFile);
|
|
|
|
|
MemoryFree(gUnknown_203B208);
|
|
|
|
|
gUnknown_203B208 = NULL;
|
|
|
|
|
if (gKangaskhanStorageWork != NULL) {
|
|
|
|
|
CloseFile(gKangaskhanStorageWork->faceFile);
|
|
|
|
|
MemoryFree(gKangaskhanStorageWork);
|
|
|
|
|
gKangaskhanStorageWork = NULL;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void UpdateKangaskhanStorageState(u32 newState)
|
|
|
|
|
{
|
|
|
|
|
gUnknown_203B208->currState = newState;
|
|
|
|
|
gKangaskhanStorageWork->currState = newState;
|
|
|
|
|
sub_8016E80();
|
|
|
|
|
sub_8016FF8();
|
|
|
|
|
}
|
|
|
|
|
@@ -216,105 +211,105 @@ void sub_8016E80(void)
|
|
|
|
|
{
|
|
|
|
|
s32 index;
|
|
|
|
|
|
|
|
|
|
sub_8006518(gUnknown_203B208->unkEC);
|
|
|
|
|
sub_8006518(gKangaskhanStorageWork->unkEC);
|
|
|
|
|
|
|
|
|
|
switch (gUnknown_203B208->currState) {
|
|
|
|
|
switch (gKangaskhanStorageWork->currState) {
|
|
|
|
|
case 13:
|
|
|
|
|
case 14:
|
|
|
|
|
gUnknown_203B208->unkEC[0] = gUnknown_80DB748;
|
|
|
|
|
gUnknown_203B208->unkEC[1] = gUnknown_80DB748;
|
|
|
|
|
gUnknown_203B208->unkEC[2] = gUnknown_80DB748;
|
|
|
|
|
gUnknown_203B208->unkEC[0] = gUnknown_80DB748;
|
|
|
|
|
gKangaskhanStorageWork->unkEC[0] = gUnknown_80DB748;
|
|
|
|
|
gKangaskhanStorageWork->unkEC[1] = gUnknown_80DB748;
|
|
|
|
|
gKangaskhanStorageWork->unkEC[2] = gUnknown_80DB748;
|
|
|
|
|
gKangaskhanStorageWork->unkEC[0] = gUnknown_80DB748;
|
|
|
|
|
break;
|
|
|
|
|
case 22:
|
|
|
|
|
case 23:
|
|
|
|
|
gUnknown_203B208->unkEC[0] = gUnknown_80DB748;
|
|
|
|
|
gUnknown_203B208->unkEC[1] = gUnknown_80DB748;
|
|
|
|
|
gUnknown_203B208->unkEC[2] = gUnknown_80DB748;
|
|
|
|
|
gUnknown_203B208->unkEC[0] = gUnknown_80DB778;
|
|
|
|
|
gKangaskhanStorageWork->unkEC[0] = gUnknown_80DB748;
|
|
|
|
|
gKangaskhanStorageWork->unkEC[1] = gUnknown_80DB748;
|
|
|
|
|
gKangaskhanStorageWork->unkEC[2] = gUnknown_80DB748;
|
|
|
|
|
gKangaskhanStorageWork->unkEC[0] = gUnknown_80DB778;
|
|
|
|
|
break;
|
|
|
|
|
case 24:
|
|
|
|
|
gUnknown_203B208->unkEC[1] = gUnknown_80DB790;
|
|
|
|
|
gKangaskhanStorageWork->unkEC[1] = gUnknown_80DB790;
|
|
|
|
|
break;
|
|
|
|
|
case 15:
|
|
|
|
|
case 25:
|
|
|
|
|
gUnknown_203B208->unkEC[2] = gUnknown_80DB760;
|
|
|
|
|
gKangaskhanStorageWork->unkEC[2] = gUnknown_80DB760;
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
for (index = 0; index < 4; index++)
|
|
|
|
|
gUnknown_203B208->unkEC[index] = gUnknown_80DB748;
|
|
|
|
|
gKangaskhanStorageWork->unkEC[index] = gUnknown_80DB748;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ResetUnusedInputStruct();
|
|
|
|
|
sub_800641C(gUnknown_203B208->unkEC, 1, 1);
|
|
|
|
|
sub_800641C(gKangaskhanStorageWork->unkEC, 1, 1);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void sub_8016FF8(void)
|
|
|
|
|
{
|
|
|
|
|
switch (gUnknown_203B208->currState) {
|
|
|
|
|
switch (gKangaskhanStorageWork->currState) {
|
|
|
|
|
case KANGASKHAN_STORAGE_INIT:
|
|
|
|
|
sub_80175FC();
|
|
|
|
|
gUnknown_203B208->unkE4 = 1;
|
|
|
|
|
sub_8014248(gKangaskhanStorageDialogue[gUnknown_203B208->isAsleep][0], 0, gUnknown_203B208->menuAction1, gUnknown_203B208->unk24,
|
|
|
|
|
gUnknown_203B208->unk4C, 4, 0, gUnknown_203B208->unkE8, 12);
|
|
|
|
|
gKangaskhanStorageWork->unkE4 = 1;
|
|
|
|
|
sub_8014248(gKangaskhanStorageDialogue[gKangaskhanStorageWork->isAsleep][0], 0, gKangaskhanStorageWork->menuAction1, gKangaskhanStorageWork->unk24,
|
|
|
|
|
gKangaskhanStorageWork->unk4C, 4, 0, gKangaskhanStorageWork->unkE8, 12);
|
|
|
|
|
break;
|
|
|
|
|
case KANGASKHAN_STORAGE_MAIN_MENU:
|
|
|
|
|
sub_80175FC();
|
|
|
|
|
gUnknown_203B208->unkE4 = 0;
|
|
|
|
|
sub_8014248(gKangaskhanStorageDialogue[gUnknown_203B208->isAsleep][1], 0, gUnknown_203B208->menuAction1, gUnknown_203B208->unk24,
|
|
|
|
|
gUnknown_203B208->unk4C, 4, 0, gUnknown_203B208->unkE8, 12);
|
|
|
|
|
gKangaskhanStorageWork->unkE4 = 0;
|
|
|
|
|
sub_8014248(gKangaskhanStorageDialogue[gKangaskhanStorageWork->isAsleep][1], 0, gKangaskhanStorageWork->menuAction1, gKangaskhanStorageWork->unk24,
|
|
|
|
|
gKangaskhanStorageWork->unk4C, 4, 0, gKangaskhanStorageWork->unkE8, 12);
|
|
|
|
|
break;
|
|
|
|
|
case 2:
|
|
|
|
|
gUnknown_203B208->fallbackState = KANGASKHAN_STORAGE_MAIN_MENU;
|
|
|
|
|
gUnknown_203B208->unkE4 = 0;
|
|
|
|
|
sub_80141B4(gKangaskhanStorageDialogue[gUnknown_203B208->isAsleep][19], 0, gUnknown_203B208->unkE8, 0x10D);
|
|
|
|
|
gKangaskhanStorageWork->fallbackState = KANGASKHAN_STORAGE_MAIN_MENU;
|
|
|
|
|
gKangaskhanStorageWork->unkE4 = 0;
|
|
|
|
|
sub_80141B4(gKangaskhanStorageDialogue[gKangaskhanStorageWork->isAsleep][19], 0, gKangaskhanStorageWork->unkE8, 0x10D);
|
|
|
|
|
break;
|
|
|
|
|
case 3:
|
|
|
|
|
gUnknown_203B208->fallbackState = KANGASKHAN_STORAGE_EXIT;
|
|
|
|
|
gUnknown_203B208->unkE4 = 1;
|
|
|
|
|
sub_80141B4(gKangaskhanStorageDialogue[gUnknown_203B208->isAsleep][2], 0, gUnknown_203B208->unkE8, 0x30D);
|
|
|
|
|
gKangaskhanStorageWork->fallbackState = KANGASKHAN_STORAGE_EXIT;
|
|
|
|
|
gKangaskhanStorageWork->unkE4 = 1;
|
|
|
|
|
sub_80141B4(gKangaskhanStorageDialogue[gKangaskhanStorageWork->isAsleep][2], 0, gKangaskhanStorageWork->unkE8, 0x30D);
|
|
|
|
|
break;
|
|
|
|
|
case KANGASKHAN_STORAGE_NO_INV_ITEMS:
|
|
|
|
|
gUnknown_203B208->fallbackState = KANGASKHAN_STORAGE_MAIN_MENU;
|
|
|
|
|
gUnknown_203B208->unkE4 = 0;
|
|
|
|
|
sub_80141B4(gKangaskhanStorageDialogue[gUnknown_203B208->isAsleep][13], 0, gUnknown_203B208->unkE8, 0x10D);
|
|
|
|
|
gKangaskhanStorageWork->fallbackState = KANGASKHAN_STORAGE_MAIN_MENU;
|
|
|
|
|
gKangaskhanStorageWork->unkE4 = 0;
|
|
|
|
|
sub_80141B4(gKangaskhanStorageDialogue[gKangaskhanStorageWork->isAsleep][13], 0, gKangaskhanStorageWork->unkE8, 0x10D);
|
|
|
|
|
break;
|
|
|
|
|
case KANGASKHAN_STORAGE_TOO_MANY_ITEMS:
|
|
|
|
|
gUnknown_203B208->fallbackState = KANGASKHAN_STORAGE_MAIN_MENU;
|
|
|
|
|
gUnknown_203B208->unkE4 = 0;
|
|
|
|
|
sub_80141B4(gKangaskhanStorageDialogue[gUnknown_203B208->isAsleep][14], 0, gUnknown_203B208->unkE8, 0x10D);
|
|
|
|
|
gKangaskhanStorageWork->fallbackState = KANGASKHAN_STORAGE_MAIN_MENU;
|
|
|
|
|
gKangaskhanStorageWork->unkE4 = 0;
|
|
|
|
|
sub_80141B4(gKangaskhanStorageDialogue[gKangaskhanStorageWork->isAsleep][14], 0, gKangaskhanStorageWork->unkE8, 0x10D);
|
|
|
|
|
break;
|
|
|
|
|
case 7:
|
|
|
|
|
gUnknown_203B208->fallbackState = KANGASKHAN_STORAGE_MAIN_MENU;
|
|
|
|
|
gUnknown_203B208->unkE4 = 0;
|
|
|
|
|
sub_80141B4(gKangaskhanStorageDialogue[gUnknown_203B208->isAsleep][15], 0, gUnknown_203B208->unkE8, 0x10D);
|
|
|
|
|
gKangaskhanStorageWork->fallbackState = KANGASKHAN_STORAGE_MAIN_MENU;
|
|
|
|
|
gKangaskhanStorageWork->unkE4 = 0;
|
|
|
|
|
sub_80141B4(gKangaskhanStorageDialogue[gKangaskhanStorageWork->isAsleep][15], 0, gKangaskhanStorageWork->unkE8, 0x10D);
|
|
|
|
|
break;
|
|
|
|
|
case 8:
|
|
|
|
|
gUnknown_203B208->fallbackState = KANGASKHAN_STORAGE_MAIN_MENU;
|
|
|
|
|
gUnknown_203B208->unkE4 = 0;
|
|
|
|
|
sub_80141B4(gKangaskhanStorageDialogue[gUnknown_203B208->isAsleep][18], 0, gUnknown_203B208->unkE8, 0x10D);
|
|
|
|
|
gKangaskhanStorageWork->fallbackState = KANGASKHAN_STORAGE_MAIN_MENU;
|
|
|
|
|
gKangaskhanStorageWork->unkE4 = 0;
|
|
|
|
|
sub_80141B4(gKangaskhanStorageDialogue[gKangaskhanStorageWork->isAsleep][18], 0, gKangaskhanStorageWork->unkE8, 0x10D);
|
|
|
|
|
break;
|
|
|
|
|
case KANGASKHAN_STORAGE_IS_MONEY_USED_TM:
|
|
|
|
|
sub_8090E14(gUnknown_202DE58, &gUnknown_203B208->storedItem, 0);
|
|
|
|
|
gUnknown_203B208->fallbackState = 14;
|
|
|
|
|
gUnknown_203B208->unkE4 = 0;
|
|
|
|
|
sub_80141B4(gKangaskhanStorageDialogue[gUnknown_203B208->isAsleep][16], 0, gUnknown_203B208->unkE8, 0x30D);
|
|
|
|
|
sub_8090E14(gUnknown_202DE58, &gKangaskhanStorageWork->storedItem, 0);
|
|
|
|
|
gKangaskhanStorageWork->fallbackState = 14;
|
|
|
|
|
gKangaskhanStorageWork->unkE4 = 0;
|
|
|
|
|
sub_80141B4(gKangaskhanStorageDialogue[gKangaskhanStorageWork->isAsleep][16], 0, gKangaskhanStorageWork->unkE8, 0x30D);
|
|
|
|
|
break;
|
|
|
|
|
case 10:
|
|
|
|
|
gUnknown_203B208->fallbackState = 14;
|
|
|
|
|
gUnknown_203B208->unkE4 = 0;
|
|
|
|
|
sub_80141B4(gKangaskhanStorageDialogue[gUnknown_203B208->isAsleep][17], 0, gUnknown_203B208->unkE8, 0x30D);
|
|
|
|
|
gKangaskhanStorageWork->fallbackState = 14;
|
|
|
|
|
gKangaskhanStorageWork->unkE4 = 0;
|
|
|
|
|
sub_80141B4(gKangaskhanStorageDialogue[gKangaskhanStorageWork->isAsleep][17], 0, gKangaskhanStorageWork->unkE8, 0x30D);
|
|
|
|
|
break;
|
|
|
|
|
case 0xb:
|
|
|
|
|
gUnknown_203B208->fallbackState = 13;
|
|
|
|
|
gUnknown_203B208->unkE4 = 0;
|
|
|
|
|
sub_80141B4(gKangaskhanStorageDialogue[gUnknown_203B208->isAsleep][3], 0, gUnknown_203B208->unkE8, 0x30D);
|
|
|
|
|
gKangaskhanStorageWork->fallbackState = 13;
|
|
|
|
|
gKangaskhanStorageWork->unkE4 = 0;
|
|
|
|
|
sub_80141B4(gKangaskhanStorageDialogue[gKangaskhanStorageWork->isAsleep][3], 0, gKangaskhanStorageWork->unkE8, 0x30D);
|
|
|
|
|
break;
|
|
|
|
|
case 12:
|
|
|
|
|
gUnknown_203B208->fallbackState = 14;
|
|
|
|
|
gUnknown_203B208->unkE4 = 0;
|
|
|
|
|
sub_80141B4(gKangaskhanStorageDialogue[gUnknown_203B208->isAsleep][4], 0, gUnknown_203B208->unkE8, 0x30D);
|
|
|
|
|
gKangaskhanStorageWork->fallbackState = 14;
|
|
|
|
|
gKangaskhanStorageWork->unkE4 = 0;
|
|
|
|
|
sub_80141B4(gKangaskhanStorageDialogue[gKangaskhanStorageWork->isAsleep][4], 0, gKangaskhanStorageWork->unkE8, 0x30D);
|
|
|
|
|
break;
|
|
|
|
|
case 13:
|
|
|
|
|
sub_801A5D8(3, 3, 0, 10);
|
|
|
|
|
@@ -325,41 +320,41 @@ void sub_8016FF8(void)
|
|
|
|
|
case 15:
|
|
|
|
|
sub_801A9E0();
|
|
|
|
|
sub_80176B8();
|
|
|
|
|
sub_8012D60(&gUnknown_203B208->unk58, gUnknown_203B208->unk24, NULL, gUnknown_203B208->unk4C, gUnknown_203B208->menuAction2, 2);
|
|
|
|
|
sub_8012D60(&gKangaskhanStorageWork->unk58, gKangaskhanStorageWork->unk24, NULL, gKangaskhanStorageWork->unk4C, gKangaskhanStorageWork->menuAction2, 2);
|
|
|
|
|
break;
|
|
|
|
|
case 17:
|
|
|
|
|
sub_80177F8();
|
|
|
|
|
sub_8090E14(gUnknown_202DE58, &gUnknown_203B208->storedItem, 0);
|
|
|
|
|
gUnknown_203B208->unkE4 = 0;
|
|
|
|
|
sub_8014248(gKangaskhanStorageDialogue[gUnknown_203B208->isAsleep][5], 0, 4, gUnknown_203B208->unk24, NULL, 4, 0,
|
|
|
|
|
gUnknown_203B208->unkE8, 12);
|
|
|
|
|
sub_8090E14(gUnknown_202DE58, &gKangaskhanStorageWork->storedItem, 0);
|
|
|
|
|
gKangaskhanStorageWork->unkE4 = 0;
|
|
|
|
|
sub_8014248(gKangaskhanStorageDialogue[gKangaskhanStorageWork->isAsleep][5], 0, 4, gKangaskhanStorageWork->unk24, NULL, 4, 0,
|
|
|
|
|
gKangaskhanStorageWork->unkE8, 12);
|
|
|
|
|
break;
|
|
|
|
|
case 18:
|
|
|
|
|
sub_80177F8();
|
|
|
|
|
gUnknown_203B208->unkE4 = 0;
|
|
|
|
|
sub_8014248(gKangaskhanStorageDialogue[gUnknown_203B208->isAsleep][6], 0, 4, gUnknown_203B208->unk24, NULL, 4, 0,
|
|
|
|
|
gUnknown_203B208->unkE8, 12);
|
|
|
|
|
gKangaskhanStorageWork->unkE4 = 0;
|
|
|
|
|
sub_8014248(gKangaskhanStorageDialogue[gKangaskhanStorageWork->isAsleep][6], 0, 4, gKangaskhanStorageWork->unk24, NULL, 4, 0,
|
|
|
|
|
gKangaskhanStorageWork->unkE8, 12);
|
|
|
|
|
break;
|
|
|
|
|
case 19:
|
|
|
|
|
if (GetNumberOfFilledInventorySlots() == 0) {
|
|
|
|
|
sub_801A928();
|
|
|
|
|
gUnknown_203B208->fallbackState = KANGASKHAN_STORAGE_MAIN_MENU;
|
|
|
|
|
gKangaskhanStorageWork->fallbackState = KANGASKHAN_STORAGE_MAIN_MENU;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
gUnknown_203B208->fallbackState = 12;
|
|
|
|
|
gKangaskhanStorageWork->fallbackState = 12;
|
|
|
|
|
|
|
|
|
|
gUnknown_203B208->unkE4 = 1;
|
|
|
|
|
sub_80141B4(gKangaskhanStorageDialogue[gUnknown_203B208->isAsleep][7], 0, gUnknown_203B208->unkE8, 0x10D);
|
|
|
|
|
gKangaskhanStorageWork->unkE4 = 1;
|
|
|
|
|
sub_80141B4(gKangaskhanStorageDialogue[gKangaskhanStorageWork->isAsleep][7], 0, gKangaskhanStorageWork->unkE8, 0x10D);
|
|
|
|
|
break;
|
|
|
|
|
case 20:
|
|
|
|
|
gUnknown_203B208->fallbackState = 22;
|
|
|
|
|
gUnknown_203B208->unkE4 = 0;
|
|
|
|
|
sub_80141B4(gKangaskhanStorageDialogue[gUnknown_203B208->isAsleep][8], 0, gUnknown_203B208->unkE8, 0x30D);
|
|
|
|
|
gKangaskhanStorageWork->fallbackState = 22;
|
|
|
|
|
gKangaskhanStorageWork->unkE4 = 0;
|
|
|
|
|
sub_80141B4(gKangaskhanStorageDialogue[gKangaskhanStorageWork->isAsleep][8], 0, gKangaskhanStorageWork->unkE8, 0x30D);
|
|
|
|
|
break;
|
|
|
|
|
case 21:
|
|
|
|
|
gUnknown_203B208->fallbackState = 23;
|
|
|
|
|
gUnknown_203B208->unkE4 = 0;
|
|
|
|
|
sub_80141B4(gKangaskhanStorageDialogue[gUnknown_203B208->isAsleep][9], 0, gUnknown_203B208->unkE8, 0x30D);
|
|
|
|
|
gKangaskhanStorageWork->fallbackState = 23;
|
|
|
|
|
gKangaskhanStorageWork->unkE4 = 0;
|
|
|
|
|
sub_80141B4(gKangaskhanStorageDialogue[gKangaskhanStorageWork->isAsleep][9], 0, gKangaskhanStorageWork->unkE8, 0x30D);
|
|
|
|
|
break;
|
|
|
|
|
case 22:
|
|
|
|
|
sub_801C8C4(1, 3, 0, 10);
|
|
|
|
|
@@ -370,69 +365,69 @@ void sub_8016FF8(void)
|
|
|
|
|
sub_801AD34(0);
|
|
|
|
|
break;
|
|
|
|
|
case 24:
|
|
|
|
|
gUnknown_203B208->unkB8 = 2;
|
|
|
|
|
gUnknown_203B208->unkB0 = 1;
|
|
|
|
|
gKangaskhanStorageWork->unkB8 = 2;
|
|
|
|
|
gKangaskhanStorageWork->unkB0 = 1;
|
|
|
|
|
|
|
|
|
|
if (gTeamInventory_203B460->teamStorage[gUnknown_203B208->storedItem.id] >= 100)
|
|
|
|
|
gUnknown_203B208->unkB4 = 99;
|
|
|
|
|
if (gTeamInventory_203B460->teamStorage[gKangaskhanStorageWork->storedItem.id] >= 100)
|
|
|
|
|
gKangaskhanStorageWork->unkB4 = 99;
|
|
|
|
|
else
|
|
|
|
|
gUnknown_203B208->unkB4 = gTeamInventory_203B460->teamStorage [gUnknown_203B208->storedItem.id];
|
|
|
|
|
gKangaskhanStorageWork->unkB4 = gTeamInventory_203B460->teamStorage [gKangaskhanStorageWork->storedItem.id];
|
|
|
|
|
|
|
|
|
|
gUnknown_203B208->unkAC = gUnknown_203B208->unkB4;
|
|
|
|
|
gUnknown_203B208->unkBC = 1;
|
|
|
|
|
gUnknown_203B208->unkC0 = &gUnknown_203B208->unkEC[1];
|
|
|
|
|
gUnknown_203B208->unkC4 = 40;
|
|
|
|
|
gUnknown_203B208->unkC8 = 18;
|
|
|
|
|
sub_8013AA0(&gUnknown_203B208->unkA8);
|
|
|
|
|
gKangaskhanStorageWork->unkAC = gKangaskhanStorageWork->unkB4;
|
|
|
|
|
gKangaskhanStorageWork->unkBC = 1;
|
|
|
|
|
gKangaskhanStorageWork->unkC0 = &gKangaskhanStorageWork->unkEC[1];
|
|
|
|
|
gKangaskhanStorageWork->unkC4 = 40;
|
|
|
|
|
gKangaskhanStorageWork->unkC8 = 18;
|
|
|
|
|
sub_8013AA0(&gKangaskhanStorageWork->unkA8);
|
|
|
|
|
sub_8017598();
|
|
|
|
|
break;
|
|
|
|
|
case 25:
|
|
|
|
|
sub_801CCD8();
|
|
|
|
|
sub_801AD34(0);
|
|
|
|
|
sub_8017758();
|
|
|
|
|
sub_8012D60(&gUnknown_203B208->unk58, gUnknown_203B208->unk24, NULL, gUnknown_203B208->unk4C, gUnknown_203B208->menuAction3, 2);
|
|
|
|
|
sub_8012D60(&gKangaskhanStorageWork->unk58, gKangaskhanStorageWork->unk24, NULL, gKangaskhanStorageWork->unk4C, gKangaskhanStorageWork->menuAction3, 2);
|
|
|
|
|
break;
|
|
|
|
|
case 16:
|
|
|
|
|
case 26:
|
|
|
|
|
sub_801B3C0(&gUnknown_203B208->storedItem);
|
|
|
|
|
sub_801B3C0(&gKangaskhanStorageWork->storedItem);
|
|
|
|
|
break;
|
|
|
|
|
case 27:
|
|
|
|
|
sub_80177F8();
|
|
|
|
|
sub_8090E14(gUnknown_202DE58, &gUnknown_203B208->storedItem, 0);
|
|
|
|
|
gUnknown_203B208->unkE4 = 0;
|
|
|
|
|
sub_8014248(gKangaskhanStorageDialogue[gUnknown_203B208->isAsleep][10], 0, 4, gUnknown_203B208->unk24, NULL, 4, 0,
|
|
|
|
|
gUnknown_203B208->unkE8, 12);
|
|
|
|
|
sub_8090E14(gUnknown_202DE58, &gKangaskhanStorageWork->storedItem, 0);
|
|
|
|
|
gKangaskhanStorageWork->unkE4 = 0;
|
|
|
|
|
sub_8014248(gKangaskhanStorageDialogue[gKangaskhanStorageWork->isAsleep][10], 0, 4, gKangaskhanStorageWork->unk24, NULL, 4, 0,
|
|
|
|
|
gKangaskhanStorageWork->unkE8, 12);
|
|
|
|
|
break;
|
|
|
|
|
case 28:
|
|
|
|
|
sub_80177F8();
|
|
|
|
|
gUnknown_203B208->unkE4 = 0;
|
|
|
|
|
sub_8014248(gKangaskhanStorageDialogue[gUnknown_203B208->isAsleep][11], 0, 4, gUnknown_203B208->unk24, NULL, 4, 0,
|
|
|
|
|
gUnknown_203B208->unkE8, 12);
|
|
|
|
|
gKangaskhanStorageWork->unkE4 = 0;
|
|
|
|
|
sub_8014248(gKangaskhanStorageDialogue[gKangaskhanStorageWork->isAsleep][11], 0, 4, gKangaskhanStorageWork->unk24, NULL, 4, 0,
|
|
|
|
|
gKangaskhanStorageWork->unkE8, 12);
|
|
|
|
|
break;
|
|
|
|
|
case 29:
|
|
|
|
|
if (sub_801CF14(1) || GetNumberOfFilledInventorySlots() >= INVENTORY_SIZE) {
|
|
|
|
|
sub_801CBB8();
|
|
|
|
|
gUnknown_203B208->fallbackState = KANGASKHAN_STORAGE_MAIN_MENU;
|
|
|
|
|
gKangaskhanStorageWork->fallbackState = KANGASKHAN_STORAGE_MAIN_MENU;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
gUnknown_203B208->fallbackState = 21;
|
|
|
|
|
gKangaskhanStorageWork->fallbackState = 21;
|
|
|
|
|
|
|
|
|
|
gUnknown_203B208->unkE4 = 1;
|
|
|
|
|
sub_80141B4(gKangaskhanStorageDialogue[gUnknown_203B208->isAsleep][12], 0, gUnknown_203B208->unkE8, 0x10D);
|
|
|
|
|
gKangaskhanStorageWork->unkE4 = 1;
|
|
|
|
|
sub_80141B4(gKangaskhanStorageDialogue[gKangaskhanStorageWork->isAsleep][12], 0, gKangaskhanStorageWork->unkE8, 0x10D);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void sub_8017598(void)
|
|
|
|
|
{
|
|
|
|
|
sub_8008C54(gUnknown_203B208->unkBC);
|
|
|
|
|
sub_80073B8(gUnknown_203B208->unkBC);
|
|
|
|
|
xxx_call_draw_string(4, 0, &gUnknown_80DB7A8,gUnknown_203B208->unkBC, 0); // Number?
|
|
|
|
|
sub_8013C68(&gUnknown_203B208->unkA8);
|
|
|
|
|
sub_80073E0(gUnknown_203B208->unkBC);
|
|
|
|
|
sub_8008C54(gKangaskhanStorageWork->unkBC);
|
|
|
|
|
sub_80073B8(gKangaskhanStorageWork->unkBC);
|
|
|
|
|
xxx_call_draw_string(4, 0, &gUnknown_80DB7A8,gKangaskhanStorageWork->unkBC, 0); // Number?
|
|
|
|
|
sub_8013C68(&gKangaskhanStorageWork->unkA8);
|
|
|
|
|
sub_80073E0(gKangaskhanStorageWork->unkBC);
|
|
|
|
|
sub_801CCD8();
|
|
|
|
|
sub_801AD34(0);
|
|
|
|
|
sub_8012EA4(&gUnknown_203B208->unk58, 0);
|
|
|
|
|
sub_8012EA4(&gKangaskhanStorageWork->unk58, 0);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void sub_80175FC(void)
|
|
|
|
|
@@ -440,37 +435,37 @@ void sub_80175FC(void)
|
|
|
|
|
s32 index;
|
|
|
|
|
s32 loopMax;
|
|
|
|
|
|
|
|
|
|
MemoryFill16(gUnknown_203B208->unk4C,0, sizeof(gUnknown_203B208->unk4C));
|
|
|
|
|
MemoryFill16(gKangaskhanStorageWork->unk4C,0, sizeof(gKangaskhanStorageWork->unk4C));
|
|
|
|
|
loopMax = 0;
|
|
|
|
|
gUnknown_203B208->unk24[loopMax].text = *gUnknown_80D4958;
|
|
|
|
|
gUnknown_203B208->unk24[loopMax].menuAction = 2;
|
|
|
|
|
gKangaskhanStorageWork->unk24[loopMax].text = *gUnknown_80D4958;
|
|
|
|
|
gKangaskhanStorageWork->unk24[loopMax].menuAction = 2;
|
|
|
|
|
|
|
|
|
|
loopMax += 1;
|
|
|
|
|
gUnknown_203B208->unk24[loopMax].text = *gUnknown_80D4964;
|
|
|
|
|
gUnknown_203B208->unk24[loopMax].menuAction = 3;
|
|
|
|
|
gKangaskhanStorageWork->unk24[loopMax].text = *gUnknown_80D4964;
|
|
|
|
|
gKangaskhanStorageWork->unk24[loopMax].menuAction = 3;
|
|
|
|
|
|
|
|
|
|
loopMax += 1;
|
|
|
|
|
gUnknown_203B208->unk24[loopMax].text = *gUnknown_80D4970;
|
|
|
|
|
gUnknown_203B208->unk24[loopMax].menuAction = 6;
|
|
|
|
|
gKangaskhanStorageWork->unk24[loopMax].text = *gUnknown_80D4970;
|
|
|
|
|
gKangaskhanStorageWork->unk24[loopMax].menuAction = 6;
|
|
|
|
|
|
|
|
|
|
loopMax += 1;
|
|
|
|
|
gUnknown_203B208->unk24[loopMax].text = *gUnknown_80D4934;
|
|
|
|
|
gUnknown_203B208->unk24[loopMax].menuAction = 1;
|
|
|
|
|
gKangaskhanStorageWork->unk24[loopMax].text = *gUnknown_80D4934;
|
|
|
|
|
gKangaskhanStorageWork->unk24[loopMax].menuAction = 1;
|
|
|
|
|
|
|
|
|
|
loopMax += 1;
|
|
|
|
|
gUnknown_203B208->unk24[loopMax].text = NULL;
|
|
|
|
|
gUnknown_203B208->unk24[loopMax].menuAction = 1;
|
|
|
|
|
gKangaskhanStorageWork->unk24[loopMax].text = NULL;
|
|
|
|
|
gKangaskhanStorageWork->unk24[loopMax].menuAction = 1;
|
|
|
|
|
|
|
|
|
|
for (index = 0; index < loopMax; index++) {
|
|
|
|
|
if (gUnknown_203B208->unk4C[index] == 0) {
|
|
|
|
|
if (gUnknown_203B208->unk24[index].menuAction == gUnknown_203B208->menuAction1)
|
|
|
|
|
if (gKangaskhanStorageWork->unk4C[index] == 0) {
|
|
|
|
|
if (gKangaskhanStorageWork->unk24[index].menuAction == gKangaskhanStorageWork->menuAction1)
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
for (index = 0; index < loopMax; index++) {
|
|
|
|
|
if (gUnknown_203B208->unk4C[index] == 0) {
|
|
|
|
|
gUnknown_203B208->menuAction1 = gUnknown_203B208->unk24[index].menuAction;
|
|
|
|
|
if (gKangaskhanStorageWork->unk4C[index] == 0) {
|
|
|
|
|
gKangaskhanStorageWork->menuAction1 = gKangaskhanStorageWork->unk24[index].menuAction;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
@@ -481,29 +476,29 @@ void sub_80176B8(void)
|
|
|
|
|
s32 index;
|
|
|
|
|
s32 loopMax;
|
|
|
|
|
|
|
|
|
|
MemoryFill16(gUnknown_203B208->unk4C, 0, sizeof(gUnknown_203B208->unk4C));
|
|
|
|
|
MemoryFill16(gKangaskhanStorageWork->unk4C, 0, sizeof(gKangaskhanStorageWork->unk4C));
|
|
|
|
|
loopMax = 0;
|
|
|
|
|
gUnknown_203B208->unk24[loopMax].text = *gUnknown_80D4958;
|
|
|
|
|
gUnknown_203B208->unk24[loopMax].menuAction = 2;
|
|
|
|
|
gKangaskhanStorageWork->unk24[loopMax].text = *gUnknown_80D4958;
|
|
|
|
|
gKangaskhanStorageWork->unk24[loopMax].menuAction = 2;
|
|
|
|
|
|
|
|
|
|
loopMax += 1;
|
|
|
|
|
gUnknown_203B208->unk24[loopMax].text = *gUnknown_80D4970;
|
|
|
|
|
gUnknown_203B208->unk24[loopMax].menuAction = 6;
|
|
|
|
|
gKangaskhanStorageWork->unk24[loopMax].text = *gUnknown_80D4970;
|
|
|
|
|
gKangaskhanStorageWork->unk24[loopMax].menuAction = 6;
|
|
|
|
|
|
|
|
|
|
loopMax += 1;
|
|
|
|
|
gUnknown_203B208->unk24[loopMax].text = NULL;
|
|
|
|
|
gUnknown_203B208->unk24[loopMax].menuAction = 1;
|
|
|
|
|
gKangaskhanStorageWork->unk24[loopMax].text = NULL;
|
|
|
|
|
gKangaskhanStorageWork->unk24[loopMax].menuAction = 1;
|
|
|
|
|
|
|
|
|
|
for (index = 0; index < loopMax; index++) {
|
|
|
|
|
if (gUnknown_203B208->unk4C[index] == 0) {
|
|
|
|
|
if (gUnknown_203B208->unk24[index].menuAction == gUnknown_203B208->menuAction2)
|
|
|
|
|
if (gKangaskhanStorageWork->unk4C[index] == 0) {
|
|
|
|
|
if (gKangaskhanStorageWork->unk24[index].menuAction == gKangaskhanStorageWork->menuAction2)
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
for (index = 0; index < loopMax; index++) {
|
|
|
|
|
if (gUnknown_203B208->unk4C[index] == 0) {
|
|
|
|
|
gUnknown_203B208->menuAction2 = gUnknown_203B208->unk24[index].menuAction;
|
|
|
|
|
if (gKangaskhanStorageWork->unk4C[index] == 0) {
|
|
|
|
|
gKangaskhanStorageWork->menuAction2 = gKangaskhanStorageWork->unk24[index].menuAction;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
@@ -514,29 +509,29 @@ void sub_8017758(void)
|
|
|
|
|
s32 index;
|
|
|
|
|
s32 loopMax;
|
|
|
|
|
|
|
|
|
|
MemoryFill16(gUnknown_203B208->unk4C, 0, sizeof(gUnknown_203B208->unk4C));
|
|
|
|
|
MemoryFill16(gKangaskhanStorageWork->unk4C, 0, sizeof(gKangaskhanStorageWork->unk4C));
|
|
|
|
|
loopMax = 0;
|
|
|
|
|
gUnknown_203B208->unk24[loopMax].text = *gUnknown_80D4964;
|
|
|
|
|
gUnknown_203B208->unk24[loopMax].menuAction = 3;
|
|
|
|
|
gKangaskhanStorageWork->unk24[loopMax].text = *gUnknown_80D4964;
|
|
|
|
|
gKangaskhanStorageWork->unk24[loopMax].menuAction = 3;
|
|
|
|
|
|
|
|
|
|
loopMax += 1;
|
|
|
|
|
gUnknown_203B208->unk24[loopMax].text = *gUnknown_80D4970;
|
|
|
|
|
gUnknown_203B208->unk24[loopMax].menuAction = 6;
|
|
|
|
|
gKangaskhanStorageWork->unk24[loopMax].text = *gUnknown_80D4970;
|
|
|
|
|
gKangaskhanStorageWork->unk24[loopMax].menuAction = 6;
|
|
|
|
|
|
|
|
|
|
loopMax += 1;
|
|
|
|
|
gUnknown_203B208->unk24[loopMax].text = NULL;
|
|
|
|
|
gUnknown_203B208->unk24[loopMax].menuAction = 1;
|
|
|
|
|
gKangaskhanStorageWork->unk24[loopMax].text = NULL;
|
|
|
|
|
gKangaskhanStorageWork->unk24[loopMax].menuAction = 1;
|
|
|
|
|
|
|
|
|
|
for (index = 0; index < loopMax; index++) {
|
|
|
|
|
if (gUnknown_203B208->unk4C[index] == 0) {
|
|
|
|
|
if (gUnknown_203B208->unk24[index].menuAction == gUnknown_203B208->menuAction3)
|
|
|
|
|
if (gKangaskhanStorageWork->unk4C[index] == 0) {
|
|
|
|
|
if (gKangaskhanStorageWork->unk24[index].menuAction == gKangaskhanStorageWork->menuAction3)
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
for (index = 0; index < loopMax; index++) {
|
|
|
|
|
if (gUnknown_203B208->unk4C[index] == 0) {
|
|
|
|
|
gUnknown_203B208->menuAction3 = gUnknown_203B208->unk24[index].menuAction;
|
|
|
|
|
if (gKangaskhanStorageWork->unk4C[index] == 0) {
|
|
|
|
|
gKangaskhanStorageWork->menuAction3 = gKangaskhanStorageWork->unk24[index].menuAction;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
@@ -547,16 +542,16 @@ void sub_80177F8(void)
|
|
|
|
|
s32 loopMax;
|
|
|
|
|
|
|
|
|
|
loopMax = 0;
|
|
|
|
|
gUnknown_203B208->unk24[loopMax].text = *gUnknown_80D4920;
|
|
|
|
|
gUnknown_203B208->unk24[loopMax].menuAction = 4;
|
|
|
|
|
gKangaskhanStorageWork->unk24[loopMax].text = *gUnknown_80D4920;
|
|
|
|
|
gKangaskhanStorageWork->unk24[loopMax].menuAction = 4;
|
|
|
|
|
|
|
|
|
|
loopMax += 1;
|
|
|
|
|
gUnknown_203B208->unk24[loopMax].text = *gUnknown_80D4928;
|
|
|
|
|
gUnknown_203B208->unk24[loopMax].menuAction = 5;
|
|
|
|
|
gKangaskhanStorageWork->unk24[loopMax].text = *gUnknown_80D4928;
|
|
|
|
|
gKangaskhanStorageWork->unk24[loopMax].menuAction = 5;
|
|
|
|
|
|
|
|
|
|
loopMax += 1;
|
|
|
|
|
gUnknown_203B208->unk24[loopMax].text = NULL;
|
|
|
|
|
gUnknown_203B208->unk24[loopMax].menuAction = 1;
|
|
|
|
|
gKangaskhanStorageWork->unk24[loopMax].text = NULL;
|
|
|
|
|
gKangaskhanStorageWork->unk24[loopMax].menuAction = 1;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void sub_8017828(void)
|
|
|
|
|
@@ -567,19 +562,19 @@ void sub_8017828(void)
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
if (menuAction != 1)
|
|
|
|
|
gUnknown_203B208->menuAction1 = menuAction;
|
|
|
|
|
gKangaskhanStorageWork->menuAction1 = menuAction;
|
|
|
|
|
|
|
|
|
|
switch (menuAction) {
|
|
|
|
|
case 2:
|
|
|
|
|
if (GetNumberOfFilledInventorySlots() == 0)
|
|
|
|
|
UpdateKangaskhanStorageState(KANGASKHAN_STORAGE_NO_INV_ITEMS);
|
|
|
|
|
else if (sub_801CF50(0) != 0)
|
|
|
|
|
else if (sub_801CF50(0))
|
|
|
|
|
UpdateKangaskhanStorageState(8);
|
|
|
|
|
else
|
|
|
|
|
UpdateKangaskhanStorageState(11);
|
|
|
|
|
break;
|
|
|
|
|
case 3:
|
|
|
|
|
if (sub_801CF14(1) != 0)
|
|
|
|
|
if (sub_801CF14(1))
|
|
|
|
|
UpdateKangaskhanStorageState(7);
|
|
|
|
|
else if (GetNumberOfFilledInventorySlots() >= INVENTORY_SIZE)
|
|
|
|
|
UpdateKangaskhanStorageState(KANGASKHAN_STORAGE_TOO_MANY_ITEMS);
|
|
|
|
|
@@ -604,8 +599,8 @@ void sub_80178D0(void)
|
|
|
|
|
|
|
|
|
|
switch (menuAction) {
|
|
|
|
|
case 4:
|
|
|
|
|
MoveToStorage(&gUnknown_203B208->storedItem);
|
|
|
|
|
ShiftItemsDownFrom(gUnknown_203B208->itemIndex);
|
|
|
|
|
MoveToStorage(&gKangaskhanStorageWork->storedItem);
|
|
|
|
|
ShiftItemsDownFrom(gKangaskhanStorageWork->itemIndex);
|
|
|
|
|
FillInventoryGaps();
|
|
|
|
|
UpdateKangaskhanStorageState(19);
|
|
|
|
|
break;
|
|
|
|
|
@@ -626,9 +621,9 @@ void sub_8017928(void)
|
|
|
|
|
|
|
|
|
|
switch (menuAction) {
|
|
|
|
|
case 4:
|
|
|
|
|
gTeamInventory_203B460->teamStorage[gUnknown_203B208->storedItem.id] -= gUnknown_203B208->storedItem.quantity;
|
|
|
|
|
item.id = gUnknown_203B208->storedItem.id;
|
|
|
|
|
item.quantity = gUnknown_203B208->storedItem.quantity;
|
|
|
|
|
gTeamInventory_203B460->teamStorage[gKangaskhanStorageWork->storedItem.id] -= gKangaskhanStorageWork->storedItem.quantity;
|
|
|
|
|
item.id = gKangaskhanStorageWork->storedItem.id;
|
|
|
|
|
item.quantity = gKangaskhanStorageWork->storedItem.quantity;
|
|
|
|
|
AddHeldItemToInventory(&item);
|
|
|
|
|
UpdateKangaskhanStorageState(29);
|
|
|
|
|
break;
|
|
|
|
|
@@ -715,14 +710,14 @@ void sub_8017AF8(void)
|
|
|
|
|
UpdateKangaskhanStorageState(18);
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
gUnknown_203B208->itemIndex = sub_801A8AC();
|
|
|
|
|
gUnknown_203B208->storedItem = gTeamInventory_203B460->teamItems[gUnknown_203B208->itemIndex];
|
|
|
|
|
gKangaskhanStorageWork->itemIndex = sub_801A8AC();
|
|
|
|
|
gKangaskhanStorageWork->storedItem = gTeamInventory_203B460->teamItems[gKangaskhanStorageWork->itemIndex];
|
|
|
|
|
UpdateKangaskhanStorageState(15);
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case 4:
|
|
|
|
|
gUnknown_203B208->itemIndex = sub_801A8AC();
|
|
|
|
|
gUnknown_203B208->storedItem = gTeamInventory_203B460->teamItems[gUnknown_203B208->itemIndex];
|
|
|
|
|
gKangaskhanStorageWork->itemIndex = sub_801A8AC();
|
|
|
|
|
gKangaskhanStorageWork->storedItem = gTeamInventory_203B460->teamItems[gKangaskhanStorageWork->itemIndex];
|
|
|
|
|
UpdateKangaskhanStorageState(16);
|
|
|
|
|
break;
|
|
|
|
|
case 2:
|
|
|
|
|
@@ -739,16 +734,16 @@ void sub_8017B88(void)
|
|
|
|
|
if (sub_801CFB8() != 0)
|
|
|
|
|
UpdateKangaskhanStorageState(28);
|
|
|
|
|
else {
|
|
|
|
|
gUnknown_203B208->id = sub_801CB24();
|
|
|
|
|
xxx_init_itemslot_8090A8C(&gUnknown_203B208->storedItem, gUnknown_203B208->id, 0);
|
|
|
|
|
gUnknown_203B208->storedItem.quantity = 1;
|
|
|
|
|
gKangaskhanStorageWork->id = sub_801CB24();
|
|
|
|
|
xxx_init_itemslot_8090A8C(&gKangaskhanStorageWork->storedItem, gKangaskhanStorageWork->id, 0);
|
|
|
|
|
gKangaskhanStorageWork->storedItem.quantity = 1;
|
|
|
|
|
UpdateKangaskhanStorageState(25);
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case 4:
|
|
|
|
|
gUnknown_203B208->id = sub_801CB24();
|
|
|
|
|
xxx_init_itemslot_8090A8C(&gUnknown_203B208->storedItem, gUnknown_203B208->id, 0);
|
|
|
|
|
gUnknown_203B208->storedItem.quantity = 1;
|
|
|
|
|
gKangaskhanStorageWork->id = sub_801CB24();
|
|
|
|
|
xxx_init_itemslot_8090A8C(&gKangaskhanStorageWork->storedItem, gKangaskhanStorageWork->id, 0);
|
|
|
|
|
gKangaskhanStorageWork->storedItem.quantity = 1;
|
|
|
|
|
UpdateKangaskhanStorageState(26);
|
|
|
|
|
break;
|
|
|
|
|
case 2:
|
|
|
|
|
@@ -764,14 +759,14 @@ void sub_8017B88(void)
|
|
|
|
|
void sub_8017C28(void)
|
|
|
|
|
{
|
|
|
|
|
sub_801CA08(0);
|
|
|
|
|
sub_8012FD8(&gUnknown_203B208->unk58);
|
|
|
|
|
sub_8012FD8(&gKangaskhanStorageWork->unk58);
|
|
|
|
|
|
|
|
|
|
switch (sub_8013BBC(&gUnknown_203B208->unkA8)) {
|
|
|
|
|
switch (sub_8013BBC(&gKangaskhanStorageWork->unkA8)) {
|
|
|
|
|
case 1:
|
|
|
|
|
sub_8017598();
|
|
|
|
|
break;
|
|
|
|
|
case 3:
|
|
|
|
|
gUnknown_203B208->storedItem.quantity = gUnknown_203B208->unkA8;
|
|
|
|
|
gKangaskhanStorageWork->storedItem.quantity = gKangaskhanStorageWork->unkA8;
|
|
|
|
|
UpdateKangaskhanStorageState(27);
|
|
|
|
|
break;
|
|
|
|
|
case 2:
|
|
|
|
|
@@ -789,18 +784,18 @@ void sub_8017C7C(void)
|
|
|
|
|
menuAction = 0;
|
|
|
|
|
|
|
|
|
|
sub_801A6E8(FALSE);
|
|
|
|
|
if (sub_8012FD8(&gUnknown_203B208->unk58) == 0) {
|
|
|
|
|
sub_8013114(&gUnknown_203B208->unk58, &menuAction);
|
|
|
|
|
if (sub_8012FD8(&gKangaskhanStorageWork->unk58) == 0) {
|
|
|
|
|
sub_8013114(&gKangaskhanStorageWork->unk58, &menuAction);
|
|
|
|
|
if (menuAction != 1)
|
|
|
|
|
gUnknown_203B208->menuAction2 = menuAction;
|
|
|
|
|
gKangaskhanStorageWork->menuAction2 = menuAction;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
switch (menuAction) {
|
|
|
|
|
case 2:
|
|
|
|
|
sub_8099690(0);
|
|
|
|
|
if (!IsNotMoneyOrUsedTMItem(gUnknown_203B208->storedItem.id))
|
|
|
|
|
if (!IsNotMoneyOrUsedTMItem(gKangaskhanStorageWork->storedItem.id))
|
|
|
|
|
UpdateKangaskhanStorageState(KANGASKHAN_STORAGE_IS_MONEY_USED_TM);
|
|
|
|
|
else if(!sub_801ADA0(gUnknown_203B208->itemIndex))
|
|
|
|
|
else if(!sub_801ADA0(gKangaskhanStorageWork->itemIndex))
|
|
|
|
|
UpdateKangaskhanStorageState(10);
|
|
|
|
|
else
|
|
|
|
|
UpdateKangaskhanStorageState(17);
|
|
|
|
|
@@ -821,10 +816,10 @@ void sub_8017D24(void)
|
|
|
|
|
menuAction = 0;
|
|
|
|
|
|
|
|
|
|
sub_801CA08(0);
|
|
|
|
|
if (sub_8012FD8(&gUnknown_203B208->unk58) == 0) {
|
|
|
|
|
sub_8013114(&gUnknown_203B208->unk58, &menuAction);
|
|
|
|
|
if (sub_8012FD8(&gKangaskhanStorageWork->unk58) == 0) {
|
|
|
|
|
sub_8013114(&gKangaskhanStorageWork->unk58, &menuAction);
|
|
|
|
|
if (menuAction != 1)
|
|
|
|
|
gUnknown_203B208->menuAction3 = menuAction;
|
|
|
|
|
gKangaskhanStorageWork->menuAction3 = menuAction;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
switch (menuAction) {
|
|
|
|
|
@@ -833,7 +828,7 @@ void sub_8017D24(void)
|
|
|
|
|
sub_801CBB8();
|
|
|
|
|
UpdateKangaskhanStorageState(KANGASKHAN_STORAGE_TOO_MANY_ITEMS);
|
|
|
|
|
}
|
|
|
|
|
else if (IsThrowableItem(gUnknown_203B208->storedItem.id))
|
|
|
|
|
else if (IsThrowableItem(gKangaskhanStorageWork->storedItem.id))
|
|
|
|
|
UpdateKangaskhanStorageState(24);
|
|
|
|
|
else
|
|
|
|
|
UpdateKangaskhanStorageState(27);
|
|
|
|
|
@@ -881,7 +876,7 @@ void AdvanceToKangaskhanStorageFallbackState(void)
|
|
|
|
|
{
|
|
|
|
|
s32 temp;
|
|
|
|
|
if (sub_80144A4(&temp) == 0)
|
|
|
|
|
UpdateKangaskhanStorageState(gUnknown_203B208->fallbackState);
|
|
|
|
|
UpdateKangaskhanStorageState(gKangaskhanStorageWork->fallbackState);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
u32 sub_8017E1C(void)
|
|
|
|
|
@@ -1077,14 +1072,14 @@ void sub_80182E4(void)
|
|
|
|
|
gUnknown_203B20C->unk20[0].text = *gUnknown_80D4958;
|
|
|
|
|
gUnknown_203B20C->unk20[0].menuAction = 2;
|
|
|
|
|
|
|
|
|
|
if (GetNumberOfFilledInventorySlots() == 0 || sub_801CF50(0) != 0)
|
|
|
|
|
if (GetNumberOfFilledInventorySlots() == 0 || sub_801CF50(0))
|
|
|
|
|
gUnknown_203B20C->unk60[0] = 1;
|
|
|
|
|
|
|
|
|
|
loopMax += 1;
|
|
|
|
|
gUnknown_203B20C->unk20[loopMax].text = *gUnknown_80D4964;
|
|
|
|
|
gUnknown_203B20C->unk20[loopMax].menuAction = 3;
|
|
|
|
|
|
|
|
|
|
if (sub_801CF14(1) != 0 || INVENTORY_SIZE <= GetNumberOfFilledInventorySlots())
|
|
|
|
|
if (sub_801CF14(1) || INVENTORY_SIZE <= GetNumberOfFilledInventorySlots())
|
|
|
|
|
gUnknown_203B20C->unk60[loopMax] = 1;
|
|
|
|
|
|
|
|
|
|
loopMax += 1;
|
|
|
|
|
@@ -1194,13 +1189,13 @@ void sub_8018588(void)
|
|
|
|
|
|
|
|
|
|
switch (menuAction) {
|
|
|
|
|
case 2:
|
|
|
|
|
if (GetNumberOfFilledInventorySlots() != 0 && sub_801CF50(0) == 0)
|
|
|
|
|
if (GetNumberOfFilledInventorySlots() != 0 && !sub_801CF50(0))
|
|
|
|
|
sub_8017F10(4);
|
|
|
|
|
else
|
|
|
|
|
sub_8012EA4(&gUnknown_203B20C->unk70, 1);
|
|
|
|
|
break;
|
|
|
|
|
case 3:
|
|
|
|
|
if (sub_801CF14(1) != 0)
|
|
|
|
|
if (sub_801CF14(1))
|
|
|
|
|
sub_8012EA4(&gUnknown_203B20C->unk70, 1);
|
|
|
|
|
else
|
|
|
|
|
sub_8017F10(10);
|
|
|
|
|
@@ -1283,7 +1278,7 @@ void sub_80186F8(void)
|
|
|
|
|
FillInventoryGaps();
|
|
|
|
|
sub_801CF94();
|
|
|
|
|
|
|
|
|
|
if (sub_801CF14(1) == 0 && GetNumberOfFilledInventorySlots() < INVENTORY_SIZE)
|
|
|
|
|
if (!sub_801CF14(1) && GetNumberOfFilledInventorySlots() < INVENTORY_SIZE)
|
|
|
|
|
sub_8017F10(11);
|
|
|
|
|
else {
|
|
|
|
|
sub_801CBB8();
|
|
|
|
|
@@ -1328,7 +1323,7 @@ void sub_8018854(void)
|
|
|
|
|
item.quantity = gUnknown_203B20C->item.quantity;
|
|
|
|
|
AddHeldItemToInventory(&item);
|
|
|
|
|
|
|
|
|
|
if (sub_801CF14(1) == 0) {
|
|
|
|
|
if (!sub_801CF14(1)) {
|
|
|
|
|
if (GetNumberOfFilledInventorySlots() >= INVENTORY_SIZE) {
|
|
|
|
|
error:
|
|
|
|
|
sub_801CBB8();
|
|
|
|
|
@@ -1423,7 +1418,7 @@ void sub_80189C8(void)
|
|
|
|
|
item.quantity = gUnknown_203B20C->item.quantity;
|
|
|
|
|
AddHeldItemToInventory(&item);
|
|
|
|
|
|
|
|
|
|
if (sub_801CF14(1) == 0) {
|
|
|
|
|
if (!sub_801CF14(1)) {
|
|
|
|
|
if (GetNumberOfFilledInventorySlots() >= INVENTORY_SIZE)
|
|
|
|
|
{
|
|
|
|
|
error:
|
|
|
|
|
|