more menu action documentation

This commit is contained in:
Seth Barberee
2024-07-05 09:17:21 -07:00
parent 1ccc5886c8
commit 859f577bea
9 changed files with 192 additions and 147 deletions

View File

@@ -14,7 +14,8 @@ enum KecleonStoreStates
KECLEON_STORE_EXIT = 4,
KECLEON_STORE_NO_STORE_ITEMS,
KECLEON_STORE_NO_MONEY,
// 7 - 8
KECLEON_STORE_TOO_MUCH_MONEY,
// 8
KECLEON_STORE_NO_ITEMS_TO_SELL = 9,
KECLEON_STORE_TOO_MANY_ITEMS,
// 11
@@ -59,4 +60,4 @@ bool8 CreateKecleonBros(u32 mode);
void DeleteKecleonBros(void);
u32 KecleonBrosCallback(void);
#endif // GUARD_KECLEON_BROS1_H
#endif // GUARD_KECLEON_BROS1_H

View File

@@ -32,6 +32,13 @@ static void sub_8016B00(void);
static void sub_8016B24(void);
static void sub_8016B48(u8 action);
enum MenuActions {
CANCEL_ACTION = 1,
STORE_ACTION,
TAKE_ACTION,
INFO_ACTION
};
bool8 CreateFelicityBank(s32 mode)
{
u8 *monName;
@@ -267,23 +274,23 @@ static void CreateFelicityBankShopMenu(void)
MemoryFill16(sFelicityBankWork->unk54, 0, sizeof(sFelicityBankWork->unk54));
sFelicityBankWork->unk14[loopMax].text = gCommonStore[0];
sFelicityBankWork->unk14[loopMax].menuAction = 2;
sFelicityBankWork->unk14[loopMax].menuAction = STORE_ACTION;
loopMax++;
sFelicityBankWork->unk14[loopMax].text = gCommonTake[0];
sFelicityBankWork->unk14[loopMax].menuAction = 3;
sFelicityBankWork->unk14[loopMax].menuAction = TAKE_ACTION;
loopMax++;
sFelicityBankWork->unk14[loopMax].text = gCommonInfo[0];
sFelicityBankWork->unk14[loopMax].menuAction = 4;
sFelicityBankWork->unk14[loopMax].menuAction = INFO_ACTION;
loopMax++;
sFelicityBankWork->unk14[loopMax].text = gCommonCancel[0];
sFelicityBankWork->unk14[loopMax].menuAction = 1;
sFelicityBankWork->unk14[loopMax].menuAction = CANCEL_ACTION;
loopMax++;
sFelicityBankWork->unk14[loopMax].text = NULL;
sFelicityBankWork->unk14[loopMax].menuAction = 1;
sFelicityBankWork->unk14[loopMax].menuAction = CANCEL_ACTION;
for (i = 0; i < loopMax; i++) {
if (sFelicityBankWork->unk54[i] == 0 && sFelicityBankWork->unk14[i].menuAction == sFelicityBankWork->menuAction)
@@ -306,16 +313,16 @@ static void sub_80169BC(void)
sFelicityBankWork->menuAction = menuAction;
switch (menuAction) {
case 2:
case STORE_ACTION:
UpdateFelicityBankState(7);
break;
case 3:
case TAKE_ACTION:
UpdateFelicityBankState(10);
break;
case 4:
case INFO_ACTION:
UpdateFelicityBankState(3);
break;
case 1:
case CANCEL_ACTION:
UpdateFelicityBankState(4);
break;
}
@@ -411,4 +418,4 @@ void DrawTeamMoneyBox(u32 param_1)
xxx_call_draw_string(6, 0, sMoney, param_1, 0);
sub_8012BC4(42, 12, gTeamInventoryRef->teamMoney, 5, 5, param_1);
sub_80073E0(param_1);
}
}

View File

@@ -33,6 +33,13 @@ static void sub_80189C8(void);
static void sub_8018AC8(void);
static void sub_8018AE4(void);
enum MenuActions {
CANCEL_ACTION = 1,
STORE_ACTION,
TAKE_ACTION,
INFO_ACTION
};
bool8 sub_8017E1C(void)
{
ResetUnusedInputStruct();
@@ -224,25 +231,25 @@ static void sub_80182E4(void)
loopMax = 0;
MemoryFill16(sUnknown_203B20C->unk60, 0, sizeof(sUnknown_203B20C->unk60));
sUnknown_203B20C->unk20[0].text = gCommonStore[0];
sUnknown_203B20C->unk20[0].menuAction = 2;
sUnknown_203B20C->unk20[0].menuAction = STORE_ACTION;
if (GetNumberOfFilledInventorySlots() == 0 || sub_801CF50(0))
sUnknown_203B20C->unk60[0] = 1;
loopMax += 1;
sUnknown_203B20C->unk20[loopMax].text = gCommonTake[0];
sUnknown_203B20C->unk20[loopMax].menuAction = 3;
sUnknown_203B20C->unk20[loopMax].menuAction = TAKE_ACTION;
if (sub_801CF14(1) || INVENTORY_SIZE <= GetNumberOfFilledInventorySlots())
sUnknown_203B20C->unk60[loopMax] = 1;
loopMax += 1;
sUnknown_203B20C->unk20[loopMax].text = gCommonCancel[0];
sUnknown_203B20C->unk20[loopMax].menuAction = 1;
sUnknown_203B20C->unk20[loopMax].menuAction = CANCEL_ACTION;
loopMax += 1;
sUnknown_203B20C->unk20[loopMax].text = NULL;
sUnknown_203B20C->unk20[loopMax].menuAction = 1;
sUnknown_203B20C->unk20[loopMax].menuAction = CANCEL_ACTION;
for (index = 0; index < loopMax; index++) {
if (sUnknown_203B20C->unk60[index] == 0) {
@@ -267,17 +274,17 @@ static void sub_801841C(void)
loopMax = 0;
MemoryFill16(sUnknown_203B20C->unk60,0,sizeof(sUnknown_203B20C->unk60));
sUnknown_203B20C->unk20[0].text = gCommonStore[0];
sUnknown_203B20C->unk20[0].menuAction = 2;
sUnknown_203B20C->unk20[0].menuAction = STORE_ACTION;
if (!sub_801ADA0(sUnknown_203B20C->itemIndex))
sUnknown_203B20C->unk60[0] = 1;
loopMax += 1;
sUnknown_203B20C->unk20[loopMax].text = gCommonInfo[0];
sUnknown_203B20C->unk20[loopMax].menuAction = 4;
sUnknown_203B20C->unk20[loopMax].menuAction = INFO_ACTION;
loopMax += 1;
sUnknown_203B20C->unk20[loopMax].text = NULL;
sUnknown_203B20C->unk20[loopMax].menuAction = 1;
sUnknown_203B20C->unk20[loopMax].menuAction = CANCEL_ACTION;
for (index = 0; index < loopMax; index++) {
if (sUnknown_203B20C->unk60[index] == 0) {
@@ -302,18 +309,18 @@ static void sub_80184D4(void)
loopMax = 0;
MemoryFill16(sUnknown_203B20C->unk60, 0, sizeof(sUnknown_203B20C->unk60));
sUnknown_203B20C->unk20[0].text = gCommonTake[0];
sUnknown_203B20C->unk20[0].menuAction = 3;
sUnknown_203B20C->unk20[0].menuAction = TAKE_ACTION;
if (GetNumberOfFilledInventorySlots() >= INVENTORY_SIZE)
sUnknown_203B20C->unk60[0] = 1;
loopMax += 1;
sUnknown_203B20C->unk20[loopMax].text = gCommonInfo[0];
sUnknown_203B20C->unk20[loopMax].menuAction = 4;
sUnknown_203B20C->unk20[loopMax].menuAction = INFO_ACTION;
loopMax += 1;
sUnknown_203B20C->unk20[loopMax].text = NULL;
sUnknown_203B20C->unk20[loopMax].menuAction = 1;
sUnknown_203B20C->unk20[loopMax].menuAction = CANCEL_ACTION;
for (index = 0; index < loopMax; index++) {
if (sUnknown_203B20C->unk60[index] == 0) {
@@ -337,24 +344,24 @@ static void sub_8018588(void)
if (sub_8012FD8(&sUnknown_203B20C->unk70) == 0) {
sub_8013114(&sUnknown_203B20C->unk70, &menuAction);
if (menuAction != 1)
if (menuAction != CANCEL_ACTION)
sUnknown_203B20C->menuAction1 = menuAction;
}
switch (menuAction) {
case 2:
case STORE_ACTION:
if (GetNumberOfFilledInventorySlots() != 0 && !sub_801CF50(0))
sub_8017F10(4);
else
sub_8012EA4(&sUnknown_203B20C->unk70, 1);
break;
case 3:
case TAKE_ACTION:
if (sub_801CF14(1))
sub_8012EA4(&sUnknown_203B20C->unk70, 1);
else
sub_8017F10(10);
break;
case 1:
case CANCEL_ACTION:
sub_8017F10(3);
break;
}
@@ -509,12 +516,12 @@ static void sub_8018904(void)
sub_801A6E8(FALSE);
if (sub_8012FD8(&sUnknown_203B20C->unk70) == 0) {
sub_8013114(&sUnknown_203B20C->unk70, &menuAction);
if (menuAction != 1)
if (menuAction != CANCEL_ACTION)
sUnknown_203B20C->menuAction2 = menuAction;
}
switch (menuAction) {
case 2:
case STORE_ACTION:
if (IsNotMoneyOrUsedTMItem(sUnknown_203B20C->item.id)) {
if (!sub_801ADA0(sUnknown_203B20C->itemIndex)) {
error:
@@ -536,11 +543,11 @@ static void sub_8018904(void)
else
goto error;
break;
case 4:
case INFO_ACTION:
sub_8099690(0);
sub_8017F10(7);
break;
case 1:
case CANCEL_ACTION:
sub_8017F10(5);
break;
}
@@ -556,12 +563,12 @@ static void sub_80189C8(void)
sub_801CA08(FALSE);
if (sub_8012FD8(&sUnknown_203B20C->unk70) == 0) {
sub_8013114(&sUnknown_203B20C->unk70, &menuAction);
if (menuAction != 1)
if (menuAction != CANCEL_ACTION)
sUnknown_203B20C->menuAction3 = menuAction;
}
switch (menuAction) {
case 3:
case TAKE_ACTION:
if (GetNumberOfFilledInventorySlots() >= INVENTORY_SIZE)
sub_8012EA4(&sUnknown_203B20C->unk70, 1);
else if (IsThrowableItem(sUnknown_203B20C->item.id))
@@ -586,10 +593,10 @@ static void sub_80189C8(void)
goto error;
}
break;
case 4:
case INFO_ACTION:
sub_8017F10(14);
break;
case 1:
case CANCEL_ACTION:
sub_8017F10(11);
break;
}
@@ -623,4 +630,4 @@ static void sub_8018AE4(void)
default:
break;
}
}
}

View File

@@ -50,6 +50,16 @@ static void sub_8019D68(void);
static void sub_8019DAC(void);
static void sub_8019E04(bool32);
enum MenuActions {
CANCEL_ACTION = 1,
BUY_ACTION,
SELL_ACTION,
SELL_ALL_ACTION,
YES_ACTION,
NO_ACTION,
INFO_ACTION
};
bool8 CreateKecleonBros(u32 mode)
{
u8 *monName;
@@ -214,14 +224,14 @@ static void sub_8018D30(void)
static void UpdateKecleonStoreDialogue(void)
{
switch (sKecleonBrosWork1->currState) {
case 0:
case KECLEON_STORE_INIT:
sub_8019DAC();
sub_80194F8();
sub_8019E04(FALSE);
sub_8014248(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_00], 0, sKecleonBrosWork1->menuAction1,
sKecleonBrosWork1->menuItems, sKecleonBrosWork1->unk74, 4, 0, sKecleonBrosWork1->unkE4, 12);
break;
case 1:
case KECLEON_STORE_MAIN_MENU:
sub_8019DAC();
sub_80194F8();
sub_8019E04(FALSE);
@@ -229,7 +239,7 @@ static void UpdateKecleonStoreDialogue(void)
sKecleonBrosWork1->menuItems, sKecleonBrosWork1->unk74, 4, 0, sKecleonBrosWork1->unkE4, 12);
break;
case 2:
sKecleonBrosWork1->fallbackState = 1;
sKecleonBrosWork1->fallbackState = KECLEON_STORE_MAIN_MENU;
sub_8019E04(FALSE);
sub_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_22], 0, sKecleonBrosWork1->unkE4, 0x10D);
break;
@@ -238,47 +248,47 @@ static void UpdateKecleonStoreDialogue(void)
sub_8019E04(FALSE);
sub_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_02], 0, sKecleonBrosWork1->unkE4, 0x30D);
break;
case 5:
sKecleonBrosWork1->fallbackState = 1;
case KECLEON_STORE_NO_STORE_ITEMS:
sKecleonBrosWork1->fallbackState = KECLEON_STORE_MAIN_MENU;
sub_8019E04(FALSE);
sub_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_12], 0, sKecleonBrosWork1->unkE4, 0x10D);
break;
case 6:
case KECLEON_STORE_NO_MONEY:
sKecleonBrosWork1->fallbackState = 16;
sub_8019E04(TRUE);
sub_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_13], 0, sKecleonBrosWork1->unkE4, 0x10D);
break;
case 7:
sKecleonBrosWork1->fallbackState = 1;
case KECLEON_STORE_TOO_MUCH_MONEY:
sKecleonBrosWork1->fallbackState = KECLEON_STORE_MAIN_MENU;
sub_8019E04(TRUE);
sub_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_14], 0, sKecleonBrosWork1->unkE4, 0x10D);
break;
case 8:
sKecleonBrosWork1->fallbackState = 1;
sKecleonBrosWork1->fallbackState = KECLEON_STORE_MAIN_MENU;
sub_8019E04(TRUE);
sub_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_15], 0, sKecleonBrosWork1->unkE4, 0x10D);
break;
case 9:
sKecleonBrosWork1->fallbackState = 1;
case KECLEON_STORE_NO_ITEMS_TO_SELL:
sKecleonBrosWork1->fallbackState = KECLEON_STORE_MAIN_MENU;
sub_8019E04(TRUE);
sub_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_16], 0, sKecleonBrosWork1->unkE4, 0x10D);
break;
case 10:
sKecleonBrosWork1->fallbackState = 1;
case KECLEON_STORE_TOO_MANY_ITEMS:
sKecleonBrosWork1->fallbackState = KECLEON_STORE_MAIN_MENU;
sub_8019E04(TRUE);
sub_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_17], 0, sKecleonBrosWork1->unkE4, 0x10D);
break;
case 11:
sKecleonBrosWork1->fallbackState = 1;
sKecleonBrosWork1->fallbackState = KECLEON_STORE_MAIN_MENU;
sub_8019E04(FALSE);
sub_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_18], 0, sKecleonBrosWork1->unkE4, 0x10D);
break;
case 12:
case KECLEON_STORE_NOT_ENOUGH_MONEY:
sKecleonBrosWork1->fallbackState = 16;
sub_8019E04(TRUE);
sub_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_19], 0, sKecleonBrosWork1->unkE4, 0x10D);
break;
case 13:
case KECLEON_STORE_CANT_SELL_ITEM:
sub_8090E14(gUnknown_202DE58, &sKecleonBrosWork1->soldItem, NULL);
sKecleonBrosWork1->fallbackState = 24;
sub_8019E04(TRUE);
@@ -349,7 +359,7 @@ static void UpdateKecleonStoreDialogue(void)
sub_801A010();
else
sub_801A3DC();
sKecleonBrosWork1->fallbackState = 1;
sKecleonBrosWork1->fallbackState = KECLEON_STORE_MAIN_MENU;
}
else
sKecleonBrosWork1->fallbackState = 16;
@@ -395,7 +405,7 @@ static void UpdateKecleonStoreDialogue(void)
case 25:
if (GetNumberOfFilledInventorySlots() == 0 || gTeamInventoryRef->teamMoney >= MAX_TEAM_MONEY) {
sub_801A928();
sKecleonBrosWork1->fallbackState = 1;
sKecleonBrosWork1->fallbackState = KECLEON_STORE_MAIN_MENU;
}
else
sKecleonBrosWork1->fallbackState = 24;
@@ -410,7 +420,7 @@ static void UpdateKecleonStoreDialogue(void)
sub_8014248(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_10], 0, 5, sKecleonBrosWork1->menuItems, NULL, 4, 0, sKecleonBrosWork1->unkE4, 12);
break;
case 32:
sKecleonBrosWork1->fallbackState = 1;
sKecleonBrosWork1->fallbackState = KECLEON_STORE_MAIN_MENU;
sub_8019E04(FALSE);
sub_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_11], 0, sKecleonBrosWork1->unkE4, 0x10D);
break;
@@ -426,27 +436,27 @@ static void sub_80194F8(void)
loopMax = 0;
sKecleonBrosWork1->menuItems[loopMax].text = gCommonBuy[0];
sKecleonBrosWork1->menuItems[loopMax].menuAction = 2;
sKecleonBrosWork1->menuItems[loopMax].menuAction = BUY_ACTION;
loopMax++;
sKecleonBrosWork1->menuItems[loopMax].text = gCommonSell[0];
sKecleonBrosWork1->menuItems[loopMax].menuAction = 3;
sKecleonBrosWork1->menuItems[loopMax].menuAction = SELL_ACTION;
loopMax++;
sKecleonBrosWork1->menuItems[loopMax].text = sSellAll;
sKecleonBrosWork1->menuItems[loopMax].menuAction = 4;
sKecleonBrosWork1->menuItems[loopMax].menuAction = SELL_ALL_ACTION;
loopMax++;
sKecleonBrosWork1->menuItems[loopMax].text = gCommonInfo[0];
sKecleonBrosWork1->menuItems[loopMax].menuAction = 7;
sKecleonBrosWork1->menuItems[loopMax].menuAction = INFO_ACTION;
loopMax++;
sKecleonBrosWork1->menuItems[loopMax].text = gCommonCancel[0];
sKecleonBrosWork1->menuItems[loopMax].menuAction = 1;
sKecleonBrosWork1->menuItems[loopMax].menuAction = CANCEL_ACTION;
loopMax++;
sKecleonBrosWork1->menuItems[loopMax].text = NULL;
sKecleonBrosWork1->menuItems[loopMax].menuAction = 1;
sKecleonBrosWork1->menuItems[loopMax].menuAction = CANCEL_ACTION;
for (i = 0; i < loopMax; i++) {
if (sKecleonBrosWork1->unk74[i] == 0) {
@@ -472,15 +482,15 @@ static void sub_80195C0(void)
loopMax = 0;
sKecleonBrosWork1->menuItems[loopMax].text = gCommonBuy[0];
sKecleonBrosWork1->menuItems[loopMax].menuAction = 2;
sKecleonBrosWork1->menuItems[loopMax].menuAction = BUY_ACTION;
loopMax++;
sKecleonBrosWork1->menuItems[loopMax].text = gCommonInfo[0];
sKecleonBrosWork1->menuItems[loopMax].menuAction = 7;
sKecleonBrosWork1->menuItems[loopMax].menuAction = INFO_ACTION;
loopMax++;
sKecleonBrosWork1->menuItems[loopMax].text = NULL;
sKecleonBrosWork1->menuItems[loopMax].menuAction = 1;
sKecleonBrosWork1->menuItems[loopMax].menuAction = CANCEL_ACTION;
for (i = 0; i < loopMax; i++) {
if (sKecleonBrosWork1->unk74[i] == 0) {
@@ -506,15 +516,15 @@ static void sub_8019660(void)
loopMax = 0;
sKecleonBrosWork1->menuItems[loopMax].text = gCommonSell[0];
sKecleonBrosWork1->menuItems[loopMax].menuAction = 3;
sKecleonBrosWork1->menuItems[loopMax].menuAction = SELL_ACTION;
loopMax++;
sKecleonBrosWork1->menuItems[loopMax].text = gCommonInfo[0];
sKecleonBrosWork1->menuItems[loopMax].menuAction = 7;
sKecleonBrosWork1->menuItems[loopMax].menuAction = INFO_ACTION;
loopMax++;
sKecleonBrosWork1->menuItems[loopMax].text = NULL;
sKecleonBrosWork1->menuItems[loopMax].menuAction = 1;
sKecleonBrosWork1->menuItems[loopMax].menuAction = CANCEL_ACTION;
for (i = 0; i < loopMax; i++) {
if (sKecleonBrosWork1->unk74[i] == 0) {
@@ -535,15 +545,15 @@ static void sub_8019700(void)
{
s32 loopMax = 0;
sKecleonBrosWork1->menuItems[loopMax].text = gCommonYes[0];
sKecleonBrosWork1->menuItems[loopMax].menuAction = 5;
sKecleonBrosWork1->menuItems[loopMax].menuAction = YES_ACTION;
loopMax++;
sKecleonBrosWork1->menuItems[loopMax].text = gCommonNo[0];
sKecleonBrosWork1->menuItems[loopMax].menuAction = 6;
sKecleonBrosWork1->menuItems[loopMax].menuAction = NO_ACTION;
loopMax++;
sKecleonBrosWork1->menuItems[loopMax].text = NULL;
sKecleonBrosWork1->menuItems[loopMax].menuAction = 1;
sKecleonBrosWork1->menuItems[loopMax].menuAction = CANCEL_ACTION;
}
static void sub_8019730(void)
@@ -557,7 +567,7 @@ static void sub_8019730(void)
sKecleonBrosWork1->menuAction1 = menuAction;
switch (menuAction) {
case 2:
case BUY_ACTION:
if (CountKecleonItems() == 0)
SetKecleonBrosState(KECLEON_STORE_NO_STORE_ITEMS);
else if (GetNumberOfFilledInventorySlots() >= INVENTORY_SIZE)
@@ -565,7 +575,7 @@ static void sub_8019730(void)
else
SetKecleonBrosState(15);
break;
case 3:
case SELL_ACTION:
if (GetNumberOfFilledInventorySlots() == 0)
SetKecleonBrosState(KECLEON_STORE_NO_ITEMS_TO_SELL);
else if (sKecleonBrosWork1->numInventoryItemToSell == 0)
@@ -573,22 +583,22 @@ static void sub_8019730(void)
else if (gTeamInventoryRef->teamMoney < MAX_TEAM_MONEY)
SetKecleonBrosState(23);
else
SetKecleonBrosState(7);
SetKecleonBrosState(KECLEON_STORE_TOO_MUCH_MONEY);
break;
case 4:
case SELL_ALL_ACTION:
if (GetNumberOfFilledInventorySlots() == 0)
SetKecleonBrosState(KECLEON_STORE_NO_ITEMS_TO_SELL);
else if (sKecleonBrosWork1->numInventoryItemToSell == 0)
SetKecleonBrosState(8);
else if (sKecleonBrosWork1->inventoryItemSellPrice + gTeamInventoryRef->teamMoney > MAX_TEAM_MONEY)
SetKecleonBrosState(7);
SetKecleonBrosState(KECLEON_STORE_TOO_MUCH_MONEY);
else
SetKecleonBrosState(31);
break;
case 7:
case INFO_ACTION:
SetKecleonBrosState(2);
break;
case 1:
case CANCEL_ACTION:
SetKecleonBrosState(3);
break;
}
@@ -600,7 +610,7 @@ static void sub_8019850(void)
if (sub_80144A4(&menuAction) == 0) {
switch (menuAction) {
case 5:
case YES_ACTION:
AddToTeamMoney(-sKecleonBrosWork1->itemSellPrice);
if (sKecleonBrosWork1->isKecleonItemShop) {
@@ -617,8 +627,8 @@ static void sub_8019850(void)
PlaySound(332);
SetKecleonBrosState(17);
break;
case 6:
case 1:
case NO_ACTION:
case CANCEL_ACTION:
SetKecleonBrosState(16);
break;
}
@@ -631,14 +641,14 @@ static void sub_80198E8(void)
if (sub_80144A4(&menuAction) == 0) {
switch (menuAction) {
case 5:
case YES_ACTION:
AddToTeamMoney(sKecleonBrosWork1->itemSellPrice);
ShiftItemsDownFrom(sKecleonBrosWork1->soldItemInventoryIndex);
PlaySound(332);
SetKecleonBrosState(25);
break;
case 6:
case 1:
case NO_ACTION:
case CANCEL_ACTION:
SetKecleonBrosState(24);
break;
}
@@ -653,7 +663,7 @@ static void sub_8019944(void)
if (sub_80144A4(&menuAction) == 0) {
switch (menuAction) {
case 5:
case YES_ACTION:
for (slotIndex = 0; slotIndex < INVENTORY_SIZE; slotIndex++) {
item = &gTeamInventoryRef->teamItems[slotIndex];
@@ -666,8 +676,8 @@ static void sub_8019944(void)
PlaySound(0x14c);
SetKecleonBrosState(32);
break;
case 1:
case 6:
case CANCEL_ACTION:
case NO_ACTION:
SetKecleonBrosState(KECLEON_STORE_MAIN_MENU);
break;
}
@@ -685,7 +695,7 @@ static void sub_80199CC(void)
menuAction = sub_801A2A8(TRUE);
switch (menuAction) {
case 3:
case SELL_ACTION:
if (sKecleonBrosWork1->isKecleonItemShop) {
sKecleonBrosWork1->itemShopItemIndex = sub_8019FB0();
item = GetKecleonShopItem(sKecleonBrosWork1->itemShopItemIndex);
@@ -700,7 +710,7 @@ static void sub_80199CC(void)
sKecleonBrosWork1->itemSellPrice = GetStackBuyPrice(&sKecleonBrosWork1->soldItem);
SetKecleonBrosState(20);
break;
case 4:
case SELL_ALL_ACTION:
if (sKecleonBrosWork1->isKecleonItemShop) {
sKecleonBrosWork1->itemShopItemIndex = sub_8019FB0();
item = GetKecleonShopItem(sKecleonBrosWork1->itemShopItemIndex);
@@ -715,7 +725,7 @@ static void sub_80199CC(void)
sKecleonBrosWork1->itemSellPrice = GetStackBuyPrice(&sKecleonBrosWork1->soldItem);
SetKecleonBrosState(21);
break;
case 2:
case BUY_ACTION:
if (sKecleonBrosWork1->isKecleonItemShop)
sub_801A010();
else
@@ -723,7 +733,7 @@ static void sub_80199CC(void)
SetKecleonBrosState(KECLEON_STORE_MAIN_MENU);
break;
case 1:
case CANCEL_ACTION:
sub_801AD34(0);
DrawTeamMoneyBox(1);
break;
@@ -774,7 +784,7 @@ static void sub_8019BBC(void)
sKecleonBrosWork1->menuAction3 = menuAction;
switch (menuAction) {
case 2:
case BUY_ACTION:
if (gTeamInventoryRef->teamMoney == 0)
SetKecleonBrosState(KECLEON_STORE_NO_MONEY);
else if (sKecleonBrosWork1->itemSellPrice > gTeamInventoryRef->teamMoney)
@@ -782,10 +792,10 @@ static void sub_8019BBC(void)
else
SetKecleonBrosState(22);
break;
case 7:
case INFO_ACTION:
SetKecleonBrosState(21);
break;
case 1:
case CANCEL_ACTION:
SetKecleonBrosState(19);
break;
}
@@ -802,7 +812,7 @@ static void sub_8019C78(void)
sKecleonBrosWork1->menuAction2 = menuAction;
switch (menuAction) {
case 3:
case SELL_ACTION:
sub_8099690(0);
if (!CanSellItem(sKecleonBrosWork1->soldItem.id))
@@ -812,11 +822,11 @@ static void sub_8019C78(void)
else
SetKecleonBrosState(30);
break;
case 7:
case INFO_ACTION:
sub_8099690(0);
SetKecleonBrosState(29);
break;
case 1:
case CANCEL_ACTION:
SetKecleonBrosState(27);
break;
}
@@ -899,4 +909,4 @@ static void sub_8019E04(bool32 a0)
else
sKecleonBrosWork1->unkE0 = 6;
}
}
}

View File

@@ -337,16 +337,16 @@ void CreateRescueDescription(unkStruct_802C39C *param_1)
xxx_call_draw_string(10, y, gRewardText, param_1->unk0[0], 0);
switch (param_1->rewardType) {
case 0:
case MONEY:
sprintfStatic(buf_1, gMissionRewardText[param_1->rewardType], param_1->unk30);
xxx_call_draw_string(68, y, buf_1, param_1->unk0[0], 0);
break;
case 1:
case MONEY_EXTRA:
sprintfStatic(buf_1, gMissionRewardText[param_1->rewardType], param_1->unk30);
xxx_call_draw_string(68, y, buf_1, param_1->unk0[0], 0);
break;
case 2: // Item
case 3: // Item + ?
case ITEM: // Item
case ITEM_EXTRA: // Item + ?
BufferItemName(gUnknown_202DE58, param_1->rewardItem, NULL);
sprintfStatic(buf_1, gMissionRewardText[param_1->rewardType], gUnknown_202DE58);
xxx_call_draw_string(68, y, buf_1, param_1->unk0[0], 0);
@@ -448,4 +448,4 @@ const u8 *GetPokemonMailHeadline(u8 index)
const u8 *GetPokemonMailText(u8 index)
{
return sPokemonMail[index].text;
}
}

View File

@@ -59,6 +59,12 @@ const UnkTextStruct2 gUnknown_80E03F4 = {
const u8 gUnknown_80E040C[] = "Send";
enum MenuActions {
CANCEL_ACTION = 1,
SEND_ACTION,
INFO_ACTION
};
u32 sub_802EF48(void)
{
gUnknown_203B30C = MemoryAlloc(sizeof(struct unkStruct_203B30C), 8);
@@ -163,13 +169,13 @@ void sub_802F108(void)
s32 loopMax = 0;
gUnknown_203B30C->unkB0[loopMax].text = gUnknown_80E040C;
gUnknown_203B30C->unkB0[loopMax].menuAction = 2;
gUnknown_203B30C->unkB0[loopMax].menuAction = SEND_ACTION;
loopMax += 1;
gUnknown_203B30C->unkB0[loopMax].text = gCommonInfo[0];
gUnknown_203B30C->unkB0[loopMax].menuAction = 3;
gUnknown_203B30C->unkB0[loopMax].menuAction = INFO_ACTION;
loopMax += 1;
gUnknown_203B30C->unkB0[loopMax].text = NULL;
gUnknown_203B30C->unkB0[loopMax].menuAction = 1;
gUnknown_203B30C->unkB0[loopMax].menuAction = CANCEL_ACTION;
}
void sub_802F148(void)
@@ -203,14 +209,14 @@ void sub_802F184(void)
switch(menuAction)
{
case 2:
case SEND_ACTION:
sub_802CF14();
sub_802EFEC(4);
break;
case 3:
case INFO_ACTION:
sub_802EFEC(3);
break;
case 1:
case CANCEL_ACTION:
sub_802EFEC(1);
break;
}

View File

@@ -213,7 +213,7 @@ void sub_803092C(void)
local.clientSpecies = mail->clientSpecies;
local.targetSpecies = mail->clientSpecies;
local.targetItem = ITEM_NOTHING;
local.rewardType = 5;
local.rewardType = MONEY1;
switch(mail->mailType)
{
@@ -223,8 +223,8 @@ void sub_803092C(void)
case WONDER_MAIL_TYPE_THANK_YOU:
local.unk43 = 4;
break;
case 1:
case 2:
case WONDER_MAIL_TYPE_SOS:
case WONDER_MAIL_TYPE_SOS_1:
local.unk43 = 1;
break;
default:
@@ -261,21 +261,21 @@ s32 sub_8030A74(void)
}
}
break;
case 1:
case WONDER_MAIL_TYPE_SOS:
for (index = 0; index < 0x20; index++)
{
unkStruct_203B480 *p = gUnknown_203B480 + index;
if (p->mailType == 1) {
if (p->mailType == WONDER_MAIL_TYPE_SOS) {
gUnknown_203B320->unk0[count] = index;
count++;
}
}
break;
case 2:
case WONDER_MAIL_TYPE_SOS_1:
for (index = 0; index < 0x20; index++)
{
unkStruct_203B480 *p = gUnknown_203B480 + index;
if (p->mailType == 2) {
if (p->mailType == WONDER_MAIL_TYPE_SOS_1) {
gUnknown_203B320->unk0[count] = index;
count++;
}
@@ -347,18 +347,18 @@ bool8 HasNoWonderMailType(u32 wonderMailType)
}
}
break;
case 1:
case WONDER_MAIL_TYPE_SOS:
for (index = 0; index < 0x20; index++)
{
if (gUnknown_203B480[index].mailType == 1) {
if (gUnknown_203B480[index].mailType == WONDER_MAIL_TYPE_SOS) {
return FALSE;
}
}
break;
case 2:
case WONDER_MAIL_TYPE_SOS_1:
for (index = 0; index < 0x20; index++)
{
if (gUnknown_203B480[index].mailType == 2) {
if (gUnknown_203B480[index].mailType == WONDER_MAIL_TYPE_SOS_1) {
return FALSE;
}
}

View File

@@ -128,10 +128,10 @@ void sub_8030E48(void)
stack.targetSpecies = mail->clientSpecies;
stack.targetItem = ITEM_NOTHING;
if (mail->item.id == ITEM_NOTHING) {
stack.rewardType = 5;
stack.rewardType = MONEY1;
}
else {
stack.rewardType = 2;
stack.rewardType = ITEM;
stack.rewardItem = mail->item.id;
}
switch(mail->mailType)

View File

@@ -96,6 +96,20 @@ 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
};
bool8 sub_8030F58(u32 wonderMailType)
{
OpenedFile *file;
@@ -131,7 +145,7 @@ bool8 sub_8030F58(u32 wonderMailType)
gUnknown_203B328->state = 5;
}
else {
gUnknown_203B328->state = 0;
gUnknown_203B328->state = INIT_STATE;
sub_80306A8(wonderMailType,0,0,8);
}
return TRUE;
@@ -141,14 +155,14 @@ s32 sub_8031050(void)
{
switch(gUnknown_203B328->state)
{
case 0:
case INIT_STATE:
sub_8031300();
break;
case 1:
sub_803136C();
break;
case 2:
case 3:
case DELETE_SINGLE_MAIL_STATE:
case DELETE_ALL_MAIL_STATE:
sub_80313D8(gUnknown_203B328->state);
break;
case 4:
@@ -183,7 +197,7 @@ void sub_80310FC(void)
sub_8006518(gUnknown_203B328->unkA8);
switch(gUnknown_203B328->state)
{
case 0:
case INIT_STATE:
gUnknown_203B328->unkA8[1] = gUnknown_80E0990;
gUnknown_203B328->unkA8[2] = gUnknown_80E0990;
gUnknown_203B328->unkA8[3] = gUnknown_80E0990;
@@ -194,8 +208,8 @@ void sub_80310FC(void)
gUnknown_203B328->unkA8[3] = gUnknown_80E0990;
sub_8012CAC(&gUnknown_203B328->unkA8[1], gUnknown_80E0968);
break;
case 2:
case 3:
case DELETE_SINGLE_MAIL_STATE:
case DELETE_ALL_MAIL_STATE:
gUnknown_203B328->unkA8[2] = gUnknown_80E09C0;
sub_8012CAC(&gUnknown_203B328->unkA8[2], gUnknown_80E0948);
break;
@@ -220,15 +234,15 @@ void sub_8031258(void)
{
switch(gUnknown_203B328->state)
{
case 0:
case INIT_STATE:
sub_8030810(1);
break;
case 1:
sub_803092C();
sub_8012D60(&gUnknown_203B328->unk8, gUnknown_80E0968, 0, 0, 4, 1);
break;
case 2:
case 3:
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);
@@ -266,26 +280,26 @@ void sub_8031300(void)
void sub_803136C(void)
{
s32 local_c;
s32 menuAction;
local_c = 0;
menuAction = 0;
sub_8030768(0);
if (sub_8012FD8(&gUnknown_203B328->unk8) == '\0') {
sub_8013114(&gUnknown_203B328->unk8,&local_c);
sub_8013114(&gUnknown_203B328->unk8,&menuAction);
}
switch(local_c)
switch(menuAction)
{
case 1:
case CANCEL_ACTION:
sub_80310E4(0);
break;
case 6:
sub_80310E4(3);
break;
case 4:
case DELETE_ACTION:
sub_80310E4(2);
break;
case 5:
case INFO_ACTION:
sub_80310E4(4);
break;
@@ -295,29 +309,29 @@ void sub_803136C(void)
void sub_80313D8(u32 state)
{
s32 index;
s32 local_10;
s32 menuAction;
unkStruct_203B480 *unused;
local_10 = 0;
menuAction = 0;
sub_8030768(0);
sub_8012FD8(&gUnknown_203B328->unk8);
if (sub_8012FD8(&gUnknown_203B328->unk58) == 0) {
sub_8013114(&gUnknown_203B328->unk58,&local_10);
sub_8013114(&gUnknown_203B328->unk58,&menuAction);
}
switch(local_10)
switch(menuAction)
{
case 1:
case 3:
case CANCEL_ACTION:
case NO_ACTION:
sub_80310E4(0);
break;
case 2:
case YES_ACTION:
switch(state)
{
case 2:
case DELETE_SINGLE_MAIL_STATE:
DeleteMailAtIndex(gUnknown_203B328->mailIndex);
break;
case 3:
case DELETE_ALL_MAIL_STATE:
for(index = 0; index < 0x20; index++)
{
unused = &gUnknown_203B480[index];
@@ -327,7 +341,7 @@ void sub_80313D8(u32 state)
}
break;
}
if ((gUnknown_203B328->wonderMailType == 2) || (gUnknown_203B328->wonderMailType == WONDER_MAIL_TYPE_AOK)) {
if ((gUnknown_203B328->wonderMailType == WONDER_MAIL_TYPE_SOS_1) || (gUnknown_203B328->wonderMailType == WONDER_MAIL_TYPE_AOK)) {
if (HasNoWonderMailType(gUnknown_203B328->wonderMailType)) {
sub_80310E4(5);
}