mirror of
https://github.com/pret/pmd-red.git
synced 2026-08-22 16:54:36 -05:00
more menu
This commit is contained in:
@@ -98,7 +98,7 @@ sub_803B100:
|
||||
asrs r1, 16
|
||||
ldr r0, _0803B11C
|
||||
ldr r0, [r0]
|
||||
bl sub_8013878
|
||||
bl MoveMenuToEntryId
|
||||
bl sub_803B204
|
||||
bl sub_803B284
|
||||
pop {r0}
|
||||
@@ -258,7 +258,7 @@ sub_803B204:
|
||||
movs r1, 0x1A
|
||||
ldrsh r0, [r0, r1]
|
||||
movs r1, 0xC
|
||||
bl sub_80095E4
|
||||
bl CalcEntriesTotalHeight
|
||||
adds r0, 0x2
|
||||
lsls r0, 16
|
||||
ldr r2, [r4]
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#include "constants/item.h"
|
||||
#include "structs/menu.h"
|
||||
#include "structs/str_text.h"
|
||||
#include "structs/struct_sub80095e4.h"
|
||||
#include "text_3.h"
|
||||
|
||||
// size: 0x554
|
||||
struct unkStruct_203B244
|
||||
@@ -12,7 +12,7 @@ struct unkStruct_203B244
|
||||
u32 unk0;
|
||||
/* 0x4 */ u8 itemIDs[NUMBER_OF_ITEM_IDS];
|
||||
u32 unkF4[NUMBER_OF_ITEM_IDS];
|
||||
/* 0x4B4 */ struct_Sub80095E4_2 unk4B4;
|
||||
/* 0x4B4 */ MenuHeaderWindow unk4B4;
|
||||
};
|
||||
|
||||
bool8 sub_801C8C4(s32, s32, DungeonPos *, u32);
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
#include "structs/menu.h"
|
||||
#include "structs/str_text.h"
|
||||
#include "structs/struct_sub80095e4.h"
|
||||
#include "text_3.h"
|
||||
|
||||
// size: 0x3FC
|
||||
typedef struct unkStruct_3001B5C
|
||||
@@ -14,7 +14,7 @@ typedef struct unkStruct_3001B5C
|
||||
s16 unkC[420];
|
||||
u8 unk354;
|
||||
u8 fill355[0x35C - 0x355];
|
||||
/* 0x35C */ struct_Sub80095E4_2 s35C;
|
||||
/* 0x35C */ MenuHeaderWindow s35C;
|
||||
} unkStruct_3001B5C;
|
||||
|
||||
bool8 sub_8023144(s32, s32 index, DungeonPos *sub, u32);
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
#define DEBUG_INPUT_A_PRESS 3
|
||||
|
||||
bool8 DebugFieldMapWindow_Init(void);
|
||||
void sub_801DA58(s16);
|
||||
void DebugFieldMapWindow_MoveMenuTo(s16);
|
||||
u32 DebugFieldMapWindow_GetInput(void);
|
||||
s16 DebugFieldMapWindow_GetCurrentIndex(void);
|
||||
void DebugFieldMapWindow_Free(void);
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
#ifndef GUARD_FRIEND_LIST_H
|
||||
#define GUARD_FRIEND_LIST_H
|
||||
|
||||
#include "structs/struct_sub80095e4.h"
|
||||
#include "structs/str_position.h"
|
||||
#include "structs/menu.h"
|
||||
|
||||
struct unkStruct_3001B60
|
||||
{
|
||||
@@ -17,7 +18,7 @@ struct unkStruct_3001B60
|
||||
u8 unk18;
|
||||
s16 unk1A[NUM_MONSTERS];
|
||||
u8 unk354;
|
||||
struct_Sub80095E4_2 unk358;
|
||||
MenuHeaderWindow unk358;
|
||||
};
|
||||
|
||||
bool8 FriendList_Init(u32 r5, u32 windowId, DungeonPos *pos, u32 r10);
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
#include "structs/menu.h"
|
||||
#include "pokemon.h"
|
||||
#include "structs/str_text.h"
|
||||
#include "structs/struct_sub80095e4.h"
|
||||
#include "text_3.h"
|
||||
|
||||
// size: 0xC4
|
||||
struct IQSkillListMenu
|
||||
@@ -14,7 +14,7 @@ struct IQSkillListMenu
|
||||
/* 0x4 */ PokemonStruct1 *pokeStruct;
|
||||
/* 0x8 */ u8 iqSkills[NUM_IQ_SKILLS];
|
||||
/* 0x20 */ s32 numIQSkills;
|
||||
/* 0x24 */ struct_Sub80095E4_2 s24;
|
||||
/* 0x24 */ MenuHeaderWindow s24;
|
||||
};
|
||||
|
||||
bool8 HasNoAvailIQSkills(s16 species);
|
||||
|
||||
@@ -4,13 +4,13 @@
|
||||
#include "constants/dungeon.h"
|
||||
#include "structs/menu.h"
|
||||
#include "structs/str_text.h"
|
||||
#include "structs/struct_sub80095e4.h"
|
||||
#include "text_3.h"
|
||||
|
||||
// size: 0xD0
|
||||
typedef struct MakuhitaDojoWork2
|
||||
{
|
||||
s16 unk0[NUM_DUNGEON_MAZE];
|
||||
/* 0x30 */ struct_Sub80095E4_2 s30;
|
||||
/* 0x30 */ MenuHeaderWindow s30;
|
||||
} MakuhitaDojoWork2;
|
||||
|
||||
bool8 MakuhitaDojo_ReturnFalse(void);
|
||||
|
||||
@@ -29,11 +29,10 @@ void MoveMenuCursorUp(MenuInputStruct *param_1);
|
||||
void MoveMenuCursorUpWrapAround(MenuInputStruct *param_1, u8 param_2);
|
||||
void sub_8013780(MenuInputStruct *param_1, s32 param_2);
|
||||
void sub_80137B0(MenuInputStruct *param_1, s32 param_2);
|
||||
void sub_80137F8(MenuInputStruct *param_1, u32 param_2);
|
||||
s32 GetMenuEntryYCoord(MenuInputStruct *menu, s32 entryId);
|
||||
void CreateMenuOnWindow(MenuInputStruct *menuInput, s32 totalCount, u32 perPageCount, s32 windowId);
|
||||
void CreateMenuOnWindow2(MenuInputStruct *menuInput, s32 totalCount, u32 perPageCount, s32 windowId);
|
||||
void sub_8013878(MenuInputStruct *param_1, s32 param_2);
|
||||
void CreateMenuOnWindowTwoLinesEntry(MenuInputStruct *menuInput, s32 totalCount, u32 perPageCount, s32 windowId);
|
||||
void MoveMenuToEntryId(MenuInputStruct *param_1, s32 param_2);
|
||||
bool8 MenuCursorUpdate(MenuInputStruct *param_1, bool8 param_2);
|
||||
bool8 MenuCursorUpdateOnlyLeftRight(MenuInputStruct *param_1);
|
||||
void MenuUpdatePagesData(MenuInputStruct * param_1);
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#include "constants/personality_test.h"
|
||||
#include "structs/menu.h"
|
||||
#include "structs/str_text.h"
|
||||
#include "structs/struct_sub80095e4.h"
|
||||
#include "text_3.h"
|
||||
|
||||
// Size: 0xB8
|
||||
struct PersonalityStruct_203B404
|
||||
@@ -12,7 +12,7 @@ struct PersonalityStruct_203B404
|
||||
/* 0x0 */ s16 StarterID;
|
||||
/* 0x2 */ s16 PartnerArray[NUM_PARTNERS];
|
||||
u8 unk16;
|
||||
/* 0x18 */ struct_Sub80095E4_2 s18;
|
||||
/* 0x18 */ MenuHeaderWindow s18;
|
||||
};
|
||||
|
||||
void CreatePartnerSelectionMenu(s16 starterID);
|
||||
|
||||
@@ -4,13 +4,13 @@
|
||||
#include "constants/wonder_mail.h"
|
||||
#include "structs/menu.h"
|
||||
#include "structs/str_text.h"
|
||||
#include "structs/struct_sub80095e4.h"
|
||||
#include "text_3.h"
|
||||
|
||||
// size: 0xD4;
|
||||
struct unkStruct_203B2CC
|
||||
{
|
||||
/* 0x0 */ u8 receivedNewsletters[NUM_POKEMON_NEWS];
|
||||
/* 0x38 */ struct_Sub80095E4 s38;
|
||||
/* 0x38 */ MenuWindow s38;
|
||||
};
|
||||
|
||||
u8 GetPokemonNewsIndex(void);
|
||||
|
||||
@@ -2,13 +2,13 @@
|
||||
#define GUARD_POKEMON_NEWS3_H
|
||||
|
||||
#include "structs/menu.h"
|
||||
#include "structs/struct_sub80095e4.h"
|
||||
#include "text_3.h"
|
||||
|
||||
// size: 0xA4
|
||||
struct unkStruct_203B2D8
|
||||
{
|
||||
u8 unk0[4];
|
||||
/* 0x4 */ struct_Sub80095E4_2 unk4;
|
||||
/* 0x4 */ MenuHeaderWindow unk4;
|
||||
};
|
||||
|
||||
void CreateMailMenu(void);
|
||||
|
||||
@@ -17,6 +17,9 @@ typedef struct TouchScreenMenuInput
|
||||
/* R=0x8 | B=0x6 */ DungeonPos unk8;
|
||||
} TouchScreenMenuInput;
|
||||
|
||||
#define DEFAULT_MENU_ENTRY_HEIGHT 12
|
||||
#define TWO_LINES_MENU_ENTRY_HEIGHT 24
|
||||
|
||||
// size: R=0x34 | NDS=0x32?
|
||||
typedef struct MenuInputStruct
|
||||
{
|
||||
@@ -25,7 +28,7 @@ typedef struct MenuInputStruct
|
||||
/* 0x6 */ s16 firstEntryY;
|
||||
/* 0x8 */ DungeonPos cursorArrowPos;
|
||||
/* 0xC */ DungeonPos leftRightArrowsPos;
|
||||
/* 0x10 */ u32 unk10;
|
||||
/* 0x10 */ s32 entryHeight; // Either 12, or 24 when each entry has text on two lines.
|
||||
/* 0x14 */ DungeonPos unk14;
|
||||
/* 0x18 */ s16 menuIndex;
|
||||
/* 0x1A */ s16 currPageEntries;
|
||||
@@ -78,4 +81,68 @@ typedef struct unkStructFor8013AA0
|
||||
SpriteOAM unk28;
|
||||
} unkStructFor8013AA0;
|
||||
|
||||
// Used for creating windows with an input menu.
|
||||
// size: R=0x9C | B=?
|
||||
typedef struct MenuWindow
|
||||
{
|
||||
/* 0x0 */ MenuInputStruct input;
|
||||
/* 0x34 */ u32 menuWinId;
|
||||
/* 0x38 */ WindowTemplate *menuWindow;
|
||||
/* 0x3C */ WindowTemplates windows;
|
||||
} MenuWindow;
|
||||
|
||||
// Same as above, but has one additional WindowHeader field.
|
||||
// size: R=0xA0 | B=0x9C?
|
||||
typedef struct MenuHeaderWindow
|
||||
{
|
||||
/* 0x0 */ MenuWindow m; // short name so it's easier to write. 'm' standing for 'menu' or 'menuWindow'
|
||||
/* 0x9C */ WindowHeader header;
|
||||
} MenuHeaderWindow;
|
||||
|
||||
// These macros are used for updating menu windows, as the last page can have less entries than other pages, so the window's height needs to reflect that.
|
||||
// Note: In order to get matching ASM, this macro had to be created.
|
||||
// It's probable the code below is not exactly how it was originally written, but it generates the same asm.
|
||||
#define UPDATE_MENU_WINDOW_HEIGHT_INTERNAL(ptr, _newHeight) \
|
||||
{ \
|
||||
UNUSED s32 new10; \
|
||||
s16 newHeight; \
|
||||
s16 newHeightVal = (_newHeight); \
|
||||
UNUSED s32 dummyMatch = newHeightVal; \
|
||||
UNUSED s16 oldHeight = (ptr).windows.id[(ptr).menuWinId].height; \
|
||||
dummyMatch = 0; \
|
||||
new10 = newHeightVal + 2; \
|
||||
newHeight = newHeightVal; \
|
||||
\
|
||||
(ptr).windows.id[(ptr).menuWinId].height = newHeight; \
|
||||
(ptr).windows.id[(ptr).menuWinId].unk10 = newHeightVal + 2; \
|
||||
\
|
||||
ResetUnusedInputStruct(); \
|
||||
ShowWindows(&(ptr).windows, TRUE, TRUE); \
|
||||
}
|
||||
|
||||
#define UPDATE_MENU_WINDOW_HEIGHT(ptr) \
|
||||
{ \
|
||||
UPDATE_MENU_WINDOW_HEIGHT_INTERNAL(ptr, CalcEntriesTotalHeight((ptr).input.currPageEntries, DEFAULT_MENU_ENTRY_HEIGHT) + 2) \
|
||||
}
|
||||
|
||||
// For Windows where height is the same as entries height.
|
||||
#define UPDATE_MENU_WINDOW_HEIGHT_2(ptr) \
|
||||
{ \
|
||||
s32 newHeightVal = CalcEntriesTotalHeight((ptr).input.currPageEntries, DEFAULT_MENU_ENTRY_HEIGHT) + 2; \
|
||||
UNUSED s16 oldHeight = (ptr).windows.id[(ptr).menuWinId].height; \
|
||||
s16 newHeight = newHeightVal; \
|
||||
\
|
||||
(ptr).windows.id[(ptr).menuWinId].height = newHeight; \
|
||||
(ptr).windows.id[(ptr).menuWinId].unk10 = newHeight; \
|
||||
\
|
||||
ResetUnusedInputStruct(); \
|
||||
ShowWindows(&(ptr).windows, TRUE, TRUE); \
|
||||
}
|
||||
|
||||
// For menu windows with two lines entries(for example job mail)
|
||||
#define UPDATE_TWO_LINES_MENU_WINDOW_HEIGHT(ptr) \
|
||||
{ \
|
||||
UPDATE_MENU_WINDOW_HEIGHT_INTERNAL(ptr, CalcTwoLinesEntriesTotalHeight((ptr).input.currPageEntries, TWO_LINES_MENU_ENTRY_HEIGHT) + 2) \
|
||||
}
|
||||
|
||||
#endif // GUARD_MENU_H
|
||||
|
||||
@@ -1,73 +0,0 @@
|
||||
#ifndef GUARD_struct_sub80095e4_H
|
||||
#define GUARD_struct_sub80095e4_H
|
||||
|
||||
#include "structs/menu.h"
|
||||
#include "structs/str_text.h"
|
||||
|
||||
#include "text_1.h"
|
||||
#include "text_3.h"
|
||||
|
||||
// Struct related with sub_80095E4
|
||||
// size: R=0x9C | B=?
|
||||
typedef struct struct_Sub80095E4
|
||||
{
|
||||
/* 0x0 */ MenuInputStruct input;
|
||||
/* 0x34 */ u32 winId;
|
||||
/* 0x38 */ WindowTemplate *unk38;
|
||||
/* 0x3C */ WindowTemplates windows;
|
||||
} struct_Sub80095E4;
|
||||
|
||||
// Has 1 additional array
|
||||
// size: R=0xA0 | B=0x9C?
|
||||
typedef struct struct_Sub80095E4_2
|
||||
{
|
||||
/* 0x0 */ struct_Sub80095E4 s0; // s as in 'struct' ; decided to go against unk as to not have `->unk0->unk3C`
|
||||
/* 0x9C */ WindowHeader header;
|
||||
} struct_Sub80095E4_2;
|
||||
|
||||
// Note: In order to get matching ASM, this macro had to be created.
|
||||
// It's probable the code below is not exactly how it was originally written, but it generates the same asm.
|
||||
#define SUB_8009_MATCH(ptr, _a0) \
|
||||
{ \
|
||||
UNUSED s32 new10; \
|
||||
s16 newE; \
|
||||
s16 a0 = (_a0); \
|
||||
UNUSED s32 a0_ = a0; \
|
||||
UNUSED s16 oldE = (ptr).windows.id[(ptr).winId].height; \
|
||||
a0_ = 0; \
|
||||
new10 = a0 + 2; \
|
||||
newE = a0; \
|
||||
\
|
||||
(ptr).windows.id[(ptr).winId].height = newE; \
|
||||
(ptr).windows.id[(ptr).winId].unk10 = a0 + 2; \
|
||||
\
|
||||
ResetUnusedInputStruct(); \
|
||||
ShowWindows(&(ptr).windows, TRUE, TRUE); \
|
||||
}
|
||||
|
||||
#define SUB_80095E4_CALL(ptr) \
|
||||
{ \
|
||||
SUB_8009_MATCH(ptr, sub_80095E4((ptr).input.currPageEntries, 12) + 2) \
|
||||
}
|
||||
|
||||
// For sub_801C440 and sub_8023420 where unkE and unk10 are the same.
|
||||
#define SUB_80095E4_CALL_2(ptr) \
|
||||
{ \
|
||||
s32 a0 = sub_80095E4((ptr).input.currPageEntries, 12) + 2; \
|
||||
UNUSED s16 oldE = (ptr).windows.id[(ptr).winId].height; \
|
||||
s16 newE = a0; \
|
||||
\
|
||||
(ptr).windows.id[(ptr).winId].height = newE; \
|
||||
(ptr).windows.id[(ptr).winId].unk10 = newE; \
|
||||
\
|
||||
ResetUnusedInputStruct(); \
|
||||
ShowWindows(&(ptr).windows, TRUE, TRUE); \
|
||||
}
|
||||
|
||||
// sub_802BF30 and sub_802C328 use a different function call, and 24 instead of 12
|
||||
#define SUB_8009614_CALL(ptr) \
|
||||
{ \
|
||||
SUB_8009_MATCH(ptr, sub_8009614((ptr).input.currPageEntries, 24) + 2) \
|
||||
}
|
||||
|
||||
#endif // GUARD_struct_sub80095e4_H
|
||||
@@ -34,8 +34,8 @@ void sub_8009388(void);
|
||||
void sub_8009408(s32 from, s32 to);
|
||||
void sub_8009524(s32 windowId);
|
||||
void sub_80095CC(s32 a0, s32 a1);
|
||||
s32 sub_80095E4(s32 a0, s32 a1);
|
||||
s32 sub_8009614(s32 a0, s32 a1);
|
||||
s32 CalcEntriesTotalHeight(s32 entriesCount, s32 entryHeight);
|
||||
s32 CalcTwoLinesEntriesTotalHeight(s32 entriesCount, s32 entryHeight);
|
||||
const u8 *xxx_handle_format_global(const u8 *str, UnkDrawStringStruct *unkStrPtr);
|
||||
|
||||
#endif // GUARD_TEXT_3_H
|
||||
|
||||
@@ -4,13 +4,13 @@
|
||||
#include "constants/friend_area.h"
|
||||
#include "structs/menu.h"
|
||||
#include "structs/str_text.h"
|
||||
#include "structs/struct_sub80095e4.h"
|
||||
#include "text_3.h"
|
||||
|
||||
typedef struct WigglytuffShop1Work
|
||||
{
|
||||
/* 0x0 */ u8 friendAreas[NUM_FRIEND_AREAS];
|
||||
/* 0x3C */ u32 mode;
|
||||
struct_Sub80095E4_2 s40;
|
||||
MenuHeaderWindow s40;
|
||||
|
||||
} WigglytuffShop1Work;
|
||||
|
||||
|
||||
@@ -3,13 +3,13 @@
|
||||
|
||||
#include "constants/mailbox.h"
|
||||
#include "structs/menu.h"
|
||||
#include "structs/struct_sub80095e4.h"
|
||||
#include "text_3.h"
|
||||
|
||||
// size: 0xA8
|
||||
struct unkStruct_203B2E0
|
||||
{
|
||||
u8 pelipperBoardSlots[MAX_ACCEPTED_JOBS];
|
||||
/* 0x8 */ struct_Sub80095E4_2 unk8;
|
||||
/* 0x8 */ MenuHeaderWindow unk8;
|
||||
};
|
||||
|
||||
void DrawPelipperBoardJobMenu(void);
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#include "global.h"
|
||||
#include "globaldata.h"
|
||||
#include "constants/input.h"
|
||||
#include "structs/struct_sub80095e4.h"
|
||||
#include "text_3.h"
|
||||
#include "adventure_log.h"
|
||||
#include "music_util.h"
|
||||
#include "code_8097670.h"
|
||||
@@ -12,7 +12,7 @@
|
||||
#include "text_1.h"
|
||||
#include "text_2.h"
|
||||
|
||||
static EWRAM_INIT struct_Sub80095E4_2 *sAdventureLog = { NULL };
|
||||
static EWRAM_INIT MenuHeaderWindow *sAdventureLog = { NULL };
|
||||
|
||||
#include "data/adventure_log.h"
|
||||
|
||||
@@ -22,15 +22,15 @@ static void sub_8032084();
|
||||
bool8 CreateAdventureLogScreen(u32 kind)
|
||||
{
|
||||
sAdventureLog = MemoryAlloc(sizeof(*sAdventureLog), 8);
|
||||
sAdventureLog->s0.winId = kind;
|
||||
sAdventureLog->s0.unk38 = &sAdventureLog->s0.windows.id[kind];
|
||||
RestoreSavedWindows(&sAdventureLog->s0.windows);
|
||||
sAdventureLog->s0.windows.id[sAdventureLog->s0.winId] = sUnknown_80E2008;
|
||||
sAdventureLog->s0.unk38->header = &sAdventureLog->header;
|
||||
sAdventureLog->m.menuWinId = kind;
|
||||
sAdventureLog->m.menuWindow = &sAdventureLog->m.windows.id[kind];
|
||||
RestoreSavedWindows(&sAdventureLog->m.windows);
|
||||
sAdventureLog->m.windows.id[sAdventureLog->m.menuWinId] = sUnknown_80E2008;
|
||||
sAdventureLog->m.menuWindow->header = &sAdventureLog->header;
|
||||
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&sAdventureLog->s0.windows, TRUE, TRUE);
|
||||
CreateMenuOnWindow(&sAdventureLog->s0.input, 0x20, 8, kind);
|
||||
ShowWindows(&sAdventureLog->m.windows, TRUE, TRUE);
|
||||
CreateMenuOnWindow(&sAdventureLog->m.input, 0x20, 8, kind);
|
||||
sub_8032084();
|
||||
DisplayAdventureLog();
|
||||
return TRUE;
|
||||
@@ -39,11 +39,11 @@ bool8 CreateAdventureLogScreen(u32 kind)
|
||||
u32 HandleAdventureLogInput(bool8 a0)
|
||||
{
|
||||
if (!a0) {
|
||||
sub_8013660(&sAdventureLog->s0.input);
|
||||
sub_8013660(&sAdventureLog->m.input);
|
||||
return 0;
|
||||
}
|
||||
|
||||
switch (GetKeyPress(&sAdventureLog->s0.input)) {
|
||||
switch (GetKeyPress(&sAdventureLog->m.input)) {
|
||||
case INPUT_B_BUTTON:
|
||||
PlayMenuSoundEffect(1);
|
||||
return 2;
|
||||
@@ -51,7 +51,7 @@ u32 HandleAdventureLogInput(bool8 a0)
|
||||
PlayMenuSoundEffect(0);
|
||||
return 3;
|
||||
default:
|
||||
if (MenuCursorUpdateOnlyLeftRight(&sAdventureLog->s0.input)) {
|
||||
if (MenuCursorUpdateOnlyLeftRight(&sAdventureLog->m.input)) {
|
||||
sub_8032084();
|
||||
DisplayAdventureLog();
|
||||
return 1;
|
||||
@@ -63,9 +63,9 @@ u32 HandleAdventureLogInput(bool8 a0)
|
||||
void CleanAdventureLogScreen(void)
|
||||
{
|
||||
if (sAdventureLog != NULL) {
|
||||
sAdventureLog->s0.windows.id[sAdventureLog->s0.winId] = sUnknown_80E1FF0;
|
||||
sAdventureLog->m.windows.id[sAdventureLog->m.menuWinId] = sUnknown_80E1FF0;
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&sAdventureLog->s0.windows, TRUE, TRUE);
|
||||
ShowWindows(&sAdventureLog->m.windows, TRUE, TRUE);
|
||||
MemoryFree(sAdventureLog);
|
||||
sAdventureLog = NULL;
|
||||
}
|
||||
@@ -73,12 +73,12 @@ void CleanAdventureLogScreen(void)
|
||||
|
||||
static void sub_8032084(void)
|
||||
{
|
||||
sAdventureLog->header.count = sAdventureLog->s0.input.pagesCount;
|
||||
sAdventureLog->header.currId = sAdventureLog->s0.input.currPage;
|
||||
sAdventureLog->header.count = sAdventureLog->m.input.pagesCount;
|
||||
sAdventureLog->header.currId = sAdventureLog->m.input.currPage;
|
||||
sAdventureLog->header.width = 11;
|
||||
sAdventureLog->header.f3 = 0;
|
||||
|
||||
SUB_80095E4_CALL(sAdventureLog->s0);
|
||||
UPDATE_MENU_WINDOW_HEIGHT(sAdventureLog->m);
|
||||
}
|
||||
|
||||
static void DisplayAdventureLog(void)
|
||||
@@ -88,50 +88,50 @@ static void DisplayAdventureLog(void)
|
||||
s32 r6; // r6
|
||||
u8 aa;
|
||||
|
||||
CallPrepareTextbox_8008C54(sAdventureLog->s0.winId);
|
||||
sub_80073B8(sAdventureLog->s0.winId);
|
||||
r4 = sAdventureLog->s0.input.currPage * 8;
|
||||
CallPrepareTextbox_8008C54(sAdventureLog->m.menuWinId);
|
||||
sub_80073B8(sAdventureLog->m.menuWinId);
|
||||
r4 = sAdventureLog->m.input.currPage * 8;
|
||||
r6 = r4;
|
||||
r6 += 10;
|
||||
PrintStringOnWindow(r6, 0, sAdventureLogText, sAdventureLog->s0.winId, 0);
|
||||
PrintStringOnWindow(r6, 0, sAdventureLogText, sAdventureLog->m.menuWinId, 0);
|
||||
|
||||
r4 += 4;
|
||||
r6 = r4 + (sAdventureLog->header.width * 8);
|
||||
sub_8012BC4(r6, 0, sAdventureLog->s0.input.currPage + 1, 1, 7, sAdventureLog->s0.winId);
|
||||
sub_8012BC4(r6, 0, sAdventureLog->m.input.currPage + 1, 1, 7, sAdventureLog->m.menuWinId);
|
||||
|
||||
for (i = 0; i < sAdventureLog->s0.input.currPageEntries; i++) {
|
||||
aa = (sAdventureLog->s0.input.currPage * sAdventureLog->s0.input.entriesPerPage) + i;
|
||||
for (i = 0; i < sAdventureLog->m.input.currPageEntries; i++) {
|
||||
aa = (sAdventureLog->m.input.currPage * sAdventureLog->m.input.entriesPerPage) + i;
|
||||
|
||||
if (GetAdventureAchievement(aa)) {
|
||||
switch (aa) {
|
||||
case AA_NUM_FLOORS_EXPLORED: {
|
||||
s32 v1 = GetAdventureFloorsExplored();
|
||||
gFormatArgs[0] = (s16)v1;
|
||||
PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&sAdventureLog->s0.input, i), GetAdventureLogLine(aa), sAdventureLog->s0.winId, 0);
|
||||
PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&sAdventureLog->m.input, i), GetAdventureLogLine(aa), sAdventureLog->m.menuWinId, 0);
|
||||
break;
|
||||
}
|
||||
case AA_NUM_MOVES_LEARNED: {
|
||||
s32 v2 = GetAdventureMovesLearned();
|
||||
gFormatArgs[0] = (s16)v2;
|
||||
PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&sAdventureLog->s0.input, i), GetAdventureLogLine(aa), sAdventureLog->s0.winId, 0);
|
||||
PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&sAdventureLog->m.input, i), GetAdventureLogLine(aa), sAdventureLog->m.menuWinId, 0);
|
||||
break;
|
||||
}
|
||||
case AA_NUM_THIEVING_SUCCESSES: {
|
||||
s32 v3 = GetThievingSuccesses();
|
||||
gFormatArgs[0] = (s16)v3;
|
||||
PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&sAdventureLog->s0.input, i), GetAdventureLogLine(aa), sAdventureLog->s0.winId, 0);
|
||||
PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&sAdventureLog->m.input, i), GetAdventureLogLine(aa), sAdventureLog->m.menuWinId, 0);
|
||||
break;
|
||||
}
|
||||
case AA_NUM_FRIEND_RESCUE_SUCCESSES: {
|
||||
s32 v4 = GetFriendRescueSuccesses();
|
||||
gFormatArgs[0] = v4;
|
||||
PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&sAdventureLog->s0.input, i), GetAdventureLogLine(aa), sAdventureLog->s0.winId, 0);
|
||||
PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&sAdventureLog->m.input, i), GetAdventureLogLine(aa), sAdventureLog->m.menuWinId, 0);
|
||||
break;
|
||||
}
|
||||
case AA_NUM_POKEMON_EVOLVED: {
|
||||
s32 v5 = GetAdventureNumEvolved();
|
||||
gFormatArgs[0] = v5;
|
||||
PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&sAdventureLog->s0.input, i), GetAdventureLogLine(aa), sAdventureLog->s0.winId, 0);
|
||||
PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&sAdventureLog->m.input, i), GetAdventureLogLine(aa), sAdventureLog->m.menuWinId, 0);
|
||||
break;
|
||||
}
|
||||
case AA_NUM_POKEMON_JOINED: {
|
||||
@@ -140,14 +140,14 @@ static void DisplayAdventureLog(void)
|
||||
// fallthrough
|
||||
}
|
||||
default: {
|
||||
PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&sAdventureLog->s0.input, i), GetAdventureLogLine(aa), sAdventureLog->s0.winId, 0);
|
||||
PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&sAdventureLog->m.input, i), GetAdventureLogLine(aa), sAdventureLog->m.menuWinId, 0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
PrintStringOnWindow(8, GetMenuEntryYCoord(&sAdventureLog->s0.input, i), sPlaceholder, sAdventureLog->s0.winId, 0);
|
||||
PrintStringOnWindow(8, GetMenuEntryYCoord(&sAdventureLog->m.input, i), sPlaceholder, sAdventureLog->m.menuWinId, 0);
|
||||
}
|
||||
|
||||
sub_80073E0(sAdventureLog->s0.winId);
|
||||
sub_80073E0(sAdventureLog->m.menuWinId);
|
||||
}
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
#include "menu_input.h"
|
||||
#include "text_1.h"
|
||||
#include "text_2.h"
|
||||
#include "text_3.h"
|
||||
|
||||
EWRAM_INIT static struct unkStruct_203B244 *sUnknown_203B244 = { NULL };
|
||||
EWRAM_INIT static u32 sUnknown_203B248 = {0};
|
||||
@@ -29,24 +30,24 @@ bool8 sub_801C8C4(s32 a0, s32 a1, DungeonPos *a2, u32 a3)
|
||||
|
||||
sUnknown_203B244->unk0 = a0;
|
||||
sub_801CF94();
|
||||
sUnknown_203B244->unk4B4.s0.winId = a1;
|
||||
sUnknown_203B244->unk4B4.s0.unk38 = &sUnknown_203B244->unk4B4.s0.windows.id[a1];
|
||||
RestoreSavedWindows(&sUnknown_203B244->unk4B4.s0.windows);
|
||||
sUnknown_203B244->unk4B4.s0.windows.id[sUnknown_203B244->unk4B4.s0.winId] = sUnknown_80DBE54;
|
||||
sUnknown_203B244->unk4B4.s0.unk38->header = &sUnknown_203B244->unk4B4.header;
|
||||
sUnknown_203B244->unk4B4.m.menuWinId = a1;
|
||||
sUnknown_203B244->unk4B4.m.menuWindow = &sUnknown_203B244->unk4B4.m.windows.id[a1];
|
||||
RestoreSavedWindows(&sUnknown_203B244->unk4B4.m.windows);
|
||||
sUnknown_203B244->unk4B4.m.windows.id[sUnknown_203B244->unk4B4.m.menuWinId] = sUnknown_80DBE54;
|
||||
sUnknown_203B244->unk4B4.m.menuWindow->header = &sUnknown_203B244->unk4B4.header;
|
||||
|
||||
if (a2 != NULL)
|
||||
sUnknown_203B244->unk4B4.s0.windows.id[sUnknown_203B244->unk4B4.s0.winId].pos = *a2;
|
||||
sUnknown_203B244->unk4B4.m.windows.id[sUnknown_203B244->unk4B4.m.menuWinId].pos = *a2;
|
||||
|
||||
sub_8012D08(sUnknown_203B244->unk4B4.s0.unk38, a3);
|
||||
sub_8012D08(sUnknown_203B244->unk4B4.m.menuWindow, a3);
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&sUnknown_203B244->unk4B4.s0.windows, TRUE, TRUE);
|
||||
CreateMenuOnWindow(&sUnknown_203B244->unk4B4.s0.input, sub_801CE58(), a3, a1);
|
||||
ShowWindows(&sUnknown_203B244->unk4B4.m.windows, TRUE, TRUE);
|
||||
CreateMenuOnWindow(&sUnknown_203B244->unk4B4.m.input, sub_801CE58(), a3, a1);
|
||||
|
||||
if (sUnknown_203B248 == sUnknown_203B244->unk0) {
|
||||
sUnknown_203B244->unk4B4.s0.input.menuIndex = sUnknown_203B24C;
|
||||
sUnknown_203B244->unk4B4.s0.input.currPage = sUnknown_203B24E;
|
||||
MenuUpdatePagesData(&sUnknown_203B244->unk4B4.s0.input);
|
||||
sUnknown_203B244->unk4B4.m.input.menuIndex = sUnknown_203B24C;
|
||||
sUnknown_203B244->unk4B4.m.input.currPage = sUnknown_203B24E;
|
||||
MenuUpdatePagesData(&sUnknown_203B244->unk4B4.m.input);
|
||||
}
|
||||
|
||||
sub_801CC38();
|
||||
@@ -61,11 +62,11 @@ u32 sub_801CA08(bool8 a0)
|
||||
u32 flag;
|
||||
|
||||
if (a0 == FALSE) {
|
||||
sub_8013660(&sUnknown_203B244->unk4B4.s0.input);
|
||||
sub_8013660(&sUnknown_203B244->unk4B4.m.input);
|
||||
return 0;
|
||||
}
|
||||
|
||||
switch (GetKeyPress(&sUnknown_203B244->unk4B4.s0.input)) {
|
||||
switch (GetKeyPress(&sUnknown_203B244->unk4B4.m.input)) {
|
||||
case 2:
|
||||
PlayMenuSoundEffect(1);
|
||||
return 2;
|
||||
@@ -83,7 +84,7 @@ u32 sub_801CA08(bool8 a0)
|
||||
if (temp != 0 || (flag = (INVENTORY_SIZE > GetNumberOfFilledInventorySlots() + sub_801CFB8())) || flag) {
|
||||
PlayMenuSoundEffect(6);
|
||||
sUnknown_203B244->unkF4[index] = sUnknown_203B244->unkF4[index] ^ 1;
|
||||
MenuCursorUpdate(&sUnknown_203B244->unk4B4.s0.input,0);
|
||||
MenuCursorUpdate(&sUnknown_203B244->unk4B4.m.input,0);
|
||||
sub_801CCD8();
|
||||
return 1;
|
||||
}
|
||||
@@ -95,7 +96,7 @@ u32 sub_801CA08(bool8 a0)
|
||||
return 4;
|
||||
default:
|
||||
_0801CAF2:
|
||||
if (MenuCursorUpdate(&sUnknown_203B244->unk4B4.s0.input, 1)) {
|
||||
if (MenuCursorUpdate(&sUnknown_203B244->unk4B4.m.input, 1)) {
|
||||
sub_801CC38();
|
||||
sub_801CCD8();
|
||||
return 1;
|
||||
@@ -106,31 +107,31 @@ u32 sub_801CA08(bool8 a0)
|
||||
|
||||
u8 sub_801CB24(void)
|
||||
{
|
||||
return sUnknown_203B244->itemIDs[GET_CURRENT_MENU_ENTRY(sUnknown_203B244->unk4B4.s0.input)];
|
||||
return sUnknown_203B244->itemIDs[GET_CURRENT_MENU_ENTRY(sUnknown_203B244->unk4B4.m.input)];
|
||||
}
|
||||
|
||||
void sub_801CB5C(bool8 a0)
|
||||
{
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&sUnknown_203B244->unk4B4.s0.windows, FALSE, FALSE);
|
||||
sUnknown_203B244->unk4B4.s0.input.totalEntriesCount = sub_801CE58();
|
||||
MenuUpdatePagesData(&sUnknown_203B244->unk4B4.s0.input);
|
||||
ShowWindows(&sUnknown_203B244->unk4B4.m.windows, FALSE, FALSE);
|
||||
sUnknown_203B244->unk4B4.m.input.totalEntriesCount = sub_801CE58();
|
||||
MenuUpdatePagesData(&sUnknown_203B244->unk4B4.m.input);
|
||||
sub_801CC38();
|
||||
sub_801CCD8();
|
||||
|
||||
if (a0)
|
||||
AddMenuCursorSprite(&sUnknown_203B244->unk4B4.s0.input);
|
||||
AddMenuCursorSprite(&sUnknown_203B244->unk4B4.m.input);
|
||||
}
|
||||
|
||||
void sub_801CBB8(void)
|
||||
{
|
||||
if (sUnknown_203B244 != NULL) {
|
||||
sUnknown_203B248 = sUnknown_203B244->unk0;
|
||||
sUnknown_203B24C = sUnknown_203B244->unk4B4.s0.input.menuIndex;
|
||||
sUnknown_203B24E = sUnknown_203B244->unk4B4.s0.input.currPage;
|
||||
sUnknown_203B244->unk4B4.s0.windows.id[sUnknown_203B244->unk4B4.s0.winId] = sUnknown_80DBE3C;
|
||||
sUnknown_203B24C = sUnknown_203B244->unk4B4.m.input.menuIndex;
|
||||
sUnknown_203B24E = sUnknown_203B244->unk4B4.m.input.currPage;
|
||||
sUnknown_203B244->unk4B4.m.windows.id[sUnknown_203B244->unk4B4.m.menuWinId] = sUnknown_80DBE3C;
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&sUnknown_203B244->unk4B4.s0.windows, TRUE, TRUE);
|
||||
ShowWindows(&sUnknown_203B244->unk4B4.m.windows, TRUE, TRUE);
|
||||
MemoryFree(sUnknown_203B244);
|
||||
sUnknown_203B244 = NULL;
|
||||
}
|
||||
@@ -143,7 +144,7 @@ static void sub_801CC38(void)
|
||||
sUnknown_203B244->unk4B4.header.width = 12;
|
||||
sUnknown_203B244->unk4B4.header.f3 = 0;
|
||||
|
||||
SUB_80095E4_CALL(sUnknown_203B244->unk4B4.s0);
|
||||
UPDATE_MENU_WINDOW_HEIGHT(sUnknown_203B244->unk4B4.m);
|
||||
}
|
||||
|
||||
void sub_801CCD8(void)
|
||||
@@ -154,24 +155,24 @@ void sub_801CCD8(void)
|
||||
s32 index;
|
||||
u8 buffer[80];
|
||||
|
||||
CallPrepareTextbox_8008C54(sUnknown_203B244->unk4B4.s0.winId);
|
||||
sub_80073B8(sUnknown_203B244->unk4B4.s0.winId);
|
||||
PrintStringOnWindow(10, 0, sStorage, sUnknown_203B244->unk4B4.s0.winId, 0);
|
||||
sub_8012BC4(sUnknown_203B244->unk4B4.header.width * 8 + 4, 0, sUnknown_203B244->unk4B4.s0.input.currPage + 1, 2, 7, sUnknown_203B244->unk4B4.s0.winId);
|
||||
CallPrepareTextbox_8008C54(sUnknown_203B244->unk4B4.m.menuWinId);
|
||||
sub_80073B8(sUnknown_203B244->unk4B4.m.menuWinId);
|
||||
PrintStringOnWindow(10, 0, sStorage, sUnknown_203B244->unk4B4.m.menuWinId, 0);
|
||||
sub_8012BC4(sUnknown_203B244->unk4B4.header.width * 8 + 4, 0, sUnknown_203B244->unk4B4.m.input.currPage + 1, 2, 7, sUnknown_203B244->unk4B4.m.menuWinId);
|
||||
|
||||
for(index = 0; index < sUnknown_203B244->unk4B4.s0.input.currPageEntries; index++) {
|
||||
itemID = sUnknown_203B244->itemIDs[(sUnknown_203B244->unk4B4.s0.input.currPage * sUnknown_203B244->unk4B4.s0.input.entriesPerPage) + index];
|
||||
for(index = 0; index < sUnknown_203B244->unk4B4.m.input.currPageEntries; index++) {
|
||||
itemID = sUnknown_203B244->itemIDs[(sUnknown_203B244->unk4B4.m.input.currPage * sUnknown_203B244->unk4B4.m.input.entriesPerPage) + index];
|
||||
BufferItemName(buffer, itemID, NULL);
|
||||
y = GetMenuEntryYCoord(&sUnknown_203B244->unk4B4.s0.input, index);
|
||||
PrintStringOnWindow(8, y, buffer, sUnknown_203B244->unk4B4.s0.winId, 0);
|
||||
y2 = GetMenuEntryYCoord(&sUnknown_203B244->unk4B4.s0.input, index);
|
||||
sub_8012BC4((sUnknown_203B244->unk4B4.s0.unk38->width * 8) - 2, y2, gTeamInventoryRef->teamStorage[itemID], 3, 5, sUnknown_203B244->unk4B4.s0.winId);
|
||||
y = GetMenuEntryYCoord(&sUnknown_203B244->unk4B4.m.input, index);
|
||||
PrintStringOnWindow(8, y, buffer, sUnknown_203B244->unk4B4.m.menuWinId, 0);
|
||||
y2 = GetMenuEntryYCoord(&sUnknown_203B244->unk4B4.m.input, index);
|
||||
sub_8012BC4((sUnknown_203B244->unk4B4.m.menuWindow->width * 8) - 2, y2, gTeamInventoryRef->teamStorage[itemID], 3, 5, sUnknown_203B244->unk4B4.m.menuWinId);
|
||||
|
||||
if (sub_801CFE0(itemID) & 1)
|
||||
sub_8007B7C(sUnknown_203B244->unk4B4.s0.winId, 8, GetMenuEntryYCoord(&sUnknown_203B244->unk4B4.s0.input, index), (sUnknown_203B244->unk4B4.s0.unk38->width - 1) * 8, 10);
|
||||
sub_8007B7C(sUnknown_203B244->unk4B4.m.menuWinId, 8, GetMenuEntryYCoord(&sUnknown_203B244->unk4B4.m.input, index), (sUnknown_203B244->unk4B4.m.menuWindow->width - 1) * 8, 10);
|
||||
}
|
||||
|
||||
sub_80073E0(sUnknown_203B244->unk4B4.s0.winId);
|
||||
sub_80073E0(sUnknown_203B244->unk4B4.m.menuWinId);
|
||||
}
|
||||
|
||||
static u32 sub_801CE58(void)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#include "global.h"
|
||||
#include "globaldata.h"
|
||||
#include "structs/struct_sub80095e4.h"
|
||||
#include "text_3.h"
|
||||
#include "code_800D090.h"
|
||||
#include "music_util.h"
|
||||
#include "input.h"
|
||||
@@ -17,7 +17,7 @@ struct unkStruct_203B274
|
||||
PokemonStruct1 *pokeStruct;
|
||||
unkStruct_808E218_arg *unk4;
|
||||
unkStruct_808E218_arg unk8;
|
||||
struct_Sub80095E4_2 s348;
|
||||
MenuHeaderWindow s348;
|
||||
};
|
||||
|
||||
EWRAM_INIT struct unkStruct_203B274 *gUnknown_203B274 = {NULL};
|
||||
@@ -53,18 +53,18 @@ bool8 sub_801F428(s16 index, s32 param_2)
|
||||
gUnknown_203B274 = MemoryAlloc(sizeof(struct unkStruct_203B274), 0x8);
|
||||
gUnknown_203B274->pokeStruct = &gRecruitedPokemonRef->pokemon[index_s32];
|
||||
gUnknown_203B274->unk4 = &gUnknown_203B274->unk8;
|
||||
gUnknown_203B274->s348.s0.winId = param_2;
|
||||
gUnknown_203B274->s348.s0.unk38 = &gUnknown_203B274->s348.s0.windows.id[gUnknown_203B274->s348.s0.winId];
|
||||
RestoreSavedWindows(&gUnknown_203B274->s348.s0.windows);
|
||||
gUnknown_203B274->s348.s0.windows.id[gUnknown_203B274->s348.s0.winId] = sUnknown_80DC2C4;
|
||||
gUnknown_203B274->s348.s0.unk38->header = &gUnknown_203B274->s348.header;
|
||||
gUnknown_203B274->s348.m.menuWinId = param_2;
|
||||
gUnknown_203B274->s348.m.menuWindow = &gUnknown_203B274->s348.m.windows.id[gUnknown_203B274->s348.m.menuWinId];
|
||||
RestoreSavedWindows(&gUnknown_203B274->s348.m.windows);
|
||||
gUnknown_203B274->s348.m.windows.id[gUnknown_203B274->s348.m.menuWinId] = sUnknown_80DC2C4;
|
||||
gUnknown_203B274->s348.m.menuWindow->header = &gUnknown_203B274->s348.header;
|
||||
gUnknown_203B274->s348.header.count = 1;
|
||||
gUnknown_203B274->s348.header.currId = 0;
|
||||
gUnknown_203B274->s348.header.width = 0xC;
|
||||
gUnknown_203B274->s348.header.f3 = 0;
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&gUnknown_203B274->s348.s0.windows, TRUE, TRUE);
|
||||
CreateMenuOnWindow(&gUnknown_203B274->s348.s0.input, sub_801F7E4(), 4, param_2);
|
||||
ShowWindows(&gUnknown_203B274->s348.m.windows, TRUE, TRUE);
|
||||
CreateMenuOnWindow(&gUnknown_203B274->s348.m.input, sub_801F7E4(), 4, param_2);
|
||||
sub_801F690();
|
||||
sub_801F700();
|
||||
return TRUE;
|
||||
@@ -73,11 +73,11 @@ bool8 sub_801F428(s16 index, s32 param_2)
|
||||
u32 sub_801F520(u8 param_1)
|
||||
{
|
||||
if (param_1 == 0) {
|
||||
sub_8013660(&gUnknown_203B274->s348.s0.input);
|
||||
sub_8013660(&gUnknown_203B274->s348.m.input);
|
||||
return 0;
|
||||
}
|
||||
else {
|
||||
switch(GetKeyPress(&gUnknown_203B274->s348.s0.input))
|
||||
switch(GetKeyPress(&gUnknown_203B274->s348.m.input))
|
||||
{
|
||||
case 2:
|
||||
PlayMenuSoundEffect(1);
|
||||
@@ -91,7 +91,7 @@ u32 sub_801F520(u8 param_1)
|
||||
default:
|
||||
break;
|
||||
}
|
||||
if (MenuCursorUpdate(&gUnknown_203B274->s348.s0.input,1) != 0) {
|
||||
if (MenuCursorUpdate(&gUnknown_203B274->s348.m.input,1) != 0) {
|
||||
sub_801F690();
|
||||
sub_801F700();
|
||||
return 1;
|
||||
@@ -104,27 +104,27 @@ u32 sub_801F520(u8 param_1)
|
||||
|
||||
u16 sub_801F5B4(void)
|
||||
{
|
||||
return gUnknown_203B274->unk4->unk0[GET_CURRENT_MENU_ENTRY(gUnknown_203B274->s348.s0.input)];
|
||||
return gUnknown_203B274->unk4->unk0[GET_CURRENT_MENU_ENTRY(gUnknown_203B274->s348.m.input)];
|
||||
}
|
||||
|
||||
void sub_801F5F0(bool8 r0)
|
||||
{
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&gUnknown_203B274->s348.s0.windows, FALSE, FALSE);
|
||||
MenuUpdatePagesData(&gUnknown_203B274->s348.s0.input);
|
||||
ShowWindows(&gUnknown_203B274->s348.m.windows, FALSE, FALSE);
|
||||
MenuUpdatePagesData(&gUnknown_203B274->s348.m.input);
|
||||
sub_801F690();
|
||||
sub_801F700();
|
||||
if(r0)
|
||||
AddMenuCursorSprite(&gUnknown_203B274->s348.s0.input);
|
||||
AddMenuCursorSprite(&gUnknown_203B274->s348.m.input);
|
||||
}
|
||||
|
||||
void sub_801F63C(void)
|
||||
{
|
||||
if(gUnknown_203B274 != NULL)
|
||||
{
|
||||
gUnknown_203B274->s348.s0.windows.id[gUnknown_203B274->s348.s0.winId] = sUnknown_80DC2AC;
|
||||
gUnknown_203B274->s348.m.windows.id[gUnknown_203B274->s348.m.menuWinId] = sUnknown_80DC2AC;
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&gUnknown_203B274->s348.s0.windows, TRUE, TRUE);
|
||||
ShowWindows(&gUnknown_203B274->s348.m.windows, TRUE, TRUE);
|
||||
MemoryFree(gUnknown_203B274);
|
||||
gUnknown_203B274 = NULL;
|
||||
}
|
||||
@@ -132,7 +132,7 @@ void sub_801F63C(void)
|
||||
|
||||
void sub_801F690(void)
|
||||
{
|
||||
SUB_80095E4_CALL(gUnknown_203B274->s348.s0);
|
||||
UPDATE_MENU_WINDOW_HEIGHT(gUnknown_203B274->s348.m);
|
||||
}
|
||||
|
||||
void sub_801F700(void)
|
||||
@@ -142,17 +142,17 @@ void sub_801F700(void)
|
||||
u8 buffer2 [48];
|
||||
u8 buffer1 [128];
|
||||
|
||||
CallPrepareTextbox_8008C54(gUnknown_203B274->s348.s0.winId);
|
||||
sub_80073B8(gUnknown_203B274->s348.s0.winId);
|
||||
sprintfStatic(buffer1,gUnknown_80DC2DC,gUnknown_203B274->s348.s0.input.currPage + 1,gUnknown_203B274->s348.s0.input.pagesCount); // Moves Page: %d/%d
|
||||
PrintStringOnWindow(0x10,0,buffer1,gUnknown_203B274->s348.s0.winId,0);
|
||||
for(index = 0; index < gUnknown_203B274->s348.s0.input.currPageEntries; index++)
|
||||
CallPrepareTextbox_8008C54(gUnknown_203B274->s348.m.menuWinId);
|
||||
sub_80073B8(gUnknown_203B274->s348.m.menuWinId);
|
||||
sprintfStatic(buffer1,gUnknown_80DC2DC,gUnknown_203B274->s348.m.input.currPage + 1,gUnknown_203B274->s348.m.input.pagesCount); // Moves Page: %d/%d
|
||||
PrintStringOnWindow(0x10,0,buffer1,gUnknown_203B274->s348.m.menuWinId,0);
|
||||
for(index = 0; index < gUnknown_203B274->s348.m.input.currPageEntries; index++)
|
||||
{
|
||||
sub_8092C84(buffer2,gUnknown_203B274->unk4->unk0[gUnknown_203B274->s348.s0.input.currPage * gUnknown_203B274->s348.s0.input.entriesPerPage + index]);
|
||||
y = GetMenuEntryYCoord(&gUnknown_203B274->s348.s0.input, index);
|
||||
PrintStringOnWindow(8,y,buffer2,gUnknown_203B274->s348.s0.winId,0);
|
||||
sub_8092C84(buffer2,gUnknown_203B274->unk4->unk0[gUnknown_203B274->s348.m.input.currPage * gUnknown_203B274->s348.m.input.entriesPerPage + index]);
|
||||
y = GetMenuEntryYCoord(&gUnknown_203B274->s348.m.input, index);
|
||||
PrintStringOnWindow(8,y,buffer2,gUnknown_203B274->s348.m.menuWinId,0);
|
||||
}
|
||||
sub_80073E0(gUnknown_203B274->s348.s0.winId);
|
||||
sub_80073E0(gUnknown_203B274->s348.m.menuWinId);
|
||||
}
|
||||
|
||||
u32 sub_801F7E4(void)
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
#include "text_1.h"
|
||||
#include "text_2.h"
|
||||
|
||||
// TODO: UNIFY WITH struct_Sub80095E4
|
||||
// TODO: UNIFY WITH MenuWindow
|
||||
struct unkStruct_203B278
|
||||
{
|
||||
/* 0x0 */ s32 state;
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
#include "pokemon_3.h"
|
||||
#include "text_1.h"
|
||||
#include "text_2.h"
|
||||
#include "text_3.h"
|
||||
|
||||
EWRAM_INIT static u32 gUnknown_203B298 = {1};
|
||||
EWRAM_INIT static u16 gUnknown_203B29C = {0};
|
||||
@@ -47,23 +48,23 @@ bool8 sub_8023144(s32 a0, s32 index, DungeonPos *sub, u32 a3)
|
||||
gUnknown_3001B5C->unk0 = param_1_u8;
|
||||
gUnknown_3001B5C->unk4 = gUnknown_203B298;
|
||||
|
||||
gUnknown_3001B5C->s35C.s0.winId = index;
|
||||
gUnknown_3001B5C->s35C.s0.unk38 = &gUnknown_3001B5C->s35C.s0.windows.id[index];
|
||||
RestoreSavedWindows(&gUnknown_3001B5C->s35C.s0.windows);
|
||||
gUnknown_3001B5C->s35C.s0.windows.id[gUnknown_3001B5C->s35C.s0.winId] = sUnknown_80DC91C;
|
||||
gUnknown_3001B5C->s35C.m.menuWinId = index;
|
||||
gUnknown_3001B5C->s35C.m.menuWindow = &gUnknown_3001B5C->s35C.m.windows.id[index];
|
||||
RestoreSavedWindows(&gUnknown_3001B5C->s35C.m.windows);
|
||||
gUnknown_3001B5C->s35C.m.windows.id[gUnknown_3001B5C->s35C.m.menuWinId] = sUnknown_80DC91C;
|
||||
|
||||
gUnknown_3001B5C->s35C.s0.unk38->header = &gUnknown_3001B5C->s35C.header;
|
||||
gUnknown_3001B5C->s35C.m.menuWindow->header = &gUnknown_3001B5C->s35C.header;
|
||||
|
||||
if (sub != NULL)
|
||||
gUnknown_3001B5C->s35C.s0.windows.id[gUnknown_3001B5C->s35C.s0.winId].pos = *sub;
|
||||
gUnknown_3001B5C->s35C.m.windows.id[gUnknown_3001B5C->s35C.m.menuWinId].pos = *sub;
|
||||
|
||||
sub_8012D08(gUnknown_3001B5C->s35C.s0.unk38, a3);
|
||||
sub_8012D08(gUnknown_3001B5C->s35C.m.menuWindow, a3);
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&gUnknown_3001B5C->s35C.s0.windows, TRUE, TRUE);
|
||||
CreateMenuOnWindow(&gUnknown_3001B5C->s35C.s0.input, sub_80236A4(), a3, index);
|
||||
gUnknown_3001B5C->s35C.s0.input.menuIndex = gUnknown_203B29C;
|
||||
gUnknown_3001B5C->s35C.s0.input.currPage = gUnknown_203B29E;
|
||||
MenuUpdatePagesData(&gUnknown_3001B5C->s35C.s0.input);
|
||||
ShowWindows(&gUnknown_3001B5C->s35C.m.windows, TRUE, TRUE);
|
||||
CreateMenuOnWindow(&gUnknown_3001B5C->s35C.m.input, sub_80236A4(), a3, index);
|
||||
gUnknown_3001B5C->s35C.m.input.menuIndex = gUnknown_203B29C;
|
||||
gUnknown_3001B5C->s35C.m.input.currPage = gUnknown_203B29E;
|
||||
MenuUpdatePagesData(&gUnknown_3001B5C->s35C.m.input);
|
||||
sub_8023420();
|
||||
sub_80234BC();
|
||||
return TRUE;
|
||||
@@ -75,11 +76,11 @@ u32 sub_8023278(bool8 a0)
|
||||
u32 temp;
|
||||
|
||||
if (!a0) {
|
||||
sub_8013660(&gUnknown_3001B5C->s35C.s0.input);
|
||||
sub_8013660(&gUnknown_3001B5C->s35C.m.input);
|
||||
return 0;
|
||||
}
|
||||
|
||||
switch (GetKeyPress(&gUnknown_3001B5C->s35C.s0.input)) {
|
||||
switch (GetKeyPress(&gUnknown_3001B5C->s35C.m.input)) {
|
||||
case INPUT_B_BUTTON:
|
||||
PlayMenuSoundEffect(1);
|
||||
return 2;
|
||||
@@ -95,7 +96,7 @@ u32 sub_8023278(bool8 a0)
|
||||
sub_80236A4();
|
||||
break;
|
||||
default:
|
||||
if (MenuCursorUpdate(&gUnknown_3001B5C->s35C.s0.input, 1) == 0)
|
||||
if (MenuCursorUpdate(&gUnknown_3001B5C->s35C.m.input, 1) == 0)
|
||||
return 0;
|
||||
break;
|
||||
}
|
||||
@@ -107,30 +108,30 @@ u32 sub_8023278(bool8 a0)
|
||||
|
||||
s16 sub_802331C(void)
|
||||
{
|
||||
return gUnknown_3001B5C->unkC[GET_CURRENT_MENU_ENTRY(gUnknown_3001B5C->s35C.s0.input)];
|
||||
return gUnknown_3001B5C->unkC[GET_CURRENT_MENU_ENTRY(gUnknown_3001B5C->s35C.m.input)];
|
||||
}
|
||||
|
||||
void sub_8023354(bool8 cursorSprite)
|
||||
{
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&gUnknown_3001B5C->s35C.s0.windows, FALSE, FALSE);
|
||||
MenuUpdatePagesData(&gUnknown_3001B5C->s35C.s0.input);
|
||||
ShowWindows(&gUnknown_3001B5C->s35C.m.windows, FALSE, FALSE);
|
||||
MenuUpdatePagesData(&gUnknown_3001B5C->s35C.m.input);
|
||||
sub_8023420();
|
||||
sub_80234BC();
|
||||
|
||||
if (cursorSprite)
|
||||
AddMenuCursorSprite(&gUnknown_3001B5C->s35C.s0.input);
|
||||
AddMenuCursorSprite(&gUnknown_3001B5C->s35C.m.input);
|
||||
}
|
||||
|
||||
void sub_80233A0(void)
|
||||
{
|
||||
if (gUnknown_3001B5C != NULL) {
|
||||
gUnknown_203B298 = gUnknown_3001B5C->unk4;
|
||||
gUnknown_203B29C = gUnknown_3001B5C->s35C.s0.input.menuIndex;
|
||||
gUnknown_203B29E = gUnknown_3001B5C->s35C.s0.input.currPage;
|
||||
gUnknown_3001B5C->s35C.s0.windows.id[gUnknown_3001B5C->s35C.s0.winId] = sUnknown_80DC904;
|
||||
gUnknown_203B29C = gUnknown_3001B5C->s35C.m.input.menuIndex;
|
||||
gUnknown_203B29E = gUnknown_3001B5C->s35C.m.input.currPage;
|
||||
gUnknown_3001B5C->s35C.m.windows.id[gUnknown_3001B5C->s35C.m.menuWinId] = sUnknown_80DC904;
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&gUnknown_3001B5C->s35C.s0.windows, TRUE, TRUE);
|
||||
ShowWindows(&gUnknown_3001B5C->s35C.m.windows, TRUE, TRUE);
|
||||
MemoryFree(gUnknown_3001B5C);
|
||||
gUnknown_3001B5C = NULL;
|
||||
}
|
||||
@@ -143,7 +144,7 @@ static void sub_8023420(void)
|
||||
gUnknown_3001B5C->s35C.header.width = 12;
|
||||
gUnknown_3001B5C->s35C.header.f3 = 0;
|
||||
|
||||
SUB_80095E4_CALL_2(gUnknown_3001B5C->s35C.s0);
|
||||
UPDATE_MENU_WINDOW_HEIGHT_2(gUnknown_3001B5C->s35C.m);
|
||||
}
|
||||
|
||||
static void sub_80234BC(void)
|
||||
@@ -159,15 +160,15 @@ static void sub_80234BC(void)
|
||||
u8 buffer1[100];
|
||||
FriendAreaCapacity auStack_2c;
|
||||
|
||||
CallPrepareTextbox_8008C54(gUnknown_3001B5C->s35C.s0.winId);
|
||||
sub_80073B8(gUnknown_3001B5C->s35C.s0.winId);
|
||||
PrintStringOnWindow(10, 0, sPokemon, gUnknown_3001B5C->s35C.s0.winId, 0);
|
||||
CallPrepareTextbox_8008C54(gUnknown_3001B5C->s35C.m.menuWinId);
|
||||
sub_80073B8(gUnknown_3001B5C->s35C.m.menuWinId);
|
||||
PrintStringOnWindow(10, 0, sPokemon, gUnknown_3001B5C->s35C.m.menuWinId, 0);
|
||||
|
||||
sub_8012BC4((gUnknown_3001B5C->s35C.header.width * 8) + 4, 0, gUnknown_3001B5C->s35C.s0.input.currPage + 1, 2, 7, gUnknown_3001B5C->s35C.s0.winId);
|
||||
sub_8012BC4((gUnknown_3001B5C->s35C.header.width * 8) + 4, 0, gUnknown_3001B5C->s35C.m.input.currPage + 1, 2, 7, gUnknown_3001B5C->s35C.m.menuWinId);
|
||||
|
||||
for (i = 0; i < gUnknown_3001B5C->s35C.s0.input.currPageEntries; i++) {
|
||||
y = GetMenuEntryYCoord(&gUnknown_3001B5C->s35C.s0.input, i);
|
||||
species = gUnknown_3001B5C->unkC[(gUnknown_3001B5C->s35C.s0.input.currPage * gUnknown_3001B5C->s35C.s0.input.entriesPerPage) + i];
|
||||
for (i = 0; i < gUnknown_3001B5C->s35C.m.input.currPageEntries; i++) {
|
||||
y = GetMenuEntryYCoord(&gUnknown_3001B5C->s35C.m.input, i);
|
||||
species = gUnknown_3001B5C->unkC[(gUnknown_3001B5C->s35C.m.input.currPage * gUnknown_3001B5C->s35C.m.input.entriesPerPage) + i];
|
||||
GetFriendAreaCapacity2(GetFriendArea(species), &auStack_2c, FALSE, FALSE);
|
||||
color = COLOR_WHITE_2;
|
||||
if (auStack_2c.hasFriendArea)
|
||||
@@ -175,26 +176,26 @@ static void sub_80234BC(void)
|
||||
|
||||
iVar4 = GetDexInternalNo(species, 0);
|
||||
cVar2 = (iVar4 % 10) + 48;
|
||||
DrawCharOnWindowWidth12(20, y, cVar2, color, gUnknown_3001B5C->s35C.s0.winId);
|
||||
DrawCharOnWindowWidth12(20, y, cVar2, color, gUnknown_3001B5C->s35C.m.menuWinId);
|
||||
|
||||
if (9 < iVar4) {
|
||||
iVar4 /= 10;
|
||||
cVar2 = (iVar4 % 10) + 48;
|
||||
DrawCharOnWindowWidth12(13, y, cVar2, color, gUnknown_3001B5C->s35C.s0.winId);
|
||||
DrawCharOnWindowWidth12(13, y, cVar2, color, gUnknown_3001B5C->s35C.m.menuWinId);
|
||||
|
||||
if (9 < iVar4) {
|
||||
uVar3 = iVar4 / 10;
|
||||
cVar2 = (uVar3 % 10) + 48;
|
||||
DrawCharOnWindowWidth12(6, y, cVar2, color, gUnknown_3001B5C->s35C.s0.winId);
|
||||
DrawCharOnWindowWidth12(6, y, cVar2, color, gUnknown_3001B5C->s35C.m.menuWinId);
|
||||
}
|
||||
}
|
||||
|
||||
sub_808D930(buffer1,species);
|
||||
sprintfStatic(buffer2, sFmtColoredString, color, buffer1);
|
||||
PrintStringOnWindow(36, y, buffer2, gUnknown_3001B5C->s35C.s0.winId, 0);
|
||||
PrintStringOnWindow(36, y, buffer2, gUnknown_3001B5C->s35C.m.menuWinId, 0);
|
||||
}
|
||||
|
||||
sub_80073E0(gUnknown_3001B5C->s35C.s0.winId);
|
||||
sub_80073E0(gUnknown_3001B5C->s35C.m.menuWinId);
|
||||
}
|
||||
|
||||
static u32 sub_80236A4(void)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#include "global.h"
|
||||
#include "globaldata.h"
|
||||
#include "constants/input.h"
|
||||
#include "structs/struct_sub80095e4.h"
|
||||
#include "text_3.h"
|
||||
#include "music_util.h"
|
||||
#include "code_80958E8.h"
|
||||
#include "code_80A26CC.h"
|
||||
@@ -24,7 +24,7 @@ struct unkStruct_203B314
|
||||
u8 unkB9;
|
||||
u8 unkBA;
|
||||
u8 unkBB;
|
||||
struct struct_Sub80095E4_2 sBC;
|
||||
struct MenuHeaderWindow sBC;
|
||||
};
|
||||
|
||||
EWRAM_INIT struct unkStruct_203B314 *gUnknown_203B314 = {NULL};
|
||||
@@ -75,24 +75,24 @@ u32 sub_802F73C(u32 r0, DungeonPos *r1, u32 r2, u8 r3)
|
||||
gUnknown_203B314 = MemoryAlloc(sizeof(struct unkStruct_203B314), 8);
|
||||
|
||||
gUnknown_203B314->unkB8 = r3;
|
||||
gUnknown_203B314->sBC.s0.winId = r0;
|
||||
gUnknown_203B314->sBC.s0.unk38 = &gUnknown_203B314->sBC.s0.windows.id[gUnknown_203B314->sBC.s0.winId];
|
||||
RestoreSavedWindows(&gUnknown_203B314->sBC.s0.windows);
|
||||
gUnknown_203B314->sBC.m.menuWinId = r0;
|
||||
gUnknown_203B314->sBC.m.menuWindow = &gUnknown_203B314->sBC.m.windows.id[gUnknown_203B314->sBC.m.menuWinId];
|
||||
RestoreSavedWindows(&gUnknown_203B314->sBC.m.windows);
|
||||
|
||||
if (r3 != 0)
|
||||
gUnknown_203B314->sBC.s0.windows.id[gUnknown_203B314->sBC.s0.winId] = gUnknown_80E072C;
|
||||
gUnknown_203B314->sBC.m.windows.id[gUnknown_203B314->sBC.m.menuWinId] = gUnknown_80E072C;
|
||||
else
|
||||
gUnknown_203B314->sBC.s0.windows.id[gUnknown_203B314->sBC.s0.winId] = gUnknown_80E0714;
|
||||
gUnknown_203B314->sBC.m.windows.id[gUnknown_203B314->sBC.m.menuWinId] = gUnknown_80E0714;
|
||||
|
||||
gUnknown_203B314->sBC.s0.unk38->header = &gUnknown_203B314->sBC.header;
|
||||
gUnknown_203B314->sBC.m.menuWindow->header = &gUnknown_203B314->sBC.header;
|
||||
|
||||
if (r1 != 0)
|
||||
gUnknown_203B314->sBC.s0.windows.id[gUnknown_203B314->sBC.s0.winId].pos = *r1;
|
||||
gUnknown_203B314->sBC.m.windows.id[gUnknown_203B314->sBC.m.menuWinId].pos = *r1;
|
||||
|
||||
sub_8012D08(gUnknown_203B314->sBC.s0.unk38, r2);
|
||||
sub_8012D08(gUnknown_203B314->sBC.m.menuWindow, r2);
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&gUnknown_203B314->sBC.s0.windows, TRUE, TRUE);
|
||||
CreateMenuOnWindow(&gUnknown_203B314->sBC.s0.input, sub_802FBF4(), r2, r0);
|
||||
ShowWindows(&gUnknown_203B314->sBC.m.windows, TRUE, TRUE);
|
||||
CreateMenuOnWindow(&gUnknown_203B314->sBC.m.input, sub_802FBF4(), r2, r0);
|
||||
sub_802F9C0();
|
||||
sub_802FA50();
|
||||
return 1;
|
||||
@@ -105,15 +105,15 @@ u32 sub_802F848(s16 param_1)
|
||||
|
||||
param_1_32 = param_1; // cast needed
|
||||
|
||||
for( index = 0; index < gUnknown_203B314->sBC.s0.input.totalEntriesCount; index++ ) {
|
||||
for( index = 0; index < gUnknown_203B314->sBC.m.input.totalEntriesCount; index++ ) {
|
||||
if (gUnknown_203B314->unk0[index] == param_1_32) {
|
||||
sub_8013878(&gUnknown_203B314->sBC.s0.input,index);
|
||||
MoveMenuToEntryId(&gUnknown_203B314->sBC.m.input,index);
|
||||
sub_802F9C0();
|
||||
sub_802FA50();
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
sub_8013878(&gUnknown_203B314->sBC.s0.input,0);
|
||||
MoveMenuToEntryId(&gUnknown_203B314->sBC.m.input,0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -121,12 +121,12 @@ u32 sub_802F8A0(u8 r0)
|
||||
{
|
||||
if(r0 == 0)
|
||||
{
|
||||
sub_8013660(&gUnknown_203B314->sBC.s0.input);
|
||||
sub_8013660(&gUnknown_203B314->sBC.m.input);
|
||||
return 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
switch(GetKeyPress(&gUnknown_203B314->sBC.s0.input))
|
||||
switch(GetKeyPress(&gUnknown_203B314->sBC.m.input))
|
||||
{
|
||||
case INPUT_B_BUTTON:
|
||||
PlayMenuSoundEffect(1);
|
||||
@@ -135,7 +135,7 @@ u32 sub_802F8A0(u8 r0)
|
||||
PlayMenuSoundEffect(0);
|
||||
return 3;
|
||||
default:
|
||||
if(MenuCursorUpdate(&gUnknown_203B314->sBC.s0.input, 1) != 0)
|
||||
if(MenuCursorUpdate(&gUnknown_203B314->sBC.m.input, 1) != 0)
|
||||
{
|
||||
sub_802F9C0();
|
||||
sub_802FA50();
|
||||
@@ -151,27 +151,27 @@ u32 sub_802F8A0(u8 r0)
|
||||
|
||||
s16 sub_802F90C(void)
|
||||
{
|
||||
return gUnknown_203B314->unk0[GET_CURRENT_MENU_ENTRY(gUnknown_203B314->sBC.s0.input)];
|
||||
return gUnknown_203B314->unk0[GET_CURRENT_MENU_ENTRY(gUnknown_203B314->sBC.m.input)];
|
||||
}
|
||||
|
||||
void sub_802F938(u8 r0)
|
||||
{
|
||||
gUnknown_203B314->sBC.s0.input.totalEntriesCount = sub_802FBF4();
|
||||
MenuUpdatePagesData(&gUnknown_203B314->sBC.s0.input);
|
||||
gUnknown_203B314->sBC.m.input.totalEntriesCount = sub_802FBF4();
|
||||
MenuUpdatePagesData(&gUnknown_203B314->sBC.m.input);
|
||||
sub_802F9C0();
|
||||
sub_802FA50();
|
||||
|
||||
if(r0 != 0)
|
||||
AddMenuCursorSprite(&gUnknown_203B314->sBC.s0.input);
|
||||
AddMenuCursorSprite(&gUnknown_203B314->sBC.m.input);
|
||||
}
|
||||
|
||||
void sub_802F974(void)
|
||||
{
|
||||
if(gUnknown_203B314 != NULL)
|
||||
{
|
||||
gUnknown_203B314->sBC.s0.windows.id[gUnknown_203B314->sBC.s0.winId] = gUnknown_80E06FC;
|
||||
gUnknown_203B314->sBC.m.windows.id[gUnknown_203B314->sBC.m.menuWinId] = gUnknown_80E06FC;
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&gUnknown_203B314->sBC.s0.windows, TRUE, TRUE);
|
||||
ShowWindows(&gUnknown_203B314->sBC.m.windows, TRUE, TRUE);
|
||||
MemoryFree(gUnknown_203B314);
|
||||
gUnknown_203B314 = NULL;
|
||||
}
|
||||
@@ -184,7 +184,7 @@ void sub_802F9C0(void)
|
||||
gUnknown_203B314->sBC.header.width = 8;
|
||||
gUnknown_203B314->sBC.header.f3 = 0;
|
||||
|
||||
SUB_80095E4_CALL(gUnknown_203B314->sBC.s0);
|
||||
UPDATE_MENU_WINDOW_HEIGHT(gUnknown_203B314->sBC.m);
|
||||
}
|
||||
|
||||
void sub_802FA50(void)
|
||||
@@ -196,34 +196,34 @@ void sub_802FA50(void)
|
||||
int index;
|
||||
int counter;
|
||||
|
||||
CallPrepareTextbox_8008C54(gUnknown_203B314->sBC.s0.winId);
|
||||
sub_80073B8(gUnknown_203B314->sBC.s0.winId);
|
||||
PrintStringOnWindow(10,0,gUnknown_80E0744,gUnknown_203B314->sBC.s0.winId,0);
|
||||
sub_8012BC4(gUnknown_203B314->sBC.header.width * 8 + 4,0,gUnknown_203B314->sBC.s0.input.currPage + 1,2,7,gUnknown_203B314->sBC.s0.winId);
|
||||
CallPrepareTextbox_8008C54(gUnknown_203B314->sBC.m.menuWinId);
|
||||
sub_80073B8(gUnknown_203B314->sBC.m.menuWinId);
|
||||
PrintStringOnWindow(10,0,gUnknown_80E0744,gUnknown_203B314->sBC.m.menuWinId,0);
|
||||
sub_8012BC4(gUnknown_203B314->sBC.header.width * 8 + 4,0,gUnknown_203B314->sBC.m.input.currPage + 1,2,7,gUnknown_203B314->sBC.m.menuWinId);
|
||||
if (gUnknown_203B314->unkB8 != 0) {
|
||||
for(counter = 0; counter < gUnknown_203B314->sBC.s0.input.currPageEntries; counter++)
|
||||
for(counter = 0; counter < gUnknown_203B314->sBC.m.input.currPageEntries; counter++)
|
||||
{
|
||||
y = GetMenuEntryYCoord(&gUnknown_203B314->sBC.s0.input,counter);
|
||||
index = gUnknown_203B314->sBC.s0.input.currPage * gUnknown_203B314->sBC.s0.input.entriesPerPage + counter;
|
||||
y = GetMenuEntryYCoord(&gUnknown_203B314->sBC.m.input,counter);
|
||||
index = gUnknown_203B314->sBC.m.input.currPage * gUnknown_203B314->sBC.m.input.entriesPerPage + counter;
|
||||
sVar1 = gUnknown_203B314->unk0[index];
|
||||
if (gUnknown_203B314->unk5C[index] != 0) {
|
||||
PrintStringOnWindow(10,y,gUnknown_80E0750,gUnknown_203B314->sBC.s0.winId,0);
|
||||
PrintStringOnWindow(10,y,gUnknown_80E0750,gUnknown_203B314->sBC.m.menuWinId,0);
|
||||
}
|
||||
else if (gUnknown_203B314->unk8A[index] != 0) {
|
||||
PrintStringOnWindow(10,y,gUnknown_80E0754,gUnknown_203B314->sBC.s0.winId,0);
|
||||
PrintStringOnWindow(10,y,gUnknown_80E0754,gUnknown_203B314->sBC.m.menuWinId,0);
|
||||
}
|
||||
PrintStringOnWindow(0x18,y,sub_80974A0(sVar1),gUnknown_203B314->sBC.s0.winId,0);
|
||||
PrintStringOnWindow(0x18,y,sub_80974A0(sVar1),gUnknown_203B314->sBC.m.menuWinId,0);
|
||||
}
|
||||
}
|
||||
else {
|
||||
for(counter = 0; counter < gUnknown_203B314->sBC.s0.input.currPageEntries; counter++)
|
||||
for(counter = 0; counter < gUnknown_203B314->sBC.m.input.currPageEntries; counter++)
|
||||
{
|
||||
y2 = GetMenuEntryYCoord(&gUnknown_203B314->sBC.s0.input,counter);
|
||||
text = sub_80974A0(gUnknown_203B314->unk0[gUnknown_203B314->sBC.s0.input.currPage * gUnknown_203B314->sBC.s0.input.entriesPerPage + counter]);
|
||||
PrintStringOnWindow(8,y2,text,gUnknown_203B314->sBC.s0.winId,0);
|
||||
y2 = GetMenuEntryYCoord(&gUnknown_203B314->sBC.m.input,counter);
|
||||
text = sub_80974A0(gUnknown_203B314->unk0[gUnknown_203B314->sBC.m.input.currPage * gUnknown_203B314->sBC.m.input.entriesPerPage + counter]);
|
||||
PrintStringOnWindow(8,y2,text,gUnknown_203B314->sBC.m.menuWinId,0);
|
||||
}
|
||||
}
|
||||
sub_80073E0(gUnknown_203B314->sBC.s0.winId);
|
||||
sub_80073E0(gUnknown_203B314->sBC.m.menuWinId);
|
||||
}
|
||||
|
||||
static inline void sub_802FBF4_sub(u8 *test, s32 counter)
|
||||
|
||||
@@ -28,6 +28,7 @@
|
||||
#include "string_format.h"
|
||||
#include "text_1.h"
|
||||
#include "text_2.h"
|
||||
#include "text_3.h"
|
||||
#include "wigglytuff_shop1.h"
|
||||
#include "wigglytuff_shop3.h"
|
||||
#include "wonder_mail.h"
|
||||
|
||||
@@ -55,7 +55,7 @@ UNUSED static void DebugMapViewer(void)
|
||||
PixelPos boundary;
|
||||
|
||||
if (DebugFieldMapWindow_Init()) {
|
||||
sub_801DA58(mapId);
|
||||
DebugFieldMapWindow_MoveMenuTo(mapId);
|
||||
while (1) {
|
||||
sub_8005838(NULL, 0);
|
||||
sub_8012A18(0);
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#include "globaldata.h"
|
||||
#include "debug_field_map_window.h"
|
||||
#include "constants/input.h"
|
||||
#include "structs/struct_sub80095e4.h"
|
||||
#include "text_3.h"
|
||||
#include "music_util.h"
|
||||
#include "ground_main.h"
|
||||
#include "input.h"
|
||||
@@ -12,61 +12,62 @@
|
||||
#include "text_2.h"
|
||||
#include "structs/str_81188F0.h"
|
||||
|
||||
EWRAM_INIT static struct struct_Sub80095E4_2 *sDebugWindow = {NULL};
|
||||
EWRAM_INIT static struct MenuHeaderWindow *sDebugWindow = {NULL};
|
||||
|
||||
static const WindowTemplate sDummyWinTemplate = WIN_TEMPLATE_DUMMY;
|
||||
|
||||
static const WindowTemplate sUnknown_80DBF88 = {
|
||||
0,
|
||||
6,
|
||||
2, 2,
|
||||
24, 17,
|
||||
17, 0,
|
||||
NULL
|
||||
static const WindowTemplate sDebugWindowTemplate = {
|
||||
.unk0 = 0,
|
||||
.type = WINDOW_TYPE_WITH_HEADER,
|
||||
.pos = {2, 2},
|
||||
.width = 24,
|
||||
.height = 17,
|
||||
.unk10 = 17,
|
||||
.unk12 = 0,
|
||||
.header = NULL,
|
||||
};
|
||||
|
||||
static void sub_801DB54(void);
|
||||
static void sub_801DBD4(void);
|
||||
static void ShowWindowsWithHeader(void);
|
||||
static void PrintCurrentPageText(void);
|
||||
|
||||
#define WINDOW_ID_DEBUG 3
|
||||
|
||||
bool8 DebugFieldMapWindow_Init(void)
|
||||
{
|
||||
sDebugWindow = MemoryAlloc(sizeof(*sDebugWindow), 8);
|
||||
sDebugWindow->s0.winId = WINDOW_ID_DEBUG;
|
||||
sDebugWindow->s0.unk38 = &sDebugWindow->s0.windows.id[WINDOW_ID_DEBUG];
|
||||
RestoreSavedWindows(&sDebugWindow->s0.windows);
|
||||
sDebugWindow->s0.windows.id[sDebugWindow->s0.winId] = sUnknown_80DBF88;
|
||||
sDebugWindow->s0.unk38->header = &sDebugWindow->header;
|
||||
sDebugWindow->m.menuWinId = WINDOW_ID_DEBUG;
|
||||
sDebugWindow->m.menuWindow = &sDebugWindow->m.windows.id[WINDOW_ID_DEBUG];
|
||||
RestoreSavedWindows(&sDebugWindow->m.windows);
|
||||
sDebugWindow->m.windows.id[sDebugWindow->m.menuWinId] = sDebugWindowTemplate;
|
||||
sDebugWindow->m.menuWindow->header = &sDebugWindow->header;
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&sDebugWindow->s0.windows, TRUE, TRUE);
|
||||
CreateMenuOnWindow(&sDebugWindow->s0.input, 229, 10, sDebugWindow->s0.winId);
|
||||
sub_801DB54();
|
||||
sub_801DBD4();
|
||||
ShowWindows(&sDebugWindow->m.windows, TRUE, TRUE);
|
||||
CreateMenuOnWindow(&sDebugWindow->m.input, 229, 10, sDebugWindow->m.menuWinId);
|
||||
ShowWindowsWithHeader();
|
||||
PrintCurrentPageText();
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void sub_801DA58(s16 a0)
|
||||
void DebugFieldMapWindow_MoveMenuTo(s16 entryId_)
|
||||
{
|
||||
s32 cast;
|
||||
cast = a0;
|
||||
sub_8013878(&sDebugWindow->s0.input, cast);
|
||||
sub_801DB54();
|
||||
sub_801DBD4();
|
||||
s32 entryId = entryId_;
|
||||
MoveMenuToEntryId(&sDebugWindow->m.input, entryId);
|
||||
ShowWindowsWithHeader();
|
||||
PrintCurrentPageText();
|
||||
}
|
||||
|
||||
u32 DebugFieldMapWindow_GetInput(void)
|
||||
{
|
||||
switch (GetKeyPress(&sDebugWindow->s0.input)) {
|
||||
switch (GetKeyPress(&sDebugWindow->m.input)) {
|
||||
case INPUT_B_BUTTON:
|
||||
PlayMenuSoundEffect(1);
|
||||
return DEBUG_INPUT_B_PRESS;
|
||||
case INPUT_A_BUTTON:
|
||||
return DEBUG_INPUT_A_PRESS;
|
||||
default:
|
||||
if (MenuCursorUpdate(&sDebugWindow->s0.input, TRUE)) {
|
||||
sub_801DB54();
|
||||
sub_801DBD4();
|
||||
if (MenuCursorUpdate(&sDebugWindow->m.input, TRUE)) {
|
||||
ShowWindowsWithHeader();
|
||||
PrintCurrentPageText();
|
||||
return DEBUG_INPUT_DPAD;
|
||||
}
|
||||
return DEBUG_INPUT_NOTHING;
|
||||
@@ -75,30 +76,30 @@ u32 DebugFieldMapWindow_GetInput(void)
|
||||
|
||||
s16 DebugFieldMapWindow_GetCurrentIndex(void)
|
||||
{
|
||||
return GET_CURRENT_MENU_ENTRY(sDebugWindow->s0.input);
|
||||
return GET_CURRENT_MENU_ENTRY(sDebugWindow->m.input);
|
||||
}
|
||||
|
||||
UNUSED static void sub_801DADC(bool8 a0)
|
||||
UNUSED static void ShowDebugFieldMapWindow(bool8 addCursorSprite)
|
||||
{
|
||||
sDebugWindow->s0.input.totalEntriesCount = 229;
|
||||
MenuUpdatePagesData(&sDebugWindow->s0.input);
|
||||
sub_801DB54();
|
||||
sub_801DBD4();
|
||||
if (a0)
|
||||
AddMenuCursorSprite(&sDebugWindow->s0.input);
|
||||
sDebugWindow->m.input.totalEntriesCount = 229;
|
||||
MenuUpdatePagesData(&sDebugWindow->m.input);
|
||||
ShowWindowsWithHeader();
|
||||
PrintCurrentPageText();
|
||||
if (addCursorSprite)
|
||||
AddMenuCursorSprite(&sDebugWindow->m.input);
|
||||
}
|
||||
|
||||
void DebugFieldMapWindow_Free(void)
|
||||
{
|
||||
if (sDebugWindow != NULL) {
|
||||
sDebugWindow->s0.windows.id[sDebugWindow->s0.winId] = sDummyWinTemplate;
|
||||
sDebugWindow->m.windows.id[sDebugWindow->m.menuWinId] = sDummyWinTemplate;
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&sDebugWindow->s0.windows, TRUE, TRUE);
|
||||
ShowWindows(&sDebugWindow->m.windows, TRUE, TRUE);
|
||||
FREE_AND_SET_NULL(sDebugWindow);
|
||||
}
|
||||
}
|
||||
|
||||
static void sub_801DB54(void)
|
||||
static void ShowWindowsWithHeader(void)
|
||||
{
|
||||
sDebugWindow->header.count = 1;
|
||||
sDebugWindow->header.currId = 0;
|
||||
@@ -106,12 +107,12 @@ static void sub_801DB54(void)
|
||||
sDebugWindow->header.f3 = 0;
|
||||
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&sDebugWindow->s0.windows, TRUE, TRUE);
|
||||
ShowWindows(&sDebugWindow->m.windows, TRUE, TRUE);
|
||||
|
||||
SUB_80095E4_CALL(sDebugWindow->s0);
|
||||
UPDATE_MENU_WINDOW_HEIGHT(sDebugWindow->m);
|
||||
}
|
||||
|
||||
static void sub_801DBD4(void)
|
||||
static void PrintCurrentPageText(void)
|
||||
{
|
||||
GroundConversionStruct *temp;
|
||||
const struct unkStruct_81188F0 *temp2;
|
||||
@@ -119,28 +120,28 @@ static void sub_801DBD4(void)
|
||||
s16 index;
|
||||
int counter;
|
||||
|
||||
CallPrepareTextbox_8008C54(sDebugWindow->s0.winId);
|
||||
sub_80073B8(sDebugWindow->s0.winId);
|
||||
PrintStringOnWindow(10, 0, _("Field"), sDebugWindow->s0.winId, 0);
|
||||
CallPrepareTextbox_8008C54(sDebugWindow->m.menuWinId);
|
||||
sub_80073B8(sDebugWindow->m.menuWinId);
|
||||
PrintStringOnWindow(10, 0, _("Field"), sDebugWindow->m.menuWinId, 0);
|
||||
|
||||
x = (sDebugWindow->header.width * 8) - 2;
|
||||
n = sDebugWindow->s0.input.currPage + 1;
|
||||
sub_8012BC4(x, 0, n, 2, 7, sDebugWindow->s0.winId);
|
||||
n = sDebugWindow->m.input.currPage + 1;
|
||||
sub_8012BC4(x, 0, n, 2, 7, sDebugWindow->m.menuWinId);
|
||||
|
||||
// This line has no real effect. It's a magic 'fakematch' to fool agb into generating the same asm. It can be removed if you don't care about matching.
|
||||
if (x) { counter = 0; }
|
||||
|
||||
for (counter = 0; counter < sDebugWindow->s0.input.currPageEntries; counter++) {
|
||||
index = (sDebugWindow->s0.input.currPage * sDebugWindow->s0.input.entriesPerPage) + counter;
|
||||
for (counter = 0; counter < sDebugWindow->m.input.currPageEntries; counter++) {
|
||||
index = (sDebugWindow->m.input.currPage * sDebugWindow->m.input.entriesPerPage) + counter;
|
||||
temp = &gGroundConversion_811BAF4[index];
|
||||
temp2 = &gUnknown_81188F0[temp->unk4];
|
||||
|
||||
y = GetMenuEntryYCoord(&sDebugWindow->s0.input, counter);
|
||||
PrintStringOnWindow(8, y, temp2->text1, sDebugWindow->s0.winId, 0);
|
||||
y = GetMenuEntryYCoord(&sDebugWindow->m.input, counter);
|
||||
PrintStringOnWindow(8, y, temp2->text1, sDebugWindow->m.menuWinId, 0);
|
||||
|
||||
y = GetMenuEntryYCoord(&sDebugWindow->s0.input, counter);
|
||||
PrintStringOnWindow(62, y, temp->text, sDebugWindow->s0.winId, 0);
|
||||
y = GetMenuEntryYCoord(&sDebugWindow->m.input, counter);
|
||||
PrintStringOnWindow(62, y, temp->text, sDebugWindow->m.menuWinId, 0);
|
||||
}
|
||||
|
||||
sub_80073E0(sDebugWindow->s0.winId);
|
||||
sub_80073E0(sDebugWindow->m.menuWinId);
|
||||
}
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
#include "string_format.h"
|
||||
#include "text_1.h"
|
||||
#include "text_2.h"
|
||||
#include "text_3.h"
|
||||
|
||||
static EWRAM_INIT unkStruct_203B3F0 *sUnknown_203B3F0 = {NULL};
|
||||
|
||||
|
||||
@@ -8,7 +8,8 @@
|
||||
#include "structs/map.h"
|
||||
#include "structs/str_dungeon.h"
|
||||
#include "structs/str_text.h"
|
||||
#include "structs/struct_sub80095e4.h"
|
||||
#include "text_1.h"
|
||||
#include "text_3.h"
|
||||
#include "bg_control.h"
|
||||
#include "dungeon_move_util.h"
|
||||
#include "code_800D090.h"
|
||||
|
||||
@@ -449,7 +449,7 @@ static void ShowMovesMenuWindows(Entity *entity, EntityInfo *entInfo, bool8 redC
|
||||
gDungeonMenu.windowId = 0;
|
||||
ResetTouchScreenMenuInput(&gDungeonMenu.touchScreen);
|
||||
|
||||
windows->id[0].height = windows->id[0].unk10 = sub_80095E4(4, 0xC) + 2;
|
||||
windows->id[0].height = windows->id[0].unk10 = CalcEntriesTotalHeight(4, DEFAULT_MENU_ENTRY_HEIGHT) + 2;
|
||||
header->width = 13;
|
||||
windows->id[0].pos.x = 2;
|
||||
windows->id[1] = windows->id[3];
|
||||
@@ -1125,7 +1125,7 @@ static void sub_8064228(Entity *entity, Move *moves, WindowTemplates *windows, W
|
||||
gDungeonMenu.unk14.x = 0;
|
||||
gDungeonMenu.windowId = 0;
|
||||
ResetTouchScreenMenuInput(&gDungeonMenu.touchScreen);
|
||||
windows->id[0].height = windows->id[0].unk10 = sub_80095E4(count, 12) + 2;
|
||||
windows->id[0].height = windows->id[0].unk10 = CalcEntriesTotalHeight(count, DEFAULT_MENU_ENTRY_HEIGHT) + 2;
|
||||
header->width = 14;
|
||||
windows->id[0].pos.x = 2;
|
||||
windows->id[1] = windows->id[3];
|
||||
|
||||
@@ -488,7 +488,7 @@ static void PrintOthersMenuOptions(void)
|
||||
gDungeonMenu.windowId = 0;
|
||||
ResetTouchScreenMenuInput(&gDungeonMenu.touchScreen);
|
||||
windows.id[0].width = 18;
|
||||
windows.id[0].height = windows.id[0].unk10 = sub_80095E4(optionsCount, 12) + 2;
|
||||
windows.id[0].height = windows.id[0].unk10 = CalcEntriesTotalHeight(optionsCount, DEFAULT_MENU_ENTRY_HEIGHT) + 2;
|
||||
header.width = 10;
|
||||
windows.id[0].pos.x = 2;
|
||||
DungeonShowWindows(&windows, TRUE);
|
||||
@@ -551,7 +551,7 @@ static void PrintQuickSaveMenuOptions(void)
|
||||
gDungeonMenu.windowId = 0;
|
||||
ResetTouchScreenMenuInput(&gDungeonMenu.touchScreen);
|
||||
windows.id[0].width = 18;
|
||||
windows.id[0].height = windows.id[0].unk10 = sub_80095E4(optionsCount, 12) + 2;
|
||||
windows.id[0].height = windows.id[0].unk10 = CalcEntriesTotalHeight(optionsCount, DEFAULT_MENU_ENTRY_HEIGHT) + 2;
|
||||
header.width = 10;
|
||||
windows.id[0].pos.x = 2;
|
||||
DungeonShowWindows(&windows, TRUE);
|
||||
@@ -604,7 +604,7 @@ static void PrintGameOptions(void)
|
||||
gDungeonMenu.windowId = 0;
|
||||
ResetTouchScreenMenuInput(&gDungeonMenu.touchScreen);
|
||||
windows.id[0].width = 12;
|
||||
windows.id[0].height = windows.id[0].unk10 = sub_80095E4(optionsCount, 12) + 2;
|
||||
windows.id[0].height = windows.id[0].unk10 = CalcEntriesTotalHeight(optionsCount, DEFAULT_MENU_ENTRY_HEIGHT) + 2;
|
||||
header.width = 10;
|
||||
windows.id[0].pos.x = 2;
|
||||
DungeonShowWindows(&windows, TRUE);
|
||||
@@ -659,7 +659,7 @@ static void PrintDungeonOptions(void)
|
||||
gDungeonMenu.windowId = 0;
|
||||
ResetTouchScreenMenuInput(&gDungeonMenu.touchScreen);
|
||||
windows.id[0].width = 24;
|
||||
windows.id[0].height = windows.id[0].unk10 = sub_80095E4(DUNGEON_OPTIONS_COUNT, 12) + 2;
|
||||
windows.id[0].height = windows.id[0].unk10 = CalcEntriesTotalHeight(DUNGEON_OPTIONS_COUNT, DEFAULT_MENU_ENTRY_HEIGHT) + 2;
|
||||
header.width = 10;
|
||||
windows.id[0].pos.x = 2;
|
||||
DungeonShowWindows(&windows, TRUE);
|
||||
@@ -750,7 +750,7 @@ static void PrintOthersOptions(void)
|
||||
gDungeonMenu.windowId = 0;
|
||||
ResetTouchScreenMenuInput(&gDungeonMenu.touchScreen);
|
||||
windows.id[0].width = 24;
|
||||
windows.id[0].height = windows.id[0].unk10 = sub_80095E4(OTHERS_OPTIONS_COUNT, 12) + 2;
|
||||
windows.id[0].height = windows.id[0].unk10 = CalcEntriesTotalHeight(OTHERS_OPTIONS_COUNT, DEFAULT_MENU_ENTRY_HEIGHT) + 2;
|
||||
header.width = 10;
|
||||
windows.id[0].pos.x = 2;
|
||||
DungeonShowWindows(&windows, TRUE);
|
||||
@@ -922,7 +922,7 @@ static void PrintHintsMenu(void)
|
||||
gDungeonMenu.windowId = 0;
|
||||
ResetTouchScreenMenuInput(&gDungeonMenu.touchScreen);
|
||||
windows.id[0].width = 12;
|
||||
windows.id[0].height = windows.id[0].unk10 = sub_80095E4(HINTS_COUNT_RED_VERSION, 12) + 2;
|
||||
windows.id[0].height = windows.id[0].unk10 = CalcEntriesTotalHeight(HINTS_COUNT_RED_VERSION, DEFAULT_MENU_ENTRY_HEIGHT) + 2;
|
||||
header.width = 10;
|
||||
windows.id[0].pos.x = 2;
|
||||
DungeonShowWindows(&windows, TRUE);
|
||||
@@ -973,7 +973,7 @@ static void ShowChosenHintWindow(s32 hintId)
|
||||
gDungeonMenu.windowId = 0;
|
||||
ResetTouchScreenMenuInput(&gDungeonMenu.touchScreen);
|
||||
windows.id[0].width = 24;
|
||||
windows.id[0].height = windows.id[0].unk10 = sub_80095E4(HINTS_COUNT, 12) + 2;
|
||||
windows.id[0].height = windows.id[0].unk10 = CalcEntriesTotalHeight(HINTS_COUNT, DEFAULT_MENU_ENTRY_HEIGHT) + 2;
|
||||
header.width = 10;
|
||||
windows.id[0].pos.x = 2;
|
||||
DungeonShowWindows(&windows, TRUE);
|
||||
|
||||
@@ -4,7 +4,8 @@
|
||||
#include "structs/map.h"
|
||||
#include "structs/str_dungeon.h"
|
||||
#include "structs/str_text.h"
|
||||
#include "structs/struct_sub80095e4.h"
|
||||
#include "text_1.h"
|
||||
#include "text_3.h"
|
||||
#include "code_800D090.h"
|
||||
#include "code_801602C.h"
|
||||
#include "code_801B3C0.h"
|
||||
@@ -306,12 +307,12 @@ bool8 ShowDungeonTeamMenu(Entity *a0)
|
||||
|
||||
static void PrintOnDungeonTeamMenu(struct UnkFieldTeamMenuStruct *a0, WindowTemplates *windows, bool8 a2)
|
||||
{
|
||||
s32 r0;
|
||||
s32 height;
|
||||
DungeonPos pos;
|
||||
s32 i;
|
||||
|
||||
s32 count = 0;
|
||||
bool8 r10 = (windows->id[0].type == WINDOW_TYPE_WITH_HEADER);
|
||||
bool8 withHeader = (windows->id[0].type == WINDOW_TYPE_WITH_HEADER);
|
||||
|
||||
sub_8069D18(&pos, GetLeader());
|
||||
for (i = 0; i < MAX_TEAM_MEMBERS; i++) {
|
||||
@@ -349,18 +350,18 @@ static void PrintOnDungeonTeamMenu(struct UnkFieldTeamMenuStruct *a0, WindowTemp
|
||||
gDungeonMenu.currPage = 0;
|
||||
gDungeonMenu.pagesCount = 0;
|
||||
gDungeonMenu.unk4 = 0;
|
||||
gDungeonMenu.firstEntryY = (r10 != FALSE) * 16;
|
||||
gDungeonMenu.firstEntryY = (withHeader != FALSE) * 16;
|
||||
gDungeonMenu.leftRightArrowsPos.x = 0;
|
||||
gDungeonMenu.leftRightArrowsPos.y = 0;
|
||||
gDungeonMenu.unk14.x = 0;
|
||||
gDungeonMenu.windowId = 0;
|
||||
ResetTouchScreenMenuInput(&gDungeonMenu.touchScreen);
|
||||
r0 = sub_80095E4(count, 0);
|
||||
if (r10) {
|
||||
r0 += 2;
|
||||
height = CalcEntriesTotalHeight(count, 0);
|
||||
if (withHeader) {
|
||||
height += 2;
|
||||
}
|
||||
windows->id[0].unk10 = r0;
|
||||
windows->id[0].height = r0;
|
||||
windows->id[0].unk10 = height;
|
||||
windows->id[0].height = height;
|
||||
sTeamWindowHeader.width = 8;
|
||||
if (a2) {
|
||||
windows->id[1] = windows->id[3];
|
||||
@@ -369,7 +370,7 @@ static void PrintOnDungeonTeamMenu(struct UnkFieldTeamMenuStruct *a0, WindowTemp
|
||||
DungeonShowWindows(windows, 1);
|
||||
sub_80137B0(&gDungeonMenu, 0);
|
||||
sub_80073B8(0);
|
||||
if (r10) {
|
||||
if (withHeader) {
|
||||
PrintFormattedStringOnWindow(0xC, 0, _("$t"), 0, 0);
|
||||
}
|
||||
|
||||
|
||||
@@ -52,7 +52,7 @@ void CreateDungeonMenuSubWindow(WindowTemplate *mainWindow, s32 subWindowX)
|
||||
|
||||
windows.id[1].pos.x = subWindowX;
|
||||
windows.id[1].width = 28 - subWindowX;
|
||||
windows.id[1].height = windows.id[1].unk10 = sub_80095E4(gDungeonMenu.entriesPerPage, 0);
|
||||
windows.id[1].height = windows.id[1].unk10 = CalcEntriesTotalHeight(gDungeonMenu.entriesPerPage, 0);
|
||||
DungeonShowWindows(&windows, FALSE);
|
||||
sub_80137B0(&gDungeonMenu, windows.id[1].height * 8);
|
||||
sub_80073B8(1);
|
||||
|
||||
@@ -338,7 +338,7 @@ void FriendAreasMap_PrintAvailableSubAreas(void)
|
||||
menuInput->cursorArrowPos.x = 8;
|
||||
menuInput->cursorArrowPos.y = 8;
|
||||
ResetTouchScreenMenuInput(&menuInput->touchScreen);
|
||||
var = sub_80095E4(menuInput->entriesPerPage, 0);
|
||||
var = CalcEntriesTotalHeight(menuInput->entriesPerPage, 0);
|
||||
windows.id[0].unk10 = windows.id[0].height = var + 2;
|
||||
sub_80137B0(menuInput, var * 8);
|
||||
|
||||
|
||||
@@ -101,22 +101,22 @@ bool8 FriendList_Init(u32 r5, u32 windowId, DungeonPos *pos, u32 r10)
|
||||
sFriendList->unk354 = 0;
|
||||
}
|
||||
|
||||
sFriendList->unk358.s0.winId = windowId;
|
||||
sFriendList->unk358.s0.unk38 = &sFriendList->unk358.s0.windows.id[windowId];
|
||||
RestoreSavedWindows(&sFriendList->unk358.s0.windows);
|
||||
sFriendList->unk358.s0.windows.id[sFriendList->unk358.s0.winId] = sUnknown_80DC968;
|
||||
sFriendList->unk358.s0.unk38->header = &sFriendList->unk358.header;
|
||||
sFriendList->unk358.m.menuWinId = windowId;
|
||||
sFriendList->unk358.m.menuWindow = &sFriendList->unk358.m.windows.id[windowId];
|
||||
RestoreSavedWindows(&sFriendList->unk358.m.windows);
|
||||
sFriendList->unk358.m.windows.id[sFriendList->unk358.m.menuWinId] = sUnknown_80DC968;
|
||||
sFriendList->unk358.m.menuWindow->header = &sFriendList->unk358.header;
|
||||
if (pos != NULL) {
|
||||
sFriendList->unk358.s0.windows.id[sFriendList->unk358.s0.winId].pos = *pos;
|
||||
sFriendList->unk358.m.windows.id[sFriendList->unk358.m.menuWinId].pos = *pos;
|
||||
}
|
||||
sub_8012D08(sFriendList->unk358.s0.unk38, r10);
|
||||
sub_8012D08(sFriendList->unk358.m.menuWindow, r10);
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&sFriendList->unk358.s0.windows, TRUE, TRUE);
|
||||
CreateMenuOnWindow(&sFriendList->unk358.s0.input, sub_8023F8C(), r10, windowId);
|
||||
ShowWindows(&sFriendList->unk358.m.windows, TRUE, TRUE);
|
||||
CreateMenuOnWindow(&sFriendList->unk358.m.input, sub_8023F8C(), r10, windowId);
|
||||
if (gUnknown_203B2A0 == sFriendList->unk0) {
|
||||
sFriendList->unk358.s0.input.menuIndex = gUnknown_203B2A8;
|
||||
sFriendList->unk358.s0.input.currPage = gUnknown_203B2AA;
|
||||
MenuUpdatePagesData(&sFriendList->unk358.s0.input);
|
||||
sFriendList->unk358.m.input.menuIndex = gUnknown_203B2A8;
|
||||
sFriendList->unk358.m.input.currPage = gUnknown_203B2AA;
|
||||
MenuUpdatePagesData(&sFriendList->unk358.m.input);
|
||||
}
|
||||
SetUpWindowHeader();
|
||||
FriendList_ShowWindow();
|
||||
@@ -126,11 +126,11 @@ bool8 FriendList_Init(u32 r5, u32 windowId, DungeonPos *pos, u32 r10)
|
||||
u32 FriendList_HandleInput(bool8 a0)
|
||||
{
|
||||
if (!a0) {
|
||||
sub_8013660(&sFriendList->unk358.s0.input);
|
||||
sub_8013660(&sFriendList->unk358.m.input);
|
||||
return 0;
|
||||
}
|
||||
|
||||
switch (GetKeyPress(&sFriendList->unk358.s0.input)) {
|
||||
switch (GetKeyPress(&sFriendList->unk358.m.input)) {
|
||||
case INPUT_B_BUTTON:
|
||||
PlayMenuSoundEffect(1);
|
||||
return 2;
|
||||
@@ -148,7 +148,7 @@ u32 FriendList_HandleInput(bool8 a0)
|
||||
FriendList_ShowWindow();
|
||||
return 1;
|
||||
default:
|
||||
if (MenuCursorUpdate(&sFriendList->unk358.s0.input, TRUE)) {
|
||||
if (MenuCursorUpdate(&sFriendList->unk358.m.input, TRUE)) {
|
||||
SetUpWindowHeader();
|
||||
FriendList_ShowWindow();
|
||||
return 1;
|
||||
@@ -159,19 +159,19 @@ u32 FriendList_HandleInput(bool8 a0)
|
||||
|
||||
s32 FriendList_GetCurrId(void)
|
||||
{
|
||||
return sFriendList->unk1A[GET_CURRENT_MENU_ENTRY(sFriendList->unk358.s0.input)];
|
||||
return sFriendList->unk1A[GET_CURRENT_MENU_ENTRY(sFriendList->unk358.m.input)];
|
||||
}
|
||||
|
||||
void sub_8023B7C(bool8 addCursor)
|
||||
{
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&sFriendList->unk358.s0.windows, FALSE, FALSE);
|
||||
sFriendList->unk358.s0.input.totalEntriesCount = sub_8023BD8();
|
||||
MenuUpdatePagesData(&sFriendList->unk358.s0.input);
|
||||
ShowWindows(&sFriendList->unk358.m.windows, FALSE, FALSE);
|
||||
sFriendList->unk358.m.input.totalEntriesCount = sub_8023BD8();
|
||||
MenuUpdatePagesData(&sFriendList->unk358.m.input);
|
||||
SetUpWindowHeader();
|
||||
FriendList_ShowWindow();
|
||||
if (addCursor) {
|
||||
AddMenuCursorSprite(&sFriendList->unk358.s0.input);
|
||||
AddMenuCursorSprite(&sFriendList->unk358.m.input);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -197,11 +197,11 @@ void FriendList_Free(void)
|
||||
if (sFriendList != NULL) {
|
||||
gUnknown_203B2A0 = sFriendList->unk0;
|
||||
gUnknown_203B2A4 = sFriendList->sortMethod;
|
||||
gUnknown_203B2A8 = sFriendList->unk358.s0.input.menuIndex;
|
||||
gUnknown_203B2AA = sFriendList->unk358.s0.input.currPage;
|
||||
sFriendList->unk358.s0.windows.id[sFriendList->unk358.s0.winId] = sDummyWinTemplate;
|
||||
gUnknown_203B2A8 = sFriendList->unk358.m.input.menuIndex;
|
||||
gUnknown_203B2AA = sFriendList->unk358.m.input.currPage;
|
||||
sFriendList->unk358.m.windows.id[sFriendList->unk358.m.menuWinId] = sDummyWinTemplate;
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&sFriendList->unk358.s0.windows, TRUE, TRUE);
|
||||
ShowWindows(&sFriendList->unk358.m.windows, TRUE, TRUE);
|
||||
MemoryFree(sFriendList);
|
||||
sFriendList = NULL;
|
||||
}
|
||||
@@ -229,7 +229,7 @@ static void SetUpWindowHeader(void)
|
||||
break;
|
||||
}
|
||||
|
||||
SUB_80095E4_CALL_2(sFriendList->unk358.s0);
|
||||
UPDATE_MENU_WINDOW_HEIGHT_2(sFriendList->unk358.m);
|
||||
}
|
||||
|
||||
void FriendList_ShowWindow(void)
|
||||
@@ -239,27 +239,27 @@ void FriendList_ShowWindow(void)
|
||||
u8 nameTxtBuff[POKEMON_NAME_LENGTH * 2];
|
||||
u8 txtBuff3[20];
|
||||
|
||||
CallPrepareTextbox_8008C54(sFriendList->unk358.s0.winId);
|
||||
sub_80073B8(sFriendList->unk358.s0.winId);
|
||||
CallPrepareTextbox_8008C54(sFriendList->unk358.m.menuWinId);
|
||||
sub_80073B8(sFriendList->unk358.m.menuWinId);
|
||||
switch (sFriendList->unk0) {
|
||||
case 2:
|
||||
sub_80920D8(winTxtBuff);
|
||||
PrintStringOnWindow(10, 0, winTxtBuff, sFriendList->unk358.s0.winId, '\0');
|
||||
PrintStringOnWindow(10, 0, winTxtBuff, sFriendList->unk358.m.menuWinId, '\0');
|
||||
break;
|
||||
case 4:
|
||||
PrintStringOnWindow(10, 0, "Friends", sFriendList->unk358.s0.winId, '\0');
|
||||
PrintStringOnWindow(10, 0, "Friends", sFriendList->unk358.m.menuWinId, '\0');
|
||||
x = (sFriendList->unk358.header.width * 8) + 4;
|
||||
sub_8012BC4(x, 0, sFriendList->unk358.s0.input.currPage + 1, 2, 7, sFriendList->unk358.s0.winId);
|
||||
sub_8012BC4(x, 0, sFriendList->unk358.m.input.currPage + 1, 2, 7, sFriendList->unk358.m.menuWinId);
|
||||
break;
|
||||
default:
|
||||
PrintStringOnWindow(10, 0, _("Pokémon Friends"), sFriendList->unk358.s0.winId, '\0');
|
||||
PrintStringOnWindow(10, 0, _("Pokémon Friends"), sFriendList->unk358.m.menuWinId, '\0');
|
||||
x = (sFriendList->unk358.header.width * 8) + 4;
|
||||
sub_8012BC4(x, 0, sFriendList->unk358.s0.input.currPage + 1, 2, 7, sFriendList->unk358.s0.winId);
|
||||
sub_8012BC4(x, 0, sFriendList->unk358.m.input.currPage + 1, 2, 7, sFriendList->unk358.m.menuWinId);
|
||||
break;
|
||||
}
|
||||
|
||||
for (i = 0; i < sFriendList->unk358.s0.input.currPageEntries; i++) {
|
||||
s32 id = sFriendList->unk1A[(sFriendList->unk358.s0.input.currPage * sFriendList->unk358.s0.input.entriesPerPage) + i];
|
||||
for (i = 0; i < sFriendList->unk358.m.input.currPageEntries; i++) {
|
||||
s32 id = sFriendList->unk1A[(sFriendList->unk358.m.input.currPage * sFriendList->unk358.m.input.entriesPerPage) + i];
|
||||
PokemonStruct1 *pokePtr = &gRecruitedPokemonRef->pokemon[id];
|
||||
u8 color = 7;
|
||||
|
||||
@@ -294,9 +294,9 @@ void FriendList_ShowWindow(void)
|
||||
StrncpyCustom(nameTxtBuff, pokePtr->name, POKEMON_NAME_LENGTH);
|
||||
sub_808D930(txtBuff3, pokePtr->speciesNum);
|
||||
sprintfStatic(winTxtBuff, _("{color}%c%s{reset}"), color, nameTxtBuff);
|
||||
PrintStringOnWindow(8, GetMenuEntryYCoord(&sFriendList->unk358.s0.input, i), winTxtBuff, sFriendList->unk358.s0.winId, '\0');
|
||||
PrintStringOnWindow(8, GetMenuEntryYCoord(&sFriendList->unk358.m.input, i), winTxtBuff, sFriendList->unk358.m.menuWinId, '\0');
|
||||
}
|
||||
sub_80073E0(sFriendList->unk358.s0.winId);
|
||||
sub_80073E0(sFriendList->unk358.m.menuWinId);
|
||||
}
|
||||
|
||||
static s32 sub_8023F8C(void)
|
||||
@@ -468,7 +468,7 @@ UNUSED static PokemonStruct1 *sub_80243E8(void)
|
||||
{
|
||||
u8 buffer[40];
|
||||
u8 nameBuffer[20];
|
||||
PokemonStruct1 *pokeStruct = &gRecruitedPokemonRef->pokemon[sFriendList->unk1A[GET_CURRENT_MENU_ENTRY(sFriendList->unk358.s0.input)]];
|
||||
PokemonStruct1 *pokeStruct = &gRecruitedPokemonRef->pokemon[sFriendList->unk1A[GET_CURRENT_MENU_ENTRY(sFriendList->unk358.m.input)]];
|
||||
|
||||
StrncpyCustom(nameBuffer, pokeStruct->name, POKEMON_NAME_LENGTH);
|
||||
sprintfStatic(buffer, "%s", nameBuffer);
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#include "global.h"
|
||||
#include "globaldata.h"
|
||||
#include "structs/struct_sub80095e4.h"
|
||||
#include "text_3.h"
|
||||
#include "music_util.h"
|
||||
#include "common_strings.h"
|
||||
#include "hints_menu1.h"
|
||||
@@ -10,7 +10,7 @@
|
||||
#include "text_1.h"
|
||||
#include "text_2.h"
|
||||
|
||||
static EWRAM_INIT struct_Sub80095E4 *sUnknown_203B264 = {NULL};
|
||||
static EWRAM_INIT MenuWindow *sUnknown_203B264 = {NULL};
|
||||
|
||||
#include "data/hints_menu1.h"
|
||||
|
||||
@@ -23,11 +23,11 @@ bool8 sub_801E3F0(u32 a0)
|
||||
if (sUnknown_203B264 == NULL)
|
||||
sUnknown_203B264 = MemoryAlloc(sizeof(*sUnknown_203B264), 8);
|
||||
|
||||
sUnknown_203B264->winId = a0;
|
||||
sUnknown_203B264->unk38 = &sUnknown_203B264->windows.id[a0];
|
||||
sUnknown_203B264->menuWinId = a0;
|
||||
sUnknown_203B264->menuWindow = &sUnknown_203B264->windows.id[a0];
|
||||
RestoreSavedWindows(&sUnknown_203B264->windows);
|
||||
sUnknown_203B264->windows.id[sUnknown_203B264->winId] = sUnknown_80DC0BC;
|
||||
sub_8012D08(sUnknown_203B264->unk38, 10);
|
||||
sUnknown_203B264->windows.id[sUnknown_203B264->menuWinId] = sUnknown_80DC0BC;
|
||||
sub_8012D08(sUnknown_203B264->menuWindow, 10);
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&sUnknown_203B264->windows, TRUE, TRUE);
|
||||
CreateMenuOnWindow(&sUnknown_203B264->input, 5, 10, a0);
|
||||
@@ -86,7 +86,7 @@ void CreateHintSelectionScreen(bool8 cursorSprite)
|
||||
void sub_801E54C(void)
|
||||
{
|
||||
if (sUnknown_203B264 != NULL) {
|
||||
sUnknown_203B264->windows.id[sUnknown_203B264->winId] = sUnknown_80DC0A0;
|
||||
sUnknown_203B264->windows.id[sUnknown_203B264->menuWinId] = sUnknown_80DC0A0;
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&sUnknown_203B264->windows, TRUE, TRUE);
|
||||
MemoryFree(sUnknown_203B264);
|
||||
@@ -96,7 +96,7 @@ void sub_801E54C(void)
|
||||
|
||||
static void sub_801E594(void)
|
||||
{
|
||||
SUB_80095E4_CALL(*sUnknown_203B264);
|
||||
UPDATE_MENU_WINDOW_HEIGHT(*sUnknown_203B264);
|
||||
}
|
||||
|
||||
static void DrawHintSelectionMenu(void)
|
||||
@@ -104,14 +104,14 @@ static void DrawHintSelectionMenu(void)
|
||||
s32 hintIndex;
|
||||
s32 y;
|
||||
|
||||
CallPrepareTextbox_8008C54(sUnknown_203B264->winId);
|
||||
sub_80073B8(sUnknown_203B264->winId);
|
||||
PrintStringOnWindow(16, 0, sHints, sUnknown_203B264->winId, 0);
|
||||
CallPrepareTextbox_8008C54(sUnknown_203B264->menuWinId);
|
||||
sub_80073B8(sUnknown_203B264->menuWinId);
|
||||
PrintStringOnWindow(16, 0, sHints, sUnknown_203B264->menuWinId, 0);
|
||||
|
||||
for (hintIndex = 0; hintIndex < HINT_MAX; hintIndex++) {
|
||||
y = GetMenuEntryYCoord(&sUnknown_203B264->input, hintIndex);
|
||||
PrintStringOnWindow(10, y, gCommonHints[hintIndex].heading, sUnknown_203B264->winId, 0);
|
||||
PrintStringOnWindow(10, y, gCommonHints[hintIndex].heading, sUnknown_203B264->menuWinId, 0);
|
||||
}
|
||||
|
||||
sub_80073E0(sUnknown_203B264->winId);
|
||||
sub_80073E0(sUnknown_203B264->menuWinId);
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#include "global.h"
|
||||
#include "globaldata.h"
|
||||
#include "structs/struct_sub80095e4.h"
|
||||
#include "text_3.h"
|
||||
#include "music_util.h"
|
||||
#include "common_strings.h"
|
||||
#include "hints_menu2.h"
|
||||
@@ -9,7 +9,7 @@
|
||||
#include "menu_input.h"
|
||||
#include "text_1.h"
|
||||
|
||||
static EWRAM_INIT struct_Sub80095E4_2 *sUnknown_203B268 = {NULL};
|
||||
static EWRAM_INIT MenuHeaderWindow *sUnknown_203B268 = {NULL};
|
||||
|
||||
#include "data/hints_menu2.h"
|
||||
|
||||
@@ -20,16 +20,16 @@ static void sub_801E76C(void);
|
||||
|
||||
bool8 CreateHintDisplayScreen(u32 index)
|
||||
{
|
||||
sUnknown_203B268 = MemoryAlloc(sizeof(struct_Sub80095E4_2), 8);
|
||||
sUnknown_203B268->s0.winId = 0;
|
||||
sUnknown_203B268->s0.unk38 = &sUnknown_203B268->s0.windows.id[0];
|
||||
RestoreSavedWindows(&sUnknown_203B268->s0.windows);
|
||||
sUnknown_203B268->s0.windows.id[sUnknown_203B268->s0.winId] = sUnknown_80DC0FC;
|
||||
sUnknown_203B268->s0.unk38->header = &sUnknown_203B268->header;
|
||||
sUnknown_203B268 = MemoryAlloc(sizeof(MenuHeaderWindow), 8);
|
||||
sUnknown_203B268->m.menuWinId = 0;
|
||||
sUnknown_203B268->m.menuWindow = &sUnknown_203B268->m.windows.id[0];
|
||||
RestoreSavedWindows(&sUnknown_203B268->m.windows);
|
||||
sUnknown_203B268->m.windows.id[sUnknown_203B268->m.menuWinId] = sUnknown_80DC0FC;
|
||||
sUnknown_203B268->m.menuWindow->header = &sUnknown_203B268->header;
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&sUnknown_203B268->s0.windows, TRUE, TRUE);
|
||||
CreateMenuOnWindow(&sUnknown_203B268->s0.input, 5, 1, sUnknown_203B268->s0.winId);
|
||||
sUnknown_203B268->s0.input.currPage = index;
|
||||
ShowWindows(&sUnknown_203B268->m.windows, TRUE, TRUE);
|
||||
CreateMenuOnWindow(&sUnknown_203B268->m.input, 5, 1, sUnknown_203B268->m.menuWinId);
|
||||
sUnknown_203B268->m.input.currPage = index;
|
||||
sub_801E714();
|
||||
|
||||
return TRUE;
|
||||
@@ -37,7 +37,7 @@ bool8 CreateHintDisplayScreen(u32 index)
|
||||
|
||||
u32 HandleHintDisplayScreenInput(void)
|
||||
{
|
||||
switch (GetKeyPress(&sUnknown_203B268->s0.input)) {
|
||||
switch (GetKeyPress(&sUnknown_203B268->m.input)) {
|
||||
case 2:
|
||||
PlayMenuSoundEffect(1);
|
||||
return 2;
|
||||
@@ -45,7 +45,7 @@ u32 HandleHintDisplayScreenInput(void)
|
||||
PlayMenuSoundEffect(0);
|
||||
return 3;
|
||||
default:
|
||||
if (MenuCursorUpdateOnlyLeftRight(&sUnknown_203B268->s0.input)) {
|
||||
if (MenuCursorUpdateOnlyLeftRight(&sUnknown_203B268->m.input)) {
|
||||
sub_801E714();
|
||||
return 1;
|
||||
}
|
||||
@@ -62,9 +62,9 @@ static void sub_801E714(void)
|
||||
void DestroyHintDisplayScreen(void)
|
||||
{
|
||||
if (sUnknown_203B268 != NULL) {
|
||||
sUnknown_203B268->s0.windows.id[sUnknown_203B268->s0.winId] = sUnknown_80DC0E4;
|
||||
sUnknown_203B268->m.windows.id[sUnknown_203B268->m.menuWinId] = sUnknown_80DC0E4;
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&sUnknown_203B268->s0.windows, TRUE, TRUE);
|
||||
ShowWindows(&sUnknown_203B268->m.windows, TRUE, TRUE);
|
||||
MemoryFree(sUnknown_203B268);
|
||||
sUnknown_203B268 = NULL;
|
||||
}
|
||||
@@ -72,18 +72,18 @@ void DestroyHintDisplayScreen(void)
|
||||
|
||||
static void sub_801E76C(void)
|
||||
{
|
||||
sUnknown_203B268->header.count = sUnknown_203B268->s0.input.pagesCount;
|
||||
sUnknown_203B268->header.currId = sUnknown_203B268->s0.input.currPage;
|
||||
sUnknown_203B268->header.count = sUnknown_203B268->m.input.pagesCount;
|
||||
sUnknown_203B268->header.currId = sUnknown_203B268->m.input.currPage;
|
||||
sUnknown_203B268->header.width = 15;
|
||||
sUnknown_203B268->header.f3 = 0;
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&sUnknown_203B268->s0.windows, TRUE, TRUE);
|
||||
ShowWindows(&sUnknown_203B268->m.windows, TRUE, TRUE);
|
||||
}
|
||||
|
||||
static void DisplayChosenHint(void)
|
||||
{
|
||||
sub_80073B8(sUnknown_203B268->s0.winId);
|
||||
PrintStringOnWindow((sUnknown_203B268->s0.input.currPage * 8) + 16, 0, gCommonHints[sUnknown_203B268->s0.input.currPage].heading, sUnknown_203B268->s0.winId, 0);
|
||||
PrintStringOnWindow(10, 20, gCommonHints[sUnknown_203B268->s0.input.currPage].body, sUnknown_203B268->s0.winId, 0);
|
||||
sub_80073E0(sUnknown_203B268->s0.winId);
|
||||
sub_80073B8(sUnknown_203B268->m.menuWinId);
|
||||
PrintStringOnWindow((sUnknown_203B268->m.input.currPage * 8) + 16, 0, gCommonHints[sUnknown_203B268->m.input.currPage].heading, sUnknown_203B268->m.menuWinId, 0);
|
||||
PrintStringOnWindow(10, 20, gCommonHints[sUnknown_203B268->m.input.currPage].body, sUnknown_203B268->m.menuWinId, 0);
|
||||
sub_80073E0(sUnknown_203B268->m.menuWinId);
|
||||
}
|
||||
|
||||
@@ -30,15 +30,15 @@ bool8 CreateIQSkillListMenu(s16 species, u32 index, u32 a2)
|
||||
sIQSkillListMenu->species = species_s32;
|
||||
sIQSkillListMenu->pokeStruct = &gRecruitedPokemonRef->pokemon[species_s32];
|
||||
sIQSkillListMenu->numIQSkills = GetNumAvailableIQSkills(sIQSkillListMenu->iqSkills, sIQSkillListMenu->pokeStruct->IQ);
|
||||
sIQSkillListMenu->s24.s0.winId = index;
|
||||
sIQSkillListMenu->s24.s0.unk38 = &sIQSkillListMenu->s24.s0.windows.id[index];
|
||||
RestoreSavedWindows(&sIQSkillListMenu->s24.s0.windows);
|
||||
sIQSkillListMenu->s24.s0.windows.id[sIQSkillListMenu->s24.s0.winId] = sUnknown_80DBDF0;
|
||||
sIQSkillListMenu->s24.s0.unk38->header = &sIQSkillListMenu->s24.header;
|
||||
sub_8012D08(sIQSkillListMenu->s24.s0.unk38, a2);
|
||||
sIQSkillListMenu->s24.m.menuWinId = index;
|
||||
sIQSkillListMenu->s24.m.menuWindow = &sIQSkillListMenu->s24.m.windows.id[index];
|
||||
RestoreSavedWindows(&sIQSkillListMenu->s24.m.windows);
|
||||
sIQSkillListMenu->s24.m.windows.id[sIQSkillListMenu->s24.m.menuWinId] = sUnknown_80DBDF0;
|
||||
sIQSkillListMenu->s24.m.menuWindow->header = &sIQSkillListMenu->s24.header;
|
||||
sub_8012D08(sIQSkillListMenu->s24.m.menuWindow, a2);
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&sIQSkillListMenu->s24.s0.windows, TRUE, TRUE);
|
||||
CreateMenuOnWindow(&sIQSkillListMenu->s24.s0.input, sIQSkillListMenu->numIQSkills, a2, index);
|
||||
ShowWindows(&sIQSkillListMenu->s24.m.windows, TRUE, TRUE);
|
||||
CreateMenuOnWindow(&sIQSkillListMenu->s24.m.input, sIQSkillListMenu->numIQSkills, a2, index);
|
||||
sub_801C440();
|
||||
BuildIQSkillList();
|
||||
return TRUE;
|
||||
@@ -47,11 +47,11 @@ bool8 CreateIQSkillListMenu(s16 species, u32 index, u32 a2)
|
||||
u32 HandleIQSkillListMenuInput(bool8 a0)
|
||||
{
|
||||
if (!a0) {
|
||||
sub_8013660(&sIQSkillListMenu->s24.s0.input);
|
||||
sub_8013660(&sIQSkillListMenu->s24.m.input);
|
||||
return 0;
|
||||
}
|
||||
|
||||
switch (GetKeyPress(&sIQSkillListMenu->s24.s0.input)) {
|
||||
switch (GetKeyPress(&sIQSkillListMenu->s24.m.input)) {
|
||||
case INPUT_B_BUTTON:
|
||||
PlayMenuSoundEffect(1);
|
||||
return 2;
|
||||
@@ -62,7 +62,7 @@ u32 HandleIQSkillListMenuInput(bool8 a0)
|
||||
PlayMenuSoundEffect(4);
|
||||
return 4;
|
||||
default:
|
||||
if (MenuCursorUpdate(&sIQSkillListMenu->s24.s0.input, 1) != 0) {
|
||||
if (MenuCursorUpdate(&sIQSkillListMenu->s24.m.input, 1) != 0) {
|
||||
sub_801C440();
|
||||
BuildIQSkillList();
|
||||
return 1;
|
||||
@@ -73,28 +73,28 @@ u32 HandleIQSkillListMenuInput(bool8 a0)
|
||||
|
||||
s32 GetIQSkillSelection(void)
|
||||
{
|
||||
return GET_CURRENT_MENU_ENTRY(sIQSkillListMenu->s24.s0.input);
|
||||
return GET_CURRENT_MENU_ENTRY(sIQSkillListMenu->s24.m.input);
|
||||
}
|
||||
|
||||
void RedrawIQSkillListMenu(bool8 addCursor)
|
||||
{
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&sIQSkillListMenu->s24.s0.windows, FALSE, FALSE);
|
||||
sIQSkillListMenu->s24.s0.input.totalEntriesCount = sIQSkillListMenu->numIQSkills;
|
||||
MenuUpdatePagesData(&sIQSkillListMenu->s24.s0.input);
|
||||
ShowWindows(&sIQSkillListMenu->s24.m.windows, FALSE, FALSE);
|
||||
sIQSkillListMenu->s24.m.input.totalEntriesCount = sIQSkillListMenu->numIQSkills;
|
||||
MenuUpdatePagesData(&sIQSkillListMenu->s24.m.input);
|
||||
sub_801C440();
|
||||
BuildIQSkillList();
|
||||
|
||||
if (addCursor)
|
||||
AddMenuCursorSprite(&sIQSkillListMenu->s24.s0.input);
|
||||
AddMenuCursorSprite(&sIQSkillListMenu->s24.m.input);
|
||||
}
|
||||
|
||||
void CleanIQSkillListMenu(void)
|
||||
{
|
||||
if (sIQSkillListMenu != NULL) {
|
||||
sIQSkillListMenu->s24.s0.windows.id[sIQSkillListMenu->s24.s0.winId] = sUnknown_80DBDD8;
|
||||
sIQSkillListMenu->s24.m.windows.id[sIQSkillListMenu->s24.m.menuWinId] = sUnknown_80DBDD8;
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&sIQSkillListMenu->s24.s0.windows, TRUE, TRUE);
|
||||
ShowWindows(&sIQSkillListMenu->s24.m.windows, TRUE, TRUE);
|
||||
MemoryFree(sIQSkillListMenu);
|
||||
sIQSkillListMenu = NULL;
|
||||
}
|
||||
@@ -102,13 +102,13 @@ void CleanIQSkillListMenu(void)
|
||||
|
||||
static void sub_801C440(void)
|
||||
{
|
||||
sIQSkillListMenu->s24.header.count = sIQSkillListMenu->s24.s0.input.pagesCount;
|
||||
sIQSkillListMenu->s24.header.currId = sIQSkillListMenu->s24.s0.input.currPage;
|
||||
sIQSkillListMenu->s24.header.count = sIQSkillListMenu->s24.m.input.pagesCount;
|
||||
sIQSkillListMenu->s24.header.currId = sIQSkillListMenu->s24.m.input.currPage;
|
||||
sIQSkillListMenu->s24.header.width = 10;
|
||||
sIQSkillListMenu->s24.header.f3 = 0;
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&sIQSkillListMenu->s24.s0.windows, TRUE, TRUE);
|
||||
SUB_80095E4_CALL_2(sIQSkillListMenu->s24.s0);
|
||||
ShowWindows(&sIQSkillListMenu->s24.m.windows, TRUE, TRUE);
|
||||
UPDATE_MENU_WINDOW_HEIGHT_2(sIQSkillListMenu->s24.m);
|
||||
}
|
||||
|
||||
void BuildIQSkillList(void)
|
||||
@@ -119,21 +119,21 @@ void BuildIQSkillList(void)
|
||||
u32 skillIndex;
|
||||
s32 counter;
|
||||
|
||||
CallPrepareTextbox_8008C54(sIQSkillListMenu->s24.s0.winId);
|
||||
sub_80073B8(sIQSkillListMenu->s24.s0.winId);
|
||||
x = sIQSkillListMenu->s24.s0.input.currPage * 8;
|
||||
CallPrepareTextbox_8008C54(sIQSkillListMenu->s24.m.menuWinId);
|
||||
sub_80073B8(sIQSkillListMenu->s24.m.menuWinId);
|
||||
x = sIQSkillListMenu->s24.m.input.currPage * 8;
|
||||
x2 = x;
|
||||
x2 += 10;
|
||||
PrintStringOnWindow(x2, 0, sIQSkills, sIQSkillListMenu->s24.s0.winId, 0);
|
||||
PrintStringOnWindow(x2, 0, sIQSkills, sIQSkillListMenu->s24.m.menuWinId, 0);
|
||||
|
||||
x += 4;
|
||||
x2 = x + sIQSkillListMenu->s24.header.width * 8;
|
||||
sub_8012BC4(x2, 0, sIQSkillListMenu->s24.s0.input.currPage + 1, 1, 7, sIQSkillListMenu->s24.s0.winId);
|
||||
sub_8012BC4(x2, 0, sIQSkillListMenu->s24.m.input.currPage + 1, 1, 7, sIQSkillListMenu->s24.m.menuWinId);
|
||||
|
||||
for (counter = 0; counter < sIQSkillListMenu->s24.s0.input.currPageEntries; counter++) {
|
||||
skillIndex = sIQSkillListMenu->iqSkills[(sIQSkillListMenu->s24.s0.input.currPage * sIQSkillListMenu->s24.s0.input.entriesPerPage) + counter];
|
||||
for (counter = 0; counter < sIQSkillListMenu->s24.m.input.currPageEntries; counter++) {
|
||||
skillIndex = sIQSkillListMenu->iqSkills[(sIQSkillListMenu->s24.m.input.currPage * sIQSkillListMenu->s24.m.input.entriesPerPage) + counter];
|
||||
|
||||
y = GetMenuEntryYCoord(&sIQSkillListMenu->s24.s0.input, counter);
|
||||
y = GetMenuEntryYCoord(&sIQSkillListMenu->s24.m.input, counter);
|
||||
strncpy(gFormatBuffer_Items[1], GetIQSkillName(skillIndex), 80);
|
||||
|
||||
if (IsIQSkillSet(&sIQSkillListMenu->pokeStruct->IQSkills, 1 << skillIndex))
|
||||
@@ -141,10 +141,10 @@ void BuildIQSkillList(void)
|
||||
else
|
||||
strcpy(gFormatBuffer_Items[1] - 80, sUnknown_80DBE18);
|
||||
|
||||
PrintFormattedStringOnWindow(12, y, sFmt01, sIQSkillListMenu->s24.s0.winId, 0);
|
||||
PrintFormattedStringOnWindow(12, y, sFmt01, sIQSkillListMenu->s24.m.menuWinId, 0);
|
||||
}
|
||||
|
||||
sub_80073E0(sIQSkillListMenu->s24.s0.winId);
|
||||
sub_80073E0(sIQSkillListMenu->s24.m.menuWinId);
|
||||
}
|
||||
|
||||
bool8 HasNoAvailIQSkills(s16 species)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#include "global.h"
|
||||
#include "globaldata.h"
|
||||
#include "constants/input.h"
|
||||
#include "structs/struct_sub80095e4.h"
|
||||
#include "text_3.h"
|
||||
#include "code_800D090.h"
|
||||
#include "music_util.h"
|
||||
#include "input.h"
|
||||
@@ -12,7 +12,7 @@
|
||||
#include "text_1.h"
|
||||
#include "text_2.h"
|
||||
|
||||
static EWRAM_INIT struct_Sub80095E4_2 *gUnknown_203B214 = {NULL};
|
||||
static EWRAM_INIT MenuHeaderWindow *gUnknown_203B214 = {NULL};
|
||||
static EWRAM_INIT u16 gUnknown_203B218 = {0};
|
||||
|
||||
#include "data/kecleon_bros2.h"
|
||||
@@ -26,16 +26,16 @@ bool8 sub_8019E40(u32 r0)
|
||||
return FALSE;
|
||||
|
||||
gUnknown_203B214 = MemoryAlloc(sizeof(*gUnknown_203B214), 8);
|
||||
gUnknown_203B214->s0.winId = r0;
|
||||
gUnknown_203B214->s0.unk38 = &gUnknown_203B214->s0.windows.id[gUnknown_203B214->s0.winId];
|
||||
RestoreSavedWindows(&gUnknown_203B214->s0.windows);
|
||||
gUnknown_203B214->s0.windows.id[gUnknown_203B214->s0.winId] = sUnknown_80DB8CC;
|
||||
gUnknown_203B214->s0.unk38->header = &gUnknown_203B214->header;
|
||||
gUnknown_203B214->m.menuWinId = r0;
|
||||
gUnknown_203B214->m.menuWindow = &gUnknown_203B214->m.windows.id[gUnknown_203B214->m.menuWinId];
|
||||
RestoreSavedWindows(&gUnknown_203B214->m.windows);
|
||||
gUnknown_203B214->m.windows.id[gUnknown_203B214->m.menuWinId] = sUnknown_80DB8CC;
|
||||
gUnknown_203B214->m.menuWindow->header = &gUnknown_203B214->header;
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&gUnknown_203B214->s0.windows, TRUE, TRUE);
|
||||
CreateMenuOnWindow(&gUnknown_203B214->s0.input, CountKecleonShopItems(), 10, r0);
|
||||
gUnknown_203B214->s0.input.menuIndex = gUnknown_203B218;
|
||||
MenuUpdatePagesData(&gUnknown_203B214->s0.input);
|
||||
ShowWindows(&gUnknown_203B214->m.windows, TRUE, TRUE);
|
||||
CreateMenuOnWindow(&gUnknown_203B214->m.input, CountKecleonShopItems(), 10, r0);
|
||||
gUnknown_203B214->m.input.menuIndex = gUnknown_203B218;
|
||||
MenuUpdatePagesData(&gUnknown_203B214->m.input);
|
||||
sub_801A064();
|
||||
sub_801A0D8();
|
||||
return TRUE;
|
||||
@@ -48,11 +48,11 @@ u32 sub_8019EDC(bool8 r0)
|
||||
BulkItem *item;
|
||||
|
||||
if (!r0) {
|
||||
sub_8013660(&gUnknown_203B214->s0.input);
|
||||
sub_8013660(&gUnknown_203B214->m.input);
|
||||
return 0;
|
||||
}
|
||||
|
||||
switch (GetKeyPress(&gUnknown_203B214->s0.input)) {
|
||||
switch (GetKeyPress(&gUnknown_203B214->m.input)) {
|
||||
case INPUT_B_BUTTON:
|
||||
PlayMenuSoundEffect(1);
|
||||
return 2;
|
||||
@@ -70,7 +70,7 @@ u32 sub_8019EDC(bool8 r0)
|
||||
PlayMenuSoundEffect(4);
|
||||
return 4;
|
||||
default:
|
||||
if (MenuCursorUpdate(&gUnknown_203B214->s0.input, 1) != FALSE) {
|
||||
if (MenuCursorUpdate(&gUnknown_203B214->m.input, 1) != FALSE) {
|
||||
sub_801A064();
|
||||
sub_801A0D8();
|
||||
return 1;
|
||||
@@ -82,30 +82,30 @@ u32 sub_8019EDC(bool8 r0)
|
||||
// arm9.bin::02025798
|
||||
u8 sub_8019FB0(void)
|
||||
{
|
||||
return GET_CURRENT_MENU_ENTRY(gUnknown_203B214->s0.input);
|
||||
return GET_CURRENT_MENU_ENTRY(gUnknown_203B214->m.input);
|
||||
}
|
||||
|
||||
// arm9.bin::02025738
|
||||
void sub_8019FCC(bool8 r0)
|
||||
{
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&gUnknown_203B214->s0.windows, FALSE, FALSE);
|
||||
gUnknown_203B214->s0.input.totalEntriesCount = CountKecleonShopItems();
|
||||
MenuUpdatePagesData(&gUnknown_203B214->s0.input);
|
||||
ShowWindows(&gUnknown_203B214->m.windows, FALSE, FALSE);
|
||||
gUnknown_203B214->m.input.totalEntriesCount = CountKecleonShopItems();
|
||||
MenuUpdatePagesData(&gUnknown_203B214->m.input);
|
||||
sub_801A064();
|
||||
sub_801A0D8();
|
||||
if (r0)
|
||||
AddMenuCursorSprite(&gUnknown_203B214->s0.input);
|
||||
AddMenuCursorSprite(&gUnknown_203B214->m.input);
|
||||
}
|
||||
|
||||
// arm9.bin::020256A8
|
||||
void sub_801A010(void)
|
||||
{
|
||||
if (gUnknown_203B214 != NULL) {
|
||||
gUnknown_203B218 = gUnknown_203B214->s0.input.menuIndex;
|
||||
gUnknown_203B214->s0.windows.id[gUnknown_203B214->s0.winId] = sUnknown_80DB8B4;
|
||||
gUnknown_203B218 = gUnknown_203B214->m.input.menuIndex;
|
||||
gUnknown_203B214->m.windows.id[gUnknown_203B214->m.menuWinId] = sUnknown_80DB8B4;
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&gUnknown_203B214->s0.windows, TRUE, TRUE);
|
||||
ShowWindows(&gUnknown_203B214->m.windows, TRUE, TRUE);
|
||||
MemoryFree(gUnknown_203B214);
|
||||
gUnknown_203B214 = NULL;
|
||||
}
|
||||
@@ -113,12 +113,12 @@ void sub_801A010(void)
|
||||
|
||||
static void sub_801A064(void)
|
||||
{
|
||||
gUnknown_203B214->header.count = gUnknown_203B214->s0.input.pagesCount;
|
||||
gUnknown_203B214->header.currId = gUnknown_203B214->s0.input.currPage;
|
||||
gUnknown_203B214->header.count = gUnknown_203B214->m.input.pagesCount;
|
||||
gUnknown_203B214->header.currId = gUnknown_203B214->m.input.currPage;
|
||||
gUnknown_203B214->header.width = 10;
|
||||
gUnknown_203B214->header.f3 = 0;
|
||||
|
||||
SUB_80095E4_CALL(gUnknown_203B214->s0);
|
||||
UPDATE_MENU_WINDOW_HEIGHT(gUnknown_203B214->m);
|
||||
}
|
||||
|
||||
// arm9.bin::02025480
|
||||
@@ -134,12 +134,12 @@ void sub_801A0D8(void)
|
||||
Item item;
|
||||
u8 temp_calc;
|
||||
|
||||
CallPrepareTextbox_8008C54(gUnknown_203B214->s0.winId);
|
||||
sub_80073B8(gUnknown_203B214->s0.winId);
|
||||
PrintStringOnWindow((gUnknown_203B214->s0.input.currPage * 8) + 10, 0, sGoods, gUnknown_203B214->s0.winId, 0);
|
||||
CallPrepareTextbox_8008C54(gUnknown_203B214->m.menuWinId);
|
||||
sub_80073B8(gUnknown_203B214->m.menuWinId);
|
||||
PrintStringOnWindow((gUnknown_203B214->m.input.currPage * 8) + 10, 0, sGoods, gUnknown_203B214->m.menuWinId, 0);
|
||||
|
||||
for (index = 0; index < gUnknown_203B214->s0.input.currPageEntries; index++) {
|
||||
temp_calc = (gUnknown_203B214->s0.input.currPage * gUnknown_203B214->s0.input.entriesPerPage) + index;
|
||||
for (index = 0; index < gUnknown_203B214->m.input.currPageEntries; index++) {
|
||||
temp_calc = (gUnknown_203B214->m.input.currPage * gUnknown_203B214->m.input.entriesPerPage) + index;
|
||||
heldItem = GetKecleonShopItem(temp_calc);
|
||||
item.id = heldItem->id;
|
||||
item.quantity = heldItem->quantity;
|
||||
@@ -152,15 +152,15 @@ void sub_801A0D8(void)
|
||||
buyPrice = GetStackBuyPrice(&item);
|
||||
|
||||
if (buyPrice <= gTeamInventoryRef->teamMoney) {
|
||||
y = GetMenuEntryYCoord(&gUnknown_203B214->s0.input, index);
|
||||
PrintStringOnWindow(8, y, auStack204, gUnknown_203B214->s0.winId, 0);
|
||||
y = GetMenuEntryYCoord(&gUnknown_203B214->m.input, index);
|
||||
PrintStringOnWindow(8, y, auStack204, gUnknown_203B214->m.menuWinId, 0);
|
||||
}
|
||||
else {
|
||||
sprintfStatic(auStack112, sFmtRed, auStack204);
|
||||
y = GetMenuEntryYCoord(&gUnknown_203B214->s0.input, index);
|
||||
PrintStringOnWindow(8, y, auStack112, gUnknown_203B214->s0.winId, 0);
|
||||
y = GetMenuEntryYCoord(&gUnknown_203B214->m.input, index);
|
||||
PrintStringOnWindow(8, y, auStack112, gUnknown_203B214->m.menuWinId, 0);
|
||||
}
|
||||
}
|
||||
|
||||
sub_80073E0(gUnknown_203B214->s0.winId);
|
||||
sub_80073E0(gUnknown_203B214->m.menuWinId);
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#include "global.h"
|
||||
#include "globaldata.h"
|
||||
#include "constants/input.h"
|
||||
#include "structs/struct_sub80095e4.h"
|
||||
#include "text_3.h"
|
||||
#include "code_800D090.h"
|
||||
#include "music_util.h"
|
||||
#include "input.h"
|
||||
@@ -12,7 +12,7 @@
|
||||
#include "text_1.h"
|
||||
#include "text_2.h"
|
||||
|
||||
static EWRAM_INIT struct_Sub80095E4_2 *gUnknown_203B21C = {NULL};
|
||||
static EWRAM_INIT MenuHeaderWindow *gUnknown_203B21C = {NULL};
|
||||
static EWRAM_INIT u16 gUnknown_203B220 = {0};
|
||||
|
||||
#include "data/kecleon_bros3.h"
|
||||
@@ -26,16 +26,16 @@ bool8 sub_801A20C(u32 r0)
|
||||
return FALSE;
|
||||
|
||||
gUnknown_203B21C = MemoryAlloc(sizeof(*gUnknown_203B21C), 8);
|
||||
gUnknown_203B21C->s0.winId = r0;
|
||||
gUnknown_203B21C->s0.unk38 = &gUnknown_203B21C->s0.windows.id[gUnknown_203B21C->s0.winId];
|
||||
RestoreSavedWindows(&gUnknown_203B21C->s0.windows);
|
||||
gUnknown_203B21C->s0.windows.id[gUnknown_203B21C->s0.winId] = sUnknown_80DB914;
|
||||
gUnknown_203B21C->s0.unk38->header = &gUnknown_203B21C->header;
|
||||
gUnknown_203B21C->m.menuWinId = r0;
|
||||
gUnknown_203B21C->m.menuWindow = &gUnknown_203B21C->m.windows.id[gUnknown_203B21C->m.menuWinId];
|
||||
RestoreSavedWindows(&gUnknown_203B21C->m.windows);
|
||||
gUnknown_203B21C->m.windows.id[gUnknown_203B21C->m.menuWinId] = sUnknown_80DB914;
|
||||
gUnknown_203B21C->m.menuWindow->header = &gUnknown_203B21C->header;
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&gUnknown_203B21C->s0.windows, TRUE, TRUE);
|
||||
CreateMenuOnWindow(&gUnknown_203B21C->s0.input, CountKecleonWareItems(), 10, r0);
|
||||
gUnknown_203B21C->s0.input.menuIndex = gUnknown_203B220;
|
||||
MenuUpdatePagesData(&gUnknown_203B21C->s0.input);
|
||||
ShowWindows(&gUnknown_203B21C->m.windows, TRUE, TRUE);
|
||||
CreateMenuOnWindow(&gUnknown_203B21C->m.input, CountKecleonWareItems(), 10, r0);
|
||||
gUnknown_203B21C->m.input.menuIndex = gUnknown_203B220;
|
||||
MenuUpdatePagesData(&gUnknown_203B21C->m.input);
|
||||
sub_801A430();
|
||||
sub_801A4A4();
|
||||
return TRUE;
|
||||
@@ -47,11 +47,11 @@ u32 sub_801A2A8(bool8 r0)
|
||||
BulkItem *item;
|
||||
|
||||
if (!r0) {
|
||||
sub_8013660(&gUnknown_203B21C->s0.input);
|
||||
sub_8013660(&gUnknown_203B21C->m.input);
|
||||
return 0;
|
||||
}
|
||||
|
||||
switch (GetKeyPress(&gUnknown_203B21C->s0.input)) {
|
||||
switch (GetKeyPress(&gUnknown_203B21C->m.input)) {
|
||||
case INPUT_B_BUTTON:
|
||||
PlayMenuSoundEffect(1);
|
||||
return 2;
|
||||
@@ -70,7 +70,7 @@ u32 sub_801A2A8(bool8 r0)
|
||||
PlayMenuSoundEffect(4);
|
||||
return 4;
|
||||
default:
|
||||
if (MenuCursorUpdate(&gUnknown_203B21C->s0.input, 1) != 0) {
|
||||
if (MenuCursorUpdate(&gUnknown_203B21C->m.input, 1) != 0) {
|
||||
sub_801A430();
|
||||
sub_801A4A4();
|
||||
return 1;
|
||||
@@ -82,30 +82,30 @@ u32 sub_801A2A8(bool8 r0)
|
||||
// arm9.bin::02025CC4
|
||||
u8 sub_801A37C(void)
|
||||
{
|
||||
return GET_CURRENT_MENU_ENTRY(gUnknown_203B21C->s0.input);
|
||||
return GET_CURRENT_MENU_ENTRY(gUnknown_203B21C->m.input);
|
||||
}
|
||||
|
||||
// arm9.bin::02025C64
|
||||
void sub_801A398(bool8 r0)
|
||||
{
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&gUnknown_203B21C->s0.windows, FALSE, FALSE);
|
||||
gUnknown_203B21C->s0.input.totalEntriesCount = CountKecleonWareItems();
|
||||
MenuUpdatePagesData(&gUnknown_203B21C->s0.input);
|
||||
ShowWindows(&gUnknown_203B21C->m.windows, FALSE, FALSE);
|
||||
gUnknown_203B21C->m.input.totalEntriesCount = CountKecleonWareItems();
|
||||
MenuUpdatePagesData(&gUnknown_203B21C->m.input);
|
||||
sub_801A430();
|
||||
sub_801A4A4();
|
||||
if (r0)
|
||||
AddMenuCursorSprite(&gUnknown_203B21C->s0.input);
|
||||
AddMenuCursorSprite(&gUnknown_203B21C->m.input);
|
||||
}
|
||||
|
||||
// arm9.bin::02025BD4
|
||||
void sub_801A3DC(void)
|
||||
{
|
||||
if (gUnknown_203B21C != NULL) {
|
||||
gUnknown_203B220 = gUnknown_203B21C->s0.input.menuIndex;
|
||||
gUnknown_203B21C->s0.windows.id[gUnknown_203B21C->s0.winId] = sUnknown_80DB8FC;
|
||||
gUnknown_203B220 = gUnknown_203B21C->m.input.menuIndex;
|
||||
gUnknown_203B21C->m.windows.id[gUnknown_203B21C->m.menuWinId] = sUnknown_80DB8FC;
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&gUnknown_203B21C->s0.windows, TRUE, TRUE);
|
||||
ShowWindows(&gUnknown_203B21C->m.windows, TRUE, TRUE);
|
||||
MemoryFree(gUnknown_203B21C);
|
||||
gUnknown_203B21C = NULL;
|
||||
}
|
||||
@@ -113,12 +113,12 @@ void sub_801A3DC(void)
|
||||
|
||||
static void sub_801A430(void)
|
||||
{
|
||||
gUnknown_203B21C->header.count = gUnknown_203B21C->s0.input.pagesCount;
|
||||
gUnknown_203B21C->header.currId = gUnknown_203B21C->s0.input.currPage;
|
||||
gUnknown_203B21C->header.count = gUnknown_203B21C->m.input.pagesCount;
|
||||
gUnknown_203B21C->header.currId = gUnknown_203B21C->m.input.currPage;
|
||||
gUnknown_203B21C->header.width = 10;
|
||||
gUnknown_203B21C->header.f3 = 0;
|
||||
|
||||
SUB_80095E4_CALL(gUnknown_203B21C->s0);
|
||||
UPDATE_MENU_WINDOW_HEIGHT(gUnknown_203B21C->m);
|
||||
}
|
||||
|
||||
// arm9.bin::020259AC
|
||||
@@ -134,12 +134,12 @@ void sub_801A4A4(void)
|
||||
Item item;
|
||||
u8 temp_calc;
|
||||
|
||||
CallPrepareTextbox_8008C54(gUnknown_203B21C->s0.winId);
|
||||
sub_80073B8(gUnknown_203B21C->s0.winId);
|
||||
PrintStringOnWindow(gUnknown_203B21C->s0.input.currPage * 8 + 10, 0, sGoods, gUnknown_203B21C->s0.winId, 0);
|
||||
CallPrepareTextbox_8008C54(gUnknown_203B21C->m.menuWinId);
|
||||
sub_80073B8(gUnknown_203B21C->m.menuWinId);
|
||||
PrintStringOnWindow(gUnknown_203B21C->m.input.currPage * 8 + 10, 0, sGoods, gUnknown_203B21C->m.menuWinId, 0);
|
||||
|
||||
for (index = 0; index < gUnknown_203B21C->s0.input.currPageEntries; index++) {
|
||||
temp_calc = (gUnknown_203B21C->s0.input.currPage * gUnknown_203B21C->s0.input.entriesPerPage) + index;
|
||||
for (index = 0; index < gUnknown_203B21C->m.input.currPageEntries; index++) {
|
||||
temp_calc = (gUnknown_203B21C->m.input.currPage * gUnknown_203B21C->m.input.entriesPerPage) + index;
|
||||
heldItem = GetKecleonWareItem(temp_calc);
|
||||
item.id = heldItem->id;
|
||||
item.quantity = heldItem->quantity;
|
||||
@@ -152,15 +152,15 @@ void sub_801A4A4(void)
|
||||
buyPrice = GetStackBuyPrice(&item);
|
||||
|
||||
if (buyPrice <= gTeamInventoryRef->teamMoney) {
|
||||
y = GetMenuEntryYCoord(&gUnknown_203B21C->s0.input, index);
|
||||
PrintStringOnWindow(8, y, buffer1, gUnknown_203B21C->s0.winId, 0);
|
||||
y = GetMenuEntryYCoord(&gUnknown_203B21C->m.input, index);
|
||||
PrintStringOnWindow(8, y, buffer1, gUnknown_203B21C->m.menuWinId, 0);
|
||||
}
|
||||
else {
|
||||
sprintfStatic(buffer2, sFmtRed, buffer1);
|
||||
y = GetMenuEntryYCoord(&gUnknown_203B21C->s0.input, index);
|
||||
PrintStringOnWindow(8, y, buffer2, gUnknown_203B21C->s0.winId, 0);
|
||||
y = GetMenuEntryYCoord(&gUnknown_203B21C->m.input, index);
|
||||
PrintStringOnWindow(8, y, buffer2, gUnknown_203B21C->m.menuWinId, 0);
|
||||
}
|
||||
}
|
||||
|
||||
sub_80073E0(gUnknown_203B21C->s0.winId);
|
||||
sub_80073E0(gUnknown_203B21C->m.menuWinId);
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
#include "constants/input.h"
|
||||
#include "constants/item.h"
|
||||
#include "structs/menu.h"
|
||||
#include "structs/struct_sub80095e4.h"
|
||||
#include "text_3.h"
|
||||
#include "code_800D090.h"
|
||||
#include "music_util.h"
|
||||
#include "code_8099360.h"
|
||||
@@ -21,7 +21,7 @@ typedef struct unkStruct_203B224
|
||||
{
|
||||
/* 0x0 */ u32 unk0;
|
||||
/* 0x4 */ u32 unk4[INVENTORY_SIZE];
|
||||
/* 0x54 */ struct_Sub80095E4_2 unk54;
|
||||
/* 0x54 */ MenuHeaderWindow unk54;
|
||||
} unkStruct_203B224;
|
||||
|
||||
static EWRAM_INIT unkStruct_203B224 *gUnknown_203B224 = {NULL};
|
||||
@@ -47,23 +47,23 @@ bool8 sub_801A5D8(u32 param_1, s32 param_2, DungeonPos *param_3, u32 param_4)
|
||||
gUnknown_203B224->unk0 = param_1;
|
||||
FillInventoryGaps();
|
||||
sub_801AE84();
|
||||
gUnknown_203B224->unk54.s0.winId = param_2;
|
||||
gUnknown_203B224->unk54.s0.unk38 = &gUnknown_203B224->unk54.s0.windows.id[param_2];
|
||||
RestoreSavedWindows(&gUnknown_203B224->unk54.s0.windows);
|
||||
gUnknown_203B224->unk54.s0.windows.id[gUnknown_203B224->unk54.s0.winId] = sUnknown_80DB95C;
|
||||
gUnknown_203B224->unk54.s0.unk38->header = &gUnknown_203B224->unk54.header;
|
||||
gUnknown_203B224->unk54.m.menuWinId = param_2;
|
||||
gUnknown_203B224->unk54.m.menuWindow = &gUnknown_203B224->unk54.m.windows.id[param_2];
|
||||
RestoreSavedWindows(&gUnknown_203B224->unk54.m.windows);
|
||||
gUnknown_203B224->unk54.m.windows.id[gUnknown_203B224->unk54.m.menuWinId] = sUnknown_80DB95C;
|
||||
gUnknown_203B224->unk54.m.menuWindow->header = &gUnknown_203B224->unk54.header;
|
||||
|
||||
if (param_3 != NULL)
|
||||
gUnknown_203B224->unk54.s0.windows.id[gUnknown_203B224->unk54.s0.winId].pos = *param_3;
|
||||
gUnknown_203B224->unk54.m.windows.id[gUnknown_203B224->unk54.m.menuWinId].pos = *param_3;
|
||||
|
||||
sub_8012D08(gUnknown_203B224->unk54.s0.unk38, param_4);
|
||||
sub_8012D08(gUnknown_203B224->unk54.m.menuWindow, param_4);
|
||||
sub_8099690(1);
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&gUnknown_203B224->unk54.s0.windows, TRUE, TRUE);
|
||||
CreateMenuOnWindow(&gUnknown_203B224->unk54.s0.input, GetNumberOfFilledInventorySlots(), param_4, param_2);
|
||||
gUnknown_203B224->unk54.s0.input.menuIndex = gUnknown_203B228;
|
||||
gUnknown_203B224->unk54.s0.input.currPage = gUnknown_203B22A;
|
||||
MenuUpdatePagesData(&gUnknown_203B224->unk54.s0.input);
|
||||
ShowWindows(&gUnknown_203B224->unk54.m.windows, TRUE, TRUE);
|
||||
CreateMenuOnWindow(&gUnknown_203B224->unk54.m.input, GetNumberOfFilledInventorySlots(), param_4, param_2);
|
||||
gUnknown_203B224->unk54.m.input.menuIndex = gUnknown_203B228;
|
||||
gUnknown_203B224->unk54.m.input.currPage = gUnknown_203B22A;
|
||||
MenuUpdatePagesData(&gUnknown_203B224->unk54.m.input);
|
||||
sub_801A998();
|
||||
sub_801A9E0();
|
||||
return TRUE;
|
||||
@@ -76,11 +76,11 @@ u32 sub_801A6E8(bool8 param_1)
|
||||
Item item;
|
||||
|
||||
if (param_1 == FALSE) {
|
||||
sub_8013660(&gUnknown_203B224->unk54.s0.input);
|
||||
sub_8013660(&gUnknown_203B224->unk54.m.input);
|
||||
return 0;
|
||||
}
|
||||
|
||||
switch (GetKeyPress(&gUnknown_203B224->unk54.s0.input)) {
|
||||
switch (GetKeyPress(&gUnknown_203B224->unk54.m.input)) {
|
||||
case INPUT_B_BUTTON:
|
||||
PlayMenuSoundEffect(1);
|
||||
return 2;
|
||||
@@ -125,7 +125,7 @@ u32 sub_801A6E8(bool8 param_1)
|
||||
if (gUnknown_203B224->unk4[index] != 0 || sub_801ADA0(index)) {
|
||||
PlayMenuSoundEffect(6);
|
||||
gUnknown_203B224->unk4[index] ^= 1;
|
||||
MenuCursorUpdate(&gUnknown_203B224->unk54.s0.input, 0);
|
||||
MenuCursorUpdate(&gUnknown_203B224->unk54.m.input, 0);
|
||||
sub_801A9E0();
|
||||
return 1;
|
||||
}
|
||||
@@ -141,7 +141,7 @@ u32 sub_801A6E8(bool8 param_1)
|
||||
// NOTE: fallthrough needed here
|
||||
default:
|
||||
_0801A87C:
|
||||
if (MenuCursorUpdate(&gUnknown_203B224->unk54.s0.input, 1) != FALSE) {
|
||||
if (MenuCursorUpdate(&gUnknown_203B224->unk54.m.input, 1) != FALSE) {
|
||||
sub_801A998();
|
||||
sub_801A9E0();
|
||||
return 1;
|
||||
@@ -155,7 +155,7 @@ u32 sub_801A6E8(bool8 param_1)
|
||||
// arm9.bin::02026934
|
||||
s32 sub_801A8AC(void)
|
||||
{
|
||||
return GET_CURRENT_MENU_ENTRY(gUnknown_203B224->unk54.s0.input);
|
||||
return GET_CURRENT_MENU_ENTRY(gUnknown_203B224->unk54.m.input);
|
||||
}
|
||||
|
||||
// arm9.bin::020268C0
|
||||
@@ -163,26 +163,26 @@ void sub_801A8D0(bool8 r0)
|
||||
{
|
||||
sub_8099690(1);
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&gUnknown_203B224->unk54.s0.windows, FALSE, FALSE);
|
||||
ShowWindows(&gUnknown_203B224->unk54.m.windows, FALSE, FALSE);
|
||||
FillInventoryGaps();
|
||||
gUnknown_203B224->unk54.s0.input.totalEntriesCount = GetNumberOfFilledInventorySlots();
|
||||
MenuUpdatePagesData(&gUnknown_203B224->unk54.s0.input);
|
||||
gUnknown_203B224->unk54.m.input.totalEntriesCount = GetNumberOfFilledInventorySlots();
|
||||
MenuUpdatePagesData(&gUnknown_203B224->unk54.m.input);
|
||||
sub_801A998();
|
||||
sub_801A9E0();
|
||||
if (r0)
|
||||
AddMenuCursorSprite(&gUnknown_203B224->unk54.s0.input);
|
||||
AddMenuCursorSprite(&gUnknown_203B224->unk54.m.input);
|
||||
}
|
||||
|
||||
// arm9.bin::02026818
|
||||
void sub_801A928(void)
|
||||
{
|
||||
if (gUnknown_203B224 != NULL) {
|
||||
gUnknown_203B228 = gUnknown_203B224->unk54.s0.input.menuIndex;
|
||||
gUnknown_203B22A = gUnknown_203B224->unk54.s0.input.currPage;
|
||||
gUnknown_203B224->unk54.s0.windows.id[gUnknown_203B224->unk54.s0.winId] = sUnknown_80DB944;
|
||||
gUnknown_203B228 = gUnknown_203B224->unk54.m.input.menuIndex;
|
||||
gUnknown_203B22A = gUnknown_203B224->unk54.m.input.currPage;
|
||||
gUnknown_203B224->unk54.m.windows.id[gUnknown_203B224->unk54.m.menuWinId] = sUnknown_80DB944;
|
||||
sub_8099690(0);
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&gUnknown_203B224->unk54.s0.windows, TRUE, TRUE);
|
||||
ShowWindows(&gUnknown_203B224->unk54.m.windows, TRUE, TRUE);
|
||||
MemoryFree(gUnknown_203B224);
|
||||
gUnknown_203B224 = NULL;
|
||||
}
|
||||
@@ -190,12 +190,12 @@ void sub_801A928(void)
|
||||
|
||||
static void sub_801A998(void)
|
||||
{
|
||||
gUnknown_203B224->unk54.header.count = gUnknown_203B224->unk54.s0.input.pagesCount;
|
||||
gUnknown_203B224->unk54.header.currId = gUnknown_203B224->unk54.s0.input.currPage;
|
||||
gUnknown_203B224->unk54.header.count = gUnknown_203B224->unk54.m.input.pagesCount;
|
||||
gUnknown_203B224->unk54.header.currId = gUnknown_203B224->unk54.m.input.currPage;
|
||||
gUnknown_203B224->unk54.header.width = 11;
|
||||
gUnknown_203B224->unk54.header.f3 = 0;
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&gUnknown_203B224->unk54.s0.windows, TRUE, TRUE);
|
||||
ShowWindows(&gUnknown_203B224->unk54.m.windows, TRUE, TRUE);
|
||||
}
|
||||
|
||||
// arm9.bin::020262DC
|
||||
@@ -207,23 +207,23 @@ void sub_801A9E0(void)
|
||||
u8 buf1[80]; // sp4
|
||||
Item item; // spC8
|
||||
|
||||
CallPrepareTextbox_8008C54(gUnknown_203B224->unk54.s0.winId);
|
||||
sub_80073B8(gUnknown_203B224->unk54.s0.winId);
|
||||
x = gUnknown_203B224->unk54.s0.input.currPage * 8 + 10;
|
||||
CallPrepareTextbox_8008C54(gUnknown_203B224->unk54.m.menuWinId);
|
||||
sub_80073B8(gUnknown_203B224->unk54.m.menuWinId);
|
||||
x = gUnknown_203B224->unk54.m.input.currPage * 8 + 10;
|
||||
|
||||
if (gUnknown_203B224->unk54.s0.input.currPage == 0)
|
||||
PrintStringOnWindow(x, 0, sTeamToolboxA, gUnknown_203B224->unk54.s0.winId, 0);
|
||||
if (gUnknown_203B224->unk54.m.input.currPage == 0)
|
||||
PrintStringOnWindow(x, 0, sTeamToolboxA, gUnknown_203B224->unk54.m.menuWinId, 0);
|
||||
else
|
||||
PrintStringOnWindow(x, 0, sTeamToolboxB, gUnknown_203B224->unk54.s0.winId, 0);
|
||||
PrintStringOnWindow(x, 0, sTeamToolboxB, gUnknown_203B224->unk54.m.menuWinId, 0);
|
||||
|
||||
for (r7 = 0; r7 < gUnknown_203B224->unk54.s0.input.currPageEntries; r7++) {
|
||||
teamItemIndex = (gUnknown_203B224->unk54.s0.input.currPage * gUnknown_203B224->unk54.s0.input.entriesPerPage) + r7;
|
||||
for (r7 = 0; r7 < gUnknown_203B224->unk54.m.input.currPageEntries; r7++) {
|
||||
teamItemIndex = (gUnknown_203B224->unk54.m.input.currPage * gUnknown_203B224->unk54.m.input.entriesPerPage) + r7;
|
||||
item = gTeamInventoryRef->teamItems[teamItemIndex];
|
||||
|
||||
switch (gUnknown_203B224->unk0) {
|
||||
case 0: {
|
||||
sub_8090E14(buf1, &item, 0);
|
||||
PrintStringOnWindow(8, GetMenuEntryYCoord(&gUnknown_203B224->unk54.s0.input, r7), buf1, gUnknown_203B224->unk54.s0.winId, 0);
|
||||
PrintStringOnWindow(8, GetMenuEntryYCoord(&gUnknown_203B224->unk54.m.input, r7), buf1, gUnknown_203B224->unk54.m.menuWinId, 0);
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
@@ -236,7 +236,7 @@ void sub_801A9E0(void)
|
||||
item.flags = 1;
|
||||
sub_8090E14(buf1, &item, &thing);
|
||||
|
||||
PrintStringOnWindow(8, GetMenuEntryYCoord(&gUnknown_203B224->unk54.s0.input, r7), buf1, gUnknown_203B224->unk54.s0.winId, 0);
|
||||
PrintStringOnWindow(8, GetMenuEntryYCoord(&gUnknown_203B224->unk54.m.input, r7), buf1, gUnknown_203B224->unk54.m.menuWinId, 0);
|
||||
break;
|
||||
}
|
||||
case 3: {
|
||||
@@ -249,10 +249,10 @@ void sub_801A9E0(void)
|
||||
sub_8090E14(buf1, &item, &thing);
|
||||
|
||||
if (gUnknown_203B224->unk4[teamItemIndex] != 0 || sub_801ADA0(teamItemIndex))
|
||||
PrintStringOnWindow(8,GetMenuEntryYCoord(&gUnknown_203B224->unk54.s0.input,r7), buf1, gUnknown_203B224->unk54.s0.winId, 0);
|
||||
PrintStringOnWindow(8,GetMenuEntryYCoord(&gUnknown_203B224->unk54.m.input,r7), buf1, gUnknown_203B224->unk54.m.menuWinId, 0);
|
||||
else {
|
||||
strncpy(gFormatBuffer_Items[0], buf1, 80);
|
||||
PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&gUnknown_203B224->unk54.s0.input, r7), sFmtMoveItem0, gUnknown_203B224->unk54.s0.winId, 0);
|
||||
PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&gUnknown_203B224->unk54.m.input, r7), sFmtMoveItem0, gUnknown_203B224->unk54.m.menuWinId, 0);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -270,15 +270,15 @@ void sub_801A9E0(void)
|
||||
|
||||
if (GetStackSellPrice(&item) + gTeamInventoryRef->teamMoney > MAX_TEAM_MONEY) {
|
||||
sprintfStatic(buf2, sFmtRed, buf1);
|
||||
PrintStringOnWindow(8, GetMenuEntryYCoord(&gUnknown_203B224->unk54.s0.input, r7), buf2, gUnknown_203B224->unk54.s0.winId, 0);
|
||||
PrintStringOnWindow(8, GetMenuEntryYCoord(&gUnknown_203B224->unk54.m.input, r7), buf2, gUnknown_203B224->unk54.m.menuWinId, 0);
|
||||
}
|
||||
else
|
||||
PrintStringOnWindow(8, GetMenuEntryYCoord(&gUnknown_203B224->unk54.s0.input, r7), buf1, gUnknown_203B224->unk54.s0.winId, 0);
|
||||
PrintStringOnWindow(8, GetMenuEntryYCoord(&gUnknown_203B224->unk54.m.input, r7), buf1, gUnknown_203B224->unk54.m.menuWinId, 0);
|
||||
}
|
||||
else {
|
||||
sub_8090E14(buf1, &item, 0);
|
||||
strncpy(gFormatBuffer_Items[0], buf1, 80);
|
||||
PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&gUnknown_203B224->unk54.s0.input, r7), sFmtMoveItem0, gUnknown_203B224->unk54.s0.winId, 0);
|
||||
PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&gUnknown_203B224->unk54.m.input, r7), sFmtMoveItem0, gUnknown_203B224->unk54.m.menuWinId, 0);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -293,20 +293,20 @@ void sub_801A9E0(void)
|
||||
sub_8090E14(buf1, &item, &thing);
|
||||
|
||||
if (IsGummiItem(item.id))
|
||||
PrintStringOnWindow(8, GetMenuEntryYCoord(&gUnknown_203B224->unk54.s0.input, r7), buf1, gUnknown_203B224->unk54.s0.winId, 0);
|
||||
PrintStringOnWindow(8, GetMenuEntryYCoord(&gUnknown_203B224->unk54.m.input, r7), buf1, gUnknown_203B224->unk54.m.menuWinId, 0);
|
||||
else {
|
||||
strncpy(gFormatBuffer_Items[0], buf1, 80);
|
||||
PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&gUnknown_203B224->unk54.s0.input, r7), sFmtMoveItem0, gUnknown_203B224->unk54.s0.winId, 0);
|
||||
PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&gUnknown_203B224->unk54.m.input, r7), sFmtMoveItem0, gUnknown_203B224->unk54.m.menuWinId, 0);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (sub_801AED0(teamItemIndex) & 1)
|
||||
sub_8007B7C(gUnknown_203B224->unk54.s0.winId, 8, GetMenuEntryYCoord(&gUnknown_203B224->unk54.s0.input, r7), (gUnknown_203B224->unk54.s0.unk38->width - 2) * 8, 10);
|
||||
sub_8007B7C(gUnknown_203B224->unk54.m.menuWinId, 8, GetMenuEntryYCoord(&gUnknown_203B224->unk54.m.input, r7), (gUnknown_203B224->unk54.m.menuWindow->width - 2) * 8, 10);
|
||||
}
|
||||
|
||||
sub_80073E0(gUnknown_203B224->unk54.s0.winId);
|
||||
sub_80073E0(gUnknown_203B224->unk54.m.menuWinId);
|
||||
}
|
||||
|
||||
// arm9.bin::02026234
|
||||
|
||||
@@ -31,19 +31,19 @@ bool8 sub_80302E8(s32 param_1, DungeonPos *param_2, u32 param_3)
|
||||
if (sMakuhitaDojoWork2 == NULL)
|
||||
sMakuhitaDojoWork2 = MemoryAlloc(sizeof(MakuhitaDojoWork2), 8);
|
||||
|
||||
sMakuhitaDojoWork2->s30.s0.winId = param_1;
|
||||
sMakuhitaDojoWork2->s30.s0.unk38 = &sMakuhitaDojoWork2->s30.s0.windows.id[param_1];
|
||||
RestoreSavedWindows(&sMakuhitaDojoWork2->s30.s0.windows);
|
||||
sMakuhitaDojoWork2->s30.s0.windows.id[sMakuhitaDojoWork2->s30.s0.winId] = sUnknown_80E0804;
|
||||
sMakuhitaDojoWork2->s30.s0.unk38->header = &sMakuhitaDojoWork2->s30.header;
|
||||
sMakuhitaDojoWork2->s30.m.menuWinId = param_1;
|
||||
sMakuhitaDojoWork2->s30.m.menuWindow = &sMakuhitaDojoWork2->s30.m.windows.id[param_1];
|
||||
RestoreSavedWindows(&sMakuhitaDojoWork2->s30.m.windows);
|
||||
sMakuhitaDojoWork2->s30.m.windows.id[sMakuhitaDojoWork2->s30.m.menuWinId] = sUnknown_80E0804;
|
||||
sMakuhitaDojoWork2->s30.m.menuWindow->header = &sMakuhitaDojoWork2->s30.header;
|
||||
|
||||
if (param_2 != NULL)
|
||||
sMakuhitaDojoWork2->s30.s0.windows.id[sMakuhitaDojoWork2->s30.s0.winId].pos = *param_2;
|
||||
sMakuhitaDojoWork2->s30.m.windows.id[sMakuhitaDojoWork2->s30.m.menuWinId].pos = *param_2;
|
||||
|
||||
sub_8012D08(sMakuhitaDojoWork2->s30.s0.unk38, param_3);
|
||||
sub_8012D08(sMakuhitaDojoWork2->s30.m.menuWindow, param_3);
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&sMakuhitaDojoWork2->s30.s0.windows, TRUE, TRUE);
|
||||
CreateMenuOnWindow(&sMakuhitaDojoWork2->s30.s0.input, sub_8030668(), param_3, param_1);
|
||||
ShowWindows(&sMakuhitaDojoWork2->s30.m.windows, TRUE, TRUE);
|
||||
CreateMenuOnWindow(&sMakuhitaDojoWork2->s30.m.input, sub_8030668(), param_3, param_1);
|
||||
sub_80304C8();
|
||||
MakuhitaDojo_DrawCourseList();
|
||||
return TRUE;
|
||||
@@ -52,11 +52,11 @@ bool8 sub_80302E8(s32 param_1, DungeonPos *param_2, u32 param_3)
|
||||
u32 sub_80303AC(bool8 param_1)
|
||||
{
|
||||
if (param_1 == FALSE) {
|
||||
sub_8013660(&sMakuhitaDojoWork2->s30.s0.input);
|
||||
sub_8013660(&sMakuhitaDojoWork2->s30.m.input);
|
||||
return 0;
|
||||
}
|
||||
|
||||
switch (GetKeyPress(&sMakuhitaDojoWork2->s30.s0.input)) {
|
||||
switch (GetKeyPress(&sMakuhitaDojoWork2->s30.m.input)) {
|
||||
case INPUT_B_BUTTON:
|
||||
PlayMenuSoundEffect(1);
|
||||
return 2;
|
||||
@@ -64,7 +64,7 @@ u32 sub_80303AC(bool8 param_1)
|
||||
PlayMenuSoundEffect(0);
|
||||
return 3;
|
||||
default:
|
||||
if (MenuCursorUpdate(&sMakuhitaDojoWork2->s30.s0.input, 1)) {
|
||||
if (MenuCursorUpdate(&sMakuhitaDojoWork2->s30.m.input, 1)) {
|
||||
sub_80304C8();
|
||||
MakuhitaDojo_DrawCourseList();
|
||||
return 1;
|
||||
@@ -76,25 +76,25 @@ u32 sub_80303AC(bool8 param_1)
|
||||
|
||||
s16 sub_8030418(void)
|
||||
{
|
||||
return sMakuhitaDojoWork2->unk0[GET_CURRENT_MENU_ENTRY(sMakuhitaDojoWork2->s30.s0.input)];
|
||||
return sMakuhitaDojoWork2->unk0[GET_CURRENT_MENU_ENTRY(sMakuhitaDojoWork2->s30.m.input)];
|
||||
}
|
||||
|
||||
UNUSED static void sub_8030444(bool8 a0)
|
||||
{
|
||||
sMakuhitaDojoWork2->s30.s0.input.totalEntriesCount = sub_8030668();
|
||||
MenuUpdatePagesData(&sMakuhitaDojoWork2->s30.s0.input);
|
||||
sMakuhitaDojoWork2->s30.m.input.totalEntriesCount = sub_8030668();
|
||||
MenuUpdatePagesData(&sMakuhitaDojoWork2->s30.m.input);
|
||||
sub_80304C8();
|
||||
MakuhitaDojo_DrawCourseList();
|
||||
if (a0)
|
||||
AddMenuCursorSprite(&sMakuhitaDojoWork2->s30.s0.input);
|
||||
AddMenuCursorSprite(&sMakuhitaDojoWork2->s30.m.input);
|
||||
}
|
||||
|
||||
void sub_8030480(void)
|
||||
{
|
||||
if (sMakuhitaDojoWork2 != NULL) {
|
||||
sMakuhitaDojoWork2->s30.s0.windows.id[sMakuhitaDojoWork2->s30.s0.winId] = sUnknown_80E07EC;
|
||||
sMakuhitaDojoWork2->s30.m.windows.id[sMakuhitaDojoWork2->s30.m.menuWinId] = sUnknown_80E07EC;
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&sMakuhitaDojoWork2->s30.s0.windows, TRUE, TRUE);
|
||||
ShowWindows(&sMakuhitaDojoWork2->s30.m.windows, TRUE, TRUE);
|
||||
MemoryFree(sMakuhitaDojoWork2);
|
||||
sMakuhitaDojoWork2 = NULL;
|
||||
}
|
||||
@@ -107,7 +107,7 @@ static void sub_80304C8(void)
|
||||
sMakuhitaDojoWork2->s30.header.width = 8;
|
||||
sMakuhitaDojoWork2->s30.header.f3 = 0;
|
||||
|
||||
SUB_80095E4_CALL(sMakuhitaDojoWork2->s30.s0);
|
||||
UPDATE_MENU_WINDOW_HEIGHT(sMakuhitaDojoWork2->s30.m);
|
||||
}
|
||||
|
||||
static void MakuhitaDojo_DrawCourseList(void)
|
||||
@@ -120,27 +120,27 @@ static void MakuhitaDojo_DrawCourseList(void)
|
||||
s32 i;
|
||||
u8 buffer[256];
|
||||
|
||||
CallPrepareTextbox_8008C54(sMakuhitaDojoWork2->s30.s0.winId);
|
||||
sub_80073B8(sMakuhitaDojoWork2->s30.s0.winId);
|
||||
PrintStringOnWindow(10, 0, sCourses, sMakuhitaDojoWork2->s30.s0.winId, 0);
|
||||
sub_8012BC4((sMakuhitaDojoWork2->s30.header.width * 8) + 4, 0, sMakuhitaDojoWork2->s30.s0.input.currPage + 1, 2, 7, sMakuhitaDojoWork2->s30.s0.winId);
|
||||
CallPrepareTextbox_8008C54(sMakuhitaDojoWork2->s30.m.menuWinId);
|
||||
sub_80073B8(sMakuhitaDojoWork2->s30.m.menuWinId);
|
||||
PrintStringOnWindow(10, 0, sCourses, sMakuhitaDojoWork2->s30.m.menuWinId, 0);
|
||||
sub_8012BC4((sMakuhitaDojoWork2->s30.header.width * 8) + 4, 0, sMakuhitaDojoWork2->s30.m.input.currPage + 1, 2, 7, sMakuhitaDojoWork2->s30.m.menuWinId);
|
||||
|
||||
for (i = 0; i < sMakuhitaDojoWork2->s30.s0.input.currPageEntries; i++) {
|
||||
iVar6 = sMakuhitaDojoWork2->unk0[sMakuhitaDojoWork2->s30.s0.input.currPage * sMakuhitaDojoWork2->s30.s0.input.entriesPerPage + i];
|
||||
for (i = 0; i < sMakuhitaDojoWork2->s30.m.input.currPageEntries; i++) {
|
||||
iVar6 = sMakuhitaDojoWork2->unk0[sMakuhitaDojoWork2->s30.m.input.currPage * sMakuhitaDojoWork2->s30.m.input.entriesPerPage + i];
|
||||
dungeonIndex = sub_80A2740(iVar6);
|
||||
|
||||
mazeIndex = sub_80A2668(iVar6);
|
||||
|
||||
y = GetMenuEntryYCoord(&sMakuhitaDojoWork2->s30.s0.input, i);
|
||||
y = GetMenuEntryYCoord(&sMakuhitaDojoWork2->s30.m.input, i);
|
||||
color = COLOR_WHITE_2; // COLOR_WHITE again?
|
||||
if ((bool8)IsMazeCompleted(mazeIndex)) {
|
||||
PrintStringOnWindow(8, y, sStarBullet, sMakuhitaDojoWork2->s30.s0.winId, 0);
|
||||
PrintStringOnWindow(8, y, sStarBullet, sMakuhitaDojoWork2->s30.m.menuWinId, 0);
|
||||
color = COLOR_GREEN;
|
||||
}
|
||||
sprintfStatic(buffer, sFmtColor, color, GetDungeonName1(dungeonIndex));
|
||||
PrintStringOnWindow(16, y, buffer, sMakuhitaDojoWork2->s30.s0.winId, 0);
|
||||
PrintStringOnWindow(16, y, buffer, sMakuhitaDojoWork2->s30.m.menuWinId, 0);
|
||||
}
|
||||
sub_80073E0(sMakuhitaDojoWork2->s30.s0.winId);
|
||||
sub_80073E0(sMakuhitaDojoWork2->s30.m.menuWinId);
|
||||
}
|
||||
|
||||
static s32 sub_8030668(void)
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
#include "global.h"
|
||||
#include "globaldata.h"
|
||||
#include "structs/axdata.h"
|
||||
#include "structs/struct_sub80095e4.h"
|
||||
#include "menu_input.h"
|
||||
#include "text_3.h"
|
||||
#include "code_800D090.h"
|
||||
#include "music_util.h"
|
||||
#include "constants/colors.h"
|
||||
#include "constants/input.h"
|
||||
#include "input.h"
|
||||
#include "menu_input.h"
|
||||
#include "sprite.h"
|
||||
#include "string_format.h"
|
||||
#include "text_2.h"
|
||||
#include "text_1.h"
|
||||
#include "text_util.h"
|
||||
#include "util.h"
|
||||
|
||||
@@ -230,12 +230,12 @@ void sub_8012CAC(WindowTemplate *a0, const MenuItem *a1)
|
||||
sub_8012D08(a0, count);
|
||||
}
|
||||
|
||||
void sub_8012D08(WindowTemplate *winTemplate, s32 param_2)
|
||||
void sub_8012D08(WindowTemplate *winTemplate, s32 entriesCount)
|
||||
{
|
||||
s32 sVar2;
|
||||
s16 sVar3;
|
||||
|
||||
sVar2 = (s16) sub_80095E4(param_2, 12);
|
||||
sVar2 = (s16) CalcEntriesTotalHeight(entriesCount, DEFAULT_MENU_ENTRY_HEIGHT);
|
||||
if (winTemplate->type == WINDOW_TYPE_WITH_HEADER)
|
||||
sVar2 = (s16)(sVar2 + 2);
|
||||
|
||||
@@ -244,19 +244,18 @@ void sub_8012D08(WindowTemplate *winTemplate, s32 param_2)
|
||||
winTemplate->unk10 = sVar3;
|
||||
}
|
||||
|
||||
void sub_8012D34(WindowTemplate *winTemplate, s32 param_2)
|
||||
void sub_8012D34(WindowTemplate *winTemplate, s32 entriesCount)
|
||||
{
|
||||
s32 sVar2;
|
||||
s16 sVar3;
|
||||
|
||||
sVar2 = (s16) sub_8009614(param_2, 24);
|
||||
sVar2 = (s16) CalcTwoLinesEntriesTotalHeight(entriesCount, TWO_LINES_MENU_ENTRY_HEIGHT);
|
||||
if (winTemplate->type == WINDOW_TYPE_WITH_HEADER)
|
||||
sVar2 = (s16)(sVar2 + 2);
|
||||
|
||||
sVar3 = sVar2;
|
||||
winTemplate->height = sVar3;
|
||||
winTemplate->unk10 = sVar3;
|
||||
|
||||
}
|
||||
|
||||
// arm9.bin::0201C26C
|
||||
@@ -794,62 +793,57 @@ void sub_80137B0(MenuInputStruct *menuInput, s32 param_2)
|
||||
iVar2 = (gWindows[menuInput->windowId].height * 8 - iVar1) << 8;
|
||||
}
|
||||
|
||||
menuInput->unk10 = iVar2 / menuInput->entriesPerPage;
|
||||
menuInput->entryHeight = iVar2 / menuInput->entriesPerPage;
|
||||
}
|
||||
|
||||
void sub_80137F8(MenuInputStruct *menuInput, u32 param_2)
|
||||
static void SetEntryHeight(MenuInputStruct *menuInput, s32 height)
|
||||
{
|
||||
menuInput->unk10 = param_2 << 8;
|
||||
menuInput->entryHeight = height * 256;
|
||||
}
|
||||
|
||||
// arm9.bin::0201AF70
|
||||
s32 GetMenuEntryYCoord(MenuInputStruct *menuInput, s32 entryId)
|
||||
{
|
||||
s32 firstY = menuInput->firstEntryY;
|
||||
s32 iVar1 = entryId * menuInput->unk10;
|
||||
s32 height = entryId * menuInput->entryHeight;
|
||||
|
||||
return firstY + (iVar1 / 256);
|
||||
return firstY + (height / 256);
|
||||
}
|
||||
|
||||
static inline void CreateMenuOnWindowInternal(MenuInputStruct *menuInput, s32 totalCount, u32 perPageCount, s32 windowId, s32 entryHeight)
|
||||
{
|
||||
menuInput->windowId = windowId;
|
||||
menuInput->totalEntriesCount = totalCount;
|
||||
menuInput->entriesPerPage = perPageCount;
|
||||
menuInput->unk14.x = 0;
|
||||
menuInput->unk24 = 0;
|
||||
menuInput->menuIndex = 0;
|
||||
menuInput->currPage = 0;
|
||||
|
||||
ResetTouchScreenMenuInput(&menuInput->touchScreen);
|
||||
MenuUpdatePagesData(menuInput);
|
||||
SetEntryHeight(menuInput, entryHeight);
|
||||
}
|
||||
|
||||
void CreateMenuOnWindow(MenuInputStruct *menuInput, s32 totalCount, u32 perPageCount, s32 windowId)
|
||||
{
|
||||
menuInput->windowId = windowId;
|
||||
menuInput->totalEntriesCount = totalCount;
|
||||
menuInput->entriesPerPage = perPageCount;
|
||||
menuInput->unk14.x = 0;
|
||||
menuInput->unk24 = 0;
|
||||
menuInput->menuIndex = 0;
|
||||
menuInput->currPage = 0;
|
||||
|
||||
ResetTouchScreenMenuInput(&menuInput->touchScreen);
|
||||
MenuUpdatePagesData(menuInput);
|
||||
sub_80137F8(menuInput, 12);
|
||||
CreateMenuOnWindowInternal(menuInput, totalCount, perPageCount, windowId, DEFAULT_MENU_ENTRY_HEIGHT);
|
||||
}
|
||||
|
||||
void CreateMenuOnWindow2(MenuInputStruct *menuInput, s32 totalCount, u32 perPageCount, s32 windowId)
|
||||
void CreateMenuOnWindowTwoLinesEntry(MenuInputStruct *menuInput, s32 totalCount, u32 perPageCount, s32 windowId)
|
||||
{
|
||||
menuInput->windowId = windowId;
|
||||
menuInput->totalEntriesCount = totalCount;
|
||||
menuInput->entriesPerPage = perPageCount;
|
||||
menuInput->unk14.x = 0;
|
||||
menuInput->unk24 = 0;
|
||||
menuInput->menuIndex = 0;
|
||||
menuInput->currPage = 0;
|
||||
|
||||
ResetTouchScreenMenuInput(&menuInput->touchScreen);
|
||||
MenuUpdatePagesData(menuInput);
|
||||
sub_80137F8(menuInput, 24);
|
||||
CreateMenuOnWindowInternal(menuInput, totalCount, perPageCount, windowId, TWO_LINES_MENU_ENTRY_HEIGHT);
|
||||
}
|
||||
|
||||
void sub_8013878(MenuInputStruct *menuInput, s32 param_2)
|
||||
void MoveMenuToEntryId(MenuInputStruct *menuInput, s32 entryId)
|
||||
{
|
||||
if (param_2 < 0)
|
||||
param_2 = 0;
|
||||
else if (param_2 >= menuInput->totalEntriesCount)
|
||||
param_2 = menuInput->totalEntriesCount - 1;
|
||||
if (entryId < 0)
|
||||
entryId = 0;
|
||||
else if (entryId >= menuInput->totalEntriesCount)
|
||||
entryId = menuInput->totalEntriesCount - 1;
|
||||
|
||||
menuInput->currPage = param_2 / menuInput->entriesPerPage;
|
||||
menuInput->menuIndex = param_2 % menuInput->entriesPerPage;
|
||||
menuInput->currPage = entryId / menuInput->entriesPerPage;
|
||||
menuInput->menuIndex = entryId % menuInput->entriesPerPage;
|
||||
menuInput->unk24 = 0;
|
||||
MenuUpdatePagesData(menuInput);
|
||||
}
|
||||
@@ -1191,6 +1185,6 @@ void sub_80140B4(WindowTemplates *a0)
|
||||
{
|
||||
s32 i;
|
||||
|
||||
for (i = 0; i < 4; i++)
|
||||
for (i = 0; i < MAX_WINDOWS; i++)
|
||||
a0->id[i] = gUnknown_80D47C8[i];
|
||||
}
|
||||
|
||||
@@ -33,23 +33,23 @@ void CreatePartnerSelectionMenu(s16 starterID)
|
||||
|
||||
sub_803CEAC();
|
||||
gUnknown_203B404->StarterID = starterID_s32;
|
||||
gUnknown_203B404->s18.s0.winId = 0;
|
||||
gUnknown_203B404->s18.s0.unk38 = &gUnknown_203B404->s18.s0.windows.id[0];
|
||||
gUnknown_203B404->s18.m.menuWinId = 0;
|
||||
gUnknown_203B404->s18.m.menuWindow = &gUnknown_203B404->s18.m.windows.id[0];
|
||||
|
||||
gUnknown_203B404->s18.s0.windows.id[0] = gUnknown_80F4290;
|
||||
gUnknown_203B404->s18.s0.windows.id[1] = gUnknown_80F42A8;
|
||||
gUnknown_203B404->s18.s0.windows.id[2] = gUnknown_80F4278;
|
||||
gUnknown_203B404->s18.s0.windows.id[3] = gUnknown_80F4278;
|
||||
gUnknown_203B404->s18.m.windows.id[0] = gUnknown_80F4290;
|
||||
gUnknown_203B404->s18.m.windows.id[1] = gUnknown_80F42A8;
|
||||
gUnknown_203B404->s18.m.windows.id[2] = gUnknown_80F4278;
|
||||
gUnknown_203B404->s18.m.windows.id[3] = gUnknown_80F4278;
|
||||
|
||||
gUnknown_203B404->s18.s0.unk38->header = &gUnknown_203B404->s18.header;
|
||||
gUnknown_203B404->s18.m.menuWindow->header = &gUnknown_203B404->s18.header;
|
||||
|
||||
gUnknown_203B404->s18.header.count = 1;
|
||||
gUnknown_203B404->s18.header.currId = 0;
|
||||
gUnknown_203B404->s18.header.width = 6;
|
||||
gUnknown_203B404->s18.header.f3 = 0;
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&gUnknown_203B404->s18.s0.windows, TRUE, TRUE);
|
||||
CreateMenuOnWindow(&gUnknown_203B404->s18.s0.input, GetValidPartners(), 10, gUnknown_203B404->s18.s0.winId);
|
||||
ShowWindows(&gUnknown_203B404->s18.m.windows, TRUE, TRUE);
|
||||
CreateMenuOnWindow(&gUnknown_203B404->s18.m.input, GetValidPartners(), 10, gUnknown_203B404->s18.m.menuWinId);
|
||||
RedrawPartnerSelectionMenu();
|
||||
PersonalityTest_DisplayPartnerSprite();
|
||||
}
|
||||
@@ -58,18 +58,18 @@ u16 HandlePartnerSelectionInput(void)
|
||||
{
|
||||
s32 partnerID;
|
||||
|
||||
partnerID = gUnknown_203B404->s18.s0.input.menuIndex;
|
||||
partnerID = gUnknown_203B404->s18.m.input.menuIndex;
|
||||
gUnknown_203B404->unk16 = 0;
|
||||
|
||||
if (GetKeyPress(&gUnknown_203B404->s18.s0.input) == INPUT_A_BUTTON) {
|
||||
if (GetKeyPress(&gUnknown_203B404->s18.m.input) == INPUT_A_BUTTON) {
|
||||
PlayMenuSoundEffect(0);
|
||||
return gUnknown_203B404->PartnerArray[gUnknown_203B404->s18.s0.input.menuIndex];
|
||||
return gUnknown_203B404->PartnerArray[gUnknown_203B404->s18.m.input.menuIndex];
|
||||
}
|
||||
|
||||
if (MenuCursorUpdate(&gUnknown_203B404->s18.s0.input, TRUE))
|
||||
if (MenuCursorUpdate(&gUnknown_203B404->s18.m.input, TRUE))
|
||||
RedrawPartnerSelectionMenu();
|
||||
|
||||
if (partnerID != gUnknown_203B404->s18.s0.input.menuIndex)
|
||||
if (partnerID != gUnknown_203B404->s18.m.input.menuIndex)
|
||||
PersonalityTest_DisplayPartnerSprite();
|
||||
|
||||
if (gUnknown_203B404->unk16 != 0) {
|
||||
@@ -80,20 +80,20 @@ u16 HandlePartnerSelectionInput(void)
|
||||
|
||||
UNUSED static void sub_803CE34(bool8 cursorSprite)
|
||||
{
|
||||
gUnknown_203B404->s18.s0.input.totalEntriesCount = GetValidPartners();
|
||||
MenuUpdatePagesData(&gUnknown_203B404->s18.s0.input);
|
||||
gUnknown_203B404->s18.m.input.totalEntriesCount = GetValidPartners();
|
||||
MenuUpdatePagesData(&gUnknown_203B404->s18.m.input);
|
||||
RedrawPartnerSelectionMenu();
|
||||
PersonalityTest_DisplayPartnerSprite();
|
||||
|
||||
if (cursorSprite)
|
||||
AddMenuCursorSprite(&gUnknown_203B404->s18.s0.input);
|
||||
AddMenuCursorSprite(&gUnknown_203B404->s18.m.input);
|
||||
}
|
||||
|
||||
void sub_803CE6C(void)
|
||||
{
|
||||
gUnknown_203B404->s18.s0.windows.id[gUnknown_203B404->s18.s0.winId] = gUnknown_80F4278;
|
||||
gUnknown_203B404->s18.m.windows.id[gUnknown_203B404->s18.m.menuWinId] = gUnknown_80F4278;
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&gUnknown_203B404->s18.s0.windows, TRUE, TRUE);
|
||||
ShowWindows(&gUnknown_203B404->s18.m.windows, TRUE, TRUE);
|
||||
sub_803CECC();
|
||||
}
|
||||
|
||||
@@ -122,20 +122,20 @@ static void RedrawPartnerSelectionMenu(void)
|
||||
const u8 *monName;
|
||||
s32 monCounter;
|
||||
|
||||
SUB_80095E4_CALL(gUnknown_203B404->s18.s0);
|
||||
UPDATE_MENU_WINDOW_HEIGHT(gUnknown_203B404->s18.m);
|
||||
|
||||
CallPrepareTextbox_8008C54(gUnknown_203B404->s18.s0.winId);
|
||||
sub_80073B8(gUnknown_203B404->s18.s0.winId);
|
||||
PrintStringOnWindow(12, 0, gPartnerSelectionHeaderText, gUnknown_203B404->s18.s0.winId, 0);
|
||||
CallPrepareTextbox_8008C54(gUnknown_203B404->s18.m.menuWinId);
|
||||
sub_80073B8(gUnknown_203B404->s18.m.menuWinId);
|
||||
PrintStringOnWindow(12, 0, gPartnerSelectionHeaderText, gUnknown_203B404->s18.m.menuWinId, 0);
|
||||
|
||||
monCounter = 0;
|
||||
while (monCounter < gUnknown_203B404->s18.s0.input.currPageEntries) {
|
||||
yCoord = GetMenuEntryYCoord(&gUnknown_203B404->s18.s0.input, monCounter);
|
||||
while (monCounter < gUnknown_203B404->s18.m.input.currPageEntries) {
|
||||
yCoord = GetMenuEntryYCoord(&gUnknown_203B404->s18.m.input, monCounter);
|
||||
monName = GetMonSpecies(gUnknown_203B404->PartnerArray[monCounter]);
|
||||
PrintStringOnWindow(8, yCoord, monName, gUnknown_203B404->s18.s0.winId, 0);
|
||||
PrintStringOnWindow(8, yCoord, monName, gUnknown_203B404->s18.m.menuWinId, 0);
|
||||
monCounter++;
|
||||
}
|
||||
sub_80073E0(gUnknown_203B404->s18.s0.winId);
|
||||
sub_80073E0(gUnknown_203B404->s18.m.menuWinId);
|
||||
gUnknown_203B404->unk16 = 1;
|
||||
}
|
||||
|
||||
@@ -147,7 +147,7 @@ static void PersonalityTest_DisplayPartnerSprite(void)
|
||||
const u8 *gfx;
|
||||
s32 emotionId;
|
||||
|
||||
partnerID = gUnknown_203B404->PartnerArray[gUnknown_203B404->s18.s0.input.menuIndex];
|
||||
partnerID = gUnknown_203B404->PartnerArray[gUnknown_203B404->s18.m.input.menuIndex];
|
||||
CallPrepareTextbox_8008C54(1);
|
||||
sub_80073B8(1);
|
||||
faceFile = GetDialogueSpriteDataPtr(partnerID);
|
||||
|
||||
@@ -32,17 +32,17 @@ bool8 sub_802B640(u32 a0, DungeonPos *a1, u32 a2)
|
||||
if (sUnknown_203B2CC == NULL)
|
||||
sUnknown_203B2CC = MemoryAlloc(sizeof(struct unkStruct_203B2CC), 8);
|
||||
|
||||
sUnknown_203B2CC->s38.winId = a0;
|
||||
sUnknown_203B2CC->s38.unk38 = &sUnknown_203B2CC->s38.windows.id[a0];
|
||||
sUnknown_203B2CC->s38.menuWinId = a0;
|
||||
sUnknown_203B2CC->s38.menuWindow = &sUnknown_203B2CC->s38.windows.id[a0];
|
||||
|
||||
RestoreSavedWindows(&sUnknown_203B2CC->s38.windows);
|
||||
|
||||
sUnknown_203B2CC->s38.windows.id[sUnknown_203B2CC->s38.winId] = sUnknown_80DFBEC;
|
||||
sUnknown_203B2CC->s38.windows.id[sUnknown_203B2CC->s38.menuWinId] = sUnknown_80DFBEC;
|
||||
|
||||
if (a1 != NULL)
|
||||
sUnknown_203B2CC->s38.windows.id[sUnknown_203B2CC->s38.winId].pos = *a1;
|
||||
sUnknown_203B2CC->s38.windows.id[sUnknown_203B2CC->s38.menuWinId].pos = *a1;
|
||||
|
||||
sub_8012D08(sUnknown_203B2CC->s38.unk38, a2);
|
||||
sub_8012D08(sUnknown_203B2CC->s38.menuWindow, a2);
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&sUnknown_203B2CC->s38.windows, TRUE, TRUE);
|
||||
|
||||
@@ -111,7 +111,7 @@ void sub_802B81C(void)
|
||||
|
||||
sUnknown_203B2D2 = sUnknown_203B2CC->s38.input.currPage;
|
||||
|
||||
sUnknown_203B2CC->s38.windows.id[sUnknown_203B2CC->s38.winId] = sUnknown_80DFBD0;
|
||||
sUnknown_203B2CC->s38.windows.id[sUnknown_203B2CC->s38.menuWinId] = sUnknown_80DFBD0;
|
||||
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&sUnknown_203B2CC->s38.windows, TRUE, TRUE);
|
||||
@@ -123,7 +123,7 @@ void sub_802B81C(void)
|
||||
|
||||
static void sub_802B880(void)
|
||||
{
|
||||
SUB_80095E4_CALL(sUnknown_203B2CC->s38);
|
||||
UPDATE_MENU_WINDOW_HEIGHT(sUnknown_203B2CC->s38);
|
||||
}
|
||||
|
||||
static void CreatePKMNNewsMenu(void)
|
||||
@@ -133,22 +133,22 @@ static void CreatePKMNNewsMenu(void)
|
||||
s32 new_index;
|
||||
u8 mailIndex;
|
||||
|
||||
CallPrepareTextbox_8008C54(sUnknown_203B2CC->s38.winId);
|
||||
sub_80073B8(sUnknown_203B2CC->s38.winId);
|
||||
PrintStringOnWindow(10, 0, sNewsList, sUnknown_203B2CC->s38.winId, 0);
|
||||
CallPrepareTextbox_8008C54(sUnknown_203B2CC->s38.menuWinId);
|
||||
sub_80073B8(sUnknown_203B2CC->s38.menuWinId);
|
||||
PrintStringOnWindow(10, 0, sNewsList, sUnknown_203B2CC->s38.menuWinId, 0);
|
||||
|
||||
sub_8012BC4((sUnknown_80DFBE8.width * 8) + 4, 0, sUnknown_203B2CC->s38.input.currPage + 1, 2, 7, sUnknown_203B2CC->s38.winId);
|
||||
sub_8012BC4((sUnknown_80DFBE8.width * 8) + 4, 0, sUnknown_203B2CC->s38.input.currPage + 1, 2, 7, sUnknown_203B2CC->s38.menuWinId);
|
||||
|
||||
for (index = 0; index < sUnknown_203B2CC->s38.input.currPageEntries; index++) {
|
||||
y = GetMenuEntryYCoord(&sUnknown_203B2CC->s38.input, index);
|
||||
new_index = (sUnknown_203B2CC->s38.input.currPage * sUnknown_203B2CC->s38.input.entriesPerPage) + index;
|
||||
mailIndex = sUnknown_203B2CC->receivedNewsletters[new_index];
|
||||
sub_803B6B0(10, y, 6, sUnknown_203B2CC->s38.winId);
|
||||
sub_803B6B0(10, y, 6, sUnknown_203B2CC->s38.menuWinId);
|
||||
sub_802BC7C();
|
||||
PrintFormattedStringOnWindow(21, y, GetPokemonMailHeadline(mailIndex), sUnknown_203B2CC->s38.winId, 0);
|
||||
PrintFormattedStringOnWindow(21, y, GetPokemonMailHeadline(mailIndex), sUnknown_203B2CC->s38.menuWinId, 0);
|
||||
}
|
||||
|
||||
sub_80073E0(sUnknown_203B2CC->s38.winId);
|
||||
sub_80073E0(sUnknown_203B2CC->s38.menuWinId);
|
||||
}
|
||||
|
||||
static s32 GetNumPKMNNews(void)
|
||||
|
||||
@@ -34,21 +34,21 @@ bool8 sub_802BD14(s32 a0, DungeonPos *a1, u32 a2)
|
||||
if (sUnknown_203B2D8 == NULL)
|
||||
sUnknown_203B2D8 = MemoryAlloc(sizeof(struct unkStruct_203B2D8), 8);
|
||||
|
||||
sUnknown_203B2D8->unk4.s0.winId = a0;
|
||||
sUnknown_203B2D8->unk4.s0.unk38 = &sUnknown_203B2D8->unk4.s0.windows.id[a0];
|
||||
RestoreSavedWindows(&sUnknown_203B2D8->unk4.s0.windows);
|
||||
sUnknown_203B2D8->unk4.s0.windows.id[sUnknown_203B2D8->unk4.s0.winId] = sUnknown_80DFC74;
|
||||
sUnknown_203B2D8->unk4.s0.unk38->header = &sUnknown_203B2D8->unk4.header;
|
||||
sUnknown_203B2D8->unk4.m.menuWinId = a0;
|
||||
sUnknown_203B2D8->unk4.m.menuWindow = &sUnknown_203B2D8->unk4.m.windows.id[a0];
|
||||
RestoreSavedWindows(&sUnknown_203B2D8->unk4.m.windows);
|
||||
sUnknown_203B2D8->unk4.m.windows.id[sUnknown_203B2D8->unk4.m.menuWinId] = sUnknown_80DFC74;
|
||||
sUnknown_203B2D8->unk4.m.menuWindow->header = &sUnknown_203B2D8->unk4.header;
|
||||
|
||||
if (a1 != NULL)
|
||||
sUnknown_203B2D8->unk4.s0.windows.id[sUnknown_203B2D8->unk4.s0.winId].pos = *a1;
|
||||
sUnknown_203B2D8->unk4.m.windows.id[sUnknown_203B2D8->unk4.m.menuWinId].pos = *a1;
|
||||
|
||||
sub_8012D34(sUnknown_203B2D8->unk4.s0.unk38, a2);
|
||||
sub_8012D34(sUnknown_203B2D8->unk4.m.menuWindow, a2);
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&sUnknown_203B2D8->unk4.s0.windows, TRUE, TRUE);
|
||||
CreateMenuOnWindow2(&sUnknown_203B2D8->unk4.s0.input, CountEmptyMailSlots(), a2, a0);
|
||||
sUnknown_203B2D8->unk4.s0.input.menuIndex = sUnknown_203B2DC;
|
||||
MenuUpdatePagesData(&sUnknown_203B2D8->unk4.s0.input);
|
||||
ShowWindows(&sUnknown_203B2D8->unk4.m.windows, TRUE, TRUE);
|
||||
CreateMenuOnWindowTwoLinesEntry(&sUnknown_203B2D8->unk4.m.input, CountEmptyMailSlots(), a2, a0);
|
||||
sUnknown_203B2D8->unk4.m.input.menuIndex = sUnknown_203B2DC;
|
||||
MenuUpdatePagesData(&sUnknown_203B2D8->unk4.m.input);
|
||||
sub_802BF30();
|
||||
CreateMailMenu();
|
||||
return TRUE;
|
||||
@@ -57,11 +57,11 @@ bool8 sub_802BD14(s32 a0, DungeonPos *a1, u32 a2)
|
||||
u32 sub_802BDEC(bool8 a0)
|
||||
{
|
||||
if (!a0) {
|
||||
sub_8013660(&sUnknown_203B2D8->unk4.s0.input);
|
||||
sub_8013660(&sUnknown_203B2D8->unk4.m.input);
|
||||
return 0;
|
||||
}
|
||||
|
||||
switch (GetKeyPress(&sUnknown_203B2D8->unk4.s0.input)) {
|
||||
switch (GetKeyPress(&sUnknown_203B2D8->unk4.m.input)) {
|
||||
case INPUT_B_BUTTON:
|
||||
PlayMenuSoundEffect(1);
|
||||
return 2;
|
||||
@@ -72,7 +72,7 @@ u32 sub_802BDEC(bool8 a0)
|
||||
PlayMenuSoundEffect(4);
|
||||
return 4;
|
||||
default:
|
||||
if (MenuCursorUpdate(&sUnknown_203B2D8->unk4.s0.input, 1)) {
|
||||
if (MenuCursorUpdate(&sUnknown_203B2D8->unk4.m.input, 1)) {
|
||||
sub_802BF30();
|
||||
CreateMailMenu();
|
||||
return 1;
|
||||
@@ -83,30 +83,30 @@ u32 sub_802BDEC(bool8 a0)
|
||||
|
||||
u8 sub_802BE74(void)
|
||||
{
|
||||
return sUnknown_203B2D8->unk0[GET_CURRENT_MENU_ENTRY(sUnknown_203B2D8->unk4.s0.input)];
|
||||
return sUnknown_203B2D8->unk0[GET_CURRENT_MENU_ENTRY(sUnknown_203B2D8->unk4.m.input)];
|
||||
}
|
||||
|
||||
void sub_802BE94(bool8 cursorSprite)
|
||||
{
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&sUnknown_203B2D8->unk4.s0.windows, FALSE, FALSE);
|
||||
ShowWindows(&sUnknown_203B2D8->unk4.m.windows, FALSE, FALSE);
|
||||
|
||||
sUnknown_203B2D8->unk4.s0.input.totalEntriesCount = CountEmptyMailSlots();
|
||||
MenuUpdatePagesData(&sUnknown_203B2D8->unk4.s0.input);
|
||||
sUnknown_203B2D8->unk4.m.input.totalEntriesCount = CountEmptyMailSlots();
|
||||
MenuUpdatePagesData(&sUnknown_203B2D8->unk4.m.input);
|
||||
sub_802BF30();
|
||||
CreateMailMenu();
|
||||
|
||||
if (cursorSprite)
|
||||
AddMenuCursorSprite(&sUnknown_203B2D8->unk4.s0.input);
|
||||
AddMenuCursorSprite(&sUnknown_203B2D8->unk4.m.input);
|
||||
}
|
||||
|
||||
void sub_802BEDC(void)
|
||||
{
|
||||
if (sUnknown_203B2D8 != NULL) {
|
||||
sUnknown_203B2DC = sUnknown_203B2D8->unk4.s0.input.menuIndex;
|
||||
sUnknown_203B2D8->unk4.s0.windows.id[sUnknown_203B2D8->unk4.s0.winId] = sUnknown_80DFC5C;
|
||||
sUnknown_203B2DC = sUnknown_203B2D8->unk4.m.input.menuIndex;
|
||||
sUnknown_203B2D8->unk4.m.windows.id[sUnknown_203B2D8->unk4.m.menuWinId] = sUnknown_80DFC5C;
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&sUnknown_203B2D8->unk4.s0.windows, TRUE, TRUE);
|
||||
ShowWindows(&sUnknown_203B2D8->unk4.m.windows, TRUE, TRUE);
|
||||
MemoryFree(sUnknown_203B2D8);
|
||||
sUnknown_203B2D8 = NULL;
|
||||
}
|
||||
@@ -118,7 +118,7 @@ static void sub_802BF30(void)
|
||||
sUnknown_203B2D8->unk4.header.currId = 0;
|
||||
sUnknown_203B2D8->unk4.header.width = 12;
|
||||
sUnknown_203B2D8->unk4.header.f3 = 0;
|
||||
SUB_8009614_CALL(sUnknown_203B2D8->unk4.s0);
|
||||
UPDATE_TWO_LINES_MENU_WINDOW_HEIGHT(sUnknown_203B2D8->unk4.m);
|
||||
}
|
||||
|
||||
void CreateMailMenu(void)
|
||||
@@ -129,21 +129,21 @@ void CreateMailMenu(void)
|
||||
unkStruct_802C39C local;
|
||||
u8 buffer[128];
|
||||
|
||||
CallPrepareTextbox_8008C54(sUnknown_203B2D8->unk4.s0.winId);
|
||||
sub_80073B8(sUnknown_203B2D8->unk4.s0.winId);
|
||||
PrintStringOnWindow((sUnknown_203B2D8->unk4.s0.input.currPage * 8) + 10, 0, sMailbox, sUnknown_203B2D8->unk4.s0.winId, 0);
|
||||
CallPrepareTextbox_8008C54(sUnknown_203B2D8->unk4.m.menuWinId);
|
||||
sub_80073B8(sUnknown_203B2D8->unk4.m.menuWinId);
|
||||
PrintStringOnWindow((sUnknown_203B2D8->unk4.m.input.currPage * 8) + 10, 0, sMailbox, sUnknown_203B2D8->unk4.m.menuWinId, 0);
|
||||
|
||||
for (i = 0; i < sUnknown_203B2D8->unk4.s0.input.currPageEntries; i++) {
|
||||
mail = GetMailboxSlotInfo(sUnknown_203B2D8->unk0[(sUnknown_203B2D8->unk4.s0.input.currPage * sUnknown_203B2D8->unk4.s0.input.entriesPerPage) + i]);
|
||||
local.unk0[0] = sUnknown_203B2D8->unk4.s0.winId;
|
||||
local.y = GetMenuEntryYCoord(&sUnknown_203B2D8->unk4.s0.input, i);
|
||||
for (i = 0; i < sUnknown_203B2D8->unk4.m.input.currPageEntries; i++) {
|
||||
mail = GetMailboxSlotInfo(sUnknown_203B2D8->unk0[(sUnknown_203B2D8->unk4.m.input.currPage * sUnknown_203B2D8->unk4.m.input.entriesPerPage) + i]);
|
||||
local.unk0[0] = sUnknown_203B2D8->unk4.m.menuWinId;
|
||||
local.y = GetMenuEntryYCoord(&sUnknown_203B2D8->unk4.m.input, i);
|
||||
|
||||
if (mail->mailType == MAIL_TYPE_UNK1) {
|
||||
y = GetMenuEntryYCoord(&sUnknown_203B2D8->unk4.s0.input, i);
|
||||
sub_803B6B0(10, y, 6, sUnknown_203B2D8->unk4.s0.winId);
|
||||
y = GetMenuEntryYCoord(&sUnknown_203B2D8->unk4.m.input, i);
|
||||
sub_803B6B0(10, y, 6, sUnknown_203B2D8->unk4.m.menuWinId);
|
||||
PrintPokeNameToBuffer(gFormatBuffer_Monsters[0], GetPlayerPokemonStruct());
|
||||
sprintfStatic(buffer, GetPokemonMailHeadline(mail->dungeonSeed.location.floor), gFormatBuffer_Monsters[0]);
|
||||
PrintStringOnWindow(21, y, buffer, sUnknown_203B2D8->unk4.s0.winId, 0);
|
||||
PrintStringOnWindow(21, y, buffer, sUnknown_203B2D8->unk4.m.menuWinId, 0);
|
||||
}
|
||||
else {
|
||||
sub_803B35C(mail, &local);
|
||||
@@ -154,7 +154,7 @@ void CreateMailMenu(void)
|
||||
}
|
||||
}
|
||||
|
||||
sub_80073E0(sUnknown_203B2D8->unk4.s0.winId);
|
||||
sub_80073E0(sUnknown_203B2D8->unk4.m.menuWinId);
|
||||
}
|
||||
|
||||
static s32 CountEmptyMailSlots(void)
|
||||
|
||||
30
src/text_3.c
30
src/text_3.c
@@ -487,32 +487,30 @@ UNUSED static void nullsub_174(void)
|
||||
#endif
|
||||
|
||||
// arm9.bin::02003278
|
||||
s32 sub_80095E4(s32 a0, s32 a1)
|
||||
s32 CalcEntriesTotalHeight(s32 entriesCount, s32 entryHeight)
|
||||
{
|
||||
s32 r1;
|
||||
s32 totalHeight;
|
||||
|
||||
if (a1 == 0)
|
||||
a1 = 10;
|
||||
r1 = a0 * a1;
|
||||
if (entryHeight == 0)
|
||||
entryHeight = 10;
|
||||
totalHeight = entriesCount * entryHeight;
|
||||
|
||||
if ((r1 % 8) != 0)
|
||||
return (r1 / 8) + 1;
|
||||
if ((totalHeight % 8) != 0)
|
||||
return (totalHeight / 8) + 1;
|
||||
else
|
||||
return r1 / 8;
|
||||
return totalHeight / 8;
|
||||
}
|
||||
|
||||
// arm9.bin::02003238
|
||||
// Same as sub_80095E4 except it doesn't check for a1 == 0
|
||||
s32 sub_8009614(s32 a0, s32 a1)
|
||||
// Same as CalcEntriesTotalHeight except it doesn't check for entryHeight == 0. Only called for menu windows which use TWO_LINES_MENU_ENTRY_HEIGHT
|
||||
s32 CalcTwoLinesEntriesTotalHeight(s32 entriesCount, s32 entryHeight)
|
||||
{
|
||||
s32 r1;
|
||||
s32 totalHeight = entriesCount * entryHeight;
|
||||
|
||||
r1 = a0 * a1;
|
||||
|
||||
if ((r1 % 8) != 0)
|
||||
return (r1 / 8) + 1;
|
||||
if ((totalHeight % 8) != 0)
|
||||
return (totalHeight / 8) + 1;
|
||||
else
|
||||
return r1 / 8;
|
||||
return totalHeight / 8;
|
||||
}
|
||||
|
||||
// arm9.bin::02003158
|
||||
|
||||
@@ -30,19 +30,19 @@ bool8 sub_80211AC(u32 mode, u32 a1)
|
||||
|
||||
sWigglytuffShop1Work = MemoryAlloc(sizeof(WigglytuffShop1Work), 8);
|
||||
sWigglytuffShop1Work->mode = mode;
|
||||
sWigglytuffShop1Work->s40.s0.winId = a1;
|
||||
sWigglytuffShop1Work->s40.s0.unk38 = &sWigglytuffShop1Work->s40.s0.windows.id[sWigglytuffShop1Work->s40.s0.winId];
|
||||
RestoreSavedWindows(&sWigglytuffShop1Work->s40.s0.windows);
|
||||
sWigglytuffShop1Work->s40.s0.windows.id[sWigglytuffShop1Work->s40.s0.winId] = sUnknown_80DC47C;
|
||||
sWigglytuffShop1Work->s40.s0.unk38->header = &sWigglytuffShop1Work->s40.header;
|
||||
sWigglytuffShop1Work->s40.m.menuWinId = a1;
|
||||
sWigglytuffShop1Work->s40.m.menuWindow = &sWigglytuffShop1Work->s40.m.windows.id[sWigglytuffShop1Work->s40.m.menuWinId];
|
||||
RestoreSavedWindows(&sWigglytuffShop1Work->s40.m.windows);
|
||||
sWigglytuffShop1Work->s40.m.windows.id[sWigglytuffShop1Work->s40.m.menuWinId] = sUnknown_80DC47C;
|
||||
sWigglytuffShop1Work->s40.m.menuWindow->header = &sWigglytuffShop1Work->s40.header;
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&sWigglytuffShop1Work->s40.s0.windows, TRUE, TRUE);
|
||||
CreateMenuOnWindow(&sWigglytuffShop1Work->s40.s0.input, sub_8021664(), 10, a1);
|
||||
ShowWindows(&sWigglytuffShop1Work->s40.m.windows, TRUE, TRUE);
|
||||
CreateMenuOnWindow(&sWigglytuffShop1Work->s40.m.input, sub_8021664(), 10, a1);
|
||||
|
||||
if (sUnknown_203B284 == sWigglytuffShop1Work->mode) {
|
||||
sWigglytuffShop1Work->s40.s0.input.menuIndex = sUnknown_203B288;
|
||||
sWigglytuffShop1Work->s40.s0.input.currPage = sUnknown_203B28A;
|
||||
MenuUpdatePagesData(&sWigglytuffShop1Work->s40.s0.input);
|
||||
sWigglytuffShop1Work->s40.m.input.menuIndex = sUnknown_203B288;
|
||||
sWigglytuffShop1Work->s40.m.input.currPage = sUnknown_203B28A;
|
||||
MenuUpdatePagesData(&sWigglytuffShop1Work->s40.m.input);
|
||||
}
|
||||
|
||||
sub_8021410();
|
||||
@@ -53,11 +53,11 @@ bool8 sub_80211AC(u32 mode, u32 a1)
|
||||
u32 sub_8021274(bool8 a0)
|
||||
{
|
||||
if (!a0) {
|
||||
sub_8013660(&sWigglytuffShop1Work->s40.s0.input);
|
||||
sub_8013660(&sWigglytuffShop1Work->s40.m.input);
|
||||
return 0;
|
||||
}
|
||||
|
||||
switch (GetKeyPress(&sWigglytuffShop1Work->s40.s0.input)) {
|
||||
switch (GetKeyPress(&sWigglytuffShop1Work->s40.m.input)) {
|
||||
case INPUT_B_BUTTON:
|
||||
PlayMenuSoundEffect(1);
|
||||
return 2;
|
||||
@@ -71,7 +71,7 @@ u32 sub_8021274(bool8 a0)
|
||||
PlayMenuSoundEffect(4);
|
||||
return 4;
|
||||
default:
|
||||
if (MenuCursorUpdate(&sWigglytuffShop1Work->s40.s0.input, 1) != 0) {
|
||||
if (MenuCursorUpdate(&sWigglytuffShop1Work->s40.m.input, 1) != 0) {
|
||||
sub_8021410();
|
||||
sub_8021494();
|
||||
return 1;
|
||||
@@ -82,31 +82,31 @@ u32 sub_8021274(bool8 a0)
|
||||
|
||||
u8 sub_802132C(void)
|
||||
{
|
||||
return sWigglytuffShop1Work->friendAreas[GET_CURRENT_MENU_ENTRY(sWigglytuffShop1Work->s40.s0.input)];
|
||||
return sWigglytuffShop1Work->friendAreas[GET_CURRENT_MENU_ENTRY(sWigglytuffShop1Work->s40.m.input)];
|
||||
}
|
||||
|
||||
void sub_8021354(bool8 cursorSprite)
|
||||
{
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&sWigglytuffShop1Work->s40.s0.windows, FALSE, FALSE);
|
||||
sWigglytuffShop1Work->s40.s0.input.totalEntriesCount = sub_8021664();
|
||||
MenuUpdatePagesData(&sWigglytuffShop1Work->s40.s0.input);
|
||||
ShowWindows(&sWigglytuffShop1Work->s40.m.windows, FALSE, FALSE);
|
||||
sWigglytuffShop1Work->s40.m.input.totalEntriesCount = sub_8021664();
|
||||
MenuUpdatePagesData(&sWigglytuffShop1Work->s40.m.input);
|
||||
sub_8021410();
|
||||
sub_8021494();
|
||||
|
||||
if (cursorSprite)
|
||||
AddMenuCursorSprite(&sWigglytuffShop1Work->s40.s0.input);
|
||||
AddMenuCursorSprite(&sWigglytuffShop1Work->s40.m.input);
|
||||
}
|
||||
|
||||
void sub_80213A0(void)
|
||||
{
|
||||
if (sWigglytuffShop1Work) {
|
||||
sUnknown_203B284 = sWigglytuffShop1Work->mode;
|
||||
sUnknown_203B288 = sWigglytuffShop1Work->s40.s0.input.menuIndex;
|
||||
sUnknown_203B28A = sWigglytuffShop1Work->s40.s0.input.currPage;
|
||||
sWigglytuffShop1Work->s40.s0.windows.id[sWigglytuffShop1Work->s40.s0.winId] = sUnknown_80DC464;
|
||||
sUnknown_203B288 = sWigglytuffShop1Work->s40.m.input.menuIndex;
|
||||
sUnknown_203B28A = sWigglytuffShop1Work->s40.m.input.currPage;
|
||||
sWigglytuffShop1Work->s40.m.windows.id[sWigglytuffShop1Work->s40.m.menuWinId] = sUnknown_80DC464;
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&sWigglytuffShop1Work->s40.s0.windows, TRUE, TRUE);
|
||||
ShowWindows(&sWigglytuffShop1Work->s40.m.windows, TRUE, TRUE);
|
||||
MemoryFree(sWigglytuffShop1Work);
|
||||
sWigglytuffShop1Work = NULL;
|
||||
}
|
||||
@@ -119,9 +119,9 @@ static void sub_8021410(void)
|
||||
sWigglytuffShop1Work->s40.header.width = 12;
|
||||
sWigglytuffShop1Work->s40.header.f3 = 0;
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&sWigglytuffShop1Work->s40.s0.windows, TRUE, TRUE);
|
||||
ShowWindows(&sWigglytuffShop1Work->s40.m.windows, TRUE, TRUE);
|
||||
|
||||
SUB_80095E4_CALL(sWigglytuffShop1Work->s40.s0);
|
||||
UPDATE_MENU_WINDOW_HEIGHT(sWigglytuffShop1Work->s40.m);
|
||||
}
|
||||
|
||||
void sub_8021494(void)
|
||||
@@ -131,38 +131,38 @@ void sub_8021494(void)
|
||||
u8 buffer1[80];
|
||||
u8 buffer2[80];
|
||||
|
||||
CallPrepareTextbox_8008C54(sWigglytuffShop1Work->s40.s0.winId);
|
||||
sub_80073B8(sWigglytuffShop1Work->s40.s0.winId);
|
||||
PrintStringOnWindow(10, 0, sFriendAreas, sWigglytuffShop1Work->s40.s0.winId, 0);
|
||||
CallPrepareTextbox_8008C54(sWigglytuffShop1Work->s40.m.menuWinId);
|
||||
sub_80073B8(sWigglytuffShop1Work->s40.m.menuWinId);
|
||||
PrintStringOnWindow(10, 0, sFriendAreas, sWigglytuffShop1Work->s40.m.menuWinId, 0);
|
||||
|
||||
sub_8012BC4((sWigglytuffShop1Work->s40.header.width * 8) + 4, 0, sWigglytuffShop1Work->s40.s0.input.currPage + 1, 1, 7, sWigglytuffShop1Work->s40.s0.winId);
|
||||
sub_8012BC4((sWigglytuffShop1Work->s40.header.width * 8) + 4, 0, sWigglytuffShop1Work->s40.m.input.currPage + 1, 1, 7, sWigglytuffShop1Work->s40.m.menuWinId);
|
||||
|
||||
for (i = 0; i < sWigglytuffShop1Work->s40.s0.input.currPageEntries; i++) {
|
||||
friendAreaIndex = sWigglytuffShop1Work->friendAreas[(sWigglytuffShop1Work->s40.s0.input.currPage * sWigglytuffShop1Work->s40.s0.input.entriesPerPage) + i];
|
||||
for (i = 0; i < sWigglytuffShop1Work->s40.m.input.currPageEntries; i++) {
|
||||
friendAreaIndex = sWigglytuffShop1Work->friendAreas[(sWigglytuffShop1Work->s40.m.input.currPage * sWigglytuffShop1Work->s40.m.input.entriesPerPage) + i];
|
||||
|
||||
if (sWigglytuffShop1Work->mode == 2) {
|
||||
WriteFriendAreaName(buffer1, friendAreaIndex, TRUE);
|
||||
|
||||
if (GetFriendAreaPrice(friendAreaIndex) <= gTeamInventoryRef->teamMoney)
|
||||
PrintStringOnWindow(8,GetMenuEntryYCoord(&sWigglytuffShop1Work->s40.s0.input, i), buffer1, sWigglytuffShop1Work->s40.s0.winId, 0);
|
||||
PrintStringOnWindow(8,GetMenuEntryYCoord(&sWigglytuffShop1Work->s40.m.input, i), buffer1, sWigglytuffShop1Work->s40.m.menuWinId, 0);
|
||||
else {
|
||||
sprintfStatic(buffer2, sFmtRedString, buffer1);
|
||||
PrintStringOnWindow(8, GetMenuEntryYCoord(&sWigglytuffShop1Work->s40.s0.input, i), buffer2, sWigglytuffShop1Work->s40.s0.winId, 0);
|
||||
PrintStringOnWindow(8, GetMenuEntryYCoord(&sWigglytuffShop1Work->s40.m.input, i), buffer2, sWigglytuffShop1Work->s40.m.menuWinId, 0);
|
||||
}
|
||||
}
|
||||
else if (sWigglytuffShop1Work->mode == 0) {
|
||||
if (gFriendAreas[friendAreaIndex] == TRUE)
|
||||
PrintStringOnWindow(8, GetMenuEntryYCoord(&sWigglytuffShop1Work->s40.s0.input, i), GetFriendAreaName(friendAreaIndex), sWigglytuffShop1Work->s40.s0.winId, 0);
|
||||
PrintStringOnWindow(8, GetMenuEntryYCoord(&sWigglytuffShop1Work->s40.m.input, i), GetFriendAreaName(friendAreaIndex), sWigglytuffShop1Work->s40.m.menuWinId, 0);
|
||||
else {
|
||||
sprintfStatic(buffer2, sFmtGreenString, GetFriendAreaName(friendAreaIndex));
|
||||
PrintStringOnWindow(8, GetMenuEntryYCoord(&sWigglytuffShop1Work->s40.s0.input, i), buffer2, sWigglytuffShop1Work->s40.s0.winId, 0);
|
||||
PrintStringOnWindow(8, GetMenuEntryYCoord(&sWigglytuffShop1Work->s40.m.input, i), buffer2, sWigglytuffShop1Work->s40.m.menuWinId, 0);
|
||||
}
|
||||
}
|
||||
else
|
||||
PrintStringOnWindow(8, GetMenuEntryYCoord(&sWigglytuffShop1Work->s40.s0.input, i), GetFriendAreaName(friendAreaIndex), sWigglytuffShop1Work->s40.s0.winId, 0);
|
||||
PrintStringOnWindow(8, GetMenuEntryYCoord(&sWigglytuffShop1Work->s40.m.input, i), GetFriendAreaName(friendAreaIndex), sWigglytuffShop1Work->s40.m.menuWinId, 0);
|
||||
}
|
||||
|
||||
sub_80073E0(sWigglytuffShop1Work->s40.s0.winId);
|
||||
sub_80073E0(sWigglytuffShop1Work->s40.m.menuWinId);
|
||||
}
|
||||
|
||||
static s32 sub_8021664(void)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#include "global.h"
|
||||
#include "globaldata.h"
|
||||
#include "structs/str_802C39C.h"
|
||||
#include "structs/struct_sub80095e4.h"
|
||||
#include "text_3.h"
|
||||
#include "code_802DE84.h"
|
||||
#include "code_803B050.h"
|
||||
#include "common_strings.h"
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
#include "constants/input.h"
|
||||
#include "constants/wonder_mail.h"
|
||||
#include "structs/str_802C39C.h"
|
||||
#include "structs/struct_sub80095e4.h"
|
||||
#include "text_3.h"
|
||||
#include "music_util.h"
|
||||
#include "code_8094F88.h"
|
||||
#include "input.h"
|
||||
@@ -21,7 +21,7 @@ struct unkStruct_203B320
|
||||
// size: 0xC4
|
||||
u8 unk0[0x20];
|
||||
u32 wonderMailType;
|
||||
struct_Sub80095E4_2 s28;
|
||||
MenuHeaderWindow s28;
|
||||
};
|
||||
static EWRAM_INIT struct unkStruct_203B320 *gUnknown_203B320 = {NULL};
|
||||
|
||||
@@ -85,21 +85,21 @@ u32 sub_80306A8(u32 wonderMailType, u32 r1, DungeonPos *r2, u32 r3)
|
||||
|
||||
gUnknown_203B320 = MemoryAlloc(sizeof(struct unkStruct_203B320), 8);
|
||||
gUnknown_203B320->wonderMailType = wonderMailType;
|
||||
gUnknown_203B320->s28.s0.winId = r1;
|
||||
gUnknown_203B320->s28.m.menuWinId = r1;
|
||||
|
||||
gUnknown_203B320->s28.s0.unk38 = &gUnknown_203B320->s28.s0.windows.id[gUnknown_203B320->s28.s0.winId];
|
||||
RestoreSavedWindows(&gUnknown_203B320->s28.s0.windows);
|
||||
gUnknown_203B320->s28.m.menuWindow = &gUnknown_203B320->s28.m.windows.id[gUnknown_203B320->s28.m.menuWinId];
|
||||
RestoreSavedWindows(&gUnknown_203B320->s28.m.windows);
|
||||
|
||||
gUnknown_203B320->s28.s0.windows.id[gUnknown_203B320->s28.s0.winId] = gUnknown_80E0854;
|
||||
gUnknown_203B320->s28.s0.unk38->header = &gUnknown_203B320->s28.header;
|
||||
gUnknown_203B320->s28.m.windows.id[gUnknown_203B320->s28.m.menuWinId] = gUnknown_80E0854;
|
||||
gUnknown_203B320->s28.m.menuWindow->header = &gUnknown_203B320->s28.header;
|
||||
|
||||
if (r2 != 0)
|
||||
gUnknown_203B320->s28.s0.windows.id[gUnknown_203B320->s28.s0.winId].pos = *r2;
|
||||
gUnknown_203B320->s28.m.windows.id[gUnknown_203B320->s28.m.menuWinId].pos = *r2;
|
||||
|
||||
sub_8012D08(gUnknown_203B320->s28.s0.unk38, r3);
|
||||
sub_8012D08(gUnknown_203B320->s28.m.menuWindow, r3);
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&gUnknown_203B320->s28.s0.windows, TRUE, TRUE);
|
||||
CreateMenuOnWindow(&gUnknown_203B320->s28.s0.input, sub_8030A74(), r3, r1);
|
||||
ShowWindows(&gUnknown_203B320->s28.m.windows, TRUE, TRUE);
|
||||
CreateMenuOnWindow(&gUnknown_203B320->s28.m.input, sub_8030A74(), r3, r1);
|
||||
sub_80308A0();
|
||||
sub_803092C();
|
||||
return 1;
|
||||
@@ -109,10 +109,10 @@ u32 sub_8030768(u8 r0)
|
||||
{
|
||||
if(r0 == 0)
|
||||
{
|
||||
sub_8013660(&gUnknown_203B320->s28.s0.input);
|
||||
sub_8013660(&gUnknown_203B320->s28.m.input);
|
||||
return 0;
|
||||
}
|
||||
switch(GetKeyPress(&gUnknown_203B320->s28.s0.input))
|
||||
switch(GetKeyPress(&gUnknown_203B320->s28.m.input))
|
||||
{
|
||||
case INPUT_START_BUTTON:
|
||||
PlayMenuSoundEffect(4);
|
||||
@@ -124,7 +124,7 @@ u32 sub_8030768(u8 r0)
|
||||
PlayMenuSoundEffect(0);
|
||||
return 3;
|
||||
default:
|
||||
if(MenuCursorUpdate(&gUnknown_203B320->s28.s0.input, TRUE) != 0)
|
||||
if(MenuCursorUpdate(&gUnknown_203B320->s28.m.input, TRUE) != 0)
|
||||
{
|
||||
sub_80308A0();
|
||||
sub_803092C();
|
||||
@@ -137,27 +137,27 @@ u32 sub_8030768(u8 r0)
|
||||
|
||||
u8 sub_80307EC(void)
|
||||
{
|
||||
return gUnknown_203B320->unk0[GET_CURRENT_MENU_ENTRY(gUnknown_203B320->s28.s0.input)];
|
||||
return gUnknown_203B320->unk0[GET_CURRENT_MENU_ENTRY(gUnknown_203B320->s28.m.input)];
|
||||
}
|
||||
|
||||
void sub_8030810(u8 r0)
|
||||
{
|
||||
gUnknown_203B320->s28.s0.input.totalEntriesCount = sub_8030A74();
|
||||
MenuUpdatePagesData(&gUnknown_203B320->s28.s0.input);
|
||||
gUnknown_203B320->s28.m.input.totalEntriesCount = sub_8030A74();
|
||||
MenuUpdatePagesData(&gUnknown_203B320->s28.m.input);
|
||||
|
||||
sub_80308A0();
|
||||
sub_803092C();
|
||||
if(r0 != 0)
|
||||
AddMenuCursorSprite(&gUnknown_203B320->s28.s0.input);
|
||||
AddMenuCursorSprite(&gUnknown_203B320->s28.m.input);
|
||||
}
|
||||
|
||||
void sub_803084C(void)
|
||||
{
|
||||
if(gUnknown_203B320 != NULL)
|
||||
{
|
||||
gUnknown_203B320->s28.s0.windows.id[gUnknown_203B320->s28.s0.winId] = gUnknown_80E083C;
|
||||
gUnknown_203B320->s28.m.windows.id[gUnknown_203B320->s28.m.menuWinId] = gUnknown_80E083C;
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&gUnknown_203B320->s28.s0.windows, TRUE, TRUE);
|
||||
ShowWindows(&gUnknown_203B320->s28.m.windows, TRUE, TRUE);
|
||||
MemoryFree(gUnknown_203B320);
|
||||
gUnknown_203B320 = NULL;
|
||||
}
|
||||
@@ -170,14 +170,14 @@ u8 *sub_8030894(void)
|
||||
|
||||
void sub_80308A0(void)
|
||||
{
|
||||
gUnknown_203B320->s28.header.count = gUnknown_203B320->s28.s0.input.pagesCount;
|
||||
gUnknown_203B320->s28.header.currId = gUnknown_203B320->s28.s0.input.currPage;
|
||||
gUnknown_203B320->s28.header.count = gUnknown_203B320->s28.m.input.pagesCount;
|
||||
gUnknown_203B320->s28.header.currId = gUnknown_203B320->s28.m.input.currPage;
|
||||
gUnknown_203B320->s28.header.width = 12;
|
||||
gUnknown_203B320->s28.header.f3 = 0;
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&gUnknown_203B320->s28.s0.windows, TRUE, TRUE);
|
||||
ShowWindows(&gUnknown_203B320->s28.m.windows, TRUE, TRUE);
|
||||
|
||||
SUB_80095E4_CALL(gUnknown_203B320->s28.s0);
|
||||
UPDATE_MENU_WINDOW_HEIGHT(gUnknown_203B320->s28.m);
|
||||
}
|
||||
|
||||
void sub_803092C(void)
|
||||
@@ -188,20 +188,20 @@ void sub_803092C(void)
|
||||
s32 index;
|
||||
unkStruct_802C39C local;
|
||||
|
||||
CallPrepareTextbox_8008C54(gUnknown_203B320->s28.s0.winId);
|
||||
sub_80073B8(gUnknown_203B320->s28.s0.winId);
|
||||
r4 = gUnknown_203B320->s28.s0.input.currPage * 8;
|
||||
CallPrepareTextbox_8008C54(gUnknown_203B320->s28.m.menuWinId);
|
||||
sub_80073B8(gUnknown_203B320->s28.m.menuWinId);
|
||||
r4 = gUnknown_203B320->s28.m.input.currPage * 8;
|
||||
r5 = r4;
|
||||
r5 += 10;
|
||||
PrintStringOnWindow(r5,0,gUnknown_80E086C[gUnknown_203B320->wonderMailType],gUnknown_203B320->s28.s0.winId,0);
|
||||
PrintStringOnWindow(r5,0,gUnknown_80E086C[gUnknown_203B320->wonderMailType],gUnknown_203B320->s28.m.menuWinId,0);
|
||||
r4 += 4;
|
||||
r5 = r4 + gUnknown_203B320->s28.header.width * 8;
|
||||
sub_8012BC4(r5,0,gUnknown_203B320->s28.s0.input.currPage + 1,1,7,gUnknown_203B320->s28.s0.winId);
|
||||
sub_8012BC4(r5,0,gUnknown_203B320->s28.m.input.currPage + 1,1,7,gUnknown_203B320->s28.m.menuWinId);
|
||||
|
||||
for (index = 0; index < gUnknown_203B320->s28.s0.input.currPageEntries; index++) {
|
||||
mail = GetMailatIndex(gUnknown_203B320->unk0[(gUnknown_203B320->s28.s0.input.currPage * gUnknown_203B320->s28.s0.input.entriesPerPage) + index]);
|
||||
local.unk0[0] = gUnknown_203B320->s28.s0.winId;
|
||||
local.y = GetMenuEntryYCoord(&gUnknown_203B320->s28.s0.input,index);
|
||||
for (index = 0; index < gUnknown_203B320->s28.m.input.currPageEntries; index++) {
|
||||
mail = GetMailatIndex(gUnknown_203B320->unk0[(gUnknown_203B320->s28.m.input.currPage * gUnknown_203B320->s28.m.input.entriesPerPage) + index]);
|
||||
local.unk0[0] = gUnknown_203B320->s28.m.menuWinId;
|
||||
local.y = GetMenuEntryYCoord(&gUnknown_203B320->s28.m.input,index);
|
||||
local.mailTitleType = 7;
|
||||
local.mailMissionType = MISSION_TYPE_FRIEND_RESCUE;
|
||||
local.mailStatus = MAIL_STATUS_SUSPENDED;
|
||||
@@ -232,7 +232,7 @@ void sub_803092C(void)
|
||||
}
|
||||
CreateRescueTitle(&local);
|
||||
}
|
||||
sub_80073E0(gUnknown_203B320->s28.s0.winId);
|
||||
sub_80073E0(gUnknown_203B320->s28.m.menuWinId);
|
||||
}
|
||||
|
||||
s32 sub_8030A74(void)
|
||||
|
||||
@@ -28,22 +28,22 @@ bool8 sub_802C10C(s32 a0, DungeonPos *a1, s32 a2)
|
||||
if (gUnknown_203B2E0 == NULL)
|
||||
gUnknown_203B2E0 = MemoryAlloc(sizeof(struct unkStruct_203B2E0), 8);
|
||||
|
||||
gUnknown_203B2E0->unk8.s0.winId = a0;
|
||||
gUnknown_203B2E0->unk8.s0.unk38 = &gUnknown_203B2E0->unk8.s0.windows.id[a0];
|
||||
RestoreSavedWindows(&gUnknown_203B2E0->unk8.s0.windows);
|
||||
gUnknown_203B2E0->unk8.m.menuWinId = a0;
|
||||
gUnknown_203B2E0->unk8.m.menuWindow = &gUnknown_203B2E0->unk8.m.windows.id[a0];
|
||||
RestoreSavedWindows(&gUnknown_203B2E0->unk8.m.windows);
|
||||
|
||||
gUnknown_203B2E0->unk8.s0.windows.id[gUnknown_203B2E0->unk8.s0.winId] = sUnknown_80DFCB4;
|
||||
gUnknown_203B2E0->unk8.s0.unk38->header = &gUnknown_203B2E0->unk8.header;
|
||||
gUnknown_203B2E0->unk8.m.windows.id[gUnknown_203B2E0->unk8.m.menuWinId] = sUnknown_80DFCB4;
|
||||
gUnknown_203B2E0->unk8.m.menuWindow->header = &gUnknown_203B2E0->unk8.header;
|
||||
|
||||
if (a1 != NULL)
|
||||
gUnknown_203B2E0->unk8.s0.windows.id[gUnknown_203B2E0->unk8.s0.winId].pos = *a1;
|
||||
gUnknown_203B2E0->unk8.m.windows.id[gUnknown_203B2E0->unk8.m.menuWinId].pos = *a1;
|
||||
|
||||
sub_8012D34(gUnknown_203B2E0->unk8.s0.unk38, a2);
|
||||
sub_8012D34(gUnknown_203B2E0->unk8.m.menuWindow, a2);
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&gUnknown_203B2E0->unk8.s0.windows, TRUE, TRUE);
|
||||
CreateMenuOnWindow2(&gUnknown_203B2E0->unk8.s0.input, CountPelipperBoardSlots(), a2, a0);
|
||||
gUnknown_203B2E0->unk8.s0.input.menuIndex = gUnknown_203B2E4;
|
||||
MenuUpdatePagesData(&gUnknown_203B2E0->unk8.s0.input);
|
||||
ShowWindows(&gUnknown_203B2E0->unk8.m.windows, TRUE, TRUE);
|
||||
CreateMenuOnWindowTwoLinesEntry(&gUnknown_203B2E0->unk8.m.input, CountPelipperBoardSlots(), a2, a0);
|
||||
gUnknown_203B2E0->unk8.m.input.menuIndex = gUnknown_203B2E4;
|
||||
MenuUpdatePagesData(&gUnknown_203B2E0->unk8.m.input);
|
||||
sub_802C328();
|
||||
DrawPelipperBoardJobMenu();
|
||||
return TRUE;
|
||||
@@ -52,11 +52,11 @@ bool8 sub_802C10C(s32 a0, DungeonPos *a1, s32 a2)
|
||||
u32 sub_802C1E4(bool8 a0)
|
||||
{
|
||||
if (!a0) {
|
||||
sub_8013660(&gUnknown_203B2E0->unk8.s0.input);
|
||||
sub_8013660(&gUnknown_203B2E0->unk8.m.input);
|
||||
return 0;
|
||||
}
|
||||
|
||||
switch (GetKeyPress(&gUnknown_203B2E0->unk8.s0.input)) {
|
||||
switch (GetKeyPress(&gUnknown_203B2E0->unk8.m.input)) {
|
||||
case INPUT_B_BUTTON:
|
||||
PlayMenuSoundEffect(1);
|
||||
return 2;
|
||||
@@ -67,7 +67,7 @@ u32 sub_802C1E4(bool8 a0)
|
||||
PlayMenuSoundEffect(4);
|
||||
return 4;
|
||||
default:
|
||||
if (MenuCursorUpdate(&gUnknown_203B2E0->unk8.s0.input, 1)) {
|
||||
if (MenuCursorUpdate(&gUnknown_203B2E0->unk8.m.input, 1)) {
|
||||
sub_802C328();
|
||||
DrawPelipperBoardJobMenu();
|
||||
return 1;
|
||||
@@ -78,29 +78,29 @@ u32 sub_802C1E4(bool8 a0)
|
||||
|
||||
u8 sub_802C26C(void)
|
||||
{
|
||||
return gUnknown_203B2E0->pelipperBoardSlots[GET_CURRENT_MENU_ENTRY(gUnknown_203B2E0->unk8.s0.input)];
|
||||
return gUnknown_203B2E0->pelipperBoardSlots[GET_CURRENT_MENU_ENTRY(gUnknown_203B2E0->unk8.m.input)];
|
||||
}
|
||||
|
||||
void sub_802C28C(bool8 cursorSprite)
|
||||
{
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&gUnknown_203B2E0->unk8.s0.windows, FALSE, FALSE);
|
||||
gUnknown_203B2E0->unk8.s0.input.totalEntriesCount = CountPelipperBoardSlots();
|
||||
MenuUpdatePagesData(&gUnknown_203B2E0->unk8.s0.input);
|
||||
ShowWindows(&gUnknown_203B2E0->unk8.m.windows, FALSE, FALSE);
|
||||
gUnknown_203B2E0->unk8.m.input.totalEntriesCount = CountPelipperBoardSlots();
|
||||
MenuUpdatePagesData(&gUnknown_203B2E0->unk8.m.input);
|
||||
sub_802C328();
|
||||
DrawPelipperBoardJobMenu();
|
||||
|
||||
if (cursorSprite)
|
||||
AddMenuCursorSprite(&gUnknown_203B2E0->unk8.s0.input);
|
||||
AddMenuCursorSprite(&gUnknown_203B2E0->unk8.m.input);
|
||||
}
|
||||
|
||||
void sub_802C2D4(void)
|
||||
{
|
||||
if (gUnknown_203B2E0 != NULL) {
|
||||
gUnknown_203B2E4 = gUnknown_203B2E0->unk8.s0.input.menuIndex;
|
||||
gUnknown_203B2E0->unk8.s0.windows.id[gUnknown_203B2E0->unk8.s0.winId] = sUnknown_80DFC9C;
|
||||
gUnknown_203B2E4 = gUnknown_203B2E0->unk8.m.input.menuIndex;
|
||||
gUnknown_203B2E0->unk8.m.windows.id[gUnknown_203B2E0->unk8.m.menuWinId] = sUnknown_80DFC9C;
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&gUnknown_203B2E0->unk8.s0.windows, TRUE, TRUE);
|
||||
ShowWindows(&gUnknown_203B2E0->unk8.m.windows, TRUE, TRUE);
|
||||
MemoryFree(gUnknown_203B2E0);
|
||||
gUnknown_203B2E0 = NULL;
|
||||
}
|
||||
@@ -108,12 +108,12 @@ void sub_802C2D4(void)
|
||||
|
||||
static void sub_802C328(void)
|
||||
{
|
||||
gUnknown_203B2E0->unk8.header.count = gUnknown_203B2E0->unk8.s0.input.pagesCount;
|
||||
gUnknown_203B2E0->unk8.header.currId = gUnknown_203B2E0->unk8.s0.input.currPage;
|
||||
gUnknown_203B2E0->unk8.header.count = gUnknown_203B2E0->unk8.m.input.pagesCount;
|
||||
gUnknown_203B2E0->unk8.header.currId = gUnknown_203B2E0->unk8.m.input.currPage;
|
||||
gUnknown_203B2E0->unk8.header.width = 12;
|
||||
gUnknown_203B2E0->unk8.header.f3 = 0;
|
||||
|
||||
SUB_8009614_CALL(gUnknown_203B2E0->unk8.s0);
|
||||
UPDATE_TWO_LINES_MENU_WINDOW_HEIGHT(gUnknown_203B2E0->unk8.m);
|
||||
}
|
||||
|
||||
void DrawPelipperBoardJobMenu(void)
|
||||
@@ -125,22 +125,22 @@ void DrawPelipperBoardJobMenu(void)
|
||||
s32 i;
|
||||
unkStruct_802C39C local;
|
||||
|
||||
CallPrepareTextbox_8008C54(gUnknown_203B2E0->unk8.s0.winId);
|
||||
sub_80073B8(gUnknown_203B2E0->unk8.s0.winId);
|
||||
iVar4 = gUnknown_203B2E0->unk8.s0.input.currPage * 8;
|
||||
CallPrepareTextbox_8008C54(gUnknown_203B2E0->unk8.m.menuWinId);
|
||||
sub_80073B8(gUnknown_203B2E0->unk8.m.menuWinId);
|
||||
iVar4 = gUnknown_203B2E0->unk8.m.input.currPage * 8;
|
||||
x = iVar4;
|
||||
x += 10;
|
||||
PrintStringOnWindow(x, 0, sBulletinBoard, gUnknown_203B2E0->unk8.s0.winId, 0);
|
||||
PrintStringOnWindow(x, 0, sBulletinBoard, gUnknown_203B2E0->unk8.m.menuWinId, 0);
|
||||
|
||||
iVar4 += 4;
|
||||
x = iVar4 + (gUnknown_203B2E0->unk8.header.width * 8);
|
||||
sub_8012BC4(x, 0, gUnknown_203B2E0->unk8.s0.input.currPage + 1, 2, 7, gUnknown_203B2E0->unk8.s0.winId);
|
||||
sub_8012BC4(x, 0, gUnknown_203B2E0->unk8.m.input.currPage + 1, 2, 7, gUnknown_203B2E0->unk8.m.menuWinId);
|
||||
|
||||
for (i = 0; i < gUnknown_203B2E0->unk8.s0.input.currPageEntries; i++) {
|
||||
slotIndex = (gUnknown_203B2E0->pelipperBoardSlots[(gUnknown_203B2E0->unk8.s0.input.currPage * gUnknown_203B2E0->unk8.s0.input.entriesPerPage) + i]);
|
||||
for (i = 0; i < gUnknown_203B2E0->unk8.m.input.currPageEntries; i++) {
|
||||
slotIndex = (gUnknown_203B2E0->pelipperBoardSlots[(gUnknown_203B2E0->unk8.m.input.currPage * gUnknown_203B2E0->unk8.m.input.entriesPerPage) + i]);
|
||||
mail = GetPelipperBoardSlotInfo(slotIndex);
|
||||
local.unk0[0] = gUnknown_203B2E0->unk8.s0.winId;
|
||||
local.y = GetMenuEntryYCoord(&gUnknown_203B2E0->unk8.s0.input, i);
|
||||
local.unk0[0] = gUnknown_203B2E0->unk8.m.menuWinId;
|
||||
local.y = GetMenuEntryYCoord(&gUnknown_203B2E0->unk8.m.input, i);
|
||||
sub_803B35C(mail, &local);
|
||||
|
||||
if (IsMailinJobSlot(GetPelipperBoardSlotInfo(slotIndex)))
|
||||
@@ -149,7 +149,7 @@ void DrawPelipperBoardJobMenu(void)
|
||||
CreateRescueTitle(&local);
|
||||
}
|
||||
|
||||
sub_80073E0(gUnknown_203B2E0->unk8.s0.winId);
|
||||
sub_80073E0(gUnknown_203B2E0->unk8.m.menuWinId);
|
||||
}
|
||||
|
||||
static s32 CountPelipperBoardSlots(void)
|
||||
|
||||
@@ -30,22 +30,22 @@ bool8 sub_802C4C8(s32 a0, DungeonPos *a1, u32 a2)
|
||||
return FALSE;
|
||||
|
||||
gUnknown_203B2E8 = MemoryAlloc(sizeof(struct unkStruct_203B2E0), 8);
|
||||
gUnknown_203B2E8->unk8.s0.winId = a0;
|
||||
gUnknown_203B2E8->unk8.s0.unk38 = &gUnknown_203B2E8->unk8.s0.windows.id[a0];
|
||||
RestoreSavedWindows(&gUnknown_203B2E8->unk8.s0.windows);
|
||||
gUnknown_203B2E8->unk8.m.menuWinId = a0;
|
||||
gUnknown_203B2E8->unk8.m.menuWindow = &gUnknown_203B2E8->unk8.m.windows.id[a0];
|
||||
RestoreSavedWindows(&gUnknown_203B2E8->unk8.m.windows);
|
||||
|
||||
gUnknown_203B2E8->unk8.s0.windows.id[gUnknown_203B2E8->unk8.s0.winId] = sUnknown_80DFCFC;
|
||||
gUnknown_203B2E8->unk8.s0.unk38->header = &gUnknown_203B2E8->unk8.header;
|
||||
gUnknown_203B2E8->unk8.m.windows.id[gUnknown_203B2E8->unk8.m.menuWinId] = sUnknown_80DFCFC;
|
||||
gUnknown_203B2E8->unk8.m.menuWindow->header = &gUnknown_203B2E8->unk8.header;
|
||||
|
||||
if (a1 != NULL)
|
||||
gUnknown_203B2E8->unk8.s0.windows.id[gUnknown_203B2E8->unk8.s0.winId].pos = *a1;
|
||||
gUnknown_203B2E8->unk8.m.windows.id[gUnknown_203B2E8->unk8.m.menuWinId].pos = *a1;
|
||||
|
||||
sub_8012D34(gUnknown_203B2E8->unk8.s0.unk38, a2);
|
||||
sub_8012D34(gUnknown_203B2E8->unk8.m.menuWindow, a2);
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&gUnknown_203B2E8->unk8.s0.windows, TRUE, TRUE);
|
||||
CreateMenuOnWindow2(&gUnknown_203B2E8->unk8.s0.input, CountAcceptedJobs(), a2, a0);
|
||||
gUnknown_203B2E8->unk8.s0.input.menuIndex = gUnknown_203B2EC;
|
||||
MenuUpdatePagesData(&gUnknown_203B2E8->unk8.s0.input);
|
||||
ShowWindows(&gUnknown_203B2E8->unk8.m.windows, TRUE, TRUE);
|
||||
CreateMenuOnWindowTwoLinesEntry(&gUnknown_203B2E8->unk8.m.input, CountAcceptedJobs(), a2, a0);
|
||||
gUnknown_203B2E8->unk8.m.input.menuIndex = gUnknown_203B2EC;
|
||||
MenuUpdatePagesData(&gUnknown_203B2E8->unk8.m.input);
|
||||
sub_802C6DC();
|
||||
DrawJobListMenu();
|
||||
return TRUE;
|
||||
@@ -54,11 +54,11 @@ bool8 sub_802C4C8(s32 a0, DungeonPos *a1, u32 a2)
|
||||
u32 sub_802C598(bool8 a0)
|
||||
{
|
||||
if (!a0) {
|
||||
sub_8013660(&gUnknown_203B2E8->unk8.s0.input);
|
||||
sub_8013660(&gUnknown_203B2E8->unk8.m.input);
|
||||
return 0;
|
||||
}
|
||||
|
||||
switch (GetKeyPress(&gUnknown_203B2E8->unk8.s0.input)) {
|
||||
switch (GetKeyPress(&gUnknown_203B2E8->unk8.m.input)) {
|
||||
case INPUT_B_BUTTON:
|
||||
PlayMenuSoundEffect(1);
|
||||
return 2;
|
||||
@@ -70,7 +70,7 @@ u32 sub_802C598(bool8 a0)
|
||||
return 4;
|
||||
}
|
||||
|
||||
if (MenuCursorUpdate(&gUnknown_203B2E8->unk8.s0.input, 1)) {
|
||||
if (MenuCursorUpdate(&gUnknown_203B2E8->unk8.m.input, 1)) {
|
||||
sub_802C6DC();
|
||||
DrawJobListMenu();
|
||||
return 1;
|
||||
@@ -80,29 +80,29 @@ u32 sub_802C598(bool8 a0)
|
||||
|
||||
u8 GetPelipperBoardSlotIndex(void)
|
||||
{
|
||||
return gUnknown_203B2E8->pelipperBoardSlots[GET_CURRENT_MENU_ENTRY(gUnknown_203B2E8->unk8.s0.input)];
|
||||
return gUnknown_203B2E8->pelipperBoardSlots[GET_CURRENT_MENU_ENTRY(gUnknown_203B2E8->unk8.m.input)];
|
||||
}
|
||||
|
||||
void sub_802C640(bool8 cursorSprite)
|
||||
{
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&gUnknown_203B2E8->unk8.s0.windows, FALSE, FALSE);
|
||||
gUnknown_203B2E8->unk8.s0.input.totalEntriesCount = CountAcceptedJobs();
|
||||
MenuUpdatePagesData(&gUnknown_203B2E8->unk8.s0.input);
|
||||
ShowWindows(&gUnknown_203B2E8->unk8.m.windows, FALSE, FALSE);
|
||||
gUnknown_203B2E8->unk8.m.input.totalEntriesCount = CountAcceptedJobs();
|
||||
MenuUpdatePagesData(&gUnknown_203B2E8->unk8.m.input);
|
||||
sub_802C6DC();
|
||||
DrawJobListMenu();
|
||||
|
||||
if (cursorSprite)
|
||||
AddMenuCursorSprite(&gUnknown_203B2E8->unk8.s0.input);
|
||||
AddMenuCursorSprite(&gUnknown_203B2E8->unk8.m.input);
|
||||
}
|
||||
|
||||
void sub_802C688(void)
|
||||
{
|
||||
if (gUnknown_203B2E8 != NULL) {
|
||||
gUnknown_203B2EC = gUnknown_203B2E8->unk8.s0.input.menuIndex;
|
||||
gUnknown_203B2E8->unk8.s0.windows.id[gUnknown_203B2E8->unk8.s0.winId] = sUnknown_80DFCE4;
|
||||
gUnknown_203B2EC = gUnknown_203B2E8->unk8.m.input.menuIndex;
|
||||
gUnknown_203B2E8->unk8.m.windows.id[gUnknown_203B2E8->unk8.m.menuWinId] = sUnknown_80DFCE4;
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&gUnknown_203B2E8->unk8.s0.windows, TRUE, TRUE);
|
||||
ShowWindows(&gUnknown_203B2E8->unk8.m.windows, TRUE, TRUE);
|
||||
MemoryFree(gUnknown_203B2E8);
|
||||
gUnknown_203B2E8 = NULL;
|
||||
}
|
||||
@@ -110,12 +110,12 @@ void sub_802C688(void)
|
||||
|
||||
static void sub_802C6DC(void)
|
||||
{
|
||||
gUnknown_203B2E8->unk8.header.count = gUnknown_203B2E8->unk8.s0.input.pagesCount;
|
||||
gUnknown_203B2E8->unk8.header.currId = gUnknown_203B2E8->unk8.s0.input.currPage;
|
||||
gUnknown_203B2E8->unk8.header.count = gUnknown_203B2E8->unk8.m.input.pagesCount;
|
||||
gUnknown_203B2E8->unk8.header.currId = gUnknown_203B2E8->unk8.m.input.currPage;
|
||||
gUnknown_203B2E8->unk8.header.width = 12;
|
||||
gUnknown_203B2E8->unk8.header.f3 = 0;
|
||||
|
||||
SUB_8009614_CALL(gUnknown_203B2E8->unk8.s0);
|
||||
UPDATE_TWO_LINES_MENU_WINDOW_HEIGHT(gUnknown_203B2E8->unk8.m);
|
||||
}
|
||||
|
||||
void DrawJobListMenu(void)
|
||||
@@ -126,26 +126,26 @@ void DrawJobListMenu(void)
|
||||
s32 x;
|
||||
unkStruct_802C39C local;
|
||||
|
||||
CallPrepareTextbox_8008C54(gUnknown_203B2E8->unk8.s0.winId);
|
||||
sub_80073B8(gUnknown_203B2E8->unk8.s0.winId);
|
||||
r4 = gUnknown_203B2E8->unk8.s0.input.currPage * 8;
|
||||
CallPrepareTextbox_8008C54(gUnknown_203B2E8->unk8.m.menuWinId);
|
||||
sub_80073B8(gUnknown_203B2E8->unk8.m.menuWinId);
|
||||
r4 = gUnknown_203B2E8->unk8.m.input.currPage * 8;
|
||||
x = r4;
|
||||
x += 10;
|
||||
PrintStringOnWindow(x, 0, sJobList, gUnknown_203B2E8->unk8.s0.winId, 0);
|
||||
PrintStringOnWindow(x, 0, sJobList, gUnknown_203B2E8->unk8.m.menuWinId, 0);
|
||||
|
||||
r4 += 4;
|
||||
x = r4 + (gUnknown_203B2E8->unk8.header.width * 8);
|
||||
sub_8012BC4(x, 0, gUnknown_203B2E8->unk8.s0.input.currPage + 1, 2, 7, gUnknown_203B2E8->unk8.s0.winId);
|
||||
sub_8012BC4(x, 0, gUnknown_203B2E8->unk8.m.input.currPage + 1, 2, 7, gUnknown_203B2E8->unk8.m.menuWinId);
|
||||
|
||||
for (i = 0; i < gUnknown_203B2E8->unk8.s0.input.currPageEntries; i++) {
|
||||
mail = GetJobSlotInfo(gUnknown_203B2E8->pelipperBoardSlots[(gUnknown_203B2E8->unk8.s0.input.currPage * gUnknown_203B2E8->unk8.s0.input.entriesPerPage) + i]);
|
||||
local.unk0[0] = gUnknown_203B2E8->unk8.s0.winId;
|
||||
local.y = GetMenuEntryYCoord(&gUnknown_203B2E8->unk8.s0.input, i);
|
||||
for (i = 0; i < gUnknown_203B2E8->unk8.m.input.currPageEntries; i++) {
|
||||
mail = GetJobSlotInfo(gUnknown_203B2E8->pelipperBoardSlots[(gUnknown_203B2E8->unk8.m.input.currPage * gUnknown_203B2E8->unk8.m.input.entriesPerPage) + i]);
|
||||
local.unk0[0] = gUnknown_203B2E8->unk8.m.menuWinId;
|
||||
local.y = GetMenuEntryYCoord(&gUnknown_203B2E8->unk8.m.input, i);
|
||||
sub_803B35C(mail, &local);
|
||||
CreateRescueTitle(&local);
|
||||
}
|
||||
|
||||
sub_80073E0(gUnknown_203B2E8->unk8.s0.winId);
|
||||
sub_80073E0(gUnknown_203B2E8->unk8.m.menuWinId);
|
||||
}
|
||||
|
||||
static s32 CountAcceptedJobs(void)
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
#include "constants/input.h"
|
||||
#include "structs/str_802C39C.h"
|
||||
#include "structs/str_wonder_mail.h"
|
||||
#include "structs/struct_sub80095e4.h"
|
||||
#include "text_3.h"
|
||||
#include "music_util.h"
|
||||
#include "code_803B050.h"
|
||||
#include "input.h"
|
||||
@@ -14,7 +14,7 @@
|
||||
#include "text_2.h"
|
||||
#include "wonder_mail_802CDD4.h"
|
||||
|
||||
static EWRAM_INIT struct_Sub80095E4_2 *sUnknown_203B2F4 = {NULL};
|
||||
static EWRAM_INIT MenuHeaderWindow *sUnknown_203B2F4 = {NULL};
|
||||
|
||||
#include "data/wonder_mail_802CDD4.h"
|
||||
|
||||
@@ -23,17 +23,17 @@ static void sub_802CF5C(void);
|
||||
bool8 sub_802CDD4(u32 a0)
|
||||
{
|
||||
if (sUnknown_203B2F4 == NULL)
|
||||
sUnknown_203B2F4 = MemoryAlloc(sizeof(struct_Sub80095E4_2), 8);
|
||||
sUnknown_203B2F4 = MemoryAlloc(sizeof(MenuHeaderWindow), 8);
|
||||
|
||||
sUnknown_203B2F4->s0.winId = a0;
|
||||
sUnknown_203B2F4->s0.unk38 = &sUnknown_203B2F4->s0.windows.id[sUnknown_203B2F4->s0.winId];
|
||||
RestoreSavedWindows(&sUnknown_203B2F4->s0.windows);
|
||||
sUnknown_203B2F4->s0.windows.id[sUnknown_203B2F4->s0.winId] = sUnknown_80DFDA4;
|
||||
sUnknown_203B2F4->s0.unk38->header = &sUnknown_203B2F4->header;
|
||||
sub_8012D34(sUnknown_203B2F4->s0.unk38, 4);
|
||||
sUnknown_203B2F4->m.menuWinId = a0;
|
||||
sUnknown_203B2F4->m.menuWindow = &sUnknown_203B2F4->m.windows.id[sUnknown_203B2F4->m.menuWinId];
|
||||
RestoreSavedWindows(&sUnknown_203B2F4->m.windows);
|
||||
sUnknown_203B2F4->m.windows.id[sUnknown_203B2F4->m.menuWinId] = sUnknown_80DFDA4;
|
||||
sUnknown_203B2F4->m.menuWindow->header = &sUnknown_203B2F4->header;
|
||||
sub_8012D34(sUnknown_203B2F4->m.menuWindow, 4);
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&sUnknown_203B2F4->s0.windows, TRUE, TRUE);
|
||||
CreateMenuOnWindow2(&sUnknown_203B2F4->s0.input, 5, 4, a0);
|
||||
ShowWindows(&sUnknown_203B2F4->m.windows, TRUE, TRUE);
|
||||
CreateMenuOnWindowTwoLinesEntry(&sUnknown_203B2F4->m.input, 5, 4, a0);
|
||||
sub_802CF5C();
|
||||
sub_802CFD0();
|
||||
return TRUE;
|
||||
@@ -42,18 +42,18 @@ bool8 sub_802CDD4(u32 a0)
|
||||
u32 sub_802CE5C(bool8 a0)
|
||||
{
|
||||
if (!a0) {
|
||||
sub_8013660(&sUnknown_203B2F4->s0.input);
|
||||
sub_8013660(&sUnknown_203B2F4->m.input);
|
||||
return 0;
|
||||
}
|
||||
|
||||
switch (GetKeyPress(&sUnknown_203B2F4->s0.input)) {
|
||||
switch (GetKeyPress(&sUnknown_203B2F4->m.input)) {
|
||||
case INPUT_B_BUTTON:
|
||||
PlayMenuSoundEffect(1);
|
||||
return 2;
|
||||
case INPUT_A_BUTTON:
|
||||
return 3;
|
||||
default:
|
||||
if (MenuCursorUpdate(&sUnknown_203B2F4->s0.input, TRUE)) {
|
||||
if (MenuCursorUpdate(&sUnknown_203B2F4->m.input, TRUE)) {
|
||||
sub_802CF5C();
|
||||
sub_802CFD0();
|
||||
return 1;
|
||||
@@ -64,27 +64,27 @@ u32 sub_802CE5C(bool8 a0)
|
||||
|
||||
u8 sub_802CEBC(void)
|
||||
{
|
||||
return GET_CURRENT_MENU_ENTRY(sUnknown_203B2F4->s0.input);
|
||||
return GET_CURRENT_MENU_ENTRY(sUnknown_203B2F4->m.input);
|
||||
}
|
||||
|
||||
void sub_802CED8(bool8 cursorSprite)
|
||||
{
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&sUnknown_203B2F4->s0.windows, FALSE, FALSE);
|
||||
MenuUpdatePagesData(&sUnknown_203B2F4->s0.input);
|
||||
ShowWindows(&sUnknown_203B2F4->m.windows, FALSE, FALSE);
|
||||
MenuUpdatePagesData(&sUnknown_203B2F4->m.input);
|
||||
sub_802CF5C();
|
||||
sub_802CFD0();
|
||||
|
||||
if (cursorSprite)
|
||||
AddMenuCursorSprite(&sUnknown_203B2F4->s0.input);
|
||||
AddMenuCursorSprite(&sUnknown_203B2F4->m.input);
|
||||
}
|
||||
|
||||
void sub_802CF14(void)
|
||||
{
|
||||
if (sUnknown_203B2F4 != NULL) {
|
||||
sUnknown_203B2F4->s0.windows.id[sUnknown_203B2F4->s0.winId] = sUnknown_80DFD8C;
|
||||
sUnknown_203B2F4->m.windows.id[sUnknown_203B2F4->m.menuWinId] = sUnknown_80DFD8C;
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&sUnknown_203B2F4->s0.windows, TRUE, TRUE);
|
||||
ShowWindows(&sUnknown_203B2F4->m.windows, TRUE, TRUE);
|
||||
MemoryFree(sUnknown_203B2F4);
|
||||
sUnknown_203B2F4 = NULL;
|
||||
}
|
||||
@@ -92,12 +92,12 @@ void sub_802CF14(void)
|
||||
|
||||
static void sub_802CF5C(void)
|
||||
{
|
||||
sUnknown_203B2F4->header.count = sUnknown_203B2F4->s0.input.pagesCount;
|
||||
sUnknown_203B2F4->header.currId = sUnknown_203B2F4->s0.input.currPage;
|
||||
sUnknown_203B2F4->header.count = sUnknown_203B2F4->m.input.pagesCount;
|
||||
sUnknown_203B2F4->header.currId = sUnknown_203B2F4->m.input.currPage;
|
||||
sUnknown_203B2F4->header.width = 12;
|
||||
sUnknown_203B2F4->header.f3 = 0;
|
||||
|
||||
SUB_8009614_CALL(sUnknown_203B2F4->s0);
|
||||
UPDATE_TWO_LINES_MENU_WINDOW_HEIGHT(sUnknown_203B2F4->m);
|
||||
}
|
||||
|
||||
void sub_802CFD0(void)
|
||||
@@ -107,21 +107,21 @@ void sub_802CFD0(void)
|
||||
s32 r5;
|
||||
s32 r4;
|
||||
|
||||
CallPrepareTextbox_8008C54(sUnknown_203B2F4->s0.winId);
|
||||
sub_80073B8(sUnknown_203B2F4->s0.winId);
|
||||
CallPrepareTextbox_8008C54(sUnknown_203B2F4->m.menuWinId);
|
||||
sub_80073B8(sUnknown_203B2F4->m.menuWinId);
|
||||
|
||||
r5 = r4 = (sUnknown_203B2F4->s0.input.currPage * 8) + 10;
|
||||
PrintStringOnWindow(r5, 0, sRescueEvent, sUnknown_203B2F4->s0.winId, 0);
|
||||
r5 = r4 = (sUnknown_203B2F4->m.input.currPage * 8) + 10;
|
||||
PrintStringOnWindow(r5, 0, sRescueEvent, sUnknown_203B2F4->m.menuWinId, 0);
|
||||
|
||||
r4 -= 6;
|
||||
r5 = r4 + (sUnknown_203B2F4->header.width * 8);
|
||||
sub_8012BC4(r5, 0, sUnknown_203B2F4->s0.input.currPage + 1, 2, 7, sUnknown_203B2F4->s0.winId);
|
||||
sub_8012BC4(r5, 0, sUnknown_203B2F4->m.input.currPage + 1, 2, 7, sUnknown_203B2F4->m.menuWinId);
|
||||
|
||||
for (r5 = 0; r5 < sUnknown_203B2F4->s0.input.currPageEntries; r5++) {
|
||||
iVar1 = sub_803B344((sUnknown_203B2F4->s0.input.currPage * sUnknown_203B2F4->s0.input.entriesPerPage) + r5);
|
||||
for (r5 = 0; r5 < sUnknown_203B2F4->m.input.currPageEntries; r5++) {
|
||||
iVar1 = sub_803B344((sUnknown_203B2F4->m.input.currPage * sUnknown_203B2F4->m.input.entriesPerPage) + r5);
|
||||
|
||||
local.unk0[0] = sUnknown_203B2F4->s0.winId;
|
||||
local.y = GetMenuEntryYCoord(&sUnknown_203B2F4->s0.input, r5);
|
||||
local.unk0[0] = sUnknown_203B2F4->m.menuWinId;
|
||||
local.y = GetMenuEntryYCoord(&sUnknown_203B2F4->m.input, r5);
|
||||
sub_803B35C(&iVar1->mail, &local);
|
||||
|
||||
local.unk43 = 1;
|
||||
@@ -129,5 +129,5 @@ void sub_802CFD0(void)
|
||||
CreateRescueTitle(&local);
|
||||
}
|
||||
|
||||
sub_80073E0(sUnknown_203B2F4->s0.winId);
|
||||
sub_80073E0(sUnknown_203B2F4->m.menuWinId);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user