more documentation/cleanup

This commit is contained in:
Seth Barberee 2024-08-25 20:52:19 -07:00
parent 0fca0de856
commit 24da346796
17 changed files with 203 additions and 205 deletions

View File

@ -41,6 +41,7 @@ enum WonderMailTypes
WONDER_MAIL_TYPE_WONDER = 5,
WONDER_MAIL_TYPE_COMPLETED,
WONDER_MAIL_TYPE_OKD,
MAX_WONDER_MAIL_TYPES
};
// Used in CreateRescueTitle and CreateRescueDescription

View File

@ -36,5 +36,6 @@ void HandleStockpile(Entity * pokemon, Entity * target);
void InvisibleStatusTarget(Entity * pokemon, Entity * target);
void PerishSongTarget(Entity * pokemon, Entity * target);
void EncoreStatusTarget(Entity * pokemon, Entity * target);
void sub_8078A58(struct Entity *pokemon, struct Entity *target, s32 param_3, s32 param_4);
#endif

15
include/wonder_mail_4.h Normal file
View File

@ -0,0 +1,15 @@
#ifndef WONDER_MAIL_4_H
#define WONDER_MAIL_4_H
#include "structs/str_text.h"
u32 sub_80306A8(u32 wonderMailType, u32 r1, UnkTextStruct2_sub *r2, u32 r3);
u32 sub_8030768(u8 r0);
u8 sub_80307EC(void);
void sub_8030810(u8 r0);
void sub_803084C(void);
u8 *sub_8030894(void);
void sub_803092C(void);
bool8 HasNoWonderMailType(u32 wonderMailType);
#endif /* ifndef WONDER_MAIL_4_H */

9
include/wonder_mail_5.h Normal file
View File

@ -0,0 +1,9 @@
#ifndef WONDER_MAIL_5_H
#define WONDER_MAIL_5_H
bool8 sub_8030D40(u8 mailIndex, s32 windowID);
u32 sub_8030DA0(void);
void sub_8030DE4(void);
#endif /* ifndef WONDER_MAIL_5_H */

View File

@ -112,7 +112,6 @@ extern void sub_8072008(Entity *pokemon, Entity *r1, u32 r2, u8 r3, u32);
extern void LevelDownTarget(Entity *pokemon, Entity *r1, u32 r2);
extern void sub_80522F4(Entity *pokemon, Entity *r1, const u8[]);
extern void sub_806F370(Entity *pokemon, Entity *r1, u32, u32, u8 *, u8, s32, u32, u32, u32);
extern void sub_8078A58(Entity *, Entity *, s32, u32);
extern s32 sub_8042520(Entity *);
Entity *sub_80696FC(Entity *);
extern void sub_806A7E8(EntityInfo *, s32);

View File

@ -25,6 +25,8 @@
#include "text_util.h"
#include "text1.h"
#include "text2.h"
#include "wonder_mail_4.h"
#include "wonder_mail_5.h"
extern void SetFriendRescueMenuState(u32);
@ -298,14 +300,6 @@ void sub_80353BC(void);
void sub_8035424(void);
void sub_8035430(void);
extern u32 sub_8030DA0(void);
extern void sub_8030DE4(void);
extern void sub_803092C(void);
extern u32 sub_8030768(u32);
extern void sub_803084C(void);
extern void sub_8030D40(u8, u32);
extern void sub_8030810(u32);
extern u8 sub_80307EC(void);
extern u32 sub_8031DCC(void);
extern void sub_8031E00(void);
extern u32 sub_8039068(u32, u8 *passwordBuffer, unkStruct_203B480 *r0);
@ -313,9 +307,6 @@ extern u32 sub_8039068(u32, u8 *passwordBuffer, unkStruct_203B480 *r0);
extern void sub_8031E10(void);
extern u8 sub_800D588(void);
extern u32 sub_8023CE8(void);
extern u32 sub_80306A8(u32 wonderMailType, u32, UnkTextStruct2_sub *, u32);
extern u32 sub_8030894(void);
extern void sub_803092C(void);
extern bool8 sub_8031D70(u32 mailIndex, s32);
extern s32 sub_8037B28(u32);
@ -833,8 +824,8 @@ void sub_8032828(void)
case 0x32:
if (sub_8030894() == 0) {
ResetUnusedInputStruct();
xxx_call_save_unk_text_struct_800641C(NULL, TRUE, TRUE);
sub_80306A8(1, 0, NULL, 6);
sub_800641C(NULL, TRUE, TRUE);
sub_80306A8(WONDER_MAIL_TYPE_SOS, 0, NULL, 6);
}
break;
case 0x35:
@ -930,8 +921,8 @@ void sub_8032828(void)
case 0x1D:
if (sub_8030894() == 0) {
ResetUnusedInputStruct();
xxx_call_save_unk_text_struct_800641C(NULL, TRUE, TRUE);
sub_80306A8(4, 0, NULL, 6);
sub_800641C(NULL, TRUE, TRUE);
sub_80306A8(WONDER_MAIL_TYPE_AOK, 0, NULL, 6);
}
break;
case 0x20:
@ -1037,8 +1028,8 @@ void sub_8032828(void)
if (sub_8030894() != 0)
break;
ResetUnusedInputStruct();
xxx_call_save_unk_text_struct_800641C(NULL, TRUE, TRUE);
sub_80306A8(1, 0, NULL, 6);
sub_800641C(NULL, TRUE, TRUE);
sub_80306A8(WONDER_MAIL_TYPE_SOS, 0, NULL, 6);
break;
case 0x15:
sub_8014248(&gUnknown_80E2F78[0], 0, 6, gUnknown_80E2290, NULL, 4, 0, NULL, 0x101);

View File

@ -66,20 +66,18 @@ const u8 gPelipperBoard_JobList[] = "Job List";
const u8 gPelipperBoard_Accepted[] = "Accepted";
const u8 gPelipperStatusSlash[] = "/";
extern void sub_802ECB4(void);
extern void nullsub_134(void);
extern void sub_802ED4C(void);
extern void sub_802EDBC(void);
extern void sub_802EEA0(void);
extern void sub_802EEBC(void);
extern void sub_802E94C(void);
extern void sub_802EA58(void);
extern void CreatePelipperBoardMenu(void);
extern void sub_802EC10(void);
extern void CreatePelipperAcceptedStatusBox(u32);
void SetPelipperBoardState(u32);
static void sub_802ECB4(void);
static void nullsub_134(void);
static void sub_802ED4C(void);
static void sub_802EDBC(void);
static void sub_802EEA0(void);
static void sub_802EEBC(void);
static void sub_802E94C(void);
static void sub_802EA58(void);
static void CreatePelipperBoardMenu(void);
static void sub_802EC10(void);
static void CreatePelipperAcceptedStatusBox(u32);
static void SetPelipperBoardState(u32);
u32 sub_802E864(void)
{

View File

@ -114,10 +114,11 @@ ALIGNED(4) const u8 gUnknown_80E7178[] = _("{CENTER_ALIGN}The data could not be
"{CENTER_ALIGN}Please turn off the power and remove\n"
"{CENTER_ALIGN}and reinsert the DS Card.");
extern void sub_8038440();
extern void sub_80384D0();
extern void sub_8038830();
extern void sub_80388C4(void);
static void sub_8038830(void);
static void sub_80388C4(void);
extern void sub_8038440(void);
extern void sub_80384D0(void);
extern void sub_80140F8(void);
void CreateSaveMenu(s32 currMenu)

View File

@ -35,7 +35,6 @@
extern void sub_807F43C(Entity *, Entity *);
extern void sub_807DC68(Entity *, Entity *);
extern void sub_8078A58(Entity *, Entity *, s32, u32);
extern u32 sub_803D73C(u32);
extern void sub_8045C28(Item *, u8 , u8);
extern void sub_80464C8(Entity *, Position *, Item *);

View File

@ -23,6 +23,8 @@
#include "text1.h"
#include "text2.h"
#include "thank_you_wonder_mail.h"
#include "wonder_mail_4.h"
#include "wonder_mail_5.h"
static EWRAM_DATA_2 WonderMailStruct_203B2C4 *sUnknown_203B2C4 = {0};
@ -54,9 +56,24 @@ static EWRAM_DATA_2 WonderMailStruct_203B2C4 *sUnknown_203B2C4 = {0};
#define PROCESS_THANK_YOU_PASSWORD 0x27
#define THANK_YOU_PASSWORD_WRONG 0x28
enum menuActions {
CANCEL_ACTION,
SEND_THANK_YOU_MAIL_ACTION,
GET_THANK_YOU_MAIL_ACTION,
// 3 - GAME_LINK
// 4 - ???
// 5 - PASSWORD
YES_ACTION = 0x7,
NO_ACTION,
SEND_ITEM_ACTION,
NO_SEND_ITEM_ACTION,
CONFIRM_ACTION,
INFO_ACTION,
};
const Item gUnknown_80DED44 =
{
1, 0, 0
ITEM_FLAG_EXISTS, 0, ITEM_NOTHING
};
extern char gUnknown_202E5D8[0x50];
@ -88,9 +105,9 @@ extern const u8 DontSendItem_Text[];
const MenuItem gUnknown_80DED78[3] =
{
{"Confirm", 0xB},
{"Info", 0xC},
{NULL, 0x0},
{"Confirm", CONFIRM_ACTION},
{"Info", INFO_ACTION},
{NULL, CANCEL_ACTION},
};
// Unused
@ -107,40 +124,40 @@ const UnkTextStruct2 gUnknown_80DEDA0 =
const MenuItem gThankYouMailMainMenuItems[4] =
{
{"Send Thank-You Mail", 0x1},
{"Get Thank-You Mail", 0x2},
{"Cancel", 0x0},
{NULL, 0x0},
{"Send Thank-You Mail", SEND_THANK_YOU_MAIL_ACTION},
{"Get Thank-You Mail", GET_THANK_YOU_MAIL_ACTION},
{"Cancel", CANCEL_ACTION},
{NULL, CANCEL_ACTION},
};
const MenuItem gUnknown_80DEE08[4] =
{
{"Game Link cable", WONDER_MAIL_GAME_LINK},
{"Password", WONDER_MAIL_PASSWORD},
{"Cancel", 0x0},
{NULL, 0x0},
{"Cancel", CANCEL_ACTION},
{NULL, CANCEL_ACTION},
};
const MenuItem gUnknown_80DEE44[3] =
{
{"Yes", 0x7},
{"Cancel", 0x0},
{NULL, 0x0},
{"Yes", YES_ACTION},
{"Cancel", CANCEL_ACTION},
{NULL, CANCEL_ACTION},
};
const MenuItem gUnknown_80DEE60[3] =
{
{"Yes", 0x7},
{"No", 0x8},
{NULL, 0x0},
{"Yes", YES_ACTION},
{"No", NO_ACTION},
{NULL, CANCEL_ACTION},
};
const MenuItem gUnknown_80DEE7C[4] =
{
{SendItem_Text, 0x9},
{DontSendItem_Text, 0xA},
{"Cancel", 0x0},
{NULL, 0x0},
{SendItem_Text, SEND_ITEM_ACTION},
{DontSendItem_Text, NO_SEND_ITEM_ACTION},
{"Cancel", CANCEL_ACTION},
{NULL, CANCEL_ACTION},
};
ALIGNED(4) static const u8 DontSendItem_Text[] = _("Don{APOSTROPHE}t Send Item");
@ -148,29 +165,24 @@ ALIGNED(4) static const u8 SendItem_Text[] = "Send Item";
const MenuItem gUnknown_80DEEBC[3] =
{
{"Send w/o Item", 0xA},
{"Cancel", 0x0},
{NULL, 0x0},
{"Send w/o Item", NO_SEND_ITEM_ACTION},
{"Cancel", CANCEL_ACTION},
{NULL, CANCEL_ACTION},
};
const MenuItem gUnknown_80DEEE4[4] =
{
{"Yes", 0x7},
{"No", 0x8},
{"Cancel", 0x0},
{NULL, 0x0},
{"Yes", YES_ACTION},
{"No", NO_ACTION},
{"Cancel", CANCEL_ACTION},
{NULL, CANCEL_ACTION},
};
#include "data/thank_you_wonder_mail.h"
extern void sub_8030810(u32);
extern u32 sub_8031DCC(void);
extern void sub_8031E00(void);
extern u32 sub_8030768(u32);
extern s8 sub_80307EC(void);
extern void sub_8030D40(u8, u32);
extern u32 sub_8030DA0();
extern void HandleThankYouMailPelipperMainMenu();
extern void sub_802AAC8();
extern void ReturnToThankYouMailMainMenu();
@ -211,19 +223,13 @@ extern void HandleThankYouMailPasswordMenu();
extern void sub_802A9FC();
extern void sub_802A828();
extern void sub_802A850();
extern void sub_8030DE4();
extern void sub_803084C();
extern void sub_8031E10();
extern void SetThankYouMailMenuState(u32);
extern void sub_803092C(void);
extern s32 sub_8037B28(u32);
extern u32 sub_8030894(void);
extern void sub_80306A8(u32, u32, u32, u32);
extern u8 sub_800D588(void);
extern u32 GetDungeonTeamRankPts(DungeonLocation *, u32);
extern void sub_8031D70(u8, u32);
extern void sub_803092C(void);
extern void sub_8011C28(u32);
extern u32 sub_8039068(u32, u8 *r1, unkStruct_203B480 *r0);
@ -543,11 +549,11 @@ void sub_802A090(void)
{
switch(menuAction)
{
case 7:
case YES_ACTION:
SetThankYouMailMenuState(SELECT_THANK_YOU_MAIL_COMMS);
break;
case 8:
case 0:
case NO_ACTION:
case CANCEL_ACTION:
SetThankYouMailMenuState(ANYTHING_ELSE_THANK_YOU_MAIN_MENU);
break;
default:
@ -601,11 +607,11 @@ void sub_802A174(void)
switch(menuAction)
{
case 0xB:
case CONFIRM_ACTION:
sub_803084C();
SetThankYouMailMenuState(0xe);
break;
case 0xC:
case INFO_ACTION:
sUnknown_203B2C4->fallbackState = 0x2b;
RestoreUnkTextStruct_8006518(sUnknown_203B2C4->unk3BC);
ResetUnusedInputStruct();
@ -613,7 +619,7 @@ void sub_802A174(void)
sub_8030D40(sUnknown_203B2C4->mailIndex,0);
SetThankYouMailMenuState(0x12);
break;
case 0:
case CANCEL_ACTION:
case 0xD:
sub_8035CC0(sUnknown_203B2C4->unk35C,2);
sub_8030810(1);
@ -711,11 +717,11 @@ void sub_802A39C(void)
switch(menuAction)
{
case 0xB:
case CONFIRM_ACTION:
sub_801CBB8();
SetThankYouMailMenuState(CONFIRM_ITEM_TO_SEND);
break;
case 0xC:
case INFO_ACTION:
sUnknown_203B2C4->fallbackState = 0x2b;
RestoreUnkTextStruct_8006518(sUnknown_203B2C4->unk3BC);
ResetUnusedInputStruct();
@ -723,7 +729,7 @@ void sub_802A39C(void)
sub_801B3C0(&sUnknown_203B2C4->unk41C);
SetThankYouMailMenuState(SHOW_ITEM_TO_SEND_INFO);
break;
case 0:
case CANCEL_ACTION:
case 0xD:
sub_8035CC0(sUnknown_203B2C4->unk35C, 3);
sub_801CCD8();
@ -907,14 +913,14 @@ void sub_802A75C(void)
{
switch(menuAction)
{
case 7:
case YES_ACTION:
// NOTE: if statement is needed to match
if(sUnknown_203B2C4->wonderMailMode)
SetThankYouMailMenuState(COMMUNICATING_THANK_YOU_MAIL);
else
SetThankYouMailMenuState(COMMUNICATING_THANK_YOU_MAIL);
break;
case 0:
case CANCEL_ACTION:
SetThankYouMailMenuState(ANYTHING_ELSE_THANK_YOU_MAIN_MENU);
break;
}
@ -929,7 +935,7 @@ void HandleConfirmItemtoSendMenu(void)
{
switch(menuAction)
{
case 7:
case YES_ACTION:
mail = GetMailatIndex(sUnknown_203B2C4->mailIndex);
if(sUnknown_203B2C4->unk41C.id != ITEM_NOTHING)
{
@ -938,10 +944,10 @@ void HandleConfirmItemtoSendMenu(void)
gTeamInventoryRef->teamStorage[sUnknown_203B2C4->unk41C.id]--;
SetThankYouMailMenuState(0x29);
break;
case 8:
case NO_ACTION:
SetThankYouMailMenuState(PROMPT_ITEM_TO_SEND);
break;
case 0:
case CANCEL_ACTION:
SetThankYouMailMenuState(ANYTHING_ELSE_THANK_YOU_MAIN_MENU);
break;
}
@ -997,7 +1003,7 @@ void sub_802A8BC(void)
{
switch(menuAction)
{
case 0xA:
case NO_SEND_ITEM_ACTION:
switch(sUnknown_203B2C4->wonderMailMethod)
{
case WONDER_MAIL_GAME_LINK:
@ -1009,7 +1015,7 @@ void sub_802A8BC(void)
break;
}
break;
case 0:
case CANCEL_ACTION:
SetThankYouMailMenuState(ANYTHING_ELSE_THANK_YOU_MAIN_MENU);
break;
}
@ -1023,7 +1029,7 @@ void sub_802A910(void)
{
switch(menuAction)
{
case 9:
case SEND_ITEM_ACTION:
if(sub_801CF14(0))
{
SetThankYouMailMenuState(THANK_YOU_MAIL_STORAGE_EMPTY);
@ -1033,7 +1039,7 @@ void sub_802A910(void)
SetThankYouMailMenuState(PROMPT_ITEM_TO_SEND);
}
break;
case 0xA:
case NO_SEND_ITEM_ACTION:
switch(sUnknown_203B2C4->wonderMailMethod)
{
case WONDER_MAIL_GAME_LINK:
@ -1045,7 +1051,7 @@ void sub_802A910(void)
break;
}
break;
case 0:
case CANCEL_ACTION:
SetThankYouMailMenuState(ANYTHING_ELSE_THANK_YOU_MAIN_MENU);
break;
}
@ -1068,7 +1074,7 @@ void sub_802A9A8(void)
{
switch(menuAction)
{
case 0x7:
case YES_ACTION:
switch(sUnknown_203B2C4->wonderMailMethod)
{
case WONDER_MAIL_GAME_LINK:
@ -1080,7 +1086,7 @@ void sub_802A9A8(void)
break;
}
break;
case 0:
case CANCEL_ACTION:
SetThankYouMailMenuState(ANYTHING_ELSE_THANK_YOU_MAIN_MENU);
break;
}
@ -1094,10 +1100,10 @@ void sub_802A9FC(void)
{
switch(menuAction)
{
case 0x7:
case YES_ACTION:
SetThankYouMailMenuState(PROMPT_THANK_YOU_PASSWORD);
break;
case 0:
case CANCEL_ACTION:
SetThankYouMailMenuState(ANYTHING_ELSE_THANK_YOU_MAIN_MENU);
break;
}
@ -1141,7 +1147,7 @@ void HandleMailCommunicationMenu(void)
break;
}
break;
case 0:
case CANCEL_ACTION:
SetThankYouMailMenuState(ANYTHING_ELSE_THANK_YOU_MAIN_MENU);
break;
}
@ -1173,7 +1179,7 @@ void HandleThankYouMailPelipperMainMenu(void)
{
switch(menuAction)
{
case 1:
case SEND_THANK_YOU_MAIL_ACTION:
sUnknown_203B2C4->unk40 = 6;
sUnknown_203B2C4->wonderMailMode = WONDER_MAIL_MODE_SEND;
if(CountMailType(5) == 0)
@ -1185,12 +1191,12 @@ void HandleThankYouMailPelipperMainMenu(void)
SetThankYouMailMenuState(PROMPT_THANK_YOU_TO_SEND);
}
break;
case 2:
case GET_THANK_YOU_MAIL_ACTION:
sUnknown_203B2C4->unk40 = 7;
sUnknown_203B2C4->wonderMailMode = WONDER_MAIL_MODE_RECEIVE;
SetThankYouMailMenuState(SELECT_THANK_YOU_MAIL_COMMS);
break;
case 0:
case CANCEL_ACTION:
SetThankYouMailMenuState(2);
break;
}

View File

@ -11,7 +11,6 @@
extern void TriggerWeatherAbilities(void);
extern void sub_807EAA0(u32, u32);
void sub_807E5E4(u8);
u8 GetApparentWeather(Entity *pokemon)
{

View File

@ -21,13 +21,14 @@
#include "text1.h"
#include "text2.h"
#include "wonder_mail.h"
#include "wonder_mail_4.h"
#include "wonder_mail_5.h"
static EWRAM_DATA_2 WonderMailStruct_203B2C0 *sUnknown_203B2C0 = {0};
extern void sub_8011C28(u32);
extern void sub_809927C(u8);
extern bool8 HasNoWonderMailType(u32);
extern u32 sub_8031050();
extern void sub_80310B4();
@ -36,28 +37,15 @@ extern char gAvailablePokemonNames[0x50];
extern void nullsub_130(void);
extern void sub_8028348(void);
extern void sub_803084C();
extern u32 sub_8030768(u32);
extern s8 sub_80307EC();
extern void sub_8030D40(u8, u32);
extern void sub_8030810(u32);
extern u32 sub_8030DA0(void);
extern void sub_8030DE4(void);
extern void sub_803092C(void);
extern u32 sub_8039068(u32, u8 *r1, unkStruct_203B480 *r0);
extern void sub_8095274(u32);
extern u32 sub_8031DCC();
extern void sub_8031E10();
extern void sub_8031E00();
extern void sub_8031E10(void);
extern void sub_803084C(void);
extern void sub_8030DE4();
extern void sub_80306A8(u32, u32, u32, u32);
extern s32 sub_8037B28(u32);
extern void sub_8031D70(u8, u32);
extern u32 sub_8023CE8(void);
extern u32 sub_8030894(void);
extern void sub_8030F58(u32);
extern void sub_8029B34(void);
extern void sub_8029AD8(void);
@ -111,9 +99,7 @@ extern void sub_8029044(void);
extern void sub_8028CFC(void);
extern void sub_8028D4C(void);
extern void sub_8031E10(void);
extern void sub_803084C(void);
extern void sub_80310B4(void);
extern void sub_8030DE4(void);
extern const u8 DontSendPokemon_80DDB80[];
extern const u8 SendPokemon_80DDB98[];
@ -632,7 +618,7 @@ void sub_8028348(void)
ResetUnusedInputStruct();
xxx_call_save_unk_text_struct_800641C(NULL, TRUE, TRUE);
// SOS Mail
sub_80306A8(2, 0, 0, 6);
sub_80306A8(WONDER_MAIL_TYPE_SOS_1, 0, 0, 6);
}
break;
case 0x20:
@ -1356,7 +1342,7 @@ void sub_802939C(void)
}
else
{
SetFriendRescueCounterState(0x2);
SetFriendRescueCounterState(FRIEND_RESCUE_EXIT_PRE);
}
}
}
@ -1399,8 +1385,8 @@ void sub_80293F4(void)
sub_8095274(mail.unk10.unk10);
mail.mailType = 2;
sub_80951BC(&mail);
xxx_info_box_80141B4(gWonderMailAOKMailReceivedText, 0, &sUnknown_203B2C0->faceFile, 0x101);
SetFriendRescueCounterState(0x23);
sub_80141B4(gWonderMailAOKMailReceivedText, 0, &sUnknown_203B2C0->faceFile, 0x101);
SetFriendRescueCounterState(RECEIVED_FRIEND_SOS_MAIL);
break;
case 23:
case 24:

View File

@ -37,6 +37,11 @@ struct unkStruct_203B2C8
u32 fill13C;
};
enum States {
INIT_STATE,
EXIT_STATE = 5
};
static EWRAM_DATA_2 struct unkStruct_203B2C8 *sUnknown_203B2C8 = {0};
extern void sub_80920D8(u8 *buffer);
@ -78,9 +83,8 @@ ALIGNED(4) const char gUnknown_80DFB14[] = _(
" Please give me a shout if\n"
"you would like to send {COLOR_1 LIGHT_BLUE}A-OK Mail{END_COLOR_TEXT_1}.");
u32 sub_802B2D4(void)
s32 sub_802B2D4(void)
{
s32 iVar1;
OpenedFile *faceFile;
ResetUnusedInputStruct();
@ -97,19 +101,20 @@ u32 sub_802B2D4(void)
sUnknown_203B2C8->unk12 = 0;
sUnknown_203B2C8->unkC = 2;
sUnknown_203B2C8->unkE = 8;
if (sub_8099394(&sUnknown_203B2C8->unk1) == 1) {
sub_802B548(0);
iVar1 = 1;
if (sub_8099394(&sUnknown_203B2C8->unk1) != 1) {
return 0;
}
else
iVar1 = 0;
return iVar1;
{
sub_802B548(INIT_STATE);
return 1;
}
}
u32 sub_802B358(void)
{
switch(sUnknown_203B2C8->currState) {
case 0:
case INIT_STATE:
sub_802B560();
break;
case 1:
@ -124,7 +129,7 @@ u32 sub_802B358(void)
case 4:
sub_802B624();
break;
case 5:
case EXIT_STATE:
return 3;
}
return 0;
@ -151,7 +156,7 @@ void sub_802B3E0(void)
char teamNameBuffer[40];
switch(sUnknown_203B2C8->currState) {
case 0:
case INIT_STATE:
if (sub_80023E4(0)) {
// Copy Team Name to buffer
sub_80920D8(teamNameBuffer);
@ -179,7 +184,7 @@ void sub_802B3E0(void)
sUnknown_203B2C8->unk114.itemRewards[2] = ITEM_NOTHING;
sUnknown_203B2C8->unk114.quantity = 10;
sUnknown_203B2C8->unk114.friendAreaReward = 0;
sub_802F204(&sUnknown_203B2C8->unk114, 0);
sub_802F204(&sUnknown_203B2C8->unk114, FALSE);
break;
case 2:
// I hope you will keep on rescuing your friends
@ -260,6 +265,6 @@ void sub_802B624(void)
s32 temp;
if (sub_80144A4(&temp) == 0) {
sub_802B548(5);
sub_802B548(EXIT_STATE);
}
}

View File

@ -14,6 +14,7 @@
#include "text1.h"
#include "text2.h"
#include "structs/struct_sub80095e4.h"
#include "wonder_mail_4.h"
struct unkStruct_203B320
{
@ -53,7 +54,7 @@ extern const u8 ThanksList[];
extern const u8 CompletedJobs[];
extern const u8 OkdRescue[];
const u8 * const gUnknown_80E086C[] =
const u8 * const gUnknown_80E086C[MAX_WONDER_MAIL_TYPES] =
{
SOSList,
RequestList,
@ -74,10 +75,8 @@ ALIGNED(4) const u8 SOSMail[] = "SOS Mail";
ALIGNED(4) const u8 RequestList[] = "Request List";
ALIGNED(4) const u8 SOSList[] = "SOS List";
extern bool8 HasNoWonderMailType(u32);
extern s32 sub_8030A74(void);
extern void sub_80308A0(void);
extern void sub_803092C(void);
s32 sub_8030A74(void);
void sub_80308A0(void);
u32 sub_80306A8(u32 wonderMailType, u32 r1, UnkTextStruct2_sub *r2, u32 r3)
{
@ -125,7 +124,7 @@ u32 sub_8030768(u8 r0)
PlayMenuSoundEffect(0);
return 3;
default:
if(sub_80138B8(&gUnknown_203B320->s28.s0.input, 1) != 0)
if(sub_80138B8(&gUnknown_203B320->s28.s0.input, TRUE) != 0)
{
sub_80308A0();
sub_803092C();
@ -152,7 +151,7 @@ void sub_8030810(u8 r0)
AddMenuCursorSprite(&gUnknown_203B320->s28.s0.input);
}
void sub_803084C()
void sub_803084C(void)
{
if(gUnknown_203B320 != NULL)
{
@ -164,7 +163,7 @@ void sub_803084C()
}
}
u8 *sub_8030894()
u8 *sub_8030894(void)
{
return gUnknown_203B320->unk0;
}

View File

@ -1,3 +1,4 @@
#include "constants/input.h"
#include "global.h"
#include "globaldata.h"
#include "code_800D090.h"
@ -19,7 +20,7 @@ struct unkStruct_203B324
// size: 0x78
MenuInputStructSub unk0;
u8 mailIndex;
u32 unk10;
u32 windowID;
UnkTextStruct2 *unk14;
UnkTextStruct2 unk18[4];
};
@ -57,27 +58,27 @@ extern void sub_8030DD4(void);
void sub_8030E2C(void);
void sub_8030E48(void);
bool8 sub_8030D40(u8 mailIndex, s32 param_2)
bool8 sub_8030D40(u8 mailIndex, s32 windowID)
{
gUnknown_203B324 = MemoryAlloc(sizeof(struct unkStruct_203B324), 8);
gUnknown_203B324->mailIndex = mailIndex;
sub_801317C(&gUnknown_203B324->unk0);
gUnknown_203B324->unk10 = param_2;
gUnknown_203B324->unk14 = &gUnknown_203B324->unk18[param_2];
RestoreUnkTextStruct_8006518(gUnknown_203B324->unk18);
gUnknown_203B324->unk18[gUnknown_203B324->unk10] = gUnknown_80E091C;
gUnknown_203B324->windowID = windowID;
gUnknown_203B324->unk14 = &gUnknown_203B324->unk18[windowID];
sub_8006518(gUnknown_203B324->unk18);
gUnknown_203B324->unk18[gUnknown_203B324->windowID] = gUnknown_80E091C;
sub_8030DD4();
return TRUE;
}
u8 sub_8030DA0(void)
u32 sub_8030DA0(void)
{
switch(sub_8012A64(&gUnknown_203B324->unk0, gUnknown_203B324->unk10))
switch(sub_8012A64(&gUnknown_203B324->unk0, gUnknown_203B324->windowID))
{
case 2:
case INPUT_B_BUTTON:
PlayMenuSoundEffect(1);
return 2;
case 1:
case INPUT_A_BUTTON:
PlayMenuSoundEffect(0);
return 3;
default:
@ -95,7 +96,7 @@ void sub_8030DE4(void)
{
if(gUnknown_203B324 != NULL)
{
gUnknown_203B324->unk18[gUnknown_203B324->unk10] = gUnknown_80E0900;
gUnknown_203B324->unk18[gUnknown_203B324->windowID] = gUnknown_80E0900;
ResetUnusedInputStruct();
xxx_call_save_unk_text_struct_800641C(gUnknown_203B324->unk18, TRUE, TRUE);
MemoryFree(gUnknown_203B324);
@ -117,8 +118,8 @@ void sub_8030E48(void)
u8 buffer [256];
mail = &gUnknown_203B480[gUnknown_203B324->mailIndex];
sub_80073B8(gUnknown_203B324->unk10);
stack.unk0[0] = gUnknown_203B324->unk10;
sub_80073B8(gUnknown_203B324->windowID);
stack.unk0[0] = gUnknown_203B324->windowID;
stack.mailTitleType = 7;
stack.mailMissionType = MISSION_TYPE_FRIEND_RESCUE;
stack.mailStatus = MAIL_STATUS_SUSPENDED;
@ -150,8 +151,8 @@ void sub_8030E48(void)
}
CreateRescueDescription(&stack);
uVar2 = mail->unk10.unk10_u16 % 10000;
PrintStringOnWindow(10,0x68,gUnknown_80E0934,gUnknown_203B324->unk10,0); // ID:
PrintStringOnWindow(10,0x68,gUnknown_80E0934,gUnknown_203B324->windowID,0); // ID:
sprintfStatic(buffer,gUnknown_80E0938,uVar2); // %-4d
PrintStringOnWindow(0x44,0x68,buffer,gUnknown_203B324->unk10,0);
sub_80073E0(gUnknown_203B324->unk10);
PrintStringOnWindow(0x44,0x68,buffer,gUnknown_203B324->windowID,0);
sub_80073E0(gUnknown_203B324->windowID);
}

View File

@ -8,8 +8,8 @@
#include "code_8094F88.h"
#include "menu_input.h"
#include "code_80130A8.h"
extern bool8 HasNoWonderMailType(u32);
#include "wonder_mail_4.h"
#include "wonder_mail_5.h"
struct unkStruct_203B328
{
@ -32,18 +32,27 @@ static EWRAM_DATA_2 struct unkStruct_203B328 *gUnknown_203B328 = {0};
extern unkStruct_203B480 *gUnknown_203B480;
enum MenuActions {
CANCEL_ACTION = 1,
YES_ACTION,
NO_ACTION,
DELETE_ACTION,
INFO_ACTION,
DELETE_ALL_MAIL_ACTION, // Unused
};
const MenuItem gUnknown_80E0948[] =
{
{"Yes", 0x2},
{"No", 0x3},
{NULL, 0x1}
{"Yes", YES_ACTION},
{"No", NO_ACTION},
{NULL, CANCEL_ACTION}
};
const MenuItem gUnknown_80E0968[] =
{
{"Delete", 0x4},
{"Info", 0x5},
{NULL, 0x1}
{"Delete", DELETE_ACTION},
{"Info", INFO_ACTION},
{NULL, CANCEL_ACTION}
};
const UnkTextStruct2 gUnknown_80E0990 = {
@ -79,35 +88,18 @@ ALIGNED(4) const u8 gUnknown_80E0A0C[] = _(
" ...Uh{COMMA} no?\n"
"You don{APOSTROPHE}t have any {COLOR_1 LIGHT_BLUE}A-OK Mail{END_COLOR_TEXT_1}.");
extern void sub_80306A8(s32, u32, u32, u32);
extern void sub_8031300(void);
extern void sub_803136C(void);
extern void sub_80313D8(u32);
extern void sub_8031498(void);
extern void sub_803084C(void);
extern void sub_80310FC();
extern void sub_8031258();
extern u32 sub_8030768(u32);
extern u8 sub_80307EC(void);
extern u32 sub_8030DA0(void);
extern void sub_8030DE4();
extern void sub_8030810(u32);
extern void sub_803092C(void);
extern void sub_8030D40(u8, u32);
enum States {
INIT_STATE = 0,
DELETE_SINGLE_MAIL_STATE = 2,
DELETE_ALL_MAIL_STATE = 3,
};
enum MenuActions {
CANCEL_ACTION = 1,
YES_ACTION,
NO_ACTION,
DELETE_ACTION,
INFO_ACTION
INFO_STATE = 4,
};
bool8 sub_8030F58(u32 wonderMailType)
@ -165,7 +157,7 @@ s32 sub_8031050(void)
case DELETE_ALL_MAIL_STATE:
sub_80313D8(gUnknown_203B328->state);
break;
case 4:
case INFO_STATE:
sub_8031498();
break;
case 5:
@ -213,7 +205,7 @@ void sub_80310FC(void)
gUnknown_203B328->unkA8[2] = gUnknown_80E09C0;
sub_8012CAC(&gUnknown_203B328->unkA8[2], gUnknown_80E0948);
break;
case 4:
case INFO_STATE:
gUnknown_203B328->unkA8[0] = gUnknown_80E0990;
gUnknown_203B328->unkA8[1] = gUnknown_80E0990;
gUnknown_203B328->unkA8[2] = gUnknown_80E0990;
@ -239,15 +231,15 @@ void sub_8031258(void)
break;
case 1:
sub_803092C();
sub_8012D60(&gUnknown_203B328->unk8, gUnknown_80E0968, 0, 0, 4, 1);
sub_8012D60(&gUnknown_203B328->unk8, gUnknown_80E0968, NULL, NULL, DELETE_ACTION, 1);
break;
case DELETE_SINGLE_MAIL_STATE:
case DELETE_ALL_MAIL_STATE:
sub_803092C();
sub_8012EA4(&gUnknown_203B328->unk8, 0);
sub_8012D60(&gUnknown_203B328->unk58, gUnknown_80E0948, 0, 0, 3, 2);
sub_8012D60(&gUnknown_203B328->unk58, gUnknown_80E0948, NULL, NULL, NO_ACTION, 2);
break;
case 4:
case INFO_STATE:
sub_8030D40(gUnknown_203B328->mailIndex, 3);
break;
case 5:
@ -267,7 +259,7 @@ void sub_8031300(void)
break;
case 4:
gUnknown_203B328->mailIndex = sub_80307EC();
sub_80310E4(4);
sub_80310E4(INFO_STATE);
break;
case 2:
sub_80310E4(6);
@ -291,16 +283,16 @@ void sub_803136C(void)
switch(menuAction)
{
case CANCEL_ACTION:
sub_80310E4(0);
sub_80310E4(INIT_STATE);
break;
case 6:
sub_80310E4(3);
case DELETE_ALL_MAIL_ACTION:
sub_80310E4(DELETE_ALL_MAIL_STATE);
break;
case DELETE_ACTION:
sub_80310E4(2);
sub_80310E4(DELETE_SINGLE_MAIL_STATE);
break;
case INFO_ACTION:
sub_80310E4(4);
sub_80310E4(INFO_STATE);
break;
}
@ -323,7 +315,7 @@ void sub_80313D8(u32 state)
{
case CANCEL_ACTION:
case NO_ACTION:
sub_80310E4(0);
sub_80310E4(INIT_STATE);
break;
case YES_ACTION:
switch(state)
@ -346,7 +338,7 @@ void sub_80313D8(u32 state)
sub_80310E4(5);
}
else {
sub_80310E4(0);
sub_80310E4(INIT_STATE);
}
}
break;
@ -363,7 +355,7 @@ void sub_8031498(void)
case 2:
case 3:
sub_8030DE4();
sub_80310E4(0);
sub_80310E4(INIT_STATE);
break;
}
}

View File

@ -19,6 +19,8 @@
#include "text2.h"
#include "wonder_mail_802D098.h"
#include "wonder_mail_main_menu.h"
#include "wonder_mail_4.h"
#include "wonder_mail_5.h"
#define SELECT_WONDER_MAIL_MODE_MAIN_SCREEN 0
#define SEND_WONDER_MAIL_MAIN_SCREEN 1
@ -69,17 +71,11 @@ EWRAM_DATA_2 struct unkStruct_203B3E8 *gUnknown_203B3E8 = {0};
#include "data/wonder_mail_main_menu.h"
extern void SetWonderMailMainMenuState(u8);
extern void sub_8030DE4(void);
extern void sub_803084C(void);
extern void sub_8031E10(void);
extern u8 sub_800D588(void);
extern void sub_802EF48(void);
extern s32 sub_8037B28(u32);
extern bool8 IsValidWonderMail(WonderMail *WonderMailData);
void PrintWonderMailMainMenuError(u32);
void HandleWonderMailMainScreen(void);
void HandleGameLinkCableMenu(void);