mirror of
https://github.com/pret/pmd-red.git
synced 2026-04-24 15:07:09 -05:00
sub_809B648
This commit is contained in:
parent
6e68321507
commit
bdc60be5c8
1681
asm/code_809A560.s
1681
asm/code_809A560.s
File diff suppressed because it is too large
Load Diff
|
|
@ -49,17 +49,17 @@ struct unkStruct_3001B64
|
|||
u32 unk8;
|
||||
struct unkStruct_3001B64_unkC unkC;
|
||||
u32 unk414;
|
||||
struct unkStruct_3001B64_unk418 *unk418;
|
||||
const struct unkStruct_3001B64_unk418 *unk418;
|
||||
const MenuItem *unk41C;
|
||||
u32 unk420;
|
||||
u32 unk424;
|
||||
u32 unk428;
|
||||
u32 unk42C;
|
||||
u8 *unk42C;
|
||||
s32 unk430;
|
||||
u32 unk434;
|
||||
s32 unk434;
|
||||
u32 fill438;
|
||||
struct unkStruct_3001B64_sub unk43C[10];
|
||||
u16 unk5A4;
|
||||
s16 unk5A4;
|
||||
};
|
||||
|
||||
#endif // GUARD_STR_3001B61_H
|
||||
|
|
|
|||
|
|
@ -319,7 +319,6 @@ SECTIONS {
|
|||
src/code_8099360.o(.text);
|
||||
asm/code_8099360.o(.text);
|
||||
src/code_809A560.o(.text);
|
||||
asm/code_809A560.o(.text);
|
||||
src/code_809A560_1.o(.text);
|
||||
src/code_809C5C4.o(.text);
|
||||
asm/code_809C5C4.o(.text);
|
||||
|
|
|
|||
|
|
@ -2,14 +2,17 @@
|
|||
#include "text.h"
|
||||
#include "memory.h"
|
||||
#include "pokemon.h"
|
||||
#include "ground_script.h"
|
||||
#include "code_8099360.h"
|
||||
#include "code_800D090.h"
|
||||
#include "code_800558C.h"
|
||||
#include "pokemon_mid.h"
|
||||
#include "string_format.h"
|
||||
#include "structs/str_3001B64.h"
|
||||
#include "constants/dungeon.h"
|
||||
#include "wigglytuff_shop1.h"
|
||||
#include "event_flag.h"
|
||||
#include "input.h"
|
||||
|
||||
IWRAM_INIT struct unkStruct_3001B64 *gUnknown_3001B64 = {NULL};
|
||||
|
||||
|
|
@ -51,7 +54,7 @@ void sub_809A560(void)
|
|||
gUnknown_3001B64->unk420 = 0;
|
||||
gUnknown_3001B64->unk424 = 0;
|
||||
gUnknown_3001B64->unk428 = 0;
|
||||
gUnknown_3001B64->unk42C = 0;
|
||||
gUnknown_3001B64->unk42C = NULL;
|
||||
gUnknown_3001B64->unk430 = -1;
|
||||
gUnknown_3001B64->unk434 = -1;
|
||||
sub_809A7EC();
|
||||
|
|
@ -681,14 +684,14 @@ bool8 sub_809B18C(s32 *sp)
|
|||
return (gUnknown_3001B64->unk420 == 3);
|
||||
}
|
||||
|
||||
bool8 sub_809B1D4(s32 a0, u32 kind, s32 a2, s32 r3);
|
||||
bool8 sub_809B1D4(s32 a0, u32 kind, s32 a2, u8 *a3);
|
||||
|
||||
bool8 sub_809B1C0(s32 a0, u32 kind, s32 a2)
|
||||
bool8 sub_809B1C0(s32 a0, u32 kind, u8 *a2)
|
||||
{
|
||||
return sub_809B1D4(a0, kind, 0, a2);
|
||||
}
|
||||
|
||||
bool8 sub_809B1D4(s32 a0, u32 kind, s32 a2, s32 a3)
|
||||
bool8 sub_809B1D4(s32 a0, u32 kind, s32 a2, u8 *a3)
|
||||
{
|
||||
switch (a0) {
|
||||
case 0xB:
|
||||
|
|
@ -823,7 +826,7 @@ void sub_809B57C(void);
|
|||
|
||||
void sub_809B474(void)
|
||||
{
|
||||
struct unkStruct_3001B64_unk418 *unkStructPtr;
|
||||
const struct unkStruct_3001B64_unk418 *unkStructPtr;
|
||||
|
||||
switch (gUnknown_3001B64->unk0) {
|
||||
case 0:
|
||||
|
|
@ -879,3 +882,788 @@ void sub_809B474(void)
|
|||
}
|
||||
sub_809B57C();
|
||||
}
|
||||
|
||||
extern void GroundScriptLock(s16 index, s32 r1);
|
||||
extern void GroundScriptLockJumpZero(s16 index);
|
||||
|
||||
void sub_809B57C(void)
|
||||
{
|
||||
DrawDialogueBoxString();
|
||||
switch (gUnknown_3001B64->unk0) {
|
||||
case 1:
|
||||
case 2:
|
||||
case 3:
|
||||
switch (gUnknown_3001B64->unk420) {
|
||||
default: {
|
||||
s32 sp;
|
||||
if (sub_80144A4(&sp) == 0) {
|
||||
GroundScriptLock(1, sp);
|
||||
gUnknown_3001B64->unk420 = 3;
|
||||
gUnknown_3001B64->unk430 = sp;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 0:
|
||||
case 3: {
|
||||
s32 sp;
|
||||
if (sub_80144A4(&sp) == 0) {
|
||||
GroundScriptLockJumpZero(0);
|
||||
gUnknown_3001B64->unk0 = 0;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
if (gUnknown_3001B64->unk434 < 0) {
|
||||
sub_8005838(0, 0);
|
||||
}
|
||||
else {
|
||||
sub_8005838(0, 5);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_809B614(void)
|
||||
{
|
||||
sub_80060EC();
|
||||
gUnknown_20399DE = gUnknown_20399DC;
|
||||
gUnknown_20399DC &= 0xFFFD;
|
||||
}
|
||||
|
||||
void sub_809B638(void)
|
||||
{
|
||||
xxx_call_update_bg_vram();
|
||||
}
|
||||
|
||||
void nullsub_210(void)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
extern const struct unkStruct_3001B64_unk418 gUnknown_81161E8;
|
||||
extern const struct unkStruct_3001B64_unk418 gUnknown_81162F8;
|
||||
extern const struct unkStruct_3001B64_unk418 gUnknown_81161A8;
|
||||
extern const struct unkStruct_3001B64_unk418 gUnknown_81161B8;
|
||||
extern const struct unkStruct_3001B64_unk418 gUnknown_811610C;
|
||||
extern const struct unkStruct_3001B64_unk418 gUnknown_811612C;
|
||||
extern const struct unkStruct_3001B64_unk418 gUnknown_8116298;
|
||||
extern const struct unkStruct_3001B64_unk418 gUnknown_81162A8;
|
||||
extern const struct unkStruct_3001B64_unk418 gUnknown_81162B8;
|
||||
extern const struct unkStruct_3001B64_unk418 gUnknown_81162C8;
|
||||
extern const struct unkStruct_3001B64_unk418 gUnknown_81162D8;
|
||||
extern const struct unkStruct_3001B64_unk418 gUnknown_81162E8;
|
||||
extern const struct unkStruct_3001B64_unk418 gUnknown_8116308;
|
||||
extern const struct unkStruct_3001B64_unk418 gUnknown_8116318;
|
||||
extern const struct unkStruct_3001B64_unk418 gUnknown_81161F8;
|
||||
extern const struct unkStruct_3001B64_unk418 gUnknown_81161C8;
|
||||
extern const struct unkStruct_3001B64_unk418 gUnknown_81161D8;
|
||||
extern const struct unkStruct_3001B64_unk418 gUnknown_8116218;
|
||||
extern const struct unkStruct_3001B64_unk418 gUnknown_8116228;
|
||||
extern const struct unkStruct_3001B64_unk418 gUnknown_8116238;
|
||||
extern const struct unkStruct_3001B64_unk418 gUnknown_8116248;
|
||||
extern const struct unkStruct_3001B64_unk418 gUnknown_8116258;
|
||||
extern const struct unkStruct_3001B64_unk418 gUnknown_8116268;
|
||||
extern const struct unkStruct_3001B64_unk418 gUnknown_8116278;
|
||||
extern const struct unkStruct_3001B64_unk418 gUnknown_8116288;
|
||||
extern const struct unkStruct_3001B64_unk418 gUnknown_8116208;
|
||||
|
||||
struct unkStruct_8096AF8
|
||||
{
|
||||
bool8 unk0;
|
||||
/* 0x2 */ u16 clientSpecies;
|
||||
/* 0x4 */ u16 targetSpecies;
|
||||
};
|
||||
|
||||
void sub_8096AF8(struct unkStruct_8096AF8 *, u8 slotIndex, u8 dungeon);
|
||||
u8 sub_802DB28(u8, u8);
|
||||
void sub_8096BD0();
|
||||
void ScenarioCalc(s16 varId, s32 main, s32 sub);
|
||||
void MakuhitaDojo_Delete();
|
||||
s32 HandleMakuhitaDojoState();
|
||||
s16 sub_802FED0();
|
||||
u8 sub_801FB50();
|
||||
void sub_80151C0();
|
||||
void sub_80155F0();
|
||||
s32 sub_80160D8();
|
||||
void ResetTextbox_809B294();
|
||||
u8 sub_801A5D8();
|
||||
s32 sub_801A6E8(s32);
|
||||
s32 sub_801A8AC();
|
||||
void sub_801A928();
|
||||
s32 sub_8016080();
|
||||
void CleanConfirmNameMenu();
|
||||
u32 CreateConfirmNameMenu(u32 mode, u8 *name);
|
||||
bool8 DrawCredits(s32 creditsCategoryIndex, s32);
|
||||
u32 sub_8035574();
|
||||
void sub_803565C();
|
||||
u8 sub_8094D14();
|
||||
void sub_802465C();
|
||||
s32 sub_80246F0();
|
||||
s32 GetScriptVarValue(u8 *localVarBuf, s32 varId);
|
||||
bool8 HasEvolutionCompleted();
|
||||
void GroundMap_ExecuteEvent();
|
||||
void SetScriptVarValue(u8 *localVarBuf, s32 varId, s32 val);
|
||||
void CleanLuminousCave();
|
||||
u8 CreateFelicityBank(u8);
|
||||
u8 sub_80023E4();
|
||||
u8 CreateFriendListMenu();
|
||||
void PlayMenuSoundEffect();
|
||||
void sub_801D014();
|
||||
u8 sub_8015080();
|
||||
s32 sub_801516C();
|
||||
void sub_80151A4();
|
||||
s32 sub_8015198();
|
||||
u8 sub_80211AC();
|
||||
void sub_80213A0();
|
||||
u8 sub_802132C();
|
||||
u8 MakuhitaDojo_New();
|
||||
u8 sub_803B050();
|
||||
void sub_803B100();
|
||||
s32 sub_809CCDC();
|
||||
u8 sub_801B60C();
|
||||
u8 CreateKecleonBros();
|
||||
s16 sub_80A2654(s16);
|
||||
u8 sub_802F73C();
|
||||
u8 sub_802F848();
|
||||
s32 sub_802F8A0();
|
||||
void sub_802F974();
|
||||
s16 sub_802F90C();
|
||||
s16 sub_80A26B8();
|
||||
u8 sub_80302E8();
|
||||
s32 sub_80303AC();
|
||||
void sub_8030480();
|
||||
s16 sub_8030418();
|
||||
void PrepareSavePakWrite();
|
||||
u8 WriteSavePak();
|
||||
void FinishWriteSavePak();
|
||||
u8 CreateKangaskhanStorage();
|
||||
void sub_8011C28();
|
||||
u8 CreateHelperPelipperMenu();
|
||||
u8 CreateWigglytuffShop();
|
||||
u8 sub_8099328();
|
||||
void GetScriptVarScenario(s32 varId,u32 *outMain,u32 *outSub);
|
||||
|
||||
bool8 sub_809B648(void)
|
||||
{
|
||||
s32 iVar14;
|
||||
s32 iVar15;
|
||||
u8 uVar11;
|
||||
u8 uVar12;
|
||||
u8 uVar15;
|
||||
u8 uVar16;
|
||||
u8 uVar17;
|
||||
u32 uVar14;
|
||||
u8 uVar19;
|
||||
u8 uVar1;
|
||||
u32 uVar7;
|
||||
s32 sVar6;
|
||||
u8 local_34;
|
||||
u32 local_30;
|
||||
u32 local_2c;
|
||||
struct unkStruct_8096AF8 local_28;
|
||||
u32 local_20;
|
||||
u32 local_1c;
|
||||
struct unkStruct_8096AF8 local_18;
|
||||
|
||||
u8 local_33;
|
||||
|
||||
switch (gUnknown_3001B64->unk414) {
|
||||
case 2:
|
||||
if (gUnknown_3001B64->unk420 != 1) {
|
||||
u32 pressed = gRealInputs.pressed;
|
||||
if ((pressed & 3) != 0) {
|
||||
gUnknown_3001B64->unk430 = 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (sub_8094D14()) {
|
||||
gUnknown_3001B64->unk430 = 2;
|
||||
return 0;
|
||||
}
|
||||
else {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
ResetTextbox_809B294();
|
||||
return 1;
|
||||
case 3:
|
||||
if (gUnknown_3001B64->unk420 == 1) {
|
||||
ResetTextbox_809B294();
|
||||
return 1;
|
||||
}
|
||||
else {
|
||||
u32 held = gRealInputs.held;
|
||||
u32 pressed = gRealInputs.pressed;
|
||||
if (((pressed & 2) == 0) && ((held & 2))) {
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
if (gUnknown_3001B64->unk420 == 1) {
|
||||
ResetTextbox_809B294();
|
||||
if (gUnknown_3001B64->unk424 == 0) {
|
||||
CreateConfirmNameMenu(0, gUnknown_3001B64->unk42C);
|
||||
}
|
||||
else {
|
||||
CreateConfirmNameMenu(2, gUnknown_3001B64->unk42C);
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
else {
|
||||
s32 iVar12 = sub_8016080();
|
||||
if (iVar12 == 3) {
|
||||
CleanConfirmNameMenu();
|
||||
gUnknown_3001B64->unk430 = 1;
|
||||
break;
|
||||
}
|
||||
else if(iVar12 == 2) {
|
||||
if (gUnknown_3001B64->unk424 == 0) {
|
||||
return 1;
|
||||
}
|
||||
CleanConfirmNameMenu();
|
||||
gUnknown_3001B64->unk430 = 0;
|
||||
return 0;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
break;
|
||||
case 5:
|
||||
if (gUnknown_3001B64->unk420 == 1) {
|
||||
ResetTextbox_809B294();
|
||||
CreateConfirmNameMenu(1, gUnknown_3001B64->unk42C);
|
||||
}
|
||||
else {
|
||||
s32 iVar12 = sub_8016080();
|
||||
if(iVar12 == 3)
|
||||
{
|
||||
CleanConfirmNameMenu();
|
||||
gUnknown_3001B64->unk430 = 1;
|
||||
return 0;
|
||||
}
|
||||
else if(iVar12 == 2)
|
||||
{
|
||||
if (gUnknown_3001B64->unk424 == 0) {
|
||||
return 1;
|
||||
}
|
||||
CleanConfirmNameMenu();
|
||||
gUnknown_3001B64->unk430 = 0;
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
return 1;
|
||||
|
||||
case 6:
|
||||
if (gUnknown_3001B64->unk420 == 1) {
|
||||
ResetTextbox_809B294();
|
||||
sub_80151C0(4,gUnknown_3001B64->unk42C);
|
||||
return 1;
|
||||
}
|
||||
else {
|
||||
s32 iVar12 = sub_80154F0();
|
||||
if (iVar12 == 3)
|
||||
{
|
||||
sub_80155F0();
|
||||
gUnknown_3001B64->unk430 = 1;
|
||||
return 0;
|
||||
}
|
||||
else if (iVar12 == 2)
|
||||
{
|
||||
if (gUnknown_3001B64->unk424 == 0) return 1;
|
||||
sub_80155F0();
|
||||
gUnknown_3001B64->unk430 = 0;
|
||||
return 0;
|
||||
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
case 7:
|
||||
sub_801D014(gUnknown_3001B64->unk42C);
|
||||
gUnknown_3001B64->unk418 = &gUnknown_81161A8;
|
||||
PlayMenuSoundEffect(4);
|
||||
return 1;
|
||||
case 8:
|
||||
sub_801D014(gUnknown_3001B64->unk42C);
|
||||
gUnknown_3001B64->unk418 = &gUnknown_81161B8;
|
||||
PlayMenuSoundEffect(4);
|
||||
return 1;
|
||||
case 9:
|
||||
ResetTextbox_809B294();
|
||||
if (gUnknown_3001B64->unk420 == 1) {
|
||||
ResetTextbox_809B294();
|
||||
if (sub_8015080(gUnknown_3001B64->unk42C,&gUnknown_811610C) == '\0') {
|
||||
gUnknown_3001B64->unk430 = -1;
|
||||
return 0;
|
||||
}
|
||||
PlayMenuSoundEffect(4);
|
||||
}
|
||||
else {
|
||||
switch( sub_801516C())
|
||||
{
|
||||
case 3:
|
||||
gUnknown_3001B64->unk430 = sub_8015198();
|
||||
sub_80151A4();
|
||||
return 0;
|
||||
case 2:
|
||||
gUnknown_3001B64->unk430 = -1;
|
||||
sub_80151A4();
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
return 1;
|
||||
case 10:
|
||||
ResetTextbox_809B294();
|
||||
if (gUnknown_3001B64->unk420 == 1) {
|
||||
ResetTextbox_809B294();
|
||||
if (sub_8015080(gUnknown_3001B64->unk42C,&gUnknown_811612C) == '\0') {
|
||||
gUnknown_3001B64->unk430 = -1;
|
||||
return 0;
|
||||
}
|
||||
PlayMenuSoundEffect(4);
|
||||
}
|
||||
else {
|
||||
switch( sub_801516C())
|
||||
{
|
||||
case 3:
|
||||
gUnknown_3001B64->unk430 = sub_8015198();
|
||||
sub_80151A4();
|
||||
return 0;
|
||||
case 2:
|
||||
gUnknown_3001B64->unk430 = -1;
|
||||
sub_80151A4();
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
return 1;
|
||||
case 11:
|
||||
if (gUnknown_3001B64->unk420 == 1) {
|
||||
ResetTextbox_809B294();
|
||||
if (sub_80211AC(gUnknown_3001B64->unk424,3) == '\0') {
|
||||
gUnknown_3001B64->unk430 = -1;
|
||||
return 0;
|
||||
}
|
||||
PlayMenuSoundEffect(4);
|
||||
|
||||
}
|
||||
else {
|
||||
switch(sub_8021274(1))
|
||||
{
|
||||
case 3:
|
||||
gUnknown_3001B64->unk430 = sub_802132C();
|
||||
sub_80213A0();
|
||||
return 0;
|
||||
case 2:
|
||||
gUnknown_3001B64->unk430 = -1;
|
||||
sub_80213A0();
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
return 1;
|
||||
case 0xc:
|
||||
if (gUnknown_3001B64->unk420 == 1) {
|
||||
s32 sVar6 = sub_80A2654(GetScriptVarValue(0,0x12));
|
||||
ResetTextbox_809B294();
|
||||
if (sub_802F73C(3,0,10,1) == '\0') {
|
||||
gUnknown_3001B64->unk430 = -1;
|
||||
return 0;
|
||||
}
|
||||
if ((sVar6 != -1) && (sub_802F848(sVar6) == '\0')) {
|
||||
SetScriptVarValue(0,0x12,-1);
|
||||
}
|
||||
PlayMenuSoundEffect(4);
|
||||
}
|
||||
else {
|
||||
switch(sub_802F8A0(1))
|
||||
{
|
||||
case 3:
|
||||
sVar6 = sub_802F90C();
|
||||
SetScriptVarValue(0, 0x12, sub_80A26B8(sVar6));
|
||||
gUnknown_3001B64->unk430 = sVar6;
|
||||
sub_802F974();
|
||||
return 0;
|
||||
case 2:
|
||||
gUnknown_3001B64->unk430 = -1;
|
||||
sub_802F974();
|
||||
return 0;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return 1;
|
||||
case 0xd:
|
||||
if (gUnknown_3001B64->unk420 == 1) {
|
||||
ResetTextbox_809B294();
|
||||
if ( sub_80302E8(3,0,10) == '\0') {
|
||||
gUnknown_3001B64->unk430 = -1;
|
||||
return 0;
|
||||
}
|
||||
PlayMenuSoundEffect(4);
|
||||
|
||||
}
|
||||
else {
|
||||
switch(sub_80303AC(1))
|
||||
{
|
||||
case 3:
|
||||
gUnknown_3001B64->unk430 = sub_8030418();
|
||||
sub_8030480();
|
||||
return 0;
|
||||
case 2:
|
||||
gUnknown_3001B64->unk430 = -1;
|
||||
sub_8030480();
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
return 1;
|
||||
case 0xe:
|
||||
case 0xf:
|
||||
if (gUnknown_3001B64->unk420 == 1) {
|
||||
ResetTextbox_809B294();
|
||||
if (gUnknown_3001B64->unk414 == 0xe) {
|
||||
SetScriptVarValue(0,0x18,1);
|
||||
}
|
||||
sub_8011C28(1);
|
||||
PrepareSavePakWrite(0);
|
||||
|
||||
return 1;
|
||||
}
|
||||
if (WriteSavePak() != '\0') {
|
||||
return 1;
|
||||
}
|
||||
FinishWriteSavePak();
|
||||
return 0;
|
||||
case 0x10:
|
||||
uVar16 = sub_80023E4(4) == 0 ? 0 : 1;
|
||||
ResetTextbox_809B294();
|
||||
if ( CreateKangaskhanStorage(uVar16)) {
|
||||
gUnknown_3001B64->unk418 = &gUnknown_81161C8;
|
||||
return 1;
|
||||
}
|
||||
gUnknown_3001B64->unk430 = -1;
|
||||
return 0;
|
||||
case 0x11:
|
||||
gUnknown_3001B64->unk418 = &gUnknown_81161D8;
|
||||
return 1;
|
||||
|
||||
case 0x13:
|
||||
uVar17 = sub_80023E4(4) == 0 ? 0 : 1;
|
||||
ResetTextbox_809B294();
|
||||
if (CreateFelicityBank(uVar17)) {
|
||||
gUnknown_3001B64->unk418 = &gUnknown_81161E8;
|
||||
return 1;
|
||||
}
|
||||
gUnknown_3001B64->unk430 = -1;
|
||||
return 0;
|
||||
case 0x17:
|
||||
case 0x18:
|
||||
uVar11 = sub_80023E4(4);
|
||||
ResetTextbox_809B294();
|
||||
if (gUnknown_3001B64->unk414 == 0x17) {
|
||||
uVar7 = uVar11 == 0 ? 0 : 1;
|
||||
}
|
||||
else {
|
||||
uVar7 = 2;
|
||||
if ((uVar11) != 0) {
|
||||
uVar7 = 3;
|
||||
}
|
||||
}
|
||||
if ( CreateKecleonBros(uVar7)) {
|
||||
gUnknown_3001B64->unk418 = &gUnknown_81161F8;
|
||||
return 1;
|
||||
}
|
||||
gUnknown_3001B64->unk430 = -1;
|
||||
return 0;
|
||||
|
||||
case 0x19:
|
||||
uVar15 = sub_80023E4(4) == 0 ? 0 : 1;
|
||||
ResetTextbox_809B294();
|
||||
if (sub_801FB50(uVar15)) {
|
||||
gUnknown_3001B64->unk418 = &gUnknown_8116208;
|
||||
return 1;
|
||||
}
|
||||
gUnknown_3001B64->unk430 = -1;
|
||||
return 0;
|
||||
|
||||
case 0x1a:
|
||||
if (gUnknown_3001B64->unk420 == 1) {
|
||||
ResetTextbox_809B294();
|
||||
ClearScriptVarArray(0,0x39);
|
||||
sub_802465C();
|
||||
return 1;
|
||||
}
|
||||
else {
|
||||
s32 iVar10 = sub_80246F0();
|
||||
if ((GetScriptVarValue(0,0x39) == 0) && (HasEvolutionCompleted() != '\0')) {
|
||||
SetScriptVarValue(0,0x39,1);
|
||||
GroundMap_ExecuteEvent(0x46,0);
|
||||
}
|
||||
if (iVar10 == 3) {
|
||||
CleanLuminousCave();
|
||||
gUnknown_3001B64->unk430 = 1;
|
||||
return 0;
|
||||
}
|
||||
if (iVar10 != 2) {
|
||||
return 1;
|
||||
}
|
||||
CleanLuminousCave();
|
||||
gUnknown_3001B64->unk430 = 0;
|
||||
return 0;
|
||||
}
|
||||
|
||||
return 0;
|
||||
case 0x1b:
|
||||
uVar12 = sub_80023E4(4) == 0 ? 0 : 1;
|
||||
ResetTextbox_809B294();
|
||||
if ( CreateWigglytuffShop(uVar12)) {
|
||||
gUnknown_3001B64->unk418 = &gUnknown_8116218;
|
||||
return 1;
|
||||
}
|
||||
gUnknown_3001B64->unk430 = -1;
|
||||
return 0;
|
||||
case 0x1c:
|
||||
gUnknown_3001B64->unk418 = &gUnknown_8116228;
|
||||
return 1;
|
||||
case 0x1d:
|
||||
gUnknown_3001B64->unk418 = &gUnknown_8116238;
|
||||
return 1;
|
||||
case 0x1e:
|
||||
gUnknown_3001B64->unk418 = &gUnknown_8116248;
|
||||
return 1;
|
||||
case 0x1f:
|
||||
ResetTextbox_809B294();
|
||||
if ( CreateHelperPelipperMenu(0x130) == '\0') {
|
||||
gUnknown_3001B64->unk430 = -1;
|
||||
return 0;
|
||||
}
|
||||
gUnknown_3001B64->unk418 = &gUnknown_8116258;
|
||||
return 1;
|
||||
case 0x20:
|
||||
PlayMenuSoundEffect(4);
|
||||
gUnknown_3001B64->unk418 = &gUnknown_8116268;
|
||||
return 1;
|
||||
case 0x21:
|
||||
PlayMenuSoundEffect(4);
|
||||
gUnknown_3001B64->unk418 = &gUnknown_8116278;
|
||||
return 1;
|
||||
|
||||
case 0x22:
|
||||
if ((sub_8099328(&local_34) != '\0') && (GetScriptVarScenario(2,&local_30,&local_2c), (int)local_2c < 8)) {
|
||||
while ((int)local_2c < 8) {
|
||||
sub_8096AF8(&local_28,local_2c,local_34);
|
||||
if (local_28.unk0 != '\0') {
|
||||
ScenarioCalc(2,local_30,local_2c);
|
||||
gUnknown_3001B64->unk430 = ((s16)local_28.clientSpecies == 0 ? 0 : 1) + (((s16)local_28.targetSpecies != 0) ? 2 : 0);
|
||||
if (gUnknown_3001B64->unk430 != 0)
|
||||
return 0;
|
||||
gUnknown_3001B64->unk430 = 3;
|
||||
return 0;
|
||||
}
|
||||
local_2c++;
|
||||
}
|
||||
}
|
||||
gUnknown_3001B64->unk430 = 0;
|
||||
sub_8096BD0();
|
||||
ScenarioCalc(2,0,0);
|
||||
return 0;
|
||||
case 0x23:
|
||||
if (sub_8099328(&local_33) == '\0') {
|
||||
return 0;
|
||||
}
|
||||
GetScriptVarScenario(2,&local_20,&local_1c);
|
||||
sub_8096AF8(&local_18,local_1c,local_33);
|
||||
if (local_18.unk0 == '\0') {
|
||||
return 0;
|
||||
}
|
||||
if (sub_802DB28(local_1c,local_33) == '\0') {
|
||||
return 0;
|
||||
}
|
||||
iVar14 = GetScriptVarValue(0,0x19);
|
||||
if (iVar14 < 100) {
|
||||
SetScriptVarValue(0,0x19,iVar14 + 1);
|
||||
}
|
||||
SetScriptVarValue(0,0x39,1);
|
||||
ScenarioCalc(2,local_20,local_1c + 1);
|
||||
gUnknown_3001B64->unk418 = &gUnknown_8116288;
|
||||
return 1;
|
||||
case 0x24:
|
||||
if (gUnknown_3001B64->unk420 == 1) {
|
||||
uVar19 = sub_80023E4(4) == 0 ? 0 : 4;
|
||||
ResetTextbox_809B294();
|
||||
if (MakuhitaDojo_New(uVar19)) {
|
||||
return 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
gUnknown_3001B64->unk430 = -1;
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
switch(HandleMakuhitaDojoState())
|
||||
{
|
||||
default:
|
||||
return 1;
|
||||
case 3:
|
||||
gUnknown_3001B64->unk430 = sub_802FED0();
|
||||
MakuhitaDojo_Delete();
|
||||
return 0;
|
||||
case 2:
|
||||
gUnknown_3001B64->unk430 = -1;
|
||||
MakuhitaDojo_Delete();
|
||||
return 0;
|
||||
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
case 0x25:
|
||||
uVar14 = 1;
|
||||
if (sub_80023E4(4) != '\0') {
|
||||
uVar14 = 5;
|
||||
}
|
||||
ResetTextbox_809B294();
|
||||
if (MakuhitaDojo_New(uVar14)) {
|
||||
gUnknown_3001B64->unk418 = &gUnknown_8116298;
|
||||
return 1;
|
||||
}
|
||||
gUnknown_3001B64->unk430 = -1;
|
||||
return 0;
|
||||
case 0x26:
|
||||
uVar14 = 2;
|
||||
if ( sub_80023E4(4) != '\0') {
|
||||
uVar14 = 6;
|
||||
}
|
||||
ResetTextbox_809B294();
|
||||
if (MakuhitaDojo_New(uVar14)) {
|
||||
gUnknown_3001B64->unk418 = &gUnknown_81162A8;
|
||||
return 1;
|
||||
}
|
||||
gUnknown_3001B64->unk430 = -1;
|
||||
return 0;
|
||||
case 0x27:
|
||||
uVar14 = 3;
|
||||
if ( sub_80023E4(4) != '\0') {
|
||||
uVar14 = 7;
|
||||
}
|
||||
ResetTextbox_809B294();
|
||||
if (MakuhitaDojo_New(uVar14)) {
|
||||
gUnknown_3001B64->unk418 = &gUnknown_81162B8;
|
||||
return 1;
|
||||
}
|
||||
gUnknown_3001B64->unk430 = -1;
|
||||
return 0;
|
||||
case 0x28:
|
||||
gUnknown_3001B64->unk418 = &gUnknown_81162C8;
|
||||
return 1;
|
||||
case 0x29:
|
||||
gUnknown_3001B64->unk418 = &gUnknown_81162D8;
|
||||
return 1;
|
||||
case 0x2a:
|
||||
ResetTextbox_809B294();
|
||||
if ( sub_803B050()) {
|
||||
sub_803B100(gUnknown_3001B64->unk5A4);
|
||||
gUnknown_3001B64->unk418 = &gUnknown_81162E8;
|
||||
return 1;
|
||||
}
|
||||
gUnknown_3001B64->unk430 = -1;
|
||||
return 0;
|
||||
case 0x12:
|
||||
gUnknown_3001B64->unk430 = 1;
|
||||
break;
|
||||
case 0x14:
|
||||
case 0x15:
|
||||
ResetTextbox_809B294();
|
||||
return 0;
|
||||
case 0x16:
|
||||
if (CreateFriendListMenu(2)) {
|
||||
gUnknown_3001B64->unk418 = &gUnknown_81162F8;
|
||||
return 1;
|
||||
}
|
||||
gUnknown_3001B64->unk430 = -2;
|
||||
return 0;
|
||||
|
||||
case 0x2b:
|
||||
gUnknown_3001B64->unk430 = sub_809CCDC(gUnknown_3001B64->unk424,gUnknown_3001B64->unk428);
|
||||
gUnknown_3001B64->unk418 = &gUnknown_8116308;
|
||||
return 1;
|
||||
|
||||
case 0x2c: {
|
||||
s32 uVar13 = gUnknown_3001B64->unk428;
|
||||
u8 uVar1 = gUnknown_3001B64->unk424;
|
||||
ResetTextbox_809B294();
|
||||
if ( sub_801B60C(uVar13,uVar1,1)) {
|
||||
gUnknown_3001B64->unk418 = &gUnknown_8116318;
|
||||
return 1;
|
||||
}
|
||||
gUnknown_3001B64->unk430 = -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
case 0x2d:
|
||||
if (gUnknown_3001B64->unk420 == 1) {
|
||||
ResetTextbox_809B294();
|
||||
xxx_call_save_unk_text_struct_800641C(NULL,'\x01','\x01');
|
||||
if (sub_801A5D8(0,0,0,10) != '\0') {
|
||||
return 1;
|
||||
}
|
||||
gUnknown_3001B64->unk430 = -1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
switch(sub_801A6E8(1))
|
||||
{
|
||||
case 3:
|
||||
iVar15 = sub_801A8AC();
|
||||
uVar1 = gTeamInventoryRef->teamItems[iVar15].id;
|
||||
if (IsEdibleItem(uVar1)) {
|
||||
BufferItemName(gFormatBuffer_Items[0],uVar1,0);
|
||||
ShiftItemsDownFrom(iVar15);
|
||||
gUnknown_3001B64->unk430 = 1;
|
||||
|
||||
}
|
||||
else {
|
||||
gUnknown_3001B64->unk430 = -1;
|
||||
|
||||
}
|
||||
sub_801A928();return 0;
|
||||
break;
|
||||
case 2:
|
||||
gUnknown_3001B64->unk430 = -1;sub_801A928();return 0;
|
||||
break;
|
||||
default:
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
case 0x2E:
|
||||
if(gUnknown_3001B64->unk420 == 1)
|
||||
{
|
||||
ResetTextbox_809B294();
|
||||
if(DrawCredits(gUnknown_3001B64->unk424, gUnknown_3001B64->unk428)) return 1;
|
||||
gUnknown_3001B64->unk430 = -1;
|
||||
return 0;
|
||||
}
|
||||
switch(sub_8035574())
|
||||
{
|
||||
case 2:
|
||||
case 3:
|
||||
gUnknown_3001B64->unk430 = -1;
|
||||
sub_803565C();
|
||||
return 0;
|
||||
default:
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user