diff options
author | Seth Barberee <seth.barberee@gmail.com> | 2021-06-18 17:56:20 -0500 |
---|---|---|
committer | Seth Barberee <seth.barberee@gmail.com> | 2021-06-18 17:56:20 -0500 |
commit | f1fdcc2b0ade13ad1a4cc7360eac70f27396d26a (patch) | |
tree | 3ac5b9f61650299f96095e3d3c09ad771793be08 /src | |
parent | e806b05526bfcc540cb2c1f3165a96e76f6c235d (diff) |
more splitting and labeling with some decomp
Diffstat (limited to 'src')
32 files changed, 1066 insertions, 293 deletions
diff --git a/src/code_801AFA4.c b/src/code_801AFA4.c index 78c1764..47db0a0 100644 --- a/src/code_801AFA4.c +++ b/src/code_801AFA4.c @@ -5,7 +5,7 @@ extern struct unkStruct_203B460 *gUnknown_203B460; -extern u16 sub_80913CC(u8); +extern u16 GetItemMove(u8); extern void sub_8092C84(u8 *, u16); extern void sub_8099690(u32); extern u32 sub_801B2F4(void); @@ -60,7 +60,7 @@ u32 sub_801AFA4(u32 r0) gUnknown_203B22C = MemoryAlloc(0xA4, 8); gUnknown_203B22C->unk4 = r0; gUnknown_203B22C->unk8 = gUnknown_203B460->fill0[r0].itemIndex; - gUnknown_203B22C->unkA = sub_80913CC(gUnknown_203B22C->unk8); + gUnknown_203B22C->unkA = GetItemMove(gUnknown_203B22C->unk8); sub_8092C84(gUnknown_202E1C8, gUnknown_203B22C->unkA); sub_8099690(0); if(sub_801B2F4() == 0) diff --git a/src/code_801B3C0.c b/src/code_801B3C0.c new file mode 100644 index 0000000..3d24376 --- /dev/null +++ b/src/code_801B3C0.c @@ -0,0 +1,189 @@ +#include "global.h" +#include "text.h" +#include "input.h" +#include "memory.h" + +struct subStruct_203B240 +{ + char * unk0; + char * unk4; +}; + +struct unkStruct_41C +{ + u8 unk41C; + u8 unk41D; + u8 unk41E; + u8 unk41F; +}; + +// based off of 203B240.. +struct unkStruct_203B230 +{ + // size: 0x94 + s32 state; + struct unkStruct_41C unk4; + s32 unk8; + s32 unkC; + struct subStruct_203B240 *unk10[2]; + u8 fill14[0x20 - 0x18]; + u32 unk20; + u32 unk24; + struct UnkTextStruct2 unk28[4]; + u32 unk88; + u32 unk8C; + u32 unk90; +}; +extern struct unkStruct_203B230 *gUnknown_203B230; + +extern u8 gAvailablePokemonNames[0x58]; +extern u8 gUnknown_80DBA4C[]; + +extern void sub_8008C54(u32); +extern void sub_80073E0(u32); +extern void sub_80073B8(u32); +extern void sub_8014FF0(u32, u32, u8 *, u32, u32); +extern void PlayMenuSoundEffect(u32); +extern void sub_8013F84(void); +extern u32 sub_8012A64(u32 *, u32); +extern s32 sub_80913E0(struct unkStruct_41C *, u32, struct subStruct_203B240 **); + +extern void sub_801317C(u32 *); +extern void sub_80140B4(struct UnkTextStruct2 *); +extern void sub_801B46C(u32); +extern void ResetSprites(u32); + +void sub_801B51C(); +void sub_801B590(); +void sub_801B480(); + + +u32 sub_801B3C0(struct unkStruct_41C *param_1) +{ + ResetSprites(1); + gUnknown_203B230 = MemoryAlloc(sizeof(struct unkStruct_203B230),8); + gUnknown_203B230->unk4 = *param_1; + sub_801317C(&gUnknown_203B230->unk88); + gUnknown_203B230->unk24 = 0; + sub_80140B4(gUnknown_203B230->unk28); + ResetUnusedInputStruct(); + sub_800641C(gUnknown_203B230->unk28,1,1); + sub_801B46C(0); + return 1; +} + +u32 sub_801B410(void) +{ + switch(gUnknown_203B230->state) + { + case 0: + sub_801B51C(); + break; + case 1: + sub_801B590(); + break; + case 3: + return 3; + case 2: + default: + return 2; + } + return 0; +} + +void sub_801B450(void) +{ + if(gUnknown_203B230 != NULL) + { + MemoryFree(gUnknown_203B230); + gUnknown_203B230 = NULL; + } +} + +void sub_801B46C(u32 newState) +{ + gUnknown_203B230->state = newState; + sub_801B480(); +} + +void sub_801B480(void) +{ + struct subStruct_203B240 *preload; + switch(gUnknown_203B230->state) + { + case 0: + sub_8008C54(gUnknown_203B230->unk24); + gUnknown_203B230->unkC = sub_80913E0(&gUnknown_203B230->unk4, gUnknown_203B230->unk24, gUnknown_203B230->unk10); + gUnknown_203B230->unk20 = 0; + break; + case 1: + sub_8008C54(gUnknown_203B230->unk24); + sub_80073B8(gUnknown_203B230->unk24); + preload = gUnknown_203B230->unk10[gUnknown_203B230->unk8]; + strcpy(gAvailablePokemonNames, preload->unk0); + sub_8014FF0(16, 0, gUnknown_80DBA4C, gUnknown_203B230->unk24, 0); // $m0 + sub_8014FF0(4, 16, gUnknown_203B230->unk10[gUnknown_203B230->unk8]->unk4, gUnknown_203B230->unk24, 0); + sub_80073E0(gUnknown_203B230->unk24); + break; + case 2: + default: + break; + } +} + +void sub_801B51C(void) +{ + if(gUnknown_203B230->unkC != 0) + { + if(gUnknown_203B230->unk20 & 8) + sub_8013F84(); + gUnknown_203B230->unk20++; + } + switch(sub_8012A64(&gUnknown_203B230->unk88, gUnknown_203B230->unk24)) + { + case 1: + PlayMenuSoundEffect(0); + if(gUnknown_203B230->unkC != 0) + { + gUnknown_203B230->unk8 = 0; + sub_801B46C(1); + } + else + sub_801B46C(3); + break; + case 2: + PlayMenuSoundEffect(1); + sub_801B46C(2); + break; + default: + break; + } +} + +void sub_801B590(void) +{ + + if (gUnknown_203B230->unk8 < (gUnknown_203B230->unkC - 1)) { + if ((gUnknown_203B230->unk20 & 8)) { + sub_8013F84(); + } + gUnknown_203B230->unk20++; + } + switch(sub_8012A64(&gUnknown_203B230->unk88,gUnknown_203B230->unk24)) + { + case 1: + PlayMenuSoundEffect(0); + gUnknown_203B230->unk8++; + if (gUnknown_203B230->unk8 < gUnknown_203B230->unkC) { + sub_801B46C(1); + } + else { + sub_801B46C(0); + } + break; + case 2: + PlayMenuSoundEffect(1); + sub_801B46C(2); + break; + } +} diff --git a/src/code_801C620.c b/src/code_801C620.c index c2c2c44..8272340 100644 --- a/src/code_801C620.c +++ b/src/code_801C620.c @@ -12,7 +12,7 @@ struct subStruct_203B240 struct unkStruct_203B240 { // size: 0x94 - s32 unk0; + s32 state; u8 unk4; u8 fill5[3]; s32 unk8; @@ -72,7 +72,7 @@ u32 sub_801C620(u8 param_1) u32 sub_801C674(void) { - switch(gUnknown_203B240->unk0) + switch(gUnknown_203B240->state) { case 0: sub_801C7D4(); @@ -98,9 +98,9 @@ void sub_801C6B4(void) } } -void sub_801C6D0(s32 unk0) +void sub_801C6D0(s32 newState) { - gUnknown_203B240->unk0 = unk0; + gUnknown_203B240->state = newState; sub_801C6E4(); } @@ -109,7 +109,7 @@ void sub_801C6E4(void) char *skillName; struct subStruct_203B240 *preload; - switch(gUnknown_203B240->unk0) + switch(gUnknown_203B240->state) { case 0: sub_8008C54(gUnknown_203B240->unk24); @@ -139,9 +139,8 @@ void sub_801C6E4(void) void sub_801C7D4(void) { - if (gUnknown_203B240->unkC != 0) { - if ((gUnknown_203B240->unk20 & 8) != 0) { + if ((gUnknown_203B240->unk20 & 8)) { sub_8013F84(); } gUnknown_203B240->unk20++; @@ -169,7 +168,7 @@ void sub_801C848(void) { if (gUnknown_203B240->unk8 < (gUnknown_203B240->unkC - 1)) { - if ((gUnknown_203B240->unk20 & 8) != 0) { + if ((gUnknown_203B240->unk20 & 8)) { sub_8013F84(); } gUnknown_203B240->unk20++; diff --git a/src/code_801D760.c b/src/code_801D760.c index 3b07d05..db034a7 100644 --- a/src/code_801D760.c +++ b/src/code_801D760.c @@ -1,10 +1,12 @@ #include "global.h" +#include "friend_area.h" #include "constants/friend_area.h" #include "file_system.h" #include "gUnknown_203B460.h" #include "memory.h" #include "input.h" #include "text.h" +#include "rescue_team_info.h" struct unkStruct_203B258 { @@ -57,10 +59,6 @@ extern const char *sub_8098FB4(); extern void xxx_format_string(const char *, u8 *, u32 **, u32); extern s32 sub_8008ED0(u8 *); extern void xxx_call_draw_string(s32 size, u32, u8 *, u32, u32); -extern const char *GetFriendAreaName(u8); -extern u8 GetRescueTeamRank(); -extern const char *GetTeamRankString(u8); -extern s32 GetTeamRankPts(); extern void sub_8008C54(u32); extern void sub_80073B8(u32); extern void sub_80073E0(u32); diff --git a/src/code_80521D0_1.c b/src/code_80521D0_1.c index 2abbf88..bb0d928 100644 --- a/src/code_80521D0_1.c +++ b/src/code_80521D0_1.c @@ -1,5 +1,4 @@ #include "global.h" -#include "constants/species.h" #include "gUnknown_203B418.h" #include "code_8041D5C.h" #include "friend_area.h" diff --git a/src/code_8057824_1.c b/src/code_8057824_1.c index 4138da4..0337dce 100644 --- a/src/code_8057824_1.c +++ b/src/code_8057824_1.c @@ -1,7 +1,6 @@ #include "global.h" #include "gUnknown_203B418.h" #include "code_8041D5C.h" -#include "constants/species.h" #include "pokemon.h" extern struct unkStruct_203B418 *gUnknown_203B418; diff --git a/src/code_80958E8.c b/src/code_80958E8.c new file mode 100644 index 0000000..462b408 --- /dev/null +++ b/src/code_80958E8.c @@ -0,0 +1,178 @@ +#include "global.h" +#include "memory.h" +#include "friend_area.h" +#include "constants/friend_area.h" +#include "wonder_mail.h" +#include "constants/wonder_mail.h" + +struct subStruct_203B490 +{ + // size: 0xC + u8 unk0; + u8 unk1; + u8 fill2[2]; + u32 unk4; + u32 unk8; +}; + + +struct unkStruct_203B490 +{ + // size: 0x330? + + u8 fill0[0x190]; + u8 unk190[0x28]; + u8 unk1B8[0x78]; + struct subStruct_203B490 unk230[16]; + u8 unk2F0[0x38]; + u8 unk328; +}; + + +extern u8 sub_809095C(u8); +extern s32 sub_8090298(u8); +extern u8 sub_809017C(u8 *); +extern s16 sub_808E770(s16); +extern u8 sub_8092040(u8); +extern u8 sub_803C1D0(u8 *, u8); +extern u8 sub_8090A60(u8); +extern u8 sub_8091524(u8); +extern u8 sub_8091E60(u8 ,u8 ); +extern u32 GetMaxItemCount(u8); +extern u8 sub_803C0DC(s16); +extern void sub_8096040(u8); +extern void sub_80965B8(u8); +extern void sub_8096C3C(u8); +extern bool8 ValidateWonderMail(struct WonderMail *); + +extern struct unkStruct_203B490 *gUnknown_203B490; +extern struct unkStruct_203B490 gUnknown_2039448; + +void sub_80958E8() +{ + gUnknown_203B490 = &gUnknown_2039448; +} + +struct unkStruct_203B490 *sub_80958F8(void) +{ + return &gUnknown_2039448; +} + +void sub_8095900(void) +{ + s32 iVar2; + for(iVar2 = 0; iVar2 < 4; iVar2++) + { + sub_8096040(iVar2); + } + for(iVar2 = 0; iVar2 < 8; iVar2++) + { + sub_80965B8(iVar2); + } + for(iVar2 = 0; iVar2 < 8; iVar2++) + { + sub_8096C3C(iVar2); + } + for(iVar2 = 0; iVar2 < 0x38; iVar2++) + { + gUnknown_203B490->unk2F0[iVar2] = 0; + } + gUnknown_203B490->unk328 = 0; + MemoryClear8(gUnknown_203B490->unk190, sizeof(gUnknown_203B490->unk190)); + MemoryClear8(gUnknown_203B490->unk1B8, sizeof(gUnknown_203B490->unk1B8)); + for(iVar2 = 0; iVar2 < 16; iVar2++) + { + gUnknown_203B490->unk230[iVar2].unk0 = 0x63; + gUnknown_203B490->unk230[iVar2].unk1 = 1; + gUnknown_203B490->unk230[iVar2].unk4 = 0; + gUnknown_203B490->unk230[iVar2].unk8 = 0; + } +} + +bool8 IsValidWonderMail(struct WonderMail *WonderMailData) +{ + // Has to equal 5 for Wonder Mail + // https://web.archive.org/web/20080913124416/http://www.upokecenter.com/games/dungeon/guides/passwords.html + // + if(WonderMailData->mailType != 5) + { + return FALSE; + } + else + { + return ValidateWonderMail(WonderMailData); + } +} + +bool8 ValidateWonderMail(struct WonderMail *data) +{ + + if(data->missionType > DELIVER_ITEM) + return FALSE; + else + { + if(data->missionType == DELIVER_ITEM && GetMaxItemCount(data->dungeon) == 0) + return FALSE; + + if(data->unk2 > 9) + return FALSE; + + if(sub_809095C(data->dungeon) != 0) + return FALSE; + if(data->floor >= sub_8090298(data->dungeon)) + return FALSE; + if(sub_809017C(&(data->dungeon)) != 0) + return FALSE; + + if(data->clientPoke == SPECIES_NONE) + return FALSE; + if(data->clientPoke > SPECIES_RAYQUAZA_CUTSCENE) + return FALSE; + if(data->clientPoke != sub_808E770(data->clientPoke)) + return FALSE; + if(sub_803C0DC(data->clientPoke) == 0) + return FALSE; + + if(data->targetPoke > SPECIES_RAYQUAZA_CUTSCENE) + return FALSE; + if(data->targetPoke != sub_808E770(data->targetPoke)) + return FALSE; + if(sub_803C0DC(data->targetPoke) == 0) + return FALSE; + + // Item Delivery/Finding + if((u8)(data->missionType - 1) > FIND_POKE) + if(data->targetPoke != data->clientPoke) + return FALSE; + + if(sub_8092040(data->targetItem) != 0) + return FALSE; + if(sub_8090A60(data->targetItem) != 0) + return FALSE; + if(sub_8091524(data->targetItem) == 0) + return FALSE; + + // Item finding + if(data->missionType == FIND_ITEM && sub_8091E60(data->dungeon, data->targetItem) == 0) + return FALSE; + + if(data->rewardType == BLANK_4 || data->rewardType == END_REWARDS || data->rewardType > END_REWARDS) + return FALSE; + + if(sub_8092040(data->itemReward) != 0) + return FALSE; + + // Friend Area Reward + if(data->friendAreaReward > FINAL_ISLAND) + return FALSE; + + if(data->rewardType == FRIEND_AREA) + { + if(GetFriendAreaUnlockCondition(data->friendAreaReward) != UNLOCK_WONDER_MAIL) + return FALSE; + if(sub_803C1D0(&(data->dungeon), data->missionType) == 0) + return FALSE; + } + return TRUE; + } +} diff --git a/src/ds_menus.c b/src/ds_menus.c index 29100b6..7d7bc27 100644 --- a/src/ds_menus.c +++ b/src/ds_menus.c @@ -6,7 +6,7 @@ extern u8 *gUnknown_203B3E8; extern void nullsub_54(); extern void sub_8039E18(); -void sub_803A1C0(u8 r0) +void SetWonderMailMainMenuState(u8 r0) { *gUnknown_203B3E8 = r0; nullsub_54(); diff --git a/src/event_flag.c b/src/event_flag.c index 97a01d0..41552b3 100644 --- a/src/event_flag.c +++ b/src/event_flag.c @@ -9,6 +9,7 @@ extern u8 sub_8002658(s16); struct unkEventStruct { + // size: 0x4 s16 unk0; u8 unk2; // Seems like friend area number }; diff --git a/src/exclusive_pokemon.c b/src/exclusive_pokemon.c index 903b189..1e1effc 100644 --- a/src/exclusive_pokemon.c +++ b/src/exclusive_pokemon.c @@ -1,5 +1,4 @@ #include "global.h" -#include "constants/species.h" #include "exclusive_pokemon.h" const struct ExclusivePokemon gExclusivePokemon[NUM_EXCLUSIVE_POKEMON] = { diff --git a/src/felicity_bank.c b/src/felicity_bank.c index 28550dd..727c957 100644 --- a/src/felicity_bank.c +++ b/src/felicity_bank.c @@ -2,7 +2,6 @@ #include "pokemon.h" #include "file_system.h" #include "input.h" -#include "constants/species.h" #include "felicity_bank.h" #include "memory.h" diff --git a/src/friend_rescue.c b/src/friend_rescue.c index ef1d729..73e937e 100644 --- a/src/friend_rescue.c +++ b/src/friend_rescue.c @@ -1,7 +1,6 @@ #include "global.h" #include "friend_rescue.h" #include "pokemon.h" -#include "constants/species.h" #include "memory.h" #include "text.h" diff --git a/src/friend_rescue_1.c b/src/friend_rescue_1.c index 94baab3..7c0509a 100644 --- a/src/friend_rescue_1.c +++ b/src/friend_rescue_1.c @@ -1,7 +1,6 @@ #include "global.h" #include "friend_rescue.h" #include "pokemon.h" -#include "constants/species.h" extern void sub_80338C4(u32); extern s32 sub_80144A4(s32 *); diff --git a/src/gulpin_shop.c b/src/gulpin_shop.c index 810a191..43dc94b 100644 --- a/src/gulpin_shop.c +++ b/src/gulpin_shop.c @@ -2,7 +2,6 @@ #include "file_system.h" #include "pokemon.h" #include "memory.h" -#include "constants/species.h" #include "text.h" #include "input.h" diff --git a/src/items.c b/src/items.c index d6128f5..2c7dd90 100644 --- a/src/items.c +++ b/src/items.c @@ -16,7 +16,7 @@ extern void sub_8091840(u8); extern u8 GetItemType(u8); extern u32 GetItemUnkThrow(u8, u32); extern s32 sub_80915D4(struct ItemStruct_203B460 *); -extern u8 sub_80914E4(u8); +extern bool8 sub_80914E4(u8); extern void sub_8090F58(u32, u8 *, struct ItemStruct_203B460 *, u32); void LoadItemParameters(void) @@ -230,7 +230,7 @@ s32 sub_8090C30(struct ItemStruct_203B460 *param_1) s32 sub_8090C7C(struct ItemStruct_203B460 *param_1) { - if (sub_80914E4(param_1->itemIndex) == 0) { + if (!sub_80914E4(param_1->itemIndex)) { return 0; } else { @@ -245,7 +245,7 @@ s32 sub_8090C7C(struct ItemStruct_203B460 *param_1) s32 sub_8090CCC(struct ItemStruct_203B460 *param_1) { - if (sub_80914E4(param_1->itemIndex) == 0) { + if (!sub_80914E4(param_1->itemIndex)) { return 0; } else { diff --git a/src/kangaskhan_storage.c b/src/kangaskhan_storage.c index f77d129..e23fe89 100644 --- a/src/kangaskhan_storage.c +++ b/src/kangaskhan_storage.c @@ -2,7 +2,6 @@ #include "file_system.h" #include "pokemon.h" #include "input.h" -#include "constants/species.h" #include "kangaskhan_storage.h" #include "memory.h" diff --git a/src/kangaskhan_storage_1.c b/src/kangaskhan_storage_1.c index 25cc2a6..61bcf08 100644 --- a/src/kangaskhan_storage_1.c +++ b/src/kangaskhan_storage_1.c @@ -2,7 +2,6 @@ #include "file_system.h" #include "pokemon.h" #include "input.h" -#include "constants/species.h" #include "kangaskhan_storage.h" extern struct unkStruct_203B208 *gUnknown_203B208; diff --git a/src/kecleon_items.c b/src/kecleon_items.c index f1f2806..da049a2 100644 --- a/src/kecleon_items.c +++ b/src/kecleon_items.c @@ -1,7 +1,6 @@ #include "global.h" #include "file_system.h" #include "pokemon.h" -#include "constants/species.h" #include "input.h" #include "kecleon_items.h" #include "memory.h" @@ -28,7 +27,7 @@ extern void sub_8019D30(); extern void sub_8019D4C(); extern void sub_8019D68(); extern void sub_8018D30(); -extern void sub_8018E88(); +extern void UpdateKecleonStoreDialogue(); u32 DisplayKeckleonDialogueSprite(u32 param_1) { @@ -43,7 +42,7 @@ u32 DisplayKeckleonDialogueSprite(u32 param_1) switch(param_1) { case 0: - gUnknown_203B210->unk4 = 1; + gUnknown_203B210->unk4 = TRUE; gUnknown_203B210->unkE4 = &gUnknown_203B210->faceFile; CopyYellowSpeciesNametoBuffer(gUnknown_202E5D8, SPECIES_KECLEON); CopyYellowSpeciesNametoBuffer(gUnknown_202E1C8, SPECIES_KECLEON); @@ -51,15 +50,15 @@ u32 DisplayKeckleonDialogueSprite(u32 param_1) strcpy(gUnknown_202E1C8 - 0x50, monName); break; case 1: - gUnknown_203B210->unk4 = 1; - gUnknown_203B210->unkE4 = 0; + gUnknown_203B210->unk4 = TRUE; + gUnknown_203B210->unkE4 = NULL; CopyYellowSpeciesNametoBuffer(gUnknown_202E5D8, SPECIES_KECLEON); CopyYellowSpeciesNametoBuffer(gUnknown_202E1C8, SPECIES_KECLEON); monName = GetMonSpecies( SPECIES_KECLEON); strcpy(gUnknown_202E1C8 - 0x50, monName); break; case 2: - gUnknown_203B210->unk4 = 0; + gUnknown_203B210->unk4 = FALSE; gUnknown_203B210->unkE4 = &gUnknown_203B210->faceFile; CopyYellowSpeciesNametoBuffer(gUnknown_202E5D8, SPECIES_KECLEON); CopyYellowSpeciesNametoBuffer(gUnknown_202E1C8, SPECIES_KECLEON); @@ -67,8 +66,8 @@ u32 DisplayKeckleonDialogueSprite(u32 param_1) strcpy(gUnknown_202E1C8 - 0x50, monName); break; case 3: - gUnknown_203B210->unk4 = 0; - gUnknown_203B210->unkE4 = 0; + gUnknown_203B210->unk4 = FALSE; + gUnknown_203B210->unkE4 = NULL; CopyYellowSpeciesNametoBuffer(gUnknown_202E5D8, SPECIES_KECLEON); CopyYellowSpeciesNametoBuffer(gUnknown_202E1C8, SPECIES_KECLEON); monName = GetMonSpecies( SPECIES_KECLEON); @@ -148,7 +147,7 @@ void UpdateKecleonStoreState(u32 newState) { gUnknown_203B210->currState = newState; sub_8018D30(); - sub_8018E88(); + UpdateKecleonStoreDialogue(); } void sub_8018D30(void) diff --git a/src/kecleon_items_1.c b/src/kecleon_items_1.c index 0db9bb3..0746f3b 100644 --- a/src/kecleon_items_1.c +++ b/src/kecleon_items_1.c @@ -1,7 +1,6 @@ #include "global.h" #include "file_system.h" #include "pokemon.h" -#include "constants/species.h" #include "input.h" #include "kecleon_items.h" #include "gUnknown_203B460.h" @@ -10,7 +9,7 @@ extern struct unkStruct_203B210 *gUnknown_203B210; extern struct unkStruct_203B460 *gUnknown_203B460; extern u32 sub_8090CCC(struct ItemStruct_203B460 *); -extern u8 sub_80914E4(u8); +extern bool8 sub_80914E4(u8); extern u32 sub_8091814(void); extern u32 sub_8091A48(void); extern s32 sub_80144A4(s32 *); @@ -37,13 +36,13 @@ void sub_8019B08(void) case 3: gUnknown_203B210->unk24 = sub_801A8AC(); gUnknown_203B210->unk1C = gUnknown_203B460->fill0[gUnknown_203B210->unk24]; - gUnknown_203B210->unk10 = sub_8090CCC(&gUnknown_203B210->unk1C); + gUnknown_203B210->itemSellPrice = sub_8090CCC(&gUnknown_203B210->unk1C); UpdateKecleonStoreState(0x1c); break; case 4: gUnknown_203B210->unk24 = sub_801A8AC(); gUnknown_203B210->unk1C = gUnknown_203B460->fill0[gUnknown_203B210->unk24]; - gUnknown_203B210->unk10 = sub_8090CCC(&gUnknown_203B210->unk1C); + gUnknown_203B210->itemSellPrice = sub_8090CCC(&gUnknown_203B210->unk1C); sub_8099690(0); UpdateKecleonStoreState(0x1d); break; @@ -63,7 +62,7 @@ void sub_8019BBC(void) int menuAction; menuAction = 0; - if (gUnknown_203B210->unk4 != 0) { + if (gUnknown_203B210->unk4) { sub_8019EDC(0); } else { @@ -77,13 +76,11 @@ void sub_8019BBC(void) if (gUnknown_203B460->teamMoney == 0) { UpdateKecleonStoreState(0x6); } + else if (gUnknown_203B210->itemSellPrice > gUnknown_203B460->teamMoney) { + UpdateKecleonStoreState(0xC); + } else { - if (gUnknown_203B210->unk10 > gUnknown_203B460->teamMoney) { - UpdateKecleonStoreState(0xC); - } - else { - UpdateKecleonStoreState(0x16); - } + UpdateKecleonStoreState(0x16); } break; case 7: @@ -107,17 +104,14 @@ void sub_8019C78(void) switch(menuAction){ case 3: sub_8099690(0); - if (sub_80914E4(gUnknown_203B210->unk1C.itemIndex) == '\0') { + if (!sub_80914E4(gUnknown_203B210->unk1C.itemIndex)) { UpdateKecleonStoreState(0xd); } + else if (gUnknown_203B210->itemSellPrice + gUnknown_203B460->teamMoney > 99999) { + UpdateKecleonStoreState(0xe); + } else { - if (gUnknown_203B210->unk10 + gUnknown_203B460->teamMoney > 99999) { - UpdateKecleonStoreState(0xe); - - } - else { - UpdateKecleonStoreState(0x1e); - } + UpdateKecleonStoreState(0x1e); } break; case 7: @@ -172,7 +166,7 @@ void sub_8019D68(void) u32 sub_8019D8C(void) { - if(gUnknown_203B210->unk4 != 0) + if(gUnknown_203B210->unk4) { return sub_8091814(); } @@ -190,22 +184,20 @@ void sub_8019DAC(void) gUnknown_203B210->unk14 = 0; gUnknown_203B210->unk18 = 0; - iVar5 = 0; - do { + for(iVar5 = 0; iVar5 < 0x14; iVar5++){ pbVar4 = &gUnknown_203B460->fill0[iVar5]; - if (((pbVar4->unk0 & 1) != 0) && (sub_80914E4(pbVar4->itemIndex) != 0)) { + if (((pbVar4->unk0 & 1) != 0) && (sub_80914E4(pbVar4->itemIndex))) { iVar3 = sub_8090CCC(pbVar4); gUnknown_203B210->unk18 += iVar3; gUnknown_203B210->unk14++; } - iVar5 = iVar5 + 1; - } while (iVar5 < 0x14); + } } void sub_8019E04(int param_1) { - if (gUnknown_203B210->unk4 != 0) { + if (gUnknown_203B210->unk4) { if (param_1 == 1) gUnknown_203B210->unkE0 = 1; else diff --git a/src/makuhita_dojo.c b/src/makuhita_dojo.c index b01e1a6..1e061da 100644 --- a/src/makuhita_dojo.c +++ b/src/makuhita_dojo.c @@ -2,7 +2,6 @@ #include "file_system.h" #include "pokemon.h" #include "input.h" -#include "constants/species.h" #include "memory.h" #include "text.h" diff --git a/src/personality_test.c b/src/personality_test.c index 1ec55e2..5272c88 100644 --- a/src/personality_test.c +++ b/src/personality_test.c @@ -1,7 +1,6 @@ #include "global.h" #include "personality_test.h" #include "constants/emotions.h" -#include "constants/species.h" #include "random.h" #include "file_system.h" #include "pokemon.h" diff --git a/src/pokemon.c b/src/pokemon.c index 2499e11..263e482 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -1,7 +1,6 @@ #include "global.h" #include "pokemon.h" #include "file_system.h" -#include "constants/species.h" extern struct FileArchive gSystemFileArchive; extern const char gUnknown_81075F4; diff --git a/src/code_808EAB0.c b/src/pokemon_3.c index fd03834..fd03834 100644 --- a/src/code_808EAB0.c +++ b/src/pokemon_3.c diff --git a/src/pokemon_mid.c b/src/pokemon_mid.c index 9653217..d5ae74a 100644 --- a/src/pokemon_mid.c +++ b/src/pokemon_mid.c @@ -1,6 +1,5 @@ #include "global.h" #include "pokemon.h" -#include "constants/species.h" extern struct gPokemon *gMonsterParameters; extern const char gUnknown_8107600[]; diff --git a/src/post_office_guide.c b/src/post_office_guide.c index 2c0f1d6..8fbfe56 100644 --- a/src/post_office_guide.c +++ b/src/post_office_guide.c @@ -2,7 +2,6 @@ #include "pokemon.h" #include "file_system.h" #include "input.h" -#include "constants/species.h" #include "menu.h" #include "memory.h" #include "text.h" @@ -62,14 +61,51 @@ extern const char Delivery_Text[]; extern const char BulletinBoard_Text[]; extern const char PostOffice_Text[]; +enum PostOfficeStates +{ + EXIT_POST_OFFICE_MENU, + IM_GUIDE_START_MENU, + ANYTHING_ELSE_START_MENU, + RETURN_TO_START_MENU, + DISPLAY_FRIEND_RESCUE_MENU, + RETURN_TO_FRIEND_RESCUE, + DISPLAY_GO_RESCUE_MENU, + RETURN_TO_GO_RESCUE, + DISPLAY_GET_HELP_MENU, + RETURN_TO_GET_HELP, +}; + +enum PostOfficeMenuActions +{ + POST_OFFICE, + BULLETIN_BOARD, + DELIVERY, + FRIEND_RESCUE, + CANCEL, + EXIT, + FRIEND_RESCUE_INFO, + GO_RESCUE, + GET_HELP_MENU, + DELETING_MAIL, + RESCUE_PROCEDURES, + RECEIVE_SOS_MAIL, + LEAVE_FOR_RESCUE, + SEND_AOK_MAIL, + GET_THANK_YOU_MAIL, + GETTING_HELP, + SEND_SOS_MAIL, + RECEIVE_AOK_MAIL, + SEND_THANK_YOU_MAIL +}; + const struct MenuItem gPostOfficeHelpStartMenu[] = { - {PostOffice_Text, 0x0}, - {BulletinBoard_Text, 0x1}, - {Delivery_Text, 0x2}, - {FriendRescue_80E0A80,0x3}, - {Cancel_80E0A78,0x4}, - {NULL,0x5} + {PostOffice_Text, POST_OFFICE}, + {BulletinBoard_Text, BULLETIN_BOARD}, + {Delivery_Text, DELIVERY}, + {FriendRescue_80E0A80, FRIEND_RESCUE}, + {Cancel_80E0A78, CANCEL}, + {NULL, EXIT} }; ALIGNED(4) const char Cancel_80E0A78[] = _("Cancel"); @@ -80,12 +116,12 @@ ALIGNED(4) const char PostOffice_Text[] = _("Post Office"); const struct MenuItem gPostOfficeHelpFriendRescueMenu[] = { - {FriendRescueInfo_Text, 0x6}, - {GoRescue_Text, 0x7}, - {GetHelp_Text, 0x8}, - {DeletingMailInfo_Text,0x9}, - {Exit_80EA0EC,0x5}, - {NULL,0x5} + {FriendRescueInfo_Text, FRIEND_RESCUE_INFO}, + {GoRescue_Text, GO_RESCUE}, + {GetHelp_Text, GET_HELP_MENU}, + {DeletingMailInfo_Text, DELETING_MAIL}, + {Exit_80EA0EC, EXIT}, + {NULL, EXIT} }; ALIGNED(4) const char Exit_80EA0EC[] = _("Exit"); @@ -97,13 +133,13 @@ ALIGNED(4) const char FriendRescueInfo_Text[] = _("Friend Rescue Info"); const struct MenuItem gPostOfficeHelpGoRescueMenu[] = { - {RescueProcedures_Text, 0xA}, - {ReceiveSOSMail_Text, 0xB}, - {LeaveForRescue_Text, 0xC}, - {SendAOKMail_Text, 0xD}, - {GetThankYouMail_Text,0xE}, - {Exit_80EA0EC,0x5}, - {NULL,0x5} + {RescueProcedures_Text, RESCUE_PROCEDURES}, + {ReceiveSOSMail_Text, RECEIVE_SOS_MAIL}, + {LeaveForRescue_Text, LEAVE_FOR_RESCUE}, + {SendAOKMail_Text, SEND_AOK_MAIL}, + {GetThankYouMail_Text, GET_THANK_YOU_MAIL}, + {Exit_80EA0EC, EXIT}, + {NULL, EXIT} }; ALIGNED(4) const char GetThankYouMail_Text[] = _("Get Thank-You Mail"); @@ -115,12 +151,12 @@ ALIGNED(4) const char RescueProcedures_Text[] = _("Rescue Procedures"); const struct MenuItem gPostOfficeHelpGetHelpMenu[] = { - {GettingHelp_Text, 0xF}, - {SendSOSMail_Text, 0x10}, - {ReceiveAOKMail_Text, 0x11}, - {SendThankYouMail_Text,0x12}, - {Exit_80EA0EC,0x5}, - {NULL,0x5} + {GettingHelp_Text, GETTING_HELP}, + {SendSOSMail_Text, SEND_SOS_MAIL}, + {ReceiveAOKMail_Text, RECEIVE_AOK_MAIL}, + {SendThankYouMail_Text, SEND_THANK_YOU_MAIL}, + {Exit_80EA0EC, EXIT}, + {NULL, EXIT} }; ALIGNED(4) const char SendThankYouMail_Text[] = _("Send Thank-You Mail"); @@ -168,13 +204,13 @@ extern void sub_801317C(void *); void UpdateHelperPelipperState(u8); void HandlePostOfficeHelpStartMenuSelection(); -void sub_8031848(); +void ReturnToPostOfficeStartMenu(); extern void HandlePostOfficeHelpFriendRescueMenuSelection(); -extern void sub_80318D0(); +extern void ReturnToFriendRescueMenu(); extern void HandlePostOfficeHelpGoRescueMenuSelection(); -extern void sub_803192C(); +extern void ReturntoGoRescueMenu(); extern void HandlePostOfficeHelpGetHelpMenuSelection(); -extern void sub_8031988(); +extern void ReturnToGetHelpMenu(); extern s32 sub_80144A4(s32 *); extern s32 sub_80969D0(u8); extern void sub_8012D08(struct UnkTextStruct2 *, s32); @@ -208,40 +244,40 @@ u32 CreateHelperPelipperMenu(s16 speciesID) } } gPostOfficeHelper->currMenuChoice = 0; - UpdateHelperPelipperState(1); + UpdateHelperPelipperState(IM_GUIDE_START_MENU); return 1; } -u32 sub_8031540(void) +u32 HelperPelliperCallback(void) { switch(gPostOfficeHelper->state) { - case 1: - case 2: + case IM_GUIDE_START_MENU: + case ANYTHING_ELSE_START_MENU: HandlePostOfficeHelpStartMenuSelection(); break; - case 3: - sub_8031848(); + case RETURN_TO_START_MENU: + ReturnToPostOfficeStartMenu(); break; - case 4: + case DISPLAY_FRIEND_RESCUE_MENU: HandlePostOfficeHelpFriendRescueMenuSelection(); break; - case 5: - sub_80318D0(); + case RETURN_TO_FRIEND_RESCUE: + ReturnToFriendRescueMenu(); break; - case 6: + case DISPLAY_GO_RESCUE_MENU: HandlePostOfficeHelpGoRescueMenuSelection(); break; - case 7: - sub_803192C(); + case RETURN_TO_GO_RESCUE: + ReturntoGoRescueMenu(); break; - case 0: + case EXIT_POST_OFFICE_MENU: return 3; - case 8: + case DISPLAY_GET_HELP_MENU: HandlePostOfficeHelpGetHelpMenuSelection(); break; - case 9: - sub_8031988(); + case RETURN_TO_GET_HELP: + ReturnToGetHelpMenu(); break; } return 0; @@ -271,85 +307,85 @@ void UpdateHelperPelipperText(void) switch(gPostOfficeHelper->state) { - case 8: + case DISPLAY_GET_HELP_MENU: sub_8014248(gWhatdYouWantToKnow, 0, gPostOfficeHelper->currMenuChoice, gPostOfficeHelpGetHelpMenu, 0, 4, 0, faceFile, 0xC); break; - case 9: + case RETURN_TO_GET_HELP: switch(gPostOfficeHelper->currMenuChoice) { - case 15: + case GETTING_HELP: sub_80141B4(gGettingHelpExplaination, 0, faceFile, 0x10d); break; - case 16: + case SEND_SOS_MAIL: sub_80141B4(gSendSOSMailExplaination, 0, faceFile, 0x10d); break; - case 17: + case RECEIVE_AOK_MAIL: sub_80141B4(gReceiveAOKMailExplaination, 0, faceFile, 0x10d); break; - case 18: + case SEND_THANK_YOU_MAIL: sub_80141B4(gSendThankYouMailExplaination, 0, faceFile, 0x10d); break; default: break; } break; - case 6: + case DISPLAY_GO_RESCUE_MENU: sub_8014248(gWhatdYouWantToKnow, 0, gPostOfficeHelper->currMenuChoice, gPostOfficeHelpGoRescueMenu, 0, 4, 0, faceFile, 0xC); break; - case 7: + case RETURN_TO_GO_RESCUE: switch(gPostOfficeHelper->currMenuChoice) { - case 10: + case RESCUE_PROCEDURES: sub_80141B4(gRescueProceduresExplaination, 0, faceFile, 0x10d); break; - case 11: + case RECEIVE_SOS_MAIL: sub_80141B4(gReceiveSOSMailExplaination, 0, faceFile, 0x10d); break; - case 13: + case SEND_AOK_MAIL: sub_80141B4(gSendAOKMailExplaination, 0, faceFile, 0x10d); break; - case 12: + case LEAVE_FOR_RESCUE: sub_80141B4(gLeaveForRescueExplaination, 0, faceFile, 0x10d); break; - case 14: + case GET_THANK_YOU_MAIL: sub_80141B4(gGetThankYouMailExplaination, 0, faceFile, 0x10d); break; default: break; } break; - case 1: + case IM_GUIDE_START_MENU: sub_8014248(gImYourGuide, 0, gPostOfficeHelper->currMenuChoice, gPostOfficeHelpStartMenu, 0, 4, 0, faceFile, 0xC); break; - case 2: + case ANYTHING_ELSE_START_MENU: sub_8014248(gAnythingElse, 0, gPostOfficeHelper->currMenuChoice, gPostOfficeHelpStartMenu, 0, 4, 0, faceFile, 0xC); break; - case 3: + case RETURN_TO_START_MENU: switch(gPostOfficeHelper->currMenuChoice) { - case 0: + case POST_OFFICE: sub_80141B4(gPostOfficeExplaination, 0, faceFile, 0x10d); break; - case 1: + case BULLETIN_BOARD: sub_80141B4(gBulletinBoardExplaination, 0, faceFile, 0x10d); break; - case 2: + case DELIVERY: sub_80141B4(gDeliveryExplaination, 0, faceFile, 0x10d); break; default: break; } break; - case 4: + case DISPLAY_FRIEND_RESCUE_MENU: sub_8014248(gWhatdYouWantToKnow, 0, gPostOfficeHelper->currMenuChoice, gPostOfficeHelpFriendRescueMenu, 0, 4, 0, faceFile, 0xC); break; - case 5: + case RETURN_TO_FRIEND_RESCUE: switch(gPostOfficeHelper->currMenuChoice) { - case 6: + case FRIEND_RESCUE_INFO: sub_80141B4(gFriendRescueExplaination, 0, faceFile, 0x10d); break; - case 9: + case DELETING_MAIL: sub_80141B4(gDeletingMailExplaination, 0, faceFile, 0x10d); break; default: @@ -375,30 +411,30 @@ void HandlePostOfficeHelpStartMenuSelection(void) { switch(chosenAction) { - case 4: - case 5: - UpdateHelperPelipperState(0); + case CANCEL: + case EXIT: + UpdateHelperPelipperState(EXIT_POST_OFFICE_MENU); break; - case 3: + case FRIEND_RESCUE: gPostOfficeHelper->currMenuChoice = chosenAction; - UpdateHelperPelipperState(4); + UpdateHelperPelipperState(DISPLAY_FRIEND_RESCUE_MENU); break; - case 0: - case 1: - case 2: + case POST_OFFICE: + case BULLETIN_BOARD: + case DELIVERY: gPostOfficeHelper->currMenuChoice = chosenAction; - UpdateHelperPelipperState(3); + UpdateHelperPelipperState(RETURN_TO_START_MENU); break; } } } -void sub_8031848(void) +void ReturnToPostOfficeStartMenu(void) { s32 temp; if(sub_80144A4(&temp) == 0) { - UpdateHelperPelipperState(2); + UpdateHelperPelipperState(ANYTHING_ELSE_START_MENU); } } @@ -409,30 +445,30 @@ void HandlePostOfficeHelpFriendRescueMenuSelection(void) { switch(chosenAction) { - case 5: - UpdateHelperPelipperState(2); + case EXIT: + UpdateHelperPelipperState(ANYTHING_ELSE_START_MENU); break; - case 7: - UpdateHelperPelipperState(6); + case GO_RESCUE: + UpdateHelperPelipperState(DISPLAY_GO_RESCUE_MENU); break; - case 8: - UpdateHelperPelipperState(8); + case GET_HELP_MENU: + UpdateHelperPelipperState(DISPLAY_GET_HELP_MENU); break; - case 6: - case 9: + case FRIEND_RESCUE_INFO: + case DELETING_MAIL: gPostOfficeHelper->currMenuChoice = chosenAction; - UpdateHelperPelipperState(5); + UpdateHelperPelipperState(RETURN_TO_FRIEND_RESCUE); break; } } } -void sub_80318D0(void) +void ReturnToFriendRescueMenu(void) { s32 temp; if(sub_80144A4(&temp) == 0) { - UpdateHelperPelipperState(4); + UpdateHelperPelipperState(DISPLAY_FRIEND_RESCUE_MENU); } } @@ -443,27 +479,27 @@ void HandlePostOfficeHelpGoRescueMenuSelection(void) { switch(chosenAction) { - case 5: - UpdateHelperPelipperState(4); + case EXIT: + UpdateHelperPelipperState(DISPLAY_FRIEND_RESCUE_MENU); break; - case 10: - case 11: - case 12: - case 13: - case 14: + case RESCUE_PROCEDURES: + case RECEIVE_SOS_MAIL: + case LEAVE_FOR_RESCUE: + case SEND_AOK_MAIL: + case GET_THANK_YOU_MAIL: gPostOfficeHelper->currMenuChoice = chosenAction; - UpdateHelperPelipperState(7); + UpdateHelperPelipperState(RETURN_TO_GO_RESCUE); break; } } } -void sub_803192C(void) +void ReturntoGoRescueMenu(void) { s32 temp; if(sub_80144A4(&temp) == 0) { - UpdateHelperPelipperState(6); + UpdateHelperPelipperState(DISPLAY_GO_RESCUE_MENU); } } @@ -474,26 +510,26 @@ void HandlePostOfficeHelpGetHelpMenuSelection(void) { switch(chosenAction) { - case 5: - UpdateHelperPelipperState(4); + case EXIT: + UpdateHelperPelipperState(DISPLAY_FRIEND_RESCUE_MENU); break; - case 15: - case 16: - case 17: - case 18: + case GETTING_HELP: + case SEND_SOS_MAIL: + case RECEIVE_AOK_MAIL: + case SEND_THANK_YOU_MAIL: gPostOfficeHelper->currMenuChoice = chosenAction; - UpdateHelperPelipperState(9); + UpdateHelperPelipperState(RETURN_TO_GET_HELP); break; } } } -void sub_8031988(void) +void ReturnToGetHelpMenu(void) { s32 temp; if(sub_80144A4(&temp) == 0) { - UpdateHelperPelipperState(8); + UpdateHelperPelipperState(DISPLAY_GET_HELP_MENU); } } @@ -503,7 +539,7 @@ u32 sub_80319A4(u8 param_1,u8 param_2,int param_3) gUnknown_203B330 = MemoryAlloc(0x78,8); gUnknown_203B330->unkC = param_1; gUnknown_203B330->unkD = param_2; - sub_801317C(gUnknown_203B330); + sub_801317C(&gUnknown_203B330->unk0); gUnknown_203B330->unk10 = param_3; gUnknown_203B330->unk14 = &gUnknown_203B330->unk18[param_3]; sub_8031A2C(); @@ -731,7 +731,7 @@ void PrepareSavePakWrite(s16 PokemonID) gSavePakWrite->pokeID = id_s32; gSavePakWrite->faceFile = NULL; gSavePakWrite->faceData = NULL; - if (PokemonID != 0) { + if (PokemonID != SPECIES_NONE) { file = GetDialogueSpriteDataPtr(PokemonID); gSavePakWrite->faceFile = file; gSavePakWrite->faceData = file->data; diff --git a/src/trade_items_menu.c b/src/trade_items_menu.c index d9cdc33..0e1d171 100644 --- a/src/trade_items_menu.c +++ b/src/trade_items_menu.c @@ -357,7 +357,7 @@ void TradeItem_SendItemConfirm(void) load -= gTradeItemsMenu->numItemsToSend; gUnknown_203B460->unk50[gTradeItemsMenu->chosenItem] = load; SetTradeItemMenu(TRADE_ITEMS_PREPARE_TRADE_SAVING); - PrepareSavePakWrite(0); + PrepareSavePakWrite(SPECIES_NONE); break; case 6: case 0: @@ -399,7 +399,7 @@ void sub_80368D4(void) { TradeItem_AddItem(); SetTradeItemMenu(0x11); - PrepareSavePakWrite(0); + PrepareSavePakWrite(SPECIES_NONE); } break; } @@ -438,7 +438,7 @@ void sub_8036950(void) // Link Failure TradeItem_AddItem(); // Add back the item SetTradeItemMenu(0xb); - PrepareSavePakWrite(0); + PrepareSavePakWrite(SPECIES_NONE); } else { PrintTradeItemsLinkError(gTradeItemsMenu->linkStatus); @@ -482,7 +482,7 @@ void sub_8036A34(void) if(sub_80144A4(&temp) == 0) { SetTradeItemMenu(0x10); - PrepareSavePakWrite(0); + PrepareSavePakWrite(SPECIES_NONE); } } diff --git a/src/wonder_mail.c b/src/wonder_mail.c index 05d3d03..770a1ff 100644 --- a/src/wonder_mail.c +++ b/src/wonder_mail.c @@ -2,13 +2,14 @@ #include "save.h" #include "pokemon.h" #include "file_system.h" -#include "constants/species.h" #include "wonder_mail.h" #include "memory.h" #include "text.h" +#include "gUnknown_203B460.h" extern struct WonderMailStruct_203B2C0 *gUnknown_203B2C0; extern struct WonderMailStruct_203B2C4 *gUnknown_203B2C4; +extern struct unkStruct_203B460 *gUnknown_203B460; struct unkStruct_8095228 { @@ -36,6 +37,8 @@ extern u8 sub_8030C20(u32); extern u32 sub_8031050(); extern void sub_80310B4(); extern u32 sub_8095350(); +extern u8 sub_801CF14(u32); +extern u32 sub_802F298(); extern struct unkStruct_8095228 *sub_8095228(u8); extern u8 sub_80A2824(u32); @@ -478,7 +481,7 @@ void sub_8028E84() } sub_8028B04(24); sub_8011C28(1); - PrepareSavePakWrite(0); + PrepareSavePakWrite(SPECIES_NONE); } void sub_8028EAC() @@ -522,15 +525,14 @@ void sub_8028F04() s32 temp; s32 counter; - if(sub_80144A4(&temp) != 0) - { - return; - } - for(counter = 0; counter <= 31; counter++) + if(sub_80144A4(&temp) == 0) { - sub_8095240(counter); + for(counter = 0; counter <= 31; counter++) + { + sub_8095240(counter); + } + sub_8028B04(21); } - sub_8028B04(21); } void sub_8028F30() @@ -543,7 +545,7 @@ void sub_8028F30() } sub_8028B04(22); sub_8011C28(1); - PrepareSavePakWrite(0); + PrepareSavePakWrite(SPECIES_NONE); } void sub_8028F58() @@ -839,7 +841,7 @@ void sub_8029374(void) } sub_8028B04(0x24); sub_8011C28(1); - PrepareSavePakWrite(0); + PrepareSavePakWrite(SPECIES_NONE); } void sub_802939C(void) @@ -1288,7 +1290,7 @@ void sub_8029AB0(void) } sub_8028B04(0x38); sub_8011C28(1); - PrepareSavePakWrite(0); + PrepareSavePakWrite(SPECIES_NONE); } void sub_8029AD8(void) @@ -1873,7 +1875,7 @@ void sub_802A4AC(void) { sub_802B2BC(0x18); sub_8011C28(1); - PrepareSavePakWrite(0); + PrepareSavePakWrite(SPECIES_NONE); } } @@ -1994,7 +1996,7 @@ void sub_802A6F0(void) if (sub_80144A4(&temp) == 0) { sub_802B2BC(0x18); sub_8011C28(1); - PrepareSavePakWrite(0); + PrepareSavePakWrite(SPECIES_NONE); } } @@ -2005,7 +2007,7 @@ void sub_802A718(void) if (sub_80144A4(&temp) == 0) { sub_802B2BC(0x25); sub_8011C28(1); - PrepareSavePakWrite(0); + PrepareSavePakWrite(SPECIES_NONE); } } @@ -2017,3 +2019,341 @@ void sub_802A740(void) sub_802B2BC(0x1e); } } + +void sub_802A75C(void) +{ + s32 temp; + if(sub_80144A4(&temp) == 0) + { + switch(temp) + { + case 7: + // NOTE: if statement is needed to match + if(gUnknown_203B2C4->unk538) + sub_802B2BC(0x16); + else + sub_802B2BC(0x16); + break; + case 0: + sub_802B2BC(1); + break; + } + } +} + +void sub_802A798(void) +{ + s32 temp; + struct unkStruct_8095228 *return_var; + if(sub_80144A4(&temp) == 0) + { + switch(temp) + { + case 7: + return_var = sub_8095228(gUnknown_203B2C4->unk218); + if(gUnknown_203B2C4->unk41C.unk41E != 0) + { + return_var->unk20 = gUnknown_203B2C4->unk41C; + } + gUnknown_203B460->unk50[gUnknown_203B2C4->unk41C.unk41E]--; + sub_802B2BC(0x29); + break; + case 8: + sub_802B2BC(0xB); + break; + case 0: + sub_802B2BC(1); + break; + } + } +} + +void sub_802A828(void) +{ + s32 temp; + if(sub_80144A4(&temp) == 0) + { + sub_802B2BC(0x2A); + sub_8011C28(1); + PrepareSavePakWrite(SPECIES_NONE); + } +} + +void sub_802A850(void) +{ + s32 temp; + if(sub_80144A4(&temp) == 0) + { + if(!WriteSavePak()) + { + FinishWriteSavePak(); + switch(gUnknown_203B2C4->unk534) + { + case 3: + case 4: + sub_802B2BC(0x1D); + break; + case 5: + sub_802B2BC(0x19); + break; + } + } + } +} + +void sub_802A8A0(void) +{ + s32 temp; + + if (sub_80144A4(&temp) == 0) { + sub_802B2BC(0x13); + } +} + +void sub_802A8BC(void) +{ + s32 temp; + if(sub_80144A4(&temp) == 0) + { + switch(temp) + { + case 0xA: + switch(gUnknown_203B2C4->unk534) + { + case 3: + case 4: + sub_802B2BC(0x1D); + break; + case 5: + sub_802B2BC(0x19); + break; + } + break; + case 0: + sub_802B2BC(1); + break; + } + } +} + +void sub_802A910(void) +{ + s32 temp; + if(sub_80144A4(&temp) == 0) + { + switch(temp) + { + case 9: + if(sub_801CF14(0) != 0) + { + sub_802B2BC(0xA); + } + else + { + sub_802B2BC(0xB); + } + break; + case 0xA: + switch(gUnknown_203B2C4->unk534) + { + case 3: + case 4: + sub_802B2BC(0x1D); + break; + case 5: + sub_802B2BC(0x19); + break; + } + break; + case 0: + sub_802B2BC(1); + break; + } + } +} + +void sub_802A98C(void) +{ + s32 temp; + + if (sub_80144A4(&temp) == 0) { + sub_802B2BC(0x8); + } +} + +void sub_802A9A8(void) +{ + s32 temp; + if(sub_80144A4(&temp) == 0) + { + switch(temp) + { + case 0x7: + switch(gUnknown_203B2C4->unk534) + { + case 3: + case 4: + sub_802B2BC(0x1D); + break; + case 5: + sub_802B2BC(0x19); + break; + } + break; + case 0: + sub_802B2BC(1); + break; + } + } +} + +void sub_802A9FC(void) +{ + s32 temp; + if(sub_80144A4(&temp) == 0) + { + switch(temp) + { + case 0x7: + sub_802B2BC(0x26); + break; + case 0: + sub_802B2BC(1); + break; + } + } +} + +void sub_802AA28(void) +{ + s32 temp; + struct unkStruct_8095228 *return_var; + if(sub_80144A4(&temp) == 0) + { + switch(temp) + { + case 3: + case 4: + case 5: + gUnknown_203B2C4->unk534 = temp; + switch(gUnknown_203B2C4->unk538) + { + case 1: + return_var = sub_8095228(sub_80953D4(5)); + if(return_var->unk20.unk41E != 0) + { + sub_802B2BC(7); + } + else + { + sub_802B2BC(9); + } + break; + default: + if(gUnknown_203B2C4->unk534 == 5) + { + sub_802B2BC(0x26); + } + else + { + sub_802B2BC(0x1D); + } + break; + } + break; + case 0: + sub_802B2BC(1); + break; + } + } +} + +void sub_802AAAC(void) +{ + s32 temp; + if(sub_80144A4(&temp) == 0) + { + sub_802B2BC(1); + } +} + +void sub_802AAC8(void) +{ + s32 temp; + if(sub_80144A4(&temp) == 0) + { + sub_802B2BC(3); + } +} + +void sub_802AAE4(void) +{ + s32 temp; + if(sub_80144A4(&temp) == 0) + { + switch(temp) + { + case 1: + gUnknown_203B2C4->unk40 = 6; + gUnknown_203B2C4->unk538 = 1; + if(sub_8095324(5) == 0) + { + sub_802B2BC(4); + } + else + { + sub_802B2BC(0xF); + } + break; + case 2: + gUnknown_203B2C4->unk40 = 7; + gUnknown_203B2C4->unk538 = 2; + sub_802B2BC(6); + break; + case 0: + sub_802B2BC(2); + break; + } + } +} + +void sub_802AB60(void) +{ + s32 temp; + if(sub_80144A4(&temp) == 0) + { + sub_802B2BC(0x22); + } +} + +void sub_802AB7C(void) +{ + s32 temp; + if(sub_80144A4(&temp) == 0) + { + sub_802B2BC(0x22); + } +} + + +void sub_802AB98(void) +{ + const char *monName; + switch(sub_802F298()) + { + case 3: + sub_802F2C0(); + CopyYellowSpeciesNametoBuffer(gUnknown_202E5D8, SPECIES_PELIPPER); + monName = GetMonSpecies(SPECIES_PELIPPER); + strcpy(gAvailablePokemonNames, monName); + sub_8095240(sub_809539C(6, gUnknown_203B2C4->unk430)); + sub_802B2BC(0x24); + break; + default: + break; + } +} + +void nullsub_131(void) +{ +} diff --git a/src/wonder_mail_2.c b/src/wonder_mail_2.c index 2791d0c..62e4b00 100644 --- a/src/wonder_mail_2.c +++ b/src/wonder_mail_2.c @@ -2,10 +2,12 @@ #include "file_system.h" #include "input.h" #include "pokemon.h" -#include "constants/species.h" #include "memory.h" #include "text.h" #include "save.h" +#include "wonder_mail.h" + +extern struct WonderMailStruct_203B2C4 *gUnknown_203B2C4; struct unkStruct_203B2C8 { @@ -41,15 +43,6 @@ struct unkStruct_203B2C8 extern struct unkStruct_203B2C8 *gUnknown_203B2C8; -struct unkStruct_41C -{ - u8 unk41C; - u8 unk41D; - u8 unk41E; - u8 unk41F; -}; - - struct unkStruct_8095228 { u8 unk0; @@ -95,6 +88,16 @@ extern const char gUnknown_80DF9F0[]; extern const char gUnknown_80DF9F8[]; extern u8 sub_80023E4(u32); +extern void nullsub_131(void); +extern void sub_802ABF8(void); + +void sub_802B2BC(u32 newState) +{ + gUnknown_203B2C4->state = newState; + nullsub_131(); + sub_802ABF8(); +} + u32 sub_802B2D4(void) { s32 iVar1; @@ -255,7 +258,7 @@ void sub_802B5B8(void) puVar3->unk28 = uVar2; sub_802B548(3); sub_8011C28(1); - PrepareSavePakWrite(0); + PrepareSavePakWrite(SPECIES_NONE); } } diff --git a/src/wonder_mail_3.c b/src/wonder_mail_3.c index 80552f6..88fa520 100644 --- a/src/wonder_mail_3.c +++ b/src/wonder_mail_3.c @@ -1,10 +1,12 @@ #include "global.h" #include "memory.h" +#include "text.h" +#include "input.h" struct unkStruct_203B2F8 { // size: 0x208 - u32 state; // state + s32 state; // state u32 unk4; u8 unk8; u8 unk9; @@ -15,8 +17,22 @@ struct unkStruct_203B2F8 u32 unk6C; u32 unk70; u32 unk74; + u8 fill78[0x118 - 0x78]; + u32 unk118; + u8 fill11C[0x158 - 0x11C]; + u32 unk158; + u8 fill15C[0x198 - 0x15C]; + u16 unk198[8]; + struct UnkTextStruct2 unk1A8[4]; + u32 unk1E4; }; extern struct unkStruct_203B2F8 *gUnknown_203B2F8; +extern struct UnkTextStruct2 gUnknown_80DFE04; +extern struct UnkTextStruct2 gUnknown_80DFE1C; +extern struct UnkTextStruct2 gUnknown_80DFDD4; +extern void sub_8012CAC(struct UnkTextStruct2 *, u32 *); +extern void sub_802D63C(void); +extern void sub_802D5A4(void); extern u8 sub_8099328(u8 *); extern u32 sub_8011C1C(); @@ -103,3 +119,34 @@ void sub_802D1A0(u32 newState) sub_802D1B8(); sub_802D2A8(); } + +void sub_802D1B8(void) +{ + s32 iVar2; + sub_8006518(gUnknown_203B2F8->unk1A8); + switch(gUnknown_203B2F8->state) + { + case 0xD: + sub_802D5A4(); + gUnknown_203B2F8->unk1A8[2] = gUnknown_80DFE04; + sub_8012CAC(&gUnknown_203B2F8->unk1A8[2], &gUnknown_203B2F8->unk118); + gUnknown_203B2F8->unk1A8[2].unk0c = 6; + break; + case 0xE: + sub_802D63C(); + gUnknown_203B2F8->unk1A8[3] = gUnknown_80DFE1C; + sub_8012CAC(&gUnknown_203B2F8->unk1A8[3], &gUnknown_203B2F8->unk158); + gUnknown_203B2F8->unk1A8[3].unk0c = 6; + break; + default: + for(iVar2 = 0; iVar2 < 4; iVar2++) + { + gUnknown_203B2F8->unk1A8[iVar2] = gUnknown_80DFDD4; + } + break; + case 2: + break; + } + ResetUnusedInputStruct(); + sub_800641C(gUnknown_203B2F8->unk1A8, 1, 1); +} diff --git a/src/wonder_mail_main_menu.c b/src/wonder_mail_main_menu.c index 2b475a8..d6d6c2d 100644 --- a/src/wonder_mail_main_menu.c +++ b/src/wonder_mail_main_menu.c @@ -3,30 +3,35 @@ #include "memory.h" #include "text.h" #include "input.h" +#include "wonder_mail.h" +#define WONDER_MAIL_MAIN_SCREEN 4 #define EXIT_TO_MAIN_MENU 5 +#define COMMUNICATION_ERROR 10 #define PASSWORD_SUCCESS 13 +#define PREPARE_SAVE 14 +#define SAVE_ADVENTURE 15 +#define WONDER_MAIL_ADDED 16 +#define PROMPT_PASSWORD_ENTRY 17 #define PASSWORD_INVALID 19 #define PASSWORD_ENTRY_SCREEN 18 -struct unkWonderMailData -{ - u8 unk0[20]; -}; - struct unkStruct_203B3E8 { // size: 0x49C - u8 unk0; // state variable? - u8 PasswordEntryBuffer[0x36]; // Wonder Mail Buffer... - struct unkWonderMailData unk38; // 0x30 - 0x14 - u8 unk38_1[0x30 - 20]; // TODO: split for the ldm/stm stuff (fix dumb hack) + u8 state; // state variable? + u8 PasswordEntryBuffer[PASSWORD_BUFFER_SIZE]; // Wonder Mail Buffer... + union UNK38 + { + struct WonderMail decodedMail; // 0x14 + u8 unk38_u8[0x30]; // idk why it fills to 0x30 instead... + } UNK38; u8 fill68[0x1EC - 0x68]; struct UnkTextStruct2 unk1EC[4]; u32 unk24C; u32 wonderMailStatus; u8 fill254[0x3C0 - 0x254]; - struct unkWonderMailData unk3C0; // 0x3C0 + 0x14 + struct WonderMail unk3C0; u8 fill3D0[0x490 - 0x3D4]; u32 unk490; u32 unk494; @@ -40,7 +45,7 @@ extern u32 sub_8095324(u32); extern u32 sub_80144A4(s32 *); extern u32 sub_8011C1C(void); extern struct unkStruct_203B3E8 *gUnknown_203B3E8; -extern void sub_803A1C0(u8); +extern void SetWonderMailMainMenuState(u8); extern void sub_8030DE4(void); extern void sub_801B450(void); extern void sub_803084C(void); @@ -53,25 +58,25 @@ extern u8 sub_802D178(); extern void sub_802D184(); extern s32 sub_80154F0(); -extern bool8 sub_803D358(u8 *, void *); -extern bool8 sub_80959C0(void *); +extern bool8 DecodeWonderMailPassword(u8 *, struct WonderMail *); +extern bool8 IsValidWonderMail(struct WonderMail *WonderMailData); extern void sub_80141B4(u32 *r0, u32, u32 *r1, u32); void sub_8039BAC(u32); -void sub_8039A18(void); +void HandleWonderMailMainScreen(void); void sub_8039AA8(void); void sub_8039B14(void); void sub_8039B20(void); void sub_8039B58(void); void sub_8039D88(void); -void sub_8039D28(void); -void sub_8039D68(void); -void sub_8039DA4(void); -void sub_8039DCC(void); +void HandlePasswordSuccess(void); +void HandlePrepareSaveScreen(void); +void HandleSaveAdventureScreen(void); +void HandleWonderMailAddedScreen(void); void sub_8039B3C(void); void sub_8039D0C(void); -void sub_8039C60(void); -void sub_8039DE8(void); +void HandlePasswordEntryScreen(void); +void HandleInvalidPasswordMenu(void); extern u32 gUnknown_80E7914; @@ -95,7 +100,7 @@ bool8 CreateWonderMailMenu(void) gUnknown_203B3E8 = MemoryAlloc(sizeof(struct unkStruct_203B3E8), 8); MemoryFill8((u8 *)gUnknown_203B3E8, 0, sizeof(struct unkStruct_203B3E8)); - for(iVar2 = 0; iVar2 < 0x36; iVar2++){ + for(iVar2 = 0; iVar2 < PASSWORD_BUFFER_SIZE; iVar2++){ gUnknown_203B3E8->PasswordEntryBuffer[iVar2] = 0; } @@ -103,15 +108,15 @@ bool8 CreateWonderMailMenu(void) gUnknown_203B3E8->unk494 = 2; gUnknown_203B3E8->unk498 = 1; gUnknown_203B3E8->unk490 = 5; // ??? Why? - sub_803A1C0(0x11); // 0x11 -> Display "Enter Wonder Mail Password" + SetWonderMailMainMenuState(PROMPT_PASSWORD_ENTRY); // -> Display "Enter Wonder Mail Password" return 1; } u8 UpdateWonderMailMenu(void) { - switch(gUnknown_203B3E8->unk0) { - case 4: - sub_8039A18(); + switch(gUnknown_203B3E8->state) { + case WONDER_MAIL_MAIN_SCREEN: + HandleWonderMailMainScreen(); break; case EXIT_TO_MAIN_MENU: // When you exit out of the menu return 3; @@ -133,28 +138,28 @@ u8 UpdateWonderMailMenu(void) sub_8039D88(); break; case PASSWORD_SUCCESS: - sub_8039D28(); + HandlePasswordSuccess(); break; - case 14: - sub_8039D68(); + case PREPARE_SAVE: + HandlePrepareSaveScreen(); break; - case 15: // Saving adventure - sub_8039DA4(); + case SAVE_ADVENTURE: // Saving adventure + HandleSaveAdventureScreen(); break; - case 16: // Display "Recieved Wonder Mail was added" and go back to main menu - sub_8039DCC(); + case WONDER_MAIL_ADDED: // Display "Recieved Wonder Mail was added" and go back to main menu + HandleWonderMailAddedScreen(); break; - case 10: + case COMMUNICATION_ERROR: sub_8039B3C(); break; - case 17: // "Please enter the Wonder Mail Password" Screen + case PROMPT_PASSWORD_ENTRY: // "Please enter the Wonder Mail Password" Screen sub_8039D0C(); break; case PASSWORD_ENTRY_SCREEN: // Password Entry - sub_8039C60(); + HandlePasswordEntryScreen(); break; case PASSWORD_INVALID: - sub_8039DE8(); + HandleInvalidPasswordMenu(); } return 0; } @@ -173,25 +178,25 @@ void CleanWonderMailMenu(void) } } -void sub_8039A18(void) +void HandleWonderMailMainScreen(void) { - s32 local_8; + s32 menuAction; - if (sub_80144A4(&local_8) == 0) { + if (sub_80144A4(&menuAction) == 0) { gUnknown_203B3E8->unk24C = 10; - switch(local_8) { + switch(menuAction) { case 3: case 4: gUnknown_203B3E8->unk490 = 3; - sub_803A1C0(8); + SetWonderMailMainMenuState(8); break; case 5: gUnknown_203B3E8->unk490 = 5; - sub_803A1C0(17); + SetWonderMailMainMenuState(PROMPT_PASSWORD_ENTRY); break; case 0: case 8: - sub_803A1C0(EXIT_TO_MAIN_MENU); + SetWonderMailMainMenuState(EXIT_TO_MAIN_MENU); break; } } @@ -199,24 +204,24 @@ void sub_8039A18(void) void sub_8039AA8(void) { - s32 local_8; + s32 menuAction; - if (sub_80144A4(&local_8) == 0) { - switch(local_8){ + if (sub_80144A4(&menuAction) == 0) { + switch(menuAction){ case 6: if (gUnknown_203B3E8->unk494 == 1) { - sub_803A1C0(2); + SetWonderMailMainMenuState(2); } else { - sub_803A1C0(12); + SetWonderMailMainMenuState(12); } break; case 0: if (gUnknown_203B3E8->unk494 == 1) { - sub_803A1C0(1); + SetWonderMailMainMenuState(1); } else { - sub_803A1C0(4); + SetWonderMailMainMenuState(WONDER_MAIL_MAIN_SCREEN); } break; } @@ -225,7 +230,7 @@ void sub_8039AA8(void) void sub_8039B14(void) { - sub_803A1C0(6); + SetWonderMailMainMenuState(6); } void sub_8039B20(void) @@ -233,7 +238,7 @@ void sub_8039B20(void) s32 local_8; if (sub_80144A4(&local_8) == 0) { - sub_803A1C0(9); + SetWonderMailMainMenuState(9); } } @@ -242,7 +247,7 @@ void sub_8039B3C(void) s32 local_8; if (sub_80144A4(&local_8) == 0) { - sub_803A1C0(4); + SetWonderMailMainMenuState(WONDER_MAIL_MAIN_SCREEN); } } @@ -254,16 +259,16 @@ void sub_8039B58(void) if (gUnknown_203B3E8->wonderMailStatus == 0) { switch(gUnknown_203B3E8->unk24C){ case 9: - sub_803A1C0(7); + SetWonderMailMainMenuState(7); break; case 10: - sub_803A1C0(PASSWORD_SUCCESS); + SetWonderMailMainMenuState(PASSWORD_SUCCESS); break; } } else { sub_8039BAC(gUnknown_203B3E8->wonderMailStatus); - sub_803A1C0(10); + SetWonderMailMainMenuState(COMMUNICATION_ERROR); } } } @@ -305,7 +310,7 @@ void sub_8039BAC(u32 arg) case 7: case 8: case 9: - case 10: + case COMMUNICATION_ERROR: case 11: case 12: case PASSWORD_SUCCESS: @@ -317,36 +322,36 @@ void sub_8039BAC(u32 arg) } } -void sub_8039C60(void) +void HandlePasswordEntryScreen(void) { int iVar2; iVar2 = sub_80154F0(); - MemoryFill8((u8 *)&gUnknown_203B3E8->unk38, 0, 0x30); + MemoryFill8(gUnknown_203B3E8->UNK38.unk38_u8, 0, sizeof(gUnknown_203B3E8->UNK38)); switch(iVar2){ case 3: sub_80155F0(); ResetUnusedInputStruct(); sub_800641C(gUnknown_203B3E8->unk1EC,1,1); - if ( !sub_803D358(gUnknown_203B3E8->PasswordEntryBuffer, &gUnknown_203B3E8->unk38) || !sub_80959C0(&gUnknown_203B3E8->unk38) ) + if ( !DecodeWonderMailPassword(gUnknown_203B3E8->PasswordEntryBuffer, &gUnknown_203B3E8->UNK38.decodedMail) || !IsValidWonderMail(&gUnknown_203B3E8->UNK38.decodedMail) ) { // Invalid password - sub_803A1C0(PASSWORD_INVALID); + SetWonderMailMainMenuState(PASSWORD_INVALID); } else { // Successful password // Copy the decoded data to another buffer? - gUnknown_203B3E8->unk3C0 = gUnknown_203B3E8->unk38; + gUnknown_203B3E8->unk3C0 = gUnknown_203B3E8->UNK38.decodedMail; gUnknown_203B3E8->unk498 = 1; - sub_803A1C0(PASSWORD_SUCCESS); + SetWonderMailMainMenuState(PASSWORD_SUCCESS); } - break; + break; case 2: sub_80155F0(); ResetUnusedInputStruct(); sub_800641C(gUnknown_203B3E8->unk1EC,1,1); - sub_803A1C0(EXIT_TO_MAIN_MENU); + SetWonderMailMainMenuState(EXIT_TO_MAIN_MENU); break; } } @@ -356,31 +361,31 @@ void sub_8039D0C(void) int iVar2; if(sub_80144A4(&iVar2) == 0) { - sub_803A1C0(PASSWORD_ENTRY_SCREEN); + SetWonderMailMainMenuState(PASSWORD_ENTRY_SCREEN); } } -void sub_8039D28(void) +void HandlePasswordSuccess(void) { if (sub_802D0E0() == 3) { gUnknown_203B3E8->unk498 = sub_802D178(); sub_802D184(); if (gUnknown_203B3E8->unk498 != 0) { - sub_803A1C0(0xe); + SetWonderMailMainMenuState(PREPARE_SAVE); } else { - sub_803A1C0(0x10); + SetWonderMailMainMenuState(WONDER_MAIL_ADDED); } } } -void sub_8039D68(void) +void HandlePrepareSaveScreen(void) { int iVar2; if(sub_80144A4(&iVar2) == 0) { - sub_803A1C0(0xF); - PrepareSavePakWrite(0); // "Saving Adventure.." + SetWonderMailMainMenuState(SAVE_ADVENTURE); + PrepareSavePakWrite(SPECIES_NONE); // "Saving Adventure.." } } @@ -389,11 +394,11 @@ void sub_8039D88(void) int iVar2; if(sub_80144A4(&iVar2) == 0) { - sub_803A1C0(8); + SetWonderMailMainMenuState(8); } } -void sub_8039DA4(void) +void HandleSaveAdventureScreen(void) { int iVar2; if(sub_80144A4(&iVar2) == 0) @@ -401,34 +406,34 @@ void sub_8039DA4(void) if(!WriteSavePak()) { FinishWriteSavePak(); - sub_803A1C0(0x10); + SetWonderMailMainMenuState(WONDER_MAIL_ADDED); } } } -void sub_8039DCC(void) +void HandleWonderMailAddedScreen(void) { int iVar2; if(sub_80144A4(&iVar2) == 0) { - sub_803A1C0(EXIT_TO_MAIN_MENU); + SetWonderMailMainMenuState(EXIT_TO_MAIN_MENU); } } -void sub_8039DE8(void) +void HandleInvalidPasswordMenu(void) { - int iVar2; + s32 menuAction; // Prompt to re-enter password - if(sub_80144A4(&iVar2) == 0) + if(sub_80144A4(&menuAction) == 0) { - switch(iVar2) + switch(menuAction) { case 6: // Yes - sub_803A1C0(0x11); + SetWonderMailMainMenuState(PROMPT_PASSWORD_ENTRY); break; case 0: // No - sub_803A1C0(EXIT_TO_MAIN_MENU); + SetWonderMailMainMenuState(EXIT_TO_MAIN_MENU); break; } } diff --git a/src/wonder_mail_pre.c b/src/wonder_mail_pre.c index 4cf76c8..9e2e5cc 100644 --- a/src/wonder_mail_pre.c +++ b/src/wonder_mail_pre.c @@ -2,7 +2,6 @@ #include "file_system.h" #include "input.h" #include "pokemon.h" -#include "constants/species.h" #include "wonder_mail.h" #include "memory.h" |