through Cb_MainPSS
This commit is contained in:
+304
-1262
File diff suppressed because it is too large
Load Diff
@@ -4,6 +4,71 @@
|
||||
#include "pokemon_storage_system.h"
|
||||
#include "mon_markings.h"
|
||||
|
||||
enum
|
||||
{
|
||||
BOX_OPTION_WITHDRAW,
|
||||
BOX_OPTION_DEPOSIT,
|
||||
BOX_OPTION_MOVE_MONS,
|
||||
BOX_OPTION_MOVE_ITEMS,
|
||||
BOX_OPTION_EXIT,
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
PC_TEXT_EXIT_BOX,
|
||||
PC_TEXT_WHAT_YOU_DO,
|
||||
PC_TEXT_PICK_A_THEME,
|
||||
PC_TEXT_PICK_A_WALLPAPER,
|
||||
PC_TEXT_IS_SELECTED,
|
||||
PC_TEXT_JUMP_TO_WHICH_BOX,
|
||||
PC_TEXT_DEPOSIT_IN_WHICH_BOX,
|
||||
PC_TEXT_WAS_DEPOSITED,
|
||||
PC_TEXT_BOX_IS_FULL,
|
||||
PC_TEXT_RELEASE_POKE,
|
||||
PC_TEXT_WAS_RELEASED,
|
||||
PC_TEXT_BYE_BYE,
|
||||
PC_TEXT_MARK_POKE,
|
||||
PC_TEXT_LAST_POKE,
|
||||
PC_TEXT_PARTY_FULL,
|
||||
PC_TEXT_HOLDING_POKE,
|
||||
PC_TEXT_WHICH_ONE_WILL_TAKE,
|
||||
PC_TEXT_CANT_RELEASE_EGG,
|
||||
PC_TEXT_CONTINUE_BOX,
|
||||
PC_TEXT_CAME_BACK,
|
||||
PC_TEXT_WORRIED,
|
||||
PC_TEXT_SURPRISE,
|
||||
PC_TEXT_PLEASE_REMOVE_MAIL,
|
||||
PC_TEXT_IS_SELECTED2,
|
||||
PC_TEXT_GIVE_TO_MON,
|
||||
PC_TEXT_PLACED_IN_BAG,
|
||||
PC_TEXT_BAG_FULL,
|
||||
PC_TEXT_PUT_IN_BAG,
|
||||
PC_TEXT_ITEM_IS_HELD,
|
||||
PC_TEXT_CHANGED_TO_ITEM,
|
||||
PC_TEXT_CANT_STORE_MAIL,
|
||||
};
|
||||
|
||||
#define TAG_PAL_WAVEFORM 0xDACA
|
||||
#define TAG_PAL_DAC8 0xDAC8
|
||||
#define TAG_PAL_DAC6 0xDAC6
|
||||
#define TAG_PAL_DACE 0xDACE
|
||||
#define TAG_PAL_DAC7 0xDAC7
|
||||
#define TAG_PAL_DAC9 0xDAC9
|
||||
#define TAG_PAL_DAC0 0xDAC0
|
||||
#define TAG_PAL_DACB 0xDACB
|
||||
|
||||
#define TAG_TILE_WAVEFORM 0x5
|
||||
#define TAG_TILE_10 0x10
|
||||
#define TAG_TILE_2 0x2
|
||||
#define TAG_TILE_D 0xD
|
||||
#define TAG_TILE_A 0xA
|
||||
#define TAG_TILE_3 0x3
|
||||
#define TAG_TILE_4 0x4
|
||||
#define TAG_TILE_12 0x12
|
||||
#define TAG_TILE_7 0x7
|
||||
#define TAG_TILE_0 0x0
|
||||
#define TAG_TILE_1 0x1
|
||||
|
||||
struct UnkPSSStruct_2002370
|
||||
{
|
||||
struct Sprite *unk_0000;
|
||||
@@ -114,69 +179,70 @@ struct PokemonStorageSystemData
|
||||
u8 field_A63;
|
||||
u8 field_A64;
|
||||
s8 field_A65;
|
||||
u8 *wallpaperTiles;
|
||||
struct Sprite *movingMonSprite;
|
||||
struct Sprite *partySprites[PARTY_SIZE];
|
||||
struct Sprite *boxMonsSprites[IN_BOX_COUNT];
|
||||
struct Sprite **field_B00;
|
||||
struct Sprite **field_B04;
|
||||
u16 field_B08[40];
|
||||
u16 field_B58[40];
|
||||
u16 boxSpecies[IN_BOX_COUNT];
|
||||
u32 boxPersonalities[IN_BOX_COUNT];
|
||||
u8 field_C5C;
|
||||
u8 field_C5D;
|
||||
u8 field_C5E;
|
||||
u16 field_C60;
|
||||
s16 field_C62;
|
||||
s16 field_C64;
|
||||
u16 field_C66;
|
||||
u8 field_C68;
|
||||
s8 field_C69;
|
||||
u8 field_C6A;
|
||||
u8 field_C6B;
|
||||
struct WindowTemplate menuWindow;
|
||||
struct StorageMenu menuItems[7];
|
||||
u8 menuItemsCount;
|
||||
u8 menuWidth;
|
||||
u8 field_CAE;
|
||||
u16 field_CB0;
|
||||
struct Sprite *field_CB4;
|
||||
struct Sprite *field_CB8;
|
||||
s32 field_CBC;
|
||||
s32 field_CC0;
|
||||
u32 field_CC4;
|
||||
u32 field_CC8;
|
||||
s16 field_CCC;
|
||||
s16 field_CCE;
|
||||
u16 field_CD0;
|
||||
s8 field_CD2;
|
||||
s8 field_CD3;
|
||||
u8 field_CD4;
|
||||
u8 field_CD5;
|
||||
u8 field_CD6;
|
||||
u8 field_CD7;
|
||||
u8 field_CD8[2];
|
||||
const u32 *cursorMonPalette;
|
||||
u32 cursorMonPersonality;
|
||||
u16 cursorMonSpecies;
|
||||
u16 cursorMonItem;
|
||||
u16 field_CE8;
|
||||
bool8 setMosaic;
|
||||
u8 cursorMonMarkings;
|
||||
u8 cursorMonLevel;
|
||||
bool8 cursorMonIsEgg;
|
||||
u8 cursorMonNick[POKEMON_NAME_LENGTH + 1];
|
||||
u8 cursorMonNickText[36];
|
||||
u8 cursorMonSpeciesName[36];
|
||||
u8 cursorMonGenderLvlText[36];
|
||||
u8 cursorMonItemName[36];
|
||||
bool8 (*monPlaceChangeFunc)(void);
|
||||
u8 monPlaceChangeState;
|
||||
u8 field_D91;
|
||||
struct Sprite *field_D94;
|
||||
struct Sprite *field_D98[2];
|
||||
struct PokemonMarkMenu field_DA4;
|
||||
// u8 *wallpaperTiles; // used only in Emerald for Walda
|
||||
/* 0a68 */ struct Sprite *movingMonSprite;
|
||||
/* 0a6c */ struct Sprite *partySprites[PARTY_SIZE];
|
||||
/* 0a84 */ struct Sprite *boxMonsSprites[IN_BOX_COUNT];
|
||||
/* 0afc */ struct Sprite **field_B00;
|
||||
/* 0b00 */ struct Sprite **field_B04;
|
||||
/* 0b04 */ u16 field_B08[40];
|
||||
/* 0b54 */ u16 field_B58[40];
|
||||
/* 0ba4 */ u16 boxSpecies[IN_BOX_COUNT];
|
||||
/* 0be0 */ u32 boxPersonalities[IN_BOX_COUNT];
|
||||
/* 0c58 */ u8 field_C5C;
|
||||
/* 0c59 */ u8 field_C5D;
|
||||
/* 0c5a */ u8 field_C5E;
|
||||
/* 0c5c */ u16 field_C60;
|
||||
/* 0c5e */ s16 field_C62;
|
||||
/* 0c60 */ s16 field_C64;
|
||||
/* 0c62 */ u16 field_C66;
|
||||
/* 0c64 */ u8 field_C68;
|
||||
/* 0c65 */ s8 field_C69;
|
||||
/* 0c66 */ u8 field_C6A;
|
||||
/* 0c67 */ u8 field_C6B;
|
||||
/* 0c68 */ struct WindowTemplate menuWindow;
|
||||
/* 0c70 */ struct StorageMenu menuItems[7];
|
||||
/* 0ca8 */ u8 menuItemsCount;
|
||||
/* 0ca9 */ u8 menuWidth;
|
||||
/* 0caa */ u8 field_CAE;
|
||||
/* 0cac */ u16 field_CB0;
|
||||
/* 0cb0 */ struct Sprite *field_CB4;
|
||||
/* 0cb4 */ struct Sprite *field_CB8;
|
||||
/* 0cb8 */ s32 field_CBC;
|
||||
/* 0cbc */ s32 field_CC0;
|
||||
/* 0cc0 */ u32 field_CC4;
|
||||
/* 0cc4 */ u32 field_CC8;
|
||||
/* 0cc8 */ s16 field_CCC;
|
||||
/* 0cca */ s16 field_CCE;
|
||||
/* 0ccc */ u16 field_CD0;
|
||||
/* 0cce */ s8 field_CD2;
|
||||
/* 0ccf */ s8 field_CD3;
|
||||
/* 0cd0 */ u8 field_CD4;
|
||||
/* 0cd1 */ u8 field_CD5;
|
||||
/* 0cd2 */ u8 field_CD6;
|
||||
/* 0cd3 */ u8 field_CD7;
|
||||
/* 0cd4 */ u8 field_CD8[2];
|
||||
/* 0cd8 */ const u32 *cursorMonPalette;
|
||||
/* 0cdc */ u32 cursorMonPersonality;
|
||||
/* 0ce0 */ u16 cursorMonSpecies;
|
||||
/* 0ce2 */ u16 cursorMonItem;
|
||||
/* 0ce4 */ u16 field_CE8;
|
||||
/* 0ce6 */ bool8 setMosaic;
|
||||
/* 0ce7 */ u8 cursorMonMarkings;
|
||||
/* 0ce8 */ u8 cursorMonLevel;
|
||||
/* 0ce9 */ bool8 cursorMonIsEgg;
|
||||
/* 0cea */ u8 cursorMonNick[POKEMON_NAME_LENGTH + 1];
|
||||
/* 0cf5 */ u8 cursorMonNickText[36];
|
||||
/* 0d19 */ u8 cursorMonSpeciesName[36];
|
||||
/* 0d3d */ u8 cursorMonGenderLvlText[36];
|
||||
/* 0d61 */ u8 cursorMonItemName[36];
|
||||
/* 0d88 */ bool8 (*monPlaceChangeFunc)(void);
|
||||
/* 0d8c */ u8 monPlaceChangeState;
|
||||
/* 0d8d */ u8 field_D91;
|
||||
/* 0d90 */ struct Sprite *field_D94;
|
||||
/* 0d94 */ struct Sprite *field_D98[2];
|
||||
/* 0d9c */ u16 *field_DA0;
|
||||
/* 0da0 */ struct PokemonMarkMenu field_DA4;
|
||||
/* 1e58 */ struct UnkPSSStruct_2002370 field_1E5C;
|
||||
/* 20a0 */ struct Pokemon movingMon;
|
||||
/* 2104 */ struct Pokemon field_2108;
|
||||
@@ -217,7 +283,7 @@ struct PokemonStorageSystemData
|
||||
/* 42bc */ u8 field_42C4[0x800];
|
||||
/* 4abc */ u8 field_4AC4[0x1000];
|
||||
/* 5abc */ u8 field_5AC4[0x800];
|
||||
};
|
||||
}; // size=62bc
|
||||
|
||||
extern struct PokemonStorageSystemData *sPSSData;
|
||||
|
||||
|
||||
@@ -2,10 +2,14 @@
|
||||
#include "gflib.h"
|
||||
#include "box_party_pokemon_dropdown.h"
|
||||
#include "help_system.h"
|
||||
#include "mail_data.h"
|
||||
#include "new_menu_helpers.h"
|
||||
#include "pc_screen_effect.h"
|
||||
#include "pokemon_storage_system_internal.h"
|
||||
#include "task.h"
|
||||
#include "text_window.h"
|
||||
#include "constants/help_system.h"
|
||||
#include "constants/songs.h"
|
||||
|
||||
EWRAM_DATA struct PokemonStorageSystemData *sPSSData = NULL;
|
||||
EWRAM_DATA bool8 sInPartyMenu = 0;
|
||||
@@ -15,11 +19,68 @@ EWRAM_DATA u8 sWhichToReshow = 0;
|
||||
EWRAM_DATA u8 sLastUsedBox = 0;
|
||||
EWRAM_DATA u16 gUnknown_20397BA = 0;
|
||||
|
||||
void Cb_InitPSS(u8 taskId);
|
||||
void Cb_ShowPSS(u8 taskId);
|
||||
void Cb_ReshowPSS(u8 taskId);
|
||||
void Cb_MainPSS(u8 taskId);
|
||||
void Cb_ChangeScreen(u8 taskId);
|
||||
void GiveChosenBagItem(void);
|
||||
bool8 InitPSSWindows(void);
|
||||
void LoadPSSMenuGfx(void);
|
||||
void LoadWaveformSpritePalette(void);
|
||||
void SetScrollingBackground(void);
|
||||
void sub_808EFC8(void);
|
||||
void sub_808F078(void);
|
||||
void sub_808F68C(void);
|
||||
void sub_808F99C(void);
|
||||
void sub_8096BF8(void);
|
||||
void task_box_related_3(u8 taskId);
|
||||
void sub_808FB68(void);
|
||||
void sub_808FDFC(void);
|
||||
void sub_808FFAC(void);
|
||||
void sub_80913DC(u8 box);
|
||||
bool8 sub_809140C(void);
|
||||
void sub_80922C0(void);
|
||||
void sub_8092340(void);
|
||||
void sub_8092B50(void);
|
||||
void sub_8093660(void);
|
||||
void sub_80937B4(void);
|
||||
bool8 sub_8095050(void);
|
||||
void sub_8095B5C(void);
|
||||
void sub_8096BE4(struct UnkStruct_2000020 *arg0, struct UnkStruct_2000028 *arg1, u32 arg2);
|
||||
void sub_8096BF8(void);
|
||||
void Cb_DepositMenu(u8 taskId);
|
||||
void Cb_GiveMovingItemToMon(u8 taskId);
|
||||
void Cb_HandleBoxOptions(u8 taskId);
|
||||
void Cb_HidePartyPokemon(u8 taskId);
|
||||
void Cb_MoveMon(u8 taskId);
|
||||
void Cb_OnBPressed(u8 taskId);
|
||||
void Cb_OnCloseBoxPressed(u8 taskId);
|
||||
void Cb_OnSelectedMon(u8 taskId);
|
||||
void Cb_PlaceMon(u8 taskId);
|
||||
void Cb_ShiftMon(u8 taskId);
|
||||
void Cb_ShowPartyPokemon(u8 taskId);
|
||||
void Cb_SwitchSelectedItem(u8 taskId);
|
||||
void Cb_TakeItemForMoving(u8 taskId);
|
||||
void Cb_WithdrawMon(u8 taskId);
|
||||
void BoxSetMosaic(void);
|
||||
bool8 CanMovePartyMon(void);
|
||||
bool8 CanShiftMon(void);
|
||||
void ClearBottomWindow(void);
|
||||
u8 HandleInput(void);
|
||||
bool8 IsCursorOnCloseBox(void);
|
||||
bool8 IsMonBeingMoved(void);
|
||||
void PrintStorageActionText(u8 textId);
|
||||
bool8 ScrollToBox(void);
|
||||
void SetUpScrollToBox(u8 targetBox);
|
||||
void sub_808FE54(u8 a0);
|
||||
void sub_808F948(void);
|
||||
void sub_808F974(void);
|
||||
bool8 sub_80924A8(void);
|
||||
void sub_8092F54(void);
|
||||
void sub_8094D60(void);
|
||||
void sub_8094D84(void);
|
||||
void sub_80950BC(u8 a0);
|
||||
bool8 sub_80950D0(void);
|
||||
bool8 sub_809610C(void);
|
||||
|
||||
extern const u16 gUnknown_83CE6F8[];
|
||||
|
||||
@@ -55,7 +116,7 @@ void Cb2_EnterPSS(u8 boxOption)
|
||||
sPSSData->isReshowingPSS = FALSE;
|
||||
gUnknown_20397BA = 0;
|
||||
sPSSData->state = 0;
|
||||
sPSSData->taskId = CreateTask(task_box_related_3, 3);
|
||||
sPSSData->taskId = CreateTask(Cb_InitPSS, 3);
|
||||
SetHelpContext(HELPCONTEXT_BILLS_PC);
|
||||
sLastUsedBox = StorageGetCurrentBox();
|
||||
SetMainCallback2(Cb2_PSS);
|
||||
@@ -73,7 +134,7 @@ void Cb2_ReturnToPSS(void)
|
||||
sPSSData->boxOption = sCurrentBoxOption;
|
||||
sPSSData->isReshowingPSS = TRUE;
|
||||
sPSSData->state = 0;
|
||||
sPSSData->taskId = CreateTask(task_box_related_3, 3);
|
||||
sPSSData->taskId = CreateTask(Cb_InitPSS, 3);
|
||||
SetHelpContext(HELPCONTEXT_BILLS_PC);
|
||||
SetMainCallback2(Cb2_PSS);
|
||||
}
|
||||
@@ -107,3 +168,432 @@ void sub_808CF10(void)
|
||||
SetBoxPartyPokemonDropdownMap2Pos(0, 1, 0);
|
||||
sPSSData->unk_02C7 = 0;
|
||||
}
|
||||
|
||||
void sub_808CF94(void)
|
||||
{
|
||||
sub_8092B50();
|
||||
sInPartyMenu = sPSSData->boxOption == BOX_OPTION_DEPOSIT;
|
||||
gUnknown_20397B6 = 0;
|
||||
}
|
||||
|
||||
void sub_808CFC4(void)
|
||||
{
|
||||
if (sPSSData->boxOption == BOX_OPTION_MOVE_ITEMS)
|
||||
{
|
||||
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL);
|
||||
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(7, 11));
|
||||
}
|
||||
SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_BG_ALL_ON | DISPCNT_OBJ_1D_MAP);
|
||||
}
|
||||
|
||||
void SetPSSCallback(TaskFunc newFunc)
|
||||
{
|
||||
gTasks[sPSSData->taskId].func = newFunc;
|
||||
sPSSData->state = 0;
|
||||
}
|
||||
|
||||
void Cb_InitPSS(u8 taskId)
|
||||
{
|
||||
switch (sPSSData->state)
|
||||
{
|
||||
case 0:
|
||||
SetVBlankCallback(NULL);
|
||||
SetGpuReg(REG_OFFSET_DISPCNT, 0);
|
||||
sub_808CF10();
|
||||
if (sPSSData->isReshowingPSS)
|
||||
{
|
||||
switch (sWhichToReshow)
|
||||
{
|
||||
case 1:
|
||||
sub_8093660();
|
||||
break;
|
||||
case 0:
|
||||
sub_80937B4();
|
||||
break;
|
||||
case 2:
|
||||
GiveChosenBagItem();
|
||||
break;
|
||||
}
|
||||
}
|
||||
LoadPSSMenuGfx();
|
||||
LoadWaveformSpritePalette();
|
||||
break;
|
||||
case 1:
|
||||
if (!InitPSSWindows())
|
||||
{
|
||||
SetPSSCallback(Cb_ChangeScreen);
|
||||
return;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
PutWindowTilemap(0);
|
||||
ClearWindowTilemap(1);
|
||||
CpuFill32(0, (void *)VRAM, 0x200);
|
||||
TextWindow_SetUserSelectedFrame(1, 0xB, 0xE0);
|
||||
break;
|
||||
case 3:
|
||||
ResetAllBgCoords();
|
||||
if (!sPSSData->isReshowingPSS)
|
||||
sub_808CF94();
|
||||
break;
|
||||
case 4:
|
||||
sub_808FFAC();
|
||||
if (!sPSSData->isReshowingPSS)
|
||||
sub_80922C0();
|
||||
else
|
||||
sub_8092340();
|
||||
break;
|
||||
case 5:
|
||||
if (!sub_8095050())
|
||||
{
|
||||
SetPSSCallback(Cb_ChangeScreen);
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
SetScrollingBackground();
|
||||
sub_808FB68();
|
||||
}
|
||||
break;
|
||||
case 6:
|
||||
sub_808F078();
|
||||
break;
|
||||
case 7:
|
||||
sub_808F68C();
|
||||
break;
|
||||
case 8:
|
||||
sub_80913DC(StorageGetCurrentBox());
|
||||
break;
|
||||
case 9:
|
||||
if (sub_809140C())
|
||||
return;
|
||||
|
||||
if (sPSSData->boxOption != BOX_OPTION_MOVE_ITEMS)
|
||||
{
|
||||
sPSSData->field_DA4.baseTileTag = TAG_TILE_D;
|
||||
sPSSData->field_DA4.basePaletteTag = TAG_PAL_DACE;
|
||||
SetMonMarkingsMenuPointer(&sPSSData->field_DA4);
|
||||
LoadMonMarkingsFrameGfx();
|
||||
}
|
||||
else
|
||||
{
|
||||
sub_8095B5C();
|
||||
sub_808FDFC();
|
||||
}
|
||||
break;
|
||||
case 10:
|
||||
sub_808CFC4();
|
||||
if (!sPSSData->isReshowingPSS)
|
||||
{
|
||||
BlendPalettes(0xFFFFFFFF, 0x10, RGB_BLACK);
|
||||
SetPSSCallback(Cb_ShowPSS);
|
||||
}
|
||||
else
|
||||
{
|
||||
BlendPalettes(0xFFFFFFFF, 0x10, RGB_BLACK);
|
||||
SetPSSCallback(Cb_ReshowPSS);
|
||||
}
|
||||
SetVBlankCallback(VblankCb_PSS);
|
||||
return;
|
||||
default:
|
||||
return;
|
||||
}
|
||||
|
||||
sPSSData->state++;
|
||||
}
|
||||
|
||||
void Cb_ShowPSS(u8 taskId)
|
||||
{
|
||||
switch (sPSSData->state)
|
||||
{
|
||||
case 0:
|
||||
PlaySE(SE_PC_LOGIN);
|
||||
sub_80A0A48(0x14, 0, 1);
|
||||
sPSSData->state++;
|
||||
break;
|
||||
case 1:
|
||||
if (!sub_80A0A98())
|
||||
SetPSSCallback(Cb_MainPSS);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void Cb_ReshowPSS(u8 taskId)
|
||||
{
|
||||
switch (sPSSData->state)
|
||||
{
|
||||
case 0:
|
||||
BeginNormalPaletteFade(0xFFFFFFFF, -1, 0x10, 0, RGB_BLACK);
|
||||
sPSSData->state++;
|
||||
break;
|
||||
case 1:
|
||||
if (!UpdatePaletteFade())
|
||||
{
|
||||
SetPSSCallback(Cb_MainPSS);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void Cb_MainPSS(u8 taskId)
|
||||
{
|
||||
switch (sPSSData->state)
|
||||
{
|
||||
case 0:
|
||||
switch (HandleInput())
|
||||
{
|
||||
case 1:
|
||||
PlaySE(SE_SELECT);
|
||||
sPSSData->state = 1;
|
||||
break;
|
||||
case 5:
|
||||
if (sPSSData->boxOption != BOX_OPTION_MOVE_MONS && sPSSData->boxOption != BOX_OPTION_MOVE_ITEMS)
|
||||
{
|
||||
PrintStorageActionText(PC_TEXT_WHICH_ONE_WILL_TAKE);
|
||||
sPSSData->state = 3;
|
||||
}
|
||||
else
|
||||
{
|
||||
sub_8092B50();
|
||||
SetPSSCallback(Cb_ShowPartyPokemon);
|
||||
}
|
||||
break;
|
||||
case 6:
|
||||
if (sPSSData->boxOption == BOX_OPTION_MOVE_MONS)
|
||||
{
|
||||
if (IsMonBeingMoved() && ItemIsMail(sPSSData->cursorMonItem))
|
||||
sPSSData->state = 5;
|
||||
else
|
||||
SetPSSCallback(Cb_HidePartyPokemon);
|
||||
}
|
||||
else if (sPSSData->boxOption == BOX_OPTION_MOVE_ITEMS)
|
||||
{
|
||||
SetPSSCallback(Cb_HidePartyPokemon);
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
SetPSSCallback(Cb_OnCloseBoxPressed);
|
||||
break;
|
||||
case 19:
|
||||
SetPSSCallback(Cb_OnBPressed);
|
||||
break;
|
||||
case 7:
|
||||
PlaySE(SE_SELECT);
|
||||
SetPSSCallback(Cb_HandleBoxOptions);
|
||||
break;
|
||||
case 8:
|
||||
SetPSSCallback(Cb_OnSelectedMon);
|
||||
break;
|
||||
case 9:
|
||||
PlaySE(SE_SELECT);
|
||||
sPSSData->newCurrBoxId = StorageGetCurrentBox() + 1;
|
||||
if (sPSSData->newCurrBoxId >= TOTAL_BOXES_COUNT)
|
||||
sPSSData->newCurrBoxId = 0;
|
||||
if (sPSSData->boxOption != BOX_OPTION_MOVE_ITEMS)
|
||||
{
|
||||
SetUpScrollToBox(sPSSData->newCurrBoxId);
|
||||
sPSSData->state = 2;
|
||||
}
|
||||
else
|
||||
{
|
||||
sub_8094D60();
|
||||
sPSSData->state = 10;
|
||||
}
|
||||
break;
|
||||
case 10:
|
||||
PlaySE(SE_SELECT);
|
||||
sPSSData->newCurrBoxId = StorageGetCurrentBox() - 1;
|
||||
if (sPSSData->newCurrBoxId < 0)
|
||||
sPSSData->newCurrBoxId = TOTAL_BOXES_COUNT - 1;
|
||||
if (sPSSData->boxOption != BOX_OPTION_MOVE_ITEMS)
|
||||
{
|
||||
SetUpScrollToBox(sPSSData->newCurrBoxId);
|
||||
sPSSData->state = 2;
|
||||
}
|
||||
else
|
||||
{
|
||||
sub_8094D60();
|
||||
sPSSData->state = 10;
|
||||
}
|
||||
break;
|
||||
case 11:
|
||||
if (!CanMovePartyMon())
|
||||
{
|
||||
if (ItemIsMail(sPSSData->cursorMonItem))
|
||||
{
|
||||
sPSSData->state = 5;
|
||||
}
|
||||
else
|
||||
{
|
||||
PlaySE(SE_SELECT);
|
||||
SetPSSCallback(Cb_DepositMenu);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
sPSSData->state = 4;
|
||||
}
|
||||
break;
|
||||
case 13:
|
||||
if (CanMovePartyMon())
|
||||
{
|
||||
sPSSData->state = 4;
|
||||
}
|
||||
else
|
||||
{
|
||||
PlaySE(SE_SELECT);
|
||||
SetPSSCallback(Cb_MoveMon);
|
||||
}
|
||||
break;
|
||||
case 14:
|
||||
if (!CanShiftMon())
|
||||
{
|
||||
sPSSData->state = 4;
|
||||
}
|
||||
else
|
||||
{
|
||||
PlaySE(SE_SELECT);
|
||||
SetPSSCallback(Cb_ShiftMon);
|
||||
}
|
||||
break;
|
||||
case 12:
|
||||
PlaySE(SE_SELECT);
|
||||
SetPSSCallback(Cb_WithdrawMon);
|
||||
break;
|
||||
case 15:
|
||||
PlaySE(SE_SELECT);
|
||||
SetPSSCallback(Cb_PlaceMon);
|
||||
break;
|
||||
case 16:
|
||||
PlaySE(SE_SELECT);
|
||||
SetPSSCallback(Cb_TakeItemForMoving);
|
||||
break;
|
||||
case 17:
|
||||
PlaySE(SE_SELECT);
|
||||
SetPSSCallback(Cb_GiveMovingItemToMon);
|
||||
break;
|
||||
case 18:
|
||||
PlaySE(SE_SELECT);
|
||||
SetPSSCallback(Cb_SwitchSelectedItem);
|
||||
break;
|
||||
case 20:
|
||||
PlaySE(SE_SELECT);
|
||||
sub_80950BC(0);
|
||||
sPSSData->state = 7;
|
||||
break;
|
||||
case 22:
|
||||
sub_80950BC(1);
|
||||
sPSSData->state = 8;
|
||||
break;
|
||||
case 21:
|
||||
PlaySE(SE_SELECT);
|
||||
sub_80950BC(2);
|
||||
sPSSData->state = 9;
|
||||
break;
|
||||
case 23:
|
||||
sub_80950BC(3);
|
||||
sPSSData->state = 7;
|
||||
break;
|
||||
case 25:
|
||||
PlaySE(SE_SELECT);
|
||||
sub_80950BC(4);
|
||||
sPSSData->state = 9;
|
||||
break;
|
||||
case 26:
|
||||
PlaySE(SE_SELECT);
|
||||
sub_808FE54(3);
|
||||
sub_80950BC(5);
|
||||
sPSSData->state = 7;
|
||||
break;
|
||||
case 24:
|
||||
PlaySE(SE_HAZURE);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
if (!sub_80924A8())
|
||||
{
|
||||
if (IsCursorOnCloseBox())
|
||||
sub_808F948();
|
||||
else
|
||||
sub_808F974();
|
||||
|
||||
if (sPSSData->setMosaic)
|
||||
BoxSetMosaic();
|
||||
sPSSData->state = 0;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (!ScrollToBox())
|
||||
{
|
||||
SetCurrentBox(sPSSData->newCurrBoxId);
|
||||
if (!sInPartyMenu && !IsMonBeingMoved())
|
||||
{
|
||||
sub_8092F54();
|
||||
BoxSetMosaic();
|
||||
}
|
||||
|
||||
if (sPSSData->boxOption == BOX_OPTION_MOVE_ITEMS)
|
||||
{
|
||||
sub_8094D84();
|
||||
sPSSData->state = 11;
|
||||
}
|
||||
else
|
||||
{
|
||||
sPSSData->state = 0;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if (JOY_NEW(A_BUTTON | B_BUTTON | DPAD_ANY))
|
||||
{
|
||||
ClearBottomWindow();
|
||||
sPSSData->state = 0;
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
PlaySE(SE_HAZURE);
|
||||
PrintStorageActionText(PC_TEXT_LAST_POKE);
|
||||
sPSSData->state = 6;
|
||||
break;
|
||||
case 5:
|
||||
PlaySE(SE_HAZURE);
|
||||
PrintStorageActionText(PC_TEXT_PLEASE_REMOVE_MAIL);
|
||||
sPSSData->state = 6;
|
||||
break;
|
||||
case 6:
|
||||
if (gMain.newKeys & (A_BUTTON | B_BUTTON | DPAD_ANY))
|
||||
{
|
||||
ClearBottomWindow();
|
||||
SetPSSCallback(Cb_MainPSS);
|
||||
}
|
||||
break;
|
||||
case 7:
|
||||
if (!sub_80950D0())
|
||||
sPSSData->state = 0;
|
||||
break;
|
||||
case 8:
|
||||
if (!sub_80950D0())
|
||||
SetPSSCallback(Cb_MoveMon);
|
||||
break;
|
||||
case 9:
|
||||
if (!sub_80950D0())
|
||||
{
|
||||
if (sPSSData->setMosaic)
|
||||
BoxSetMosaic();
|
||||
sPSSData->state = 0;
|
||||
}
|
||||
break;
|
||||
case 10:
|
||||
if (!sub_809610C())
|
||||
{
|
||||
SetUpScrollToBox(sPSSData->newCurrBoxId);
|
||||
sPSSData->state = 2;
|
||||
}
|
||||
break;
|
||||
case 11:
|
||||
if (!sub_809610C())
|
||||
sPSSData->state = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user