mirror of
https://github.com/pret/pmd-red.git
synced 2026-09-07 08:35:47 -05:00
start documenting menu input struct
This commit is contained in:
@@ -77,7 +77,7 @@ _0803B0C8:
|
||||
ldr r3, [r0, 0x34]
|
||||
adds r1, r2, 0
|
||||
movs r2, 0xA
|
||||
bl sub_8013818
|
||||
bl CreateMenuOnWindow
|
||||
bl sub_803B204
|
||||
bl sub_803B284
|
||||
movs r0, 0x1
|
||||
|
||||
@@ -1,24 +0,0 @@
|
||||
#ifndef GUARD_CODE_801D9E4_H
|
||||
#define GUARD_CODE_801D9E4_H
|
||||
|
||||
#include "structs/menu.h"
|
||||
#include "structs/str_text.h"
|
||||
|
||||
// size: 0x1C
|
||||
struct unkStruct_81188F0
|
||||
{
|
||||
/* 0x0 */ u8 *text1;
|
||||
/* 0x4 */ u8 *text2;
|
||||
/* 0x8 */ u8 *text3;
|
||||
/* 0xC */ u8 *text4[2];
|
||||
/* 0x14 */ u32 unk2;
|
||||
/* 0x18 */ u32 unk3;
|
||||
};
|
||||
|
||||
bool8 sub_801D9E4(void);
|
||||
void sub_801DA58(s16);
|
||||
u32 sub_801DA78(void);
|
||||
s16 sub_801DAC0(void);
|
||||
void sub_801DB0C(void);
|
||||
|
||||
#endif // GUARD_CODE_801D9E4_H
|
||||
13
include/debug_field_map_window.h
Normal file
13
include/debug_field_map_window.h
Normal file
@@ -0,0 +1,13 @@
|
||||
#ifndef GUARD_DEBUG_FIELD_MAP_WINDOW_H
|
||||
#define GUARD_DEBUG_FIELD_MAP_WINDOW_H
|
||||
|
||||
#define DEBUG_INPUT_B_PRESS 2
|
||||
#define DEBUG_INPUT_A_PRESS 3
|
||||
|
||||
bool8 DebugFieldMapWindow_Init(void);
|
||||
void sub_801DA58(s16);
|
||||
u32 DebugFieldMapWindow_GetInput(void);
|
||||
s16 DebugFieldMapWindow_GetCurrentIndex(void);
|
||||
void DebugFieldMapWindow_Free(void);
|
||||
|
||||
#endif // GUARD_DEBUG_FIELD_MAP_WINDOW_H
|
||||
@@ -32,8 +32,8 @@ s32 sub_80137A8(MenuInputStruct *param_1);
|
||||
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 sub_8013818(MenuInputStruct *param_1, s32 param_2, u32 param_3, s32 param_4);
|
||||
void sub_8013848(MenuInputStruct *param_1, s32 param_2, u32 param_3, s32 param_4);
|
||||
void CreateMenuOnWindow(MenuInputStruct *menuInput, s32 totalCount, u32 perPageCount, s32 windowId);
|
||||
void sub_8013848(MenuInputStruct *menuInput, s32 totalCount, u32 perPageCount, s32 windowId);
|
||||
void sub_8013878(MenuInputStruct *param_1, s32 param_2);
|
||||
bool8 sub_80138B8(MenuInputStruct *param_1, bool8 param_2);
|
||||
bool8 sub_8013938(MenuInputStruct *param_1);
|
||||
|
||||
@@ -20,7 +20,7 @@ typedef struct MenuInputStructSub
|
||||
// size: R=0x34 | NDS=0x32?
|
||||
typedef struct MenuInputStruct
|
||||
{
|
||||
/* 0x0 */ s32 unk0;
|
||||
/* 0x0 */ s32 windowId;
|
||||
/* 0x4 */ u16 unk4;
|
||||
/* 0x6 */ s16 firstEntryY;
|
||||
/* 0x8 */ DungeonPos unk8;
|
||||
@@ -30,10 +30,10 @@ typedef struct MenuInputStruct
|
||||
/* 0x14 */ DungeonPos unk14;
|
||||
/* 0x18 */ s16 menuIndex;
|
||||
/* 0x1A */ s16 unk1A;
|
||||
/* 0x1C */ s16 unk1C;
|
||||
/* 0x1C */ s16 entriesPerPage;
|
||||
/* 0x1E */ s16 unk1E;
|
||||
/* 0x20 */ s16 unk20;
|
||||
/* 0x22 */ s16 unk22;
|
||||
/* 0x22 */ s16 totalEntriesCount;
|
||||
/* 0x24 */ u16 unk24;
|
||||
/* 0x26 */ u16 unk26;
|
||||
/* 0x28 */ MenuInputStructSub unk28;
|
||||
|
||||
17
include/structs/str_81188F0.h
Normal file
17
include/structs/str_81188F0.h
Normal file
@@ -0,0 +1,17 @@
|
||||
#ifndef GUARD_STR_81188F0_H
|
||||
#define GUARD_STR_81188F0_H
|
||||
|
||||
// size: 0x1C
|
||||
struct unkStruct_81188F0
|
||||
{
|
||||
/* 0x0 */ const u8 *text1;
|
||||
/* 0x4 */ const u8 *text2;
|
||||
/* 0x8 */ const u8 *text3;
|
||||
/* 0xC */ const u8 *text4[2];
|
||||
/* 0x14 */ u32 unk2;
|
||||
/* 0x18 */ u32 unk3;
|
||||
};
|
||||
|
||||
extern const struct unkStruct_81188F0 gUnknown_81188F0[];
|
||||
|
||||
#endif // GUARD_STR_81188F0_H
|
||||
@@ -120,7 +120,7 @@ SECTIONS {
|
||||
src/iq_skill_info_menu.o(.text);
|
||||
src/code_801C8C4.o(.text);
|
||||
src/code_801D014.o(.text);
|
||||
src/code_801D9E4.o(.text);
|
||||
src/debug_field_map_window.o(.text);
|
||||
src/options_menu1.o(.text);
|
||||
src/options_menu2.o(.text);
|
||||
src/hints_menu1.o(.text);
|
||||
@@ -479,7 +479,7 @@ SECTIONS {
|
||||
src/iq_skill_info_menu.o(.rodata);
|
||||
src/code_801C8C4.o(.rodata);
|
||||
src/code_801D014.o(.rodata);
|
||||
src/code_801D9E4.o(.rodata);
|
||||
src/debug_field_map_window.o(.rodata);
|
||||
src/options_menu1.o(.rodata);
|
||||
src/options_menu2.o(.rodata);
|
||||
src/hints_menu1.o(.rodata);
|
||||
|
||||
@@ -30,7 +30,7 @@ bool8 CreateAdventureLogScreen(u32 kind)
|
||||
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&sAdventureLog->s0.windows, TRUE, TRUE);
|
||||
sub_8013818(&sAdventureLog->s0.input, 0x20, 8, kind);
|
||||
CreateMenuOnWindow(&sAdventureLog->s0.input, 0x20, 8, kind);
|
||||
sub_8032084();
|
||||
DisplayAdventureLog();
|
||||
return TRUE;
|
||||
@@ -100,7 +100,7 @@ static void DisplayAdventureLog(void)
|
||||
sub_8012BC4(r6, 0, sAdventureLog->s0.input.unk1E + 1, 1, 7, sAdventureLog->s0.winId);
|
||||
|
||||
for (i = 0; i < sAdventureLog->s0.input.unk1A; i++) {
|
||||
aa = (sAdventureLog->s0.input.unk1E * sAdventureLog->s0.input.unk1C) + i;
|
||||
aa = (sAdventureLog->s0.input.unk1E * sAdventureLog->s0.input.entriesPerPage) + i;
|
||||
|
||||
if (GetAdventureAchievement(aa)) {
|
||||
switch (aa) {
|
||||
|
||||
@@ -41,7 +41,7 @@ bool8 sub_801C8C4(s32 a0, s32 a1, DungeonPos *a2, u32 a3)
|
||||
sub_8012D08(sUnknown_203B244->unk4B4.s0.unk38, a3);
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&sUnknown_203B244->unk4B4.s0.windows, TRUE, TRUE);
|
||||
sub_8013818(&sUnknown_203B244->unk4B4.s0.input, sub_801CE58(), a3, a1);
|
||||
CreateMenuOnWindow(&sUnknown_203B244->unk4B4.s0.input, sub_801CE58(), a3, a1);
|
||||
|
||||
if (sUnknown_203B248 == sUnknown_203B244->unk0) {
|
||||
sUnknown_203B244->unk4B4.s0.input.menuIndex = sUnknown_203B24C;
|
||||
@@ -106,14 +106,14 @@ u32 sub_801CA08(bool8 a0)
|
||||
|
||||
u8 sub_801CB24(void)
|
||||
{
|
||||
return sUnknown_203B244->itemIDs[(sUnknown_203B244->unk4B4.s0.input.unk1E * sUnknown_203B244->unk4B4.s0.input.unk1C) + sUnknown_203B244->unk4B4.s0.input.menuIndex];
|
||||
return sUnknown_203B244->itemIDs[(sUnknown_203B244->unk4B4.s0.input.unk1E * sUnknown_203B244->unk4B4.s0.input.entriesPerPage) + sUnknown_203B244->unk4B4.s0.input.menuIndex];
|
||||
}
|
||||
|
||||
void sub_801CB5C(bool8 a0)
|
||||
{
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&sUnknown_203B244->unk4B4.s0.windows, FALSE, FALSE);
|
||||
sUnknown_203B244->unk4B4.s0.input.unk22 = sub_801CE58();
|
||||
sUnknown_203B244->unk4B4.s0.input.totalEntriesCount = sub_801CE58();
|
||||
sub_8013984(&sUnknown_203B244->unk4B4.s0.input);
|
||||
sub_801CC38();
|
||||
sub_801CCD8();
|
||||
@@ -160,7 +160,7 @@ void sub_801CCD8(void)
|
||||
sub_8012BC4(sUnknown_203B244->unk4B4.header.width * 8 + 4, 0, sUnknown_203B244->unk4B4.s0.input.unk1E + 1, 2, 7, sUnknown_203B244->unk4B4.s0.winId);
|
||||
|
||||
for(index = 0; index < sUnknown_203B244->unk4B4.s0.input.unk1A; index++) {
|
||||
itemID = sUnknown_203B244->itemIDs[(sUnknown_203B244->unk4B4.s0.input.unk1E * sUnknown_203B244->unk4B4.s0.input.unk1C) + index];
|
||||
itemID = sUnknown_203B244->itemIDs[(sUnknown_203B244->unk4B4.s0.input.unk1E * sUnknown_203B244->unk4B4.s0.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);
|
||||
|
||||
@@ -1,137 +0,0 @@
|
||||
#include "global.h"
|
||||
#include "globaldata.h"
|
||||
#include "constants/input.h"
|
||||
#include "structs/struct_sub80095e4.h"
|
||||
#include "music_util.h"
|
||||
#include "code_801D9E4.h"
|
||||
#include "ground_main.h"
|
||||
#include "input.h"
|
||||
#include "memory.h"
|
||||
#include "menu_input.h"
|
||||
#include "text_1.h"
|
||||
#include "text_2.h"
|
||||
|
||||
EWRAM_INIT static struct struct_Sub80095E4_2 *sUnknown_203B258 = {NULL};
|
||||
|
||||
extern const struct unkStruct_81188F0 gUnknown_81188F0[10];
|
||||
|
||||
#include "data/code_801D9E4.h"
|
||||
|
||||
static void sub_801DB54(void);
|
||||
static void sub_801DBD4(void);
|
||||
|
||||
bool8 sub_801D9E4(void)
|
||||
{
|
||||
sUnknown_203B258 = MemoryAlloc(sizeof(*sUnknown_203B258), 8);
|
||||
sUnknown_203B258->s0.winId = 3;
|
||||
sUnknown_203B258->s0.unk38 = &sUnknown_203B258->s0.windows.id[3];
|
||||
RestoreSavedWindows(&sUnknown_203B258->s0.windows);
|
||||
sUnknown_203B258->s0.windows.id[sUnknown_203B258->s0.winId] = sUnknown_80DBF88;
|
||||
sUnknown_203B258->s0.unk38->header = &sUnknown_203B258->header;
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&sUnknown_203B258->s0.windows, TRUE, TRUE);
|
||||
sub_8013818(&sUnknown_203B258->s0.input, 229, 10, sUnknown_203B258->s0.winId);
|
||||
sub_801DB54();
|
||||
sub_801DBD4();
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void sub_801DA58(s16 a0)
|
||||
{
|
||||
s32 cast;
|
||||
cast = a0;
|
||||
sub_8013878(&sUnknown_203B258->s0.input, cast);
|
||||
sub_801DB54();
|
||||
sub_801DBD4();
|
||||
}
|
||||
|
||||
u32 sub_801DA78(void)
|
||||
{
|
||||
switch (GetKeyPress(&sUnknown_203B258->s0.input)) {
|
||||
case INPUT_B_BUTTON:
|
||||
PlayMenuSoundEffect(1);
|
||||
return 2;
|
||||
case INPUT_A_BUTTON:
|
||||
return 3;
|
||||
default:
|
||||
if (sub_80138B8(&sUnknown_203B258->s0.input, 1)) {
|
||||
sub_801DB54();
|
||||
sub_801DBD4();
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
s16 sub_801DAC0(void)
|
||||
{
|
||||
return (sUnknown_203B258->s0.input.unk1E * sUnknown_203B258->s0.input.unk1C) + sUnknown_203B258->s0.input.menuIndex;
|
||||
}
|
||||
|
||||
UNUSED static void sub_801DADC(bool8 a0)
|
||||
{
|
||||
sUnknown_203B258->s0.input.unk22 = 229;
|
||||
sub_8013984(&sUnknown_203B258->s0.input);
|
||||
sub_801DB54();
|
||||
sub_801DBD4();
|
||||
if (a0)
|
||||
AddMenuCursorSprite(&sUnknown_203B258->s0.input);
|
||||
}
|
||||
|
||||
void sub_801DB0C(void)
|
||||
{
|
||||
if (sUnknown_203B258 != NULL) {
|
||||
sUnknown_203B258->s0.windows.id[sUnknown_203B258->s0.winId] = sUnknown_80DBF70;
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&sUnknown_203B258->s0.windows, TRUE, TRUE);
|
||||
MemoryFree(sUnknown_203B258);
|
||||
sUnknown_203B258 = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
static void sub_801DB54(void)
|
||||
{
|
||||
sUnknown_203B258->header.count = 1;
|
||||
sUnknown_203B258->header.currId = 0;
|
||||
sUnknown_203B258->header.width = 8;
|
||||
sUnknown_203B258->header.f3 = 0;
|
||||
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&sUnknown_203B258->s0.windows, TRUE, TRUE);
|
||||
|
||||
SUB_80095E4_CALL(sUnknown_203B258->s0);
|
||||
}
|
||||
|
||||
static void sub_801DBD4(void)
|
||||
{
|
||||
GroundConversionStruct *temp;
|
||||
const struct unkStruct_81188F0 *temp2;
|
||||
s32 x, y, n;
|
||||
s16 index;
|
||||
int counter;
|
||||
|
||||
CallPrepareTextbox_8008C54(sUnknown_203B258->s0.winId);
|
||||
sub_80073B8(sUnknown_203B258->s0.winId);
|
||||
PrintStringOnWindow(10, 0, sField, sUnknown_203B258->s0.winId, 0); // Field
|
||||
|
||||
x = (sUnknown_203B258->header.width * 8) - 2;
|
||||
n = sUnknown_203B258->s0.input.unk1E + 1;
|
||||
sub_8012BC4(x, 0, n, 2, 7, sUnknown_203B258->s0.winId);
|
||||
|
||||
// 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 < sUnknown_203B258->s0.input.unk1A; counter++) {
|
||||
index = (sUnknown_203B258->s0.input.unk1E * sUnknown_203B258->s0.input.unk1C) + counter;
|
||||
temp = &gGroundConversion_811BAF4[index];
|
||||
temp2 = &gUnknown_81188F0[temp->unk4];
|
||||
|
||||
y = GetMenuEntryYCoord(&sUnknown_203B258->s0.input, counter);
|
||||
PrintStringOnWindow(8, y, temp2->text1, sUnknown_203B258->s0.winId, 0);
|
||||
|
||||
y = GetMenuEntryYCoord(&sUnknown_203B258->s0.input, counter);
|
||||
PrintStringOnWindow(62, y, temp->text, sUnknown_203B258->s0.winId, 0);
|
||||
}
|
||||
|
||||
sub_80073E0(sUnknown_203B258->s0.winId);
|
||||
}
|
||||
@@ -95,7 +95,7 @@ u8 sub_801EE10(u32 param_1, s16 species, Move *moves, u32 param_4, const u8 *tex
|
||||
sub_8012D08(&gUnknown_203B270->windows.id[gUnknown_203B270->unk50],iVar8);
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&gUnknown_203B270->windows, TRUE, TRUE);
|
||||
sub_8013818(&gUnknown_203B270->input,iVar5,iVar5,param_6);
|
||||
CreateMenuOnWindow(&gUnknown_203B270->input,iVar5,iVar5,param_6);
|
||||
sub_8013780(&gUnknown_203B270->input,0);
|
||||
sub_801F280(TRUE);
|
||||
return 1;
|
||||
@@ -252,7 +252,7 @@ void sub_801F1B0(bool8 param_1, bool8 param_2)
|
||||
gUnknown_203B270->unk4 = param_2;
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&gUnknown_203B270->windows, TRUE, TRUE);
|
||||
gUnknown_203B270->input.unk22 = sub_801F3F8();
|
||||
gUnknown_203B270->input.totalEntriesCount = sub_801F3F8();
|
||||
sub_8013984(&gUnknown_203B270->input);
|
||||
gUnknown_203B270->input.menuIndex = sub_8092F4C(gUnknown_203B270->moves, gUnknown_203B270->input.menuIndex);
|
||||
sub_801F280(TRUE);
|
||||
|
||||
@@ -64,7 +64,7 @@ bool8 sub_801F428(s16 index, s32 param_2)
|
||||
gUnknown_203B274->s348.header.f3 = 0;
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&gUnknown_203B274->s348.s0.windows, TRUE, TRUE);
|
||||
sub_8013818(&gUnknown_203B274->s348.s0.input, sub_801F7E4(), 4, param_2);
|
||||
CreateMenuOnWindow(&gUnknown_203B274->s348.s0.input, sub_801F7E4(), 4, param_2);
|
||||
sub_801F690();
|
||||
sub_801F700();
|
||||
return TRUE;
|
||||
@@ -104,7 +104,7 @@ u32 sub_801F520(u8 param_1)
|
||||
|
||||
u16 sub_801F5B4(void)
|
||||
{
|
||||
return gUnknown_203B274->unk4->unk0[gUnknown_203B274->s348.s0.input.unk1E * gUnknown_203B274->s348.s0.input.unk1C + gUnknown_203B274->s348.s0.input.menuIndex];
|
||||
return gUnknown_203B274->unk4->unk0[gUnknown_203B274->s348.s0.input.unk1E * gUnknown_203B274->s348.s0.input.entriesPerPage + gUnknown_203B274->s348.s0.input.menuIndex];
|
||||
}
|
||||
|
||||
void sub_801F5F0(bool8 r0)
|
||||
@@ -148,7 +148,7 @@ void sub_801F700(void)
|
||||
PrintStringOnWindow(0x10,0,buffer1,gUnknown_203B274->s348.s0.winId,0);
|
||||
for(index = 0; index < gUnknown_203B274->s348.s0.input.unk1A; index++)
|
||||
{
|
||||
sub_8092C84(buffer2,gUnknown_203B274->unk4->unk0[gUnknown_203B274->s348.s0.input.unk1E * gUnknown_203B274->s348.s0.input.unk1C + index]);
|
||||
sub_8092C84(buffer2,gUnknown_203B274->unk4->unk0[gUnknown_203B274->s348.s0.input.unk1E * 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);
|
||||
}
|
||||
|
||||
@@ -66,7 +66,7 @@ bool8 sub_801F808(u16 *moveIDs)
|
||||
{
|
||||
if(gUnknown_203B278->moveIDs[index - 1] != 0) break;
|
||||
}
|
||||
sub_8013818(&gUnknown_203B278->unk28,index,1,gUnknown_203B278->unk5C);
|
||||
CreateMenuOnWindow(&gUnknown_203B278->unk28,index,1,gUnknown_203B278->unk5C);
|
||||
sub_801317C(&gUnknown_203B278->unkC8);
|
||||
sub_801F918(0);
|
||||
return 1;
|
||||
|
||||
@@ -60,7 +60,7 @@ bool8 sub_8023144(s32 a0, s32 index, DungeonPos *sub, u32 a3)
|
||||
sub_8012D08(gUnknown_3001B5C->s35C.s0.unk38, a3);
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&gUnknown_3001B5C->s35C.s0.windows, TRUE, TRUE);
|
||||
sub_8013818(&gUnknown_3001B5C->s35C.s0.input, sub_80236A4(), a3, index);
|
||||
CreateMenuOnWindow(&gUnknown_3001B5C->s35C.s0.input, sub_80236A4(), a3, index);
|
||||
gUnknown_3001B5C->s35C.s0.input.menuIndex = gUnknown_203B29C;
|
||||
gUnknown_3001B5C->s35C.s0.input.unk1E = gUnknown_203B29E;
|
||||
sub_8013984(&gUnknown_3001B5C->s35C.s0.input);
|
||||
@@ -107,7 +107,7 @@ u32 sub_8023278(bool8 a0)
|
||||
|
||||
s16 sub_802331C(void)
|
||||
{
|
||||
return gUnknown_3001B5C->unkC[(gUnknown_3001B5C->s35C.s0.input.unk1E * gUnknown_3001B5C->s35C.s0.input.unk1C) + gUnknown_3001B5C->s35C.s0.input.menuIndex];
|
||||
return gUnknown_3001B5C->unkC[(gUnknown_3001B5C->s35C.s0.input.unk1E * gUnknown_3001B5C->s35C.s0.input.entriesPerPage) + gUnknown_3001B5C->s35C.s0.input.menuIndex];
|
||||
}
|
||||
|
||||
void sub_8023354(bool8 cursorSprite)
|
||||
@@ -167,7 +167,7 @@ static void sub_80234BC(void)
|
||||
|
||||
for (i = 0; i < gUnknown_3001B5C->s35C.s0.input.unk1A; i++) {
|
||||
y = GetMenuEntryYCoord(&gUnknown_3001B5C->s35C.s0.input, i);
|
||||
species = gUnknown_3001B5C->unkC[(gUnknown_3001B5C->s35C.s0.input.unk1E * gUnknown_3001B5C->s35C.s0.input.unk1C) + i];
|
||||
species = gUnknown_3001B5C->unkC[(gUnknown_3001B5C->s35C.s0.input.unk1E * gUnknown_3001B5C->s35C.s0.input.entriesPerPage) + i];
|
||||
GetFriendAreaCapacity2(GetFriendArea(species), &auStack_2c, FALSE, FALSE);
|
||||
color = COLOR_WHITE_2;
|
||||
if (auStack_2c.hasFriendArea)
|
||||
|
||||
@@ -95,7 +95,7 @@ static void sub_8024604(void)
|
||||
sUnknown_203B2AC->unk34[1] = 3;
|
||||
sUnknown_203B2AC->unk34[2] = 5;
|
||||
|
||||
sub_8013818(&sUnknown_203B2AC->input, 3, 1, sUnknown_203B2AC->unkE0);
|
||||
CreateMenuOnWindow(&sUnknown_203B2AC->input, 3, 1, sUnknown_203B2AC->unkE0);
|
||||
iVar3 = &sUnknown_203B2AC->unk4C;
|
||||
pokeStruct = &gRecruitedPokemonRef->pokemon[sUnknown_203B2AC->speciesNum];
|
||||
SetMonSummaryInfo(iVar3, pokeStruct, sub_80023E4(7));
|
||||
|
||||
@@ -92,7 +92,7 @@ u32 sub_802F73C(u32 r0, DungeonPos *r1, u32 r2, u8 r3)
|
||||
sub_8012D08(gUnknown_203B314->sBC.s0.unk38, r2);
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&gUnknown_203B314->sBC.s0.windows, TRUE, TRUE);
|
||||
sub_8013818(&gUnknown_203B314->sBC.s0.input, sub_802FBF4(), r2, r0);
|
||||
CreateMenuOnWindow(&gUnknown_203B314->sBC.s0.input, sub_802FBF4(), r2, r0);
|
||||
sub_802F9C0();
|
||||
sub_802FA50();
|
||||
return 1;
|
||||
@@ -105,7 +105,7 @@ u32 sub_802F848(s16 param_1)
|
||||
|
||||
param_1_32 = param_1; // cast needed
|
||||
|
||||
for( index = 0; index < gUnknown_203B314->sBC.s0.input.unk22; index++ ) {
|
||||
for( index = 0; index < gUnknown_203B314->sBC.s0.input.totalEntriesCount; index++ ) {
|
||||
if (gUnknown_203B314->unk0[index] == param_1_32) {
|
||||
sub_8013878(&gUnknown_203B314->sBC.s0.input,index);
|
||||
sub_802F9C0();
|
||||
@@ -151,12 +151,12 @@ u32 sub_802F8A0(u8 r0)
|
||||
|
||||
s16 sub_802F90C(void)
|
||||
{
|
||||
return gUnknown_203B314->unk0[(gUnknown_203B314->sBC.s0.input.unk1E * gUnknown_203B314->sBC.s0.input.unk1C) + gUnknown_203B314->sBC.s0.input.menuIndex];
|
||||
return gUnknown_203B314->unk0[(gUnknown_203B314->sBC.s0.input.unk1E * gUnknown_203B314->sBC.s0.input.entriesPerPage) + gUnknown_203B314->sBC.s0.input.menuIndex];
|
||||
}
|
||||
|
||||
void sub_802F938(u8 r0)
|
||||
{
|
||||
gUnknown_203B314->sBC.s0.input.unk22 = sub_802FBF4();
|
||||
gUnknown_203B314->sBC.s0.input.totalEntriesCount = sub_802FBF4();
|
||||
sub_8013984(&gUnknown_203B314->sBC.s0.input);
|
||||
sub_802F9C0();
|
||||
sub_802FA50();
|
||||
@@ -204,7 +204,7 @@ void sub_802FA50(void)
|
||||
for(counter = 0; counter < gUnknown_203B314->sBC.s0.input.unk1A; counter++)
|
||||
{
|
||||
y = GetMenuEntryYCoord(&gUnknown_203B314->sBC.s0.input,counter);
|
||||
index = gUnknown_203B314->sBC.s0.input.unk1E * gUnknown_203B314->sBC.s0.input.unk1C + counter;
|
||||
index = gUnknown_203B314->sBC.s0.input.unk1E * gUnknown_203B314->sBC.s0.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);
|
||||
@@ -219,7 +219,7 @@ void sub_802FA50(void)
|
||||
for(counter = 0; counter < gUnknown_203B314->sBC.s0.input.unk1A; counter++)
|
||||
{
|
||||
y2 = GetMenuEntryYCoord(&gUnknown_203B314->sBC.s0.input,counter);
|
||||
text = sub_80974A0(gUnknown_203B314->unk0[gUnknown_203B314->sBC.s0.input.unk1E * gUnknown_203B314->sBC.s0.input.unk1C + counter]);
|
||||
text = sub_80974A0(gUnknown_203B314->unk0[gUnknown_203B314->sBC.s0.input.unk1E * gUnknown_203B314->sBC.s0.input.entriesPerPage + counter]);
|
||||
PrintStringOnWindow(8,y2,text,gUnknown_203B314->sBC.s0.winId,0);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
static const WindowTemplate sUnknown_80DBF70 = {
|
||||
0,
|
||||
3,
|
||||
0, 0,
|
||||
0, 0,
|
||||
0, 0,
|
||||
NULL
|
||||
};
|
||||
|
||||
static const WindowTemplate sUnknown_80DBF88 = {
|
||||
0,
|
||||
6,
|
||||
2, 2,
|
||||
24, 17,
|
||||
17, 0,
|
||||
NULL
|
||||
};
|
||||
|
||||
ALIGNED(4) static const u8 sField[] = _("Field");
|
||||
@@ -1,8 +1,8 @@
|
||||
#include "global.h"
|
||||
#include "globaldata.h"
|
||||
#include "debug_field_map_window.h"
|
||||
#include "music_util.h"
|
||||
#include "code_800558C.h"
|
||||
#include "code_801D9E4.h"
|
||||
#include "code_8099360.h"
|
||||
#include "code_800C9CC.h"
|
||||
#include "graphics_memory.h"
|
||||
@@ -31,17 +31,17 @@ extern s32 sub_809CFE8(u16 param_1);
|
||||
extern PixelPos SetVecFromDirectionSpeed(s8 r1, u32 r2);
|
||||
extern void sub_809D158(s32, PixelPos*);
|
||||
|
||||
UNUSED static void sub_80993F0(void)
|
||||
UNUSED static void DebugMapViewer(void)
|
||||
{
|
||||
PixelPos currPos;
|
||||
s32 r10 = 0;
|
||||
s32 mapId = 0;
|
||||
|
||||
ResetSoundEffectCounters();
|
||||
FadeOutAllMusic(16);
|
||||
gUnknown_2026E4E = 0x808;
|
||||
UpdateFadeInTile(0);
|
||||
sub_80095CC(0, 0x14);
|
||||
ShowWindows(NULL, TRUE, TRUE); // TODO: Create a Hide/Reset Windows macro/static inline
|
||||
ShowWindows(NULL, TRUE, TRUE);
|
||||
sub_8009408(0, 20);
|
||||
sub_8099648();
|
||||
sub_809975C();
|
||||
@@ -52,38 +52,39 @@ UNUSED static void sub_80993F0(void)
|
||||
while (1) {
|
||||
bool8 quitMapView;
|
||||
PixelPos pixPos1, pixPos2;
|
||||
PixelPos pixPos3;
|
||||
PixelPos boundary;
|
||||
|
||||
if (sub_801D9E4()) {
|
||||
sub_801DA58(r10);
|
||||
if (DebugFieldMapWindow_Init()) {
|
||||
sub_801DA58(mapId);
|
||||
while (1) {
|
||||
sub_8005838(NULL, 0);
|
||||
sub_8012A18(0);
|
||||
switch (sub_801DA78()) {
|
||||
case 3:
|
||||
r10 = sub_801DAC0();
|
||||
switch (DebugFieldMapWindow_GetInput()) {
|
||||
case DEBUG_INPUT_A_PRESS:
|
||||
mapId = DebugFieldMapWindow_GetCurrentIndex();
|
||||
break;
|
||||
case 2:
|
||||
r10 = -1;
|
||||
case DEBUG_INPUT_B_PRESS:
|
||||
mapId = -1;
|
||||
break;
|
||||
default:
|
||||
continue;
|
||||
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
else {
|
||||
r10 = -1;
|
||||
mapId = -1;
|
||||
}
|
||||
|
||||
sub_801DB0C();
|
||||
if (r10 == -1)
|
||||
DebugFieldMapWindow_Free();
|
||||
if (mapId == -1)
|
||||
break;
|
||||
|
||||
ShowWindows(NULL, TRUE, TRUE);
|
||||
GroundMap_Reset();
|
||||
sub_809D0BC();
|
||||
GroundMap_Select(r10);
|
||||
GroundMap_Select(mapId);
|
||||
sub_80A579C(&pixPos1, &pixPos2);
|
||||
pixPos1.y += 0xC00;
|
||||
pixPos2.y += 0xC00;
|
||||
@@ -91,8 +92,8 @@ UNUSED static void sub_80993F0(void)
|
||||
pixPos1.y -= 0x400;
|
||||
pixPos2.x += 0x400;
|
||||
pixPos2.y += 0x400;
|
||||
pixPos3.x = pixPos2.x - pixPos1.x;
|
||||
pixPos3.y = pixPos2.y - pixPos1.y;
|
||||
boundary.x = pixPos2.x - pixPos1.x;
|
||||
boundary.y = pixPos2.y - pixPos1.y;
|
||||
currPos.x = 0;
|
||||
currPos.y = 0;
|
||||
sub_80999E8(4);
|
||||
@@ -121,15 +122,15 @@ UNUSED static void sub_80993F0(void)
|
||||
if (currPos.x < 0) {
|
||||
currPos.x = 0;
|
||||
}
|
||||
else if (currPos.x >= pixPos3.x) {
|
||||
currPos.x = pixPos3.x - 1;
|
||||
else if (currPos.x >= boundary.x) {
|
||||
currPos.x = boundary.x - 1;
|
||||
}
|
||||
|
||||
if (currPos.y < 0) {
|
||||
currPos.y = 0;
|
||||
}
|
||||
else if (currPos.y >= pixPos3.y) {
|
||||
currPos.y = pixPos3.y - 1;
|
||||
else if (currPos.y >= boundary.y) {
|
||||
currPos.y = boundary.y - 1;
|
||||
}
|
||||
}
|
||||
pixPos4.x = pixPos1.x + currPos.x;
|
||||
|
||||
146
src/debug_field_map_window.c
Normal file
146
src/debug_field_map_window.c
Normal file
@@ -0,0 +1,146 @@
|
||||
#include "global.h"
|
||||
#include "globaldata.h"
|
||||
#include "debug_field_map_window.h"
|
||||
#include "constants/input.h"
|
||||
#include "structs/struct_sub80095e4.h"
|
||||
#include "music_util.h"
|
||||
#include "ground_main.h"
|
||||
#include "input.h"
|
||||
#include "memory.h"
|
||||
#include "menu_input.h"
|
||||
#include "text_1.h"
|
||||
#include "text_2.h"
|
||||
#include "structs/str_81188F0.h"
|
||||
|
||||
EWRAM_INIT static struct struct_Sub80095E4_2 *sDebugWindow = {NULL};
|
||||
|
||||
static const WindowTemplate sDummyWinTemplate = WIN_TEMPLATE_DUMMY;
|
||||
|
||||
static const WindowTemplate sUnknown_80DBF88 = {
|
||||
0,
|
||||
6,
|
||||
2, 2,
|
||||
24, 17,
|
||||
17, 0,
|
||||
NULL
|
||||
};
|
||||
|
||||
static void sub_801DB54(void);
|
||||
static void sub_801DBD4(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;
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&sDebugWindow->s0.windows, TRUE, TRUE);
|
||||
CreateMenuOnWindow(&sDebugWindow->s0.input, 229, 10, sDebugWindow->s0.winId);
|
||||
sub_801DB54();
|
||||
sub_801DBD4();
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void sub_801DA58(s16 a0)
|
||||
{
|
||||
s32 cast;
|
||||
cast = a0;
|
||||
sub_8013878(&sDebugWindow->s0.input, cast);
|
||||
sub_801DB54();
|
||||
sub_801DBD4();
|
||||
}
|
||||
|
||||
u32 DebugFieldMapWindow_GetInput(void)
|
||||
{
|
||||
switch (GetKeyPress(&sDebugWindow->s0.input)) {
|
||||
case INPUT_B_BUTTON:
|
||||
PlayMenuSoundEffect(1);
|
||||
return DEBUG_INPUT_B_PRESS;
|
||||
case INPUT_A_BUTTON:
|
||||
return DEBUG_INPUT_A_PRESS;
|
||||
default:
|
||||
if (sub_80138B8(&sDebugWindow->s0.input, 1)) {
|
||||
sub_801DB54();
|
||||
sub_801DBD4();
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
s16 DebugFieldMapWindow_GetCurrentIndex(void)
|
||||
{
|
||||
return (sDebugWindow->s0.input.unk1E * sDebugWindow->s0.input.entriesPerPage) + sDebugWindow->s0.input.menuIndex;
|
||||
}
|
||||
|
||||
UNUSED static void sub_801DADC(bool8 a0)
|
||||
{
|
||||
sDebugWindow->s0.input.totalEntriesCount = 229;
|
||||
sub_8013984(&sDebugWindow->s0.input);
|
||||
sub_801DB54();
|
||||
sub_801DBD4();
|
||||
if (a0)
|
||||
AddMenuCursorSprite(&sDebugWindow->s0.input);
|
||||
}
|
||||
|
||||
void DebugFieldMapWindow_Free(void)
|
||||
{
|
||||
if (sDebugWindow != NULL) {
|
||||
sDebugWindow->s0.windows.id[sDebugWindow->s0.winId] = sDummyWinTemplate;
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&sDebugWindow->s0.windows, TRUE, TRUE);
|
||||
FREE_AND_SET_NULL(sDebugWindow);
|
||||
}
|
||||
}
|
||||
|
||||
static void sub_801DB54(void)
|
||||
{
|
||||
sDebugWindow->header.count = 1;
|
||||
sDebugWindow->header.currId = 0;
|
||||
sDebugWindow->header.width = 8;
|
||||
sDebugWindow->header.f3 = 0;
|
||||
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&sDebugWindow->s0.windows, TRUE, TRUE);
|
||||
|
||||
SUB_80095E4_CALL(sDebugWindow->s0);
|
||||
}
|
||||
|
||||
static void sub_801DBD4(void)
|
||||
{
|
||||
GroundConversionStruct *temp;
|
||||
const struct unkStruct_81188F0 *temp2;
|
||||
s32 x, y, n;
|
||||
s16 index;
|
||||
int counter;
|
||||
|
||||
CallPrepareTextbox_8008C54(sDebugWindow->s0.winId);
|
||||
sub_80073B8(sDebugWindow->s0.winId);
|
||||
PrintStringOnWindow(10, 0, _("Field"), sDebugWindow->s0.winId, 0);
|
||||
|
||||
x = (sDebugWindow->header.width * 8) - 2;
|
||||
n = sDebugWindow->s0.input.unk1E + 1;
|
||||
sub_8012BC4(x, 0, n, 2, 7, sDebugWindow->s0.winId);
|
||||
|
||||
// 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.unk1A; counter++) {
|
||||
index = (sDebugWindow->s0.input.unk1E * sDebugWindow->s0.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->s0.input, counter);
|
||||
PrintStringOnWindow(62, y, temp->text, sDebugWindow->s0.winId, 0);
|
||||
}
|
||||
|
||||
sub_80073E0(sDebugWindow->s0.winId);
|
||||
}
|
||||
@@ -123,7 +123,7 @@ void sub_8067A80(u8 a0, s32 a1, s32 a2, PokemonStruct1 **a3)
|
||||
sub_8067F00(a0, a3, gUnknown_202F30C, a2, a1);
|
||||
gDungeonMenu.unk1A = min(a2, 8);
|
||||
gDungeonMenu.menuIndex = r10;
|
||||
gDungeonMenu.unk1C = 8;
|
||||
gDungeonMenu.entriesPerPage = 8;
|
||||
gDungeonMenu.unk1E = 0;
|
||||
gDungeonMenu.unk20 = 0;
|
||||
gDungeonMenu.unk4 = 0;
|
||||
@@ -131,7 +131,7 @@ void sub_8067A80(u8 a0, s32 a1, s32 a2, PokemonStruct1 **a3)
|
||||
gDungeonMenu.unkC = 0;
|
||||
gDungeonMenu.unkE = 0;
|
||||
gDungeonMenu.unk14.x = 0;
|
||||
gDungeonMenu.unk0 = 0;
|
||||
gDungeonMenu.windowId = 0;
|
||||
sub_801317C(&gDungeonMenu.unk28);
|
||||
sub_80137B0(&gDungeonMenu, 0);
|
||||
while (1) {
|
||||
@@ -423,11 +423,11 @@ void sub_806806C(PokemonStruct1 *a0)
|
||||
gDungeonMenu.unk20 = 4;
|
||||
gDungeonMenu.unk1A = 0;
|
||||
gDungeonMenu.menuIndex = 0;
|
||||
gDungeonMenu.unk1C = 0;
|
||||
gDungeonMenu.entriesPerPage = 0;
|
||||
gDungeonMenu.unk4 = 0;
|
||||
gDungeonMenu.firstEntryY = 16;
|
||||
gDungeonMenu.unk14.x = 0;
|
||||
gDungeonMenu.unk0 = 0;
|
||||
gDungeonMenu.windowId = 0;
|
||||
|
||||
sub_801317C(&gDungeonMenu.unk28);
|
||||
DungeonShowWindows(&spTxtStruct, 1);
|
||||
|
||||
@@ -1534,13 +1534,13 @@ static void PrintOnMainMenu(bool8 printAll)
|
||||
|
||||
gDungeonMenu.menuIndex = 0;
|
||||
gDungeonMenu.unk1A = 5;
|
||||
gDungeonMenu.unk1C = 5;
|
||||
gDungeonMenu.entriesPerPage = 5;
|
||||
gDungeonMenu.unk1E = 0;
|
||||
gDungeonMenu.unk4 = 0;
|
||||
gDungeonMenu.firstEntryY = 2;
|
||||
gDungeonMenu.unkC = 0;
|
||||
gDungeonMenu.unkE = 0;
|
||||
gDungeonMenu.unk0 = 0;
|
||||
gDungeonMenu.windowId = 0;
|
||||
gDungeonMenu.unk14.x = 0;
|
||||
sub_801317C(&gDungeonMenu.unk28);
|
||||
sub_80137B0(&gDungeonMenu, 0x38);
|
||||
|
||||
@@ -395,7 +395,7 @@ static void PrintOnDungeonItemsMenu(s32 a0, Entity *a1, bool8 showWhichWindow, b
|
||||
gDungeonMenu.unk1E = a0;
|
||||
gDungeonMenu.unk20 = sUnknown_202F258;
|
||||
gDungeonMenu.unk4 = 0;
|
||||
gDungeonMenu.unk0 = 0;
|
||||
gDungeonMenu.windowId = 0;
|
||||
gDungeonMenu.unk14.x = 0;
|
||||
sub_801317C(&gDungeonMenu.unk28);
|
||||
gDungeon->unk181e8.unk18212 = 0;
|
||||
@@ -406,7 +406,7 @@ static void PrintOnDungeonItemsMenu(s32 a0, Entity *a1, bool8 showWhichWindow, b
|
||||
windows->id[0].height = 0x10;
|
||||
header->width = 0xC;
|
||||
gDungeonMenu.firstEntryY = 0x10;
|
||||
gDungeonMenu.unk1C = 0xA;
|
||||
gDungeonMenu.entriesPerPage = 0xA;
|
||||
gDungeon->unk181e8.unk18212 = 1;
|
||||
break;
|
||||
case 2:
|
||||
@@ -414,7 +414,7 @@ static void PrintOnDungeonItemsMenu(s32 a0, Entity *a1, bool8 showWhichWindow, b
|
||||
windows->id[0].height = 4;
|
||||
header->width = 6;
|
||||
gDungeonMenu.firstEntryY = 0x12;
|
||||
gDungeonMenu.unk1C = 1;
|
||||
gDungeonMenu.entriesPerPage = 1;
|
||||
break;
|
||||
case 3:
|
||||
default:
|
||||
@@ -422,7 +422,7 @@ static void PrintOnDungeonItemsMenu(s32 a0, Entity *a1, bool8 showWhichWindow, b
|
||||
windows->id[0].height = 4;
|
||||
header->width = 0xC;
|
||||
gDungeonMenu.firstEntryY = 0x12;
|
||||
gDungeonMenu.unk1C = 1;
|
||||
gDungeonMenu.entriesPerPage = 1;
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
@@ -440,13 +440,13 @@ static void ShowMovesMenuWindows(Entity *entity, EntityInfo *entInfo, bool8 redC
|
||||
|
||||
gDungeonMenu.menuIndex = sChosenMoveSlotId;
|
||||
gDungeonMenu.unk1A = movesCount;
|
||||
gDungeonMenu.unk1C = 4;
|
||||
gDungeonMenu.entriesPerPage = 4;
|
||||
gDungeonMenu.unk1E = arg6;
|
||||
gDungeonMenu.unk20 = arg7;
|
||||
gDungeonMenu.unk4 = 0;
|
||||
gDungeonMenu.firstEntryY = 16;
|
||||
gDungeonMenu.unk14.x = 0;
|
||||
gDungeonMenu.unk0 = 0;
|
||||
gDungeonMenu.windowId = 0;
|
||||
sub_801317C(&gDungeonMenu.unk28);
|
||||
|
||||
windows->id[0].height = windows->id[0].unk10 = sub_80095E4(4, 0xC) + 2;
|
||||
@@ -633,11 +633,11 @@ static void ShowMovesInfoWindow(Move *moves, s32 firstMoveId, s32 movesCount)
|
||||
gDungeonMenu.unk14.x = 0;
|
||||
gDungeonMenu.unk4 = 0;
|
||||
gDungeonMenu.firstEntryY = 16;
|
||||
gDungeonMenu.unk0 = 0;
|
||||
gDungeonMenu.windowId = 0;
|
||||
sub_801317C(&gDungeonMenu.unk28);
|
||||
gDungeonMenu.menuIndex = 0;
|
||||
gDungeonMenu.unk1A = 0;
|
||||
gDungeonMenu.unk1C = 0;
|
||||
gDungeonMenu.entriesPerPage = 0;
|
||||
DungeonShowWindows(&windows, TRUE);
|
||||
statusesCount = unk_PrintMoveDescription(currId, &moves[firstMoveId + currId], 0, statuses);
|
||||
while (1) {
|
||||
@@ -722,10 +722,10 @@ void ShowStatusDescriptionMenu(const StatusText *status, MenuInputStructSub *men
|
||||
gDungeonMenu.unk14.x = 0;
|
||||
gDungeonMenu.unk4 = 0;
|
||||
gDungeonMenu.firstEntryY = 16;
|
||||
gDungeonMenu.unk0 = 0;
|
||||
gDungeonMenu.windowId = 0;
|
||||
gDungeonMenu.menuIndex = 0;
|
||||
gDungeonMenu.unk1A = 0;
|
||||
gDungeonMenu.unk1C = 0;
|
||||
gDungeonMenu.entriesPerPage = 0;
|
||||
sub_801317C(menuSub);
|
||||
}
|
||||
|
||||
@@ -1115,7 +1115,7 @@ static void sub_8064228(Entity *entity, Move *moves, WindowTemplates *windows, W
|
||||
|
||||
gDungeonMenu.menuIndex = sChosenMoveSlotId;
|
||||
gDungeonMenu.unk1A = count;
|
||||
gDungeonMenu.unk1C = count;
|
||||
gDungeonMenu.entriesPerPage = count;
|
||||
gDungeonMenu.unk1E = 0;
|
||||
gDungeonMenu.unk20 = 0;
|
||||
gDungeonMenu.unk4 = 0;
|
||||
@@ -1123,7 +1123,7 @@ static void sub_8064228(Entity *entity, Move *moves, WindowTemplates *windows, W
|
||||
gDungeonMenu.unkC = 0;
|
||||
gDungeonMenu.unkE = 0;
|
||||
gDungeonMenu.unk14.x = 0;
|
||||
gDungeonMenu.unk0 = 0;
|
||||
gDungeonMenu.windowId = 0;
|
||||
sub_801317C(&gDungeonMenu.unk28);
|
||||
windows->id[0].height = windows->id[0].unk10 = sub_80095E4(count, 12) + 2;
|
||||
header->width = 14;
|
||||
|
||||
@@ -477,7 +477,7 @@ static void PrintOthersMenuOptions(void)
|
||||
gDungeonMenu.menuIndex = sOthersCursorId;
|
||||
optionsCount = (gDungeon->unk644.canRecruit) ? OTHERS_COUNT : OTHERS_COUNT - 1;
|
||||
gDungeonMenu.unk1A = optionsCount;
|
||||
gDungeonMenu.unk1C = optionsCount;
|
||||
gDungeonMenu.entriesPerPage = optionsCount;
|
||||
gDungeonMenu.unk1E = 0;
|
||||
gDungeonMenu.unk20 = 0;
|
||||
gDungeonMenu.unk4 = 0;
|
||||
@@ -485,7 +485,7 @@ static void PrintOthersMenuOptions(void)
|
||||
gDungeonMenu.unkC = 0;
|
||||
gDungeonMenu.unkE = 0;
|
||||
gDungeonMenu.unk14.x = 0;
|
||||
gDungeonMenu.unk0 = 0;
|
||||
gDungeonMenu.windowId = 0;
|
||||
sub_801317C(&gDungeonMenu.unk28);
|
||||
windows.id[0].width = 18;
|
||||
windows.id[0].height = windows.id[0].unk10 = sub_80095E4(optionsCount, 12) + 2;
|
||||
@@ -540,7 +540,7 @@ static void PrintQuickSaveMenuOptions(void)
|
||||
gDungeonMenu.menuIndex = 0;
|
||||
optionsCount = 2;
|
||||
gDungeonMenu.unk1A = optionsCount;
|
||||
gDungeonMenu.unk1C = optionsCount;
|
||||
gDungeonMenu.entriesPerPage = optionsCount;
|
||||
gDungeonMenu.unk1E = 0;
|
||||
gDungeonMenu.unk20 = 0;
|
||||
gDungeonMenu.unk4 = 0;
|
||||
@@ -548,7 +548,7 @@ static void PrintQuickSaveMenuOptions(void)
|
||||
gDungeonMenu.unkC = 0;
|
||||
gDungeonMenu.unkE = 0;
|
||||
gDungeonMenu.unk14.x = 0;
|
||||
gDungeonMenu.unk0 = 0;
|
||||
gDungeonMenu.windowId = 0;
|
||||
sub_801317C(&gDungeonMenu.unk28);
|
||||
windows.id[0].width = 18;
|
||||
windows.id[0].height = windows.id[0].unk10 = sub_80095E4(optionsCount, 12) + 2;
|
||||
@@ -593,7 +593,7 @@ static void PrintGameOptions(void)
|
||||
gDungeonMenu.menuIndex = 0;
|
||||
optionsCount = 3;
|
||||
gDungeonMenu.unk1A = optionsCount;
|
||||
gDungeonMenu.unk1C = optionsCount;
|
||||
gDungeonMenu.entriesPerPage = optionsCount;
|
||||
gDungeonMenu.unk1E = 0;
|
||||
gDungeonMenu.unk20 = 0;
|
||||
gDungeonMenu.unk4 = 0;
|
||||
@@ -601,7 +601,7 @@ static void PrintGameOptions(void)
|
||||
gDungeonMenu.unkC = 0;
|
||||
gDungeonMenu.unkE = 0;
|
||||
gDungeonMenu.unk14.x = 0;
|
||||
gDungeonMenu.unk0 = 0;
|
||||
gDungeonMenu.windowId = 0;
|
||||
sub_801317C(&gDungeonMenu.unk28);
|
||||
windows.id[0].width = 12;
|
||||
windows.id[0].height = windows.id[0].unk10 = sub_80095E4(optionsCount, 12) + 2;
|
||||
@@ -648,7 +648,7 @@ static void PrintDungeonOptions(void)
|
||||
header.f3 = 0;
|
||||
|
||||
gDungeonMenu.unk1A = DUNGEON_OPTIONS_COUNT;
|
||||
gDungeonMenu.unk1C = DUNGEON_OPTIONS_COUNT;
|
||||
gDungeonMenu.entriesPerPage = DUNGEON_OPTIONS_COUNT;
|
||||
gDungeonMenu.unk1E = 0;
|
||||
gDungeonMenu.unk20 = 0;
|
||||
gDungeonMenu.unk4 = 0;
|
||||
@@ -656,7 +656,7 @@ static void PrintDungeonOptions(void)
|
||||
gDungeonMenu.unkC = 0;
|
||||
gDungeonMenu.unkE = 0;
|
||||
gDungeonMenu.unk14.x = 0;
|
||||
gDungeonMenu.unk0 = 0;
|
||||
gDungeonMenu.windowId = 0;
|
||||
sub_801317C(&gDungeonMenu.unk28);
|
||||
windows.id[0].width = 24;
|
||||
windows.id[0].height = windows.id[0].unk10 = sub_80095E4(DUNGEON_OPTIONS_COUNT, 12) + 2;
|
||||
@@ -739,7 +739,7 @@ static void PrintOthersOptions(void)
|
||||
header.f3 = 0;
|
||||
|
||||
gDungeonMenu.unk1A = OTHERS_OPTIONS_COUNT;
|
||||
gDungeonMenu.unk1C = OTHERS_OPTIONS_COUNT;
|
||||
gDungeonMenu.entriesPerPage = OTHERS_OPTIONS_COUNT;
|
||||
gDungeonMenu.unk1E = 0;
|
||||
gDungeonMenu.unk20 = 0;
|
||||
gDungeonMenu.unk4 = 0;
|
||||
@@ -747,7 +747,7 @@ static void PrintOthersOptions(void)
|
||||
gDungeonMenu.unkC = 0;
|
||||
gDungeonMenu.unkE = 0;
|
||||
gDungeonMenu.unk14.x = 0;
|
||||
gDungeonMenu.unk0 = 0;
|
||||
gDungeonMenu.windowId = 0;
|
||||
sub_801317C(&gDungeonMenu.unk28);
|
||||
windows.id[0].width = 24;
|
||||
windows.id[0].height = windows.id[0].unk10 = sub_80095E4(OTHERS_OPTIONS_COUNT, 12) + 2;
|
||||
@@ -911,7 +911,7 @@ static void PrintHintsMenu(void)
|
||||
header.f3 = 0;
|
||||
gDungeonMenu.menuIndex = 0;
|
||||
gDungeonMenu.unk1A = HINTS_COUNT_RED_VERSION;
|
||||
gDungeonMenu.unk1C = HINTS_COUNT_RED_VERSION;
|
||||
gDungeonMenu.entriesPerPage = HINTS_COUNT_RED_VERSION;
|
||||
gDungeonMenu.unk1E = 0;
|
||||
gDungeonMenu.unk20 = 0;
|
||||
gDungeonMenu.unk4 = 0;
|
||||
@@ -919,7 +919,7 @@ static void PrintHintsMenu(void)
|
||||
gDungeonMenu.unkC = 0;
|
||||
gDungeonMenu.unkE = 0;
|
||||
gDungeonMenu.unk14.x = 0;
|
||||
gDungeonMenu.unk0 = 0;
|
||||
gDungeonMenu.windowId = 0;
|
||||
sub_801317C(&gDungeonMenu.unk28);
|
||||
windows.id[0].width = 12;
|
||||
windows.id[0].height = windows.id[0].unk10 = sub_80095E4(HINTS_COUNT_RED_VERSION, 12) + 2;
|
||||
@@ -966,11 +966,11 @@ static void ShowChosenHintWindow(s32 hintId)
|
||||
gDungeonMenu.unk20 = HINTS_COUNT_RED_VERSION;
|
||||
gDungeonMenu.unk1A = 0;
|
||||
gDungeonMenu.menuIndex = 0;
|
||||
gDungeonMenu.unk1C = 0;
|
||||
gDungeonMenu.entriesPerPage = 0;
|
||||
gDungeonMenu.unk4 = 0;
|
||||
gDungeonMenu.firstEntryY = 16;
|
||||
gDungeonMenu.unk14.x = 0;
|
||||
gDungeonMenu.unk0 = 0;
|
||||
gDungeonMenu.windowId = 0;
|
||||
sub_801317C(&gDungeonMenu.unk28);
|
||||
windows.id[0].width = 24;
|
||||
windows.id[0].height = windows.id[0].unk10 = sub_80095E4(HINTS_COUNT, 12) + 2;
|
||||
|
||||
@@ -102,13 +102,13 @@ void ShowRecruitmentSearchMenu(void)
|
||||
DungeonShowWindows(&sRecruitmentSearchWindows, TRUE);
|
||||
gDungeonMenu.unk1A = 0;
|
||||
gDungeonMenu.menuIndex = 0;
|
||||
gDungeonMenu.unk1C = 0;
|
||||
gDungeonMenu.entriesPerPage = 0;
|
||||
gDungeonMenu.unk1E = currTabId;
|
||||
gDungeonMenu.unk20 = 2;
|
||||
gDungeonMenu.unk4 = 0;
|
||||
gDungeonMenu.firstEntryY = 16;
|
||||
gDungeonMenu.unk14.x = 0;
|
||||
gDungeonMenu.unk0 = 0;
|
||||
gDungeonMenu.windowId = 0;
|
||||
sub_801317C(&gDungeonMenu.unk28);
|
||||
sScrollId = 0;
|
||||
sScrollFlags = 0;
|
||||
|
||||
@@ -345,7 +345,7 @@ static void PrintOnDungeonTeamMenu(struct UnkFieldTeamMenuStruct *a0, WindowTemp
|
||||
sTeamWindowHeader.f3 = 0;
|
||||
gDungeonMenu.menuIndex = gTeamMenuChosenId;
|
||||
gDungeonMenu.unk1A = count;
|
||||
gDungeonMenu.unk1C = count;
|
||||
gDungeonMenu.entriesPerPage = count;
|
||||
gDungeonMenu.unk1E = 0;
|
||||
gDungeonMenu.unk20 = 0;
|
||||
gDungeonMenu.unk4 = 0;
|
||||
@@ -353,7 +353,7 @@ static void PrintOnDungeonTeamMenu(struct UnkFieldTeamMenuStruct *a0, WindowTemp
|
||||
gDungeonMenu.unkC = 0;
|
||||
gDungeonMenu.unkE = 0;
|
||||
gDungeonMenu.unk14.x = 0;
|
||||
gDungeonMenu.unk0 = 0;
|
||||
gDungeonMenu.windowId = 0;
|
||||
sub_801317C(&gDungeonMenu.unk28);
|
||||
r0 = sub_80095E4(count, 0);
|
||||
if (r10) {
|
||||
@@ -534,7 +534,7 @@ void ShowDungeonTacticsMenu(ActionContainer *a0)
|
||||
break;
|
||||
}
|
||||
gDungeonMenu.unk1A = i;
|
||||
gDungeonMenu.unk1C = 8;
|
||||
gDungeonMenu.entriesPerPage = 8;
|
||||
gDungeonMenu.unk1E = 0;
|
||||
gDungeonMenu.unk20 = 0;
|
||||
gDungeonMenu.unk4 = 0;
|
||||
@@ -542,7 +542,7 @@ void ShowDungeonTacticsMenu(ActionContainer *a0)
|
||||
gDungeonMenu.unkC = 0;
|
||||
gDungeonMenu.unkE = 0;
|
||||
gDungeonMenu.unk14.x = 0;
|
||||
gDungeonMenu.unk0 = 0;
|
||||
gDungeonMenu.windowId = 0;
|
||||
sub_801317C(&gDungeonMenu.unk28);
|
||||
sub_80137B0(&gDungeonMenu, 0);
|
||||
gDungeonMenu.menuIndex = menuIndex;
|
||||
@@ -797,11 +797,11 @@ void ShowDungeonSummaryOrIQMenu(ActionContainer *a0, bool8 showIq)
|
||||
gDungeonMenu.unk14.x = 0;
|
||||
gDungeonMenu.unk4 = 0;
|
||||
gDungeonMenu.firstEntryY = 16;
|
||||
gDungeonMenu.unk0 = 0;
|
||||
gDungeonMenu.windowId = 0;
|
||||
sub_801317C(&gDungeonMenu.unk28);
|
||||
gDungeonMenu.menuIndex = 0;
|
||||
gDungeonMenu.unk1A = 0;
|
||||
gDungeonMenu.unk1C = 0;
|
||||
gDungeonMenu.entriesPerPage = 0;
|
||||
|
||||
if (subWindowIds[currSubWindowId] == SUB_WINDOW_STATUS) {
|
||||
s32 i;
|
||||
@@ -815,7 +815,7 @@ void ShowDungeonSummaryOrIQMenu(ActionContainer *a0, bool8 showIq)
|
||||
if (i != 0) {
|
||||
hasStatusProblems = TRUE;
|
||||
gDungeonMenu.unk1A = i;
|
||||
gDungeonMenu.unk1C = 8;
|
||||
gDungeonMenu.entriesPerPage = 8;
|
||||
sub_80137B0(&gDungeonMenu, 0);
|
||||
}
|
||||
gDungeonMenu.menuIndex = r8;
|
||||
@@ -832,7 +832,7 @@ void ShowDungeonSummaryOrIQMenu(ActionContainer *a0, bool8 showIq)
|
||||
if (i != 0) {
|
||||
hasIqSkills = TRUE;
|
||||
gDungeonMenu.unk1A = i;
|
||||
gDungeonMenu.unk1C = 8;
|
||||
gDungeonMenu.entriesPerPage = 8;
|
||||
sub_80137B0(&gDungeonMenu, 0);
|
||||
}
|
||||
gDungeonMenu.menuIndex = r8;
|
||||
|
||||
@@ -37,13 +37,13 @@ void CreateDungeonMenuSubWindow(WindowTemplate *mainWindow, s32 subWindowX)
|
||||
windows.id[0].unk0 = 0x80;
|
||||
|
||||
gDungeonMenu.menuIndex = 0;
|
||||
gDungeonMenu.unk1C = gDungeonSubMenuItemsCount;
|
||||
gDungeonMenu.entriesPerPage = gDungeonSubMenuItemsCount;
|
||||
gDungeonMenu.unk1A = gDungeonSubMenuItemsCount;
|
||||
gDungeonMenu.unk1E = 0;
|
||||
gDungeonMenu.unk20 = 0;
|
||||
gDungeonMenu.unk4 = 0;
|
||||
gDungeonMenu.firstEntryY = 0;
|
||||
gDungeonMenu.unk0 = 1;
|
||||
gDungeonMenu.windowId = 1;
|
||||
gDungeonMenu.unkC = 0;
|
||||
gDungeonMenu.unkE = 0;
|
||||
gDungeonMenu.unk14 = gDungeonMenu.unk8;
|
||||
@@ -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.unk1C, 0);
|
||||
windows.id[1].height = windows.id[1].unk10 = sub_80095E4(gDungeonMenu.entriesPerPage, 0);
|
||||
DungeonShowWindows(&windows, FALSE);
|
||||
sub_80137B0(&gDungeonMenu, windows.id[1].height * 8);
|
||||
sub_80073B8(1);
|
||||
|
||||
@@ -325,12 +325,12 @@ void FriendAreasMap_PrintAvailableSubAreas(void)
|
||||
header.f3 = 0;
|
||||
menuInput->menuIndex = 0;
|
||||
menuInput->unk1A = count;
|
||||
menuInput->unk1C = count;
|
||||
menuInput->entriesPerPage = count;
|
||||
menuInput->unk1E = 0;
|
||||
menuInput->unk20 = 0;
|
||||
menuInput->unk4 = 0;
|
||||
menuInput->firstEntryY = 16;
|
||||
menuInput->unk0 = 0;
|
||||
menuInput->windowId = 0;
|
||||
menuInput->unkC = 0;
|
||||
menuInput->unkE = 0;
|
||||
menuInput->unk14.x = 0;
|
||||
@@ -338,7 +338,7 @@ void FriendAreasMap_PrintAvailableSubAreas(void)
|
||||
menuInput->unk8.x = 8;
|
||||
menuInput->unk8.y = 8;
|
||||
sub_801317C(&menuInput->unk28);
|
||||
var = sub_80095E4(menuInput->unk1C, 0);
|
||||
var = sub_80095E4(menuInput->entriesPerPage, 0);
|
||||
windows.id[0].unk10 = windows.id[0].height = var + 2;
|
||||
sub_80137B0(menuInput, var * 8);
|
||||
|
||||
|
||||
@@ -112,7 +112,7 @@ bool8 FriendList_Init(u32 r5, u32 windowId, DungeonPos *pos, u32 r10)
|
||||
sub_8012D08(sFriendList->unk358.s0.unk38, r10);
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&sFriendList->unk358.s0.windows, TRUE, TRUE);
|
||||
sub_8013818(&sFriendList->unk358.s0.input, sub_8023F8C(), r10, windowId);
|
||||
CreateMenuOnWindow(&sFriendList->unk358.s0.input, sub_8023F8C(), r10, windowId);
|
||||
if (gUnknown_203B2A0 == sFriendList->unk0) {
|
||||
sFriendList->unk358.s0.input.menuIndex = gUnknown_203B2A8;
|
||||
sFriendList->unk358.s0.input.unk1E = gUnknown_203B2AA;
|
||||
@@ -159,14 +159,14 @@ u32 FriendList_HandleInput(bool8 a0)
|
||||
|
||||
s32 FriendList_GetCurrId(void)
|
||||
{
|
||||
return sFriendList->unk1A[(sFriendList->unk358.s0.input.unk1E * sFriendList->unk358.s0.input.unk1C) + sFriendList->unk358.s0.input.menuIndex];
|
||||
return sFriendList->unk1A[(sFriendList->unk358.s0.input.unk1E * sFriendList->unk358.s0.input.entriesPerPage) + sFriendList->unk358.s0.input.menuIndex];
|
||||
}
|
||||
|
||||
void sub_8023B7C(bool8 addCursor)
|
||||
{
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&sFriendList->unk358.s0.windows, FALSE, FALSE);
|
||||
sFriendList->unk358.s0.input.unk22 = sub_8023BD8();
|
||||
sFriendList->unk358.s0.input.totalEntriesCount = sub_8023BD8();
|
||||
sub_8013984(&sFriendList->unk358.s0.input);
|
||||
SetUpWindowHeader();
|
||||
FriendList_ShowWindow();
|
||||
@@ -259,7 +259,7 @@ void FriendList_ShowWindow(void)
|
||||
}
|
||||
|
||||
for (i = 0; i < sFriendList->unk358.s0.input.unk1A; i++) {
|
||||
s32 id = sFriendList->unk1A[(sFriendList->unk358.s0.input.unk1E * sFriendList->unk358.s0.input.unk1C) + i];
|
||||
s32 id = sFriendList->unk1A[(sFriendList->unk358.s0.input.unk1E * sFriendList->unk358.s0.input.entriesPerPage) + i];
|
||||
PokemonStruct1 *pokePtr = &gRecruitedPokemonRef->pokemon[id];
|
||||
u8 color = 7;
|
||||
|
||||
@@ -468,7 +468,7 @@ UNUSED static PokemonStruct1 *sub_80243E8(void)
|
||||
{
|
||||
u8 buffer[40];
|
||||
u8 nameBuffer[20];
|
||||
PokemonStruct1 *pokeStruct = &gRecruitedPokemonRef->pokemon[sFriendList->unk1A[(sFriendList->unk358.s0.input.unk1E * sFriendList->unk358.s0.input.unk1C) + sFriendList->unk358.s0.input.menuIndex]];
|
||||
PokemonStruct1 *pokeStruct = &gRecruitedPokemonRef->pokemon[sFriendList->unk1A[(sFriendList->unk358.s0.input.unk1E * sFriendList->unk358.s0.input.entriesPerPage) + sFriendList->unk358.s0.input.menuIndex]];
|
||||
|
||||
StrncpyCustom(nameBuffer, pokeStruct->name, POKEMON_NAME_LENGTH);
|
||||
sprintfStatic(buffer, "%s", nameBuffer);
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
#include "memory.h"
|
||||
#include "file_system.h"
|
||||
#include "code_8002774.h"
|
||||
#include "code_801D9E4.h"
|
||||
#include "structs/str_81188F0.h"
|
||||
#include "code_8004AA0.h"
|
||||
#include "graphics_memory.h"
|
||||
#include "debug.h"
|
||||
@@ -16,7 +16,6 @@
|
||||
|
||||
// This file most likely deals with map loading and writing to VRAM. It even has a custom decompression function.
|
||||
|
||||
extern const struct unkStruct_81188F0 gUnknown_81188F0[10];
|
||||
extern const FileArchive gGroundFileArchive;
|
||||
|
||||
void sub_80A456C(GroundBg *groundBg, s32 id, const PixelPos *srcPos);
|
||||
|
||||
@@ -30,7 +30,7 @@ bool8 sub_801E3F0(u32 a0)
|
||||
sub_8012D08(sUnknown_203B264->unk38, 10);
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&sUnknown_203B264->windows, TRUE, TRUE);
|
||||
sub_8013818(&sUnknown_203B264->input, 5, 10, a0);
|
||||
CreateMenuOnWindow(&sUnknown_203B264->input, 5, 10, a0);
|
||||
sub_801E594();
|
||||
DrawHintSelectionMenu();
|
||||
return TRUE;
|
||||
@@ -68,7 +68,7 @@ u32 sub_801E474(bool8 a0)
|
||||
|
||||
s32 GetChosenHintIndex(void)
|
||||
{
|
||||
return (sUnknown_203B264->input.unk1E * sUnknown_203B264->input.unk1C) + sUnknown_203B264->input.menuIndex;
|
||||
return (sUnknown_203B264->input.unk1E * sUnknown_203B264->input.entriesPerPage) + sUnknown_203B264->input.menuIndex;
|
||||
}
|
||||
|
||||
void CreateHintSelectionScreen(bool8 cursorSprite)
|
||||
|
||||
@@ -28,7 +28,7 @@ bool8 CreateHintDisplayScreen(u32 index)
|
||||
sUnknown_203B268->s0.unk38->header = &sUnknown_203B268->header;
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&sUnknown_203B268->s0.windows, TRUE, TRUE);
|
||||
sub_8013818(&sUnknown_203B268->s0.input, 5, 1, sUnknown_203B268->s0.winId);
|
||||
CreateMenuOnWindow(&sUnknown_203B268->s0.input, 5, 1, sUnknown_203B268->s0.winId);
|
||||
sUnknown_203B268->s0.input.unk1E = index;
|
||||
sub_801E714();
|
||||
|
||||
|
||||
@@ -38,7 +38,7 @@ bool8 CreateIQSkillListMenu(s16 species, u32 index, u32 a2)
|
||||
sub_8012D08(sIQSkillListMenu->s24.s0.unk38, a2);
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&sIQSkillListMenu->s24.s0.windows, TRUE, TRUE);
|
||||
sub_8013818(&sIQSkillListMenu->s24.s0.input, sIQSkillListMenu->numIQSkills, a2, index);
|
||||
CreateMenuOnWindow(&sIQSkillListMenu->s24.s0.input, sIQSkillListMenu->numIQSkills, a2, index);
|
||||
sub_801C440();
|
||||
BuildIQSkillList();
|
||||
return TRUE;
|
||||
@@ -73,14 +73,14 @@ u32 HandleIQSkillListMenuInput(bool8 a0)
|
||||
|
||||
s32 GetIQSkillSelection(void)
|
||||
{
|
||||
return (sIQSkillListMenu->s24.s0.input.unk1E * sIQSkillListMenu->s24.s0.input.unk1C) + sIQSkillListMenu->s24.s0.input.menuIndex;
|
||||
return (sIQSkillListMenu->s24.s0.input.unk1E * sIQSkillListMenu->s24.s0.input.entriesPerPage) + sIQSkillListMenu->s24.s0.input.menuIndex;
|
||||
}
|
||||
|
||||
void RedrawIQSkillListMenu(bool8 addCursor)
|
||||
{
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&sIQSkillListMenu->s24.s0.windows, FALSE, FALSE);
|
||||
sIQSkillListMenu->s24.s0.input.unk22 = sIQSkillListMenu->numIQSkills;
|
||||
sIQSkillListMenu->s24.s0.input.totalEntriesCount = sIQSkillListMenu->numIQSkills;
|
||||
sub_8013984(&sIQSkillListMenu->s24.s0.input);
|
||||
sub_801C440();
|
||||
BuildIQSkillList();
|
||||
@@ -131,7 +131,7 @@ void BuildIQSkillList(void)
|
||||
sub_8012BC4(x2, 0, sIQSkillListMenu->s24.s0.input.unk1E + 1, 1, 7, sIQSkillListMenu->s24.s0.winId);
|
||||
|
||||
for (counter = 0; counter < sIQSkillListMenu->s24.s0.input.unk1A; counter++) {
|
||||
skillIndex = sIQSkillListMenu->iqSkills[(sIQSkillListMenu->s24.s0.input.unk1E * sIQSkillListMenu->s24.s0.input.unk1C) + counter];
|
||||
skillIndex = sIQSkillListMenu->iqSkills[(sIQSkillListMenu->s24.s0.input.unk1E * sIQSkillListMenu->s24.s0.input.entriesPerPage) + counter];
|
||||
|
||||
y = GetMenuEntryYCoord(&sIQSkillListMenu->s24.s0.input, counter);
|
||||
strncpy(gFormatBuffer_Items[1], GetIQSkillName(skillIndex), 80);
|
||||
|
||||
@@ -33,7 +33,7 @@ bool8 sub_8019E40(u32 r0)
|
||||
gUnknown_203B214->s0.unk38->header = &gUnknown_203B214->header;
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&gUnknown_203B214->s0.windows, TRUE, TRUE);
|
||||
sub_8013818(&gUnknown_203B214->s0.input, CountKecleonShopItems(), 10, r0);
|
||||
CreateMenuOnWindow(&gUnknown_203B214->s0.input, CountKecleonShopItems(), 10, r0);
|
||||
gUnknown_203B214->s0.input.menuIndex = gUnknown_203B218;
|
||||
sub_8013984(&gUnknown_203B214->s0.input);
|
||||
sub_801A064();
|
||||
@@ -82,7 +82,7 @@ u32 sub_8019EDC(bool8 r0)
|
||||
// arm9.bin::02025798
|
||||
u8 sub_8019FB0(void)
|
||||
{
|
||||
return (gUnknown_203B214->s0.input.unk1E * gUnknown_203B214->s0.input.unk1C) + (u8)gUnknown_203B214->s0.input.menuIndex;
|
||||
return (gUnknown_203B214->s0.input.unk1E * gUnknown_203B214->s0.input.entriesPerPage) + (u8)gUnknown_203B214->s0.input.menuIndex;
|
||||
}
|
||||
|
||||
// arm9.bin::02025738
|
||||
@@ -90,7 +90,7 @@ void sub_8019FCC(bool8 r0)
|
||||
{
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&gUnknown_203B214->s0.windows, FALSE, FALSE);
|
||||
gUnknown_203B214->s0.input.unk22 = CountKecleonShopItems();
|
||||
gUnknown_203B214->s0.input.totalEntriesCount = CountKecleonShopItems();
|
||||
sub_8013984(&gUnknown_203B214->s0.input);
|
||||
sub_801A064();
|
||||
sub_801A0D8();
|
||||
@@ -139,7 +139,7 @@ void sub_801A0D8(void)
|
||||
PrintStringOnWindow((gUnknown_203B214->s0.input.unk1E * 8) + 10, 0, sGoods, gUnknown_203B214->s0.winId, 0);
|
||||
|
||||
for (index = 0; index < gUnknown_203B214->s0.input.unk1A; index++) {
|
||||
temp_calc = (gUnknown_203B214->s0.input.unk1E * gUnknown_203B214->s0.input.unk1C) + index;
|
||||
temp_calc = (gUnknown_203B214->s0.input.unk1E * gUnknown_203B214->s0.input.entriesPerPage) + index;
|
||||
heldItem = GetKecleonShopItem(temp_calc);
|
||||
item.id = heldItem->id;
|
||||
item.quantity = heldItem->quantity;
|
||||
|
||||
@@ -33,7 +33,7 @@ bool8 sub_801A20C(u32 r0)
|
||||
gUnknown_203B21C->s0.unk38->header = &gUnknown_203B21C->header;
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&gUnknown_203B21C->s0.windows, TRUE, TRUE);
|
||||
sub_8013818(&gUnknown_203B21C->s0.input, CountKecleonWareItems(), 10, r0);
|
||||
CreateMenuOnWindow(&gUnknown_203B21C->s0.input, CountKecleonWareItems(), 10, r0);
|
||||
gUnknown_203B21C->s0.input.menuIndex = gUnknown_203B220;
|
||||
sub_8013984(&gUnknown_203B21C->s0.input);
|
||||
sub_801A430();
|
||||
@@ -82,7 +82,7 @@ u32 sub_801A2A8(bool8 r0)
|
||||
// arm9.bin::02025CC4
|
||||
u8 sub_801A37C(void)
|
||||
{
|
||||
return (gUnknown_203B21C->s0.input.unk1E * gUnknown_203B21C->s0.input.unk1C) + gUnknown_203B21C->s0.input.menuIndex;
|
||||
return (gUnknown_203B21C->s0.input.unk1E * gUnknown_203B21C->s0.input.entriesPerPage) + gUnknown_203B21C->s0.input.menuIndex;
|
||||
}
|
||||
|
||||
// arm9.bin::02025C64
|
||||
@@ -90,7 +90,7 @@ void sub_801A398(bool8 r0)
|
||||
{
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&gUnknown_203B21C->s0.windows, FALSE, FALSE);
|
||||
gUnknown_203B21C->s0.input.unk22 = CountKecleonWareItems();
|
||||
gUnknown_203B21C->s0.input.totalEntriesCount = CountKecleonWareItems();
|
||||
sub_8013984(&gUnknown_203B21C->s0.input);
|
||||
sub_801A430();
|
||||
sub_801A4A4();
|
||||
@@ -139,7 +139,7 @@ void sub_801A4A4(void)
|
||||
PrintStringOnWindow(gUnknown_203B21C->s0.input.unk1E * 8 + 10, 0, sGoods, gUnknown_203B21C->s0.winId, 0);
|
||||
|
||||
for (index = 0; index < gUnknown_203B21C->s0.input.unk1A; index++) {
|
||||
temp_calc = (gUnknown_203B21C->s0.input.unk1E * gUnknown_203B21C->s0.input.unk1C) + index;
|
||||
temp_calc = (gUnknown_203B21C->s0.input.unk1E * gUnknown_203B21C->s0.input.entriesPerPage) + index;
|
||||
heldItem = GetKecleonWareItem(temp_calc);
|
||||
item.id = heldItem->id;
|
||||
item.quantity = heldItem->quantity;
|
||||
|
||||
@@ -60,7 +60,7 @@ bool8 sub_801A5D8(u32 param_1, s32 param_2, DungeonPos *param_3, u32 param_4)
|
||||
sub_8099690(1);
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&gUnknown_203B224->unk54.s0.windows, TRUE, TRUE);
|
||||
sub_8013818(&gUnknown_203B224->unk54.s0.input, GetNumberOfFilledInventorySlots(), param_4, param_2);
|
||||
CreateMenuOnWindow(&gUnknown_203B224->unk54.s0.input, GetNumberOfFilledInventorySlots(), param_4, param_2);
|
||||
gUnknown_203B224->unk54.s0.input.menuIndex = gUnknown_203B228;
|
||||
gUnknown_203B224->unk54.s0.input.unk1E = gUnknown_203B22A;
|
||||
sub_8013984(&gUnknown_203B224->unk54.s0.input);
|
||||
@@ -155,7 +155,7 @@ u32 sub_801A6E8(bool8 param_1)
|
||||
// arm9.bin::02026934
|
||||
s32 sub_801A8AC(void)
|
||||
{
|
||||
return (gUnknown_203B224->unk54.s0.input.unk1E * gUnknown_203B224->unk54.s0.input.unk1C) + gUnknown_203B224->unk54.s0.input.menuIndex;
|
||||
return (gUnknown_203B224->unk54.s0.input.unk1E * gUnknown_203B224->unk54.s0.input.entriesPerPage) + gUnknown_203B224->unk54.s0.input.menuIndex;
|
||||
}
|
||||
|
||||
// arm9.bin::020268C0
|
||||
@@ -165,7 +165,7 @@ void sub_801A8D0(bool8 r0)
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&gUnknown_203B224->unk54.s0.windows, FALSE, FALSE);
|
||||
FillInventoryGaps();
|
||||
gUnknown_203B224->unk54.s0.input.unk22 = GetNumberOfFilledInventorySlots();
|
||||
gUnknown_203B224->unk54.s0.input.totalEntriesCount = GetNumberOfFilledInventorySlots();
|
||||
sub_8013984(&gUnknown_203B224->unk54.s0.input);
|
||||
sub_801A998();
|
||||
sub_801A9E0();
|
||||
@@ -217,7 +217,7 @@ void sub_801A9E0(void)
|
||||
PrintStringOnWindow(x, 0, sTeamToolboxB, gUnknown_203B224->unk54.s0.winId, 0);
|
||||
|
||||
for (r7 = 0; r7 < gUnknown_203B224->unk54.s0.input.unk1A; r7++) {
|
||||
teamItemIndex = (gUnknown_203B224->unk54.s0.input.unk1E * gUnknown_203B224->unk54.s0.input.unk1C) + r7;
|
||||
teamItemIndex = (gUnknown_203B224->unk54.s0.input.unk1E * gUnknown_203B224->unk54.s0.input.entriesPerPage) + r7;
|
||||
item = gTeamInventoryRef->teamItems[teamItemIndex];
|
||||
|
||||
switch (gUnknown_203B224->unk0) {
|
||||
|
||||
@@ -43,7 +43,7 @@ bool8 sub_80302E8(s32 param_1, DungeonPos *param_2, u32 param_3)
|
||||
sub_8012D08(sMakuhitaDojoWork2->s30.s0.unk38, param_3);
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&sMakuhitaDojoWork2->s30.s0.windows, TRUE, TRUE);
|
||||
sub_8013818(&sMakuhitaDojoWork2->s30.s0.input, sub_8030668(), param_3, param_1);
|
||||
CreateMenuOnWindow(&sMakuhitaDojoWork2->s30.s0.input, sub_8030668(), param_3, param_1);
|
||||
sub_80304C8();
|
||||
MakuhitaDojo_DrawCourseList();
|
||||
return TRUE;
|
||||
@@ -76,12 +76,12 @@ u32 sub_80303AC(bool8 param_1)
|
||||
|
||||
s16 sub_8030418(void)
|
||||
{
|
||||
return sMakuhitaDojoWork2->unk0[(sMakuhitaDojoWork2->s30.s0.input.unk1E * sMakuhitaDojoWork2->s30.s0.input.unk1C) + sMakuhitaDojoWork2->s30.s0.input.menuIndex];
|
||||
return sMakuhitaDojoWork2->unk0[(sMakuhitaDojoWork2->s30.s0.input.unk1E * sMakuhitaDojoWork2->s30.s0.input.entriesPerPage) + sMakuhitaDojoWork2->s30.s0.input.menuIndex];
|
||||
}
|
||||
|
||||
UNUSED static void sub_8030444(bool8 a0)
|
||||
{
|
||||
sMakuhitaDojoWork2->s30.s0.input.unk22 = sub_8030668();
|
||||
sMakuhitaDojoWork2->s30.s0.input.totalEntriesCount = sub_8030668();
|
||||
sub_8013984(&sMakuhitaDojoWork2->s30.s0.input);
|
||||
sub_80304C8();
|
||||
MakuhitaDojo_DrawCourseList();
|
||||
@@ -126,7 +126,7 @@ static void MakuhitaDojo_DrawCourseList(void)
|
||||
sub_8012BC4((sMakuhitaDojoWork2->s30.header.width * 8) + 4, 0, sMakuhitaDojoWork2->s30.s0.input.unk1E + 1, 2, 7, sMakuhitaDojoWork2->s30.s0.winId);
|
||||
|
||||
for (i = 0; i < sMakuhitaDojoWork2->s30.s0.input.unk1A; i++) {
|
||||
iVar6 = sMakuhitaDojoWork2->unk0[sMakuhitaDojoWork2->s30.s0.input.unk1E * sMakuhitaDojoWork2->s30.s0.input.unk1C + i];
|
||||
iVar6 = sMakuhitaDojoWork2->unk0[sMakuhitaDojoWork2->s30.s0.input.unk1E * sMakuhitaDojoWork2->s30.s0.input.entriesPerPage + i];
|
||||
dungeonIndex = sub_80A2740(iVar6);
|
||||
|
||||
mazeIndex = sub_80A2668(iVar6);
|
||||
|
||||
514
src/menu_input.c
514
src/menu_input.c
@@ -242,37 +242,37 @@ void sub_8012CAC(WindowTemplate *a0, const MenuItem *a1)
|
||||
sub_8012D08(a0, count);
|
||||
}
|
||||
|
||||
void sub_8012D08(WindowTemplate *param_1, s32 param_2)
|
||||
void sub_8012D08(WindowTemplate *winTemplate, s32 param_2)
|
||||
{
|
||||
s32 sVar2;
|
||||
s16 sVar3;
|
||||
|
||||
sVar2 = (s16) sub_80095E4(param_2, 12);
|
||||
if (param_1->type == WINDOW_TYPE_WITH_HEADER)
|
||||
if (winTemplate->type == WINDOW_TYPE_WITH_HEADER)
|
||||
sVar2 = (s16)(sVar2 + 2);
|
||||
|
||||
sVar3 = sVar2;
|
||||
param_1->height = sVar3;
|
||||
param_1->unk10 = sVar3;
|
||||
winTemplate->height = sVar3;
|
||||
winTemplate->unk10 = sVar3;
|
||||
}
|
||||
|
||||
void sub_8012D34(WindowTemplate *param_1, s32 param_2)
|
||||
void sub_8012D34(WindowTemplate *winTemplate, s32 param_2)
|
||||
{
|
||||
s32 sVar2;
|
||||
s16 sVar3;
|
||||
|
||||
sVar2 = (s16) sub_8009614(param_2, 24);
|
||||
if (param_1->type == WINDOW_TYPE_WITH_HEADER)
|
||||
if (winTemplate->type == WINDOW_TYPE_WITH_HEADER)
|
||||
sVar2 = (s16)(sVar2 + 2);
|
||||
|
||||
sVar3 = sVar2;
|
||||
param_1->height = sVar3;
|
||||
param_1->unk10 = sVar3;
|
||||
winTemplate->height = sVar3;
|
||||
winTemplate->unk10 = sVar3;
|
||||
|
||||
}
|
||||
|
||||
// arm9.bin::0201C26C
|
||||
void sub_8012D60(MenuStruct *param_1, const MenuItem *menuItems, const u32 *colorArray, u16 *param_4, s32 menuAction, s32 index)
|
||||
void sub_8012D60(MenuStruct *menu, const MenuItem *menuItems, const u32 *colorArray, u16 *param_4, s32 menuAction, s32 index)
|
||||
{
|
||||
const u8 *textPtr;
|
||||
s32 counter;
|
||||
@@ -282,14 +282,14 @@ void sub_8012D60(MenuStruct *param_1, const MenuItem *menuItems, const u32 *colo
|
||||
counter = 0;
|
||||
menuIndex = -1;
|
||||
iVar1 = 0;
|
||||
param_1->index = index;
|
||||
param_1->menuItems = menuItems;
|
||||
param_1->menuTextColorArray = colorArray;
|
||||
menu->index = index;
|
||||
menu->menuItems = menuItems;
|
||||
menu->menuTextColorArray = colorArray;
|
||||
|
||||
if (colorArray == NULL)
|
||||
param_1->menuTextColorArray = gDefaultMenuTextColors;
|
||||
menu->menuTextColorArray = gDefaultMenuTextColors;
|
||||
|
||||
param_1->unkC = param_4;
|
||||
menu->unkC = param_4;
|
||||
textPtr = menuItems->text;
|
||||
|
||||
if (textPtr) {
|
||||
@@ -309,17 +309,17 @@ void sub_8012D60(MenuStruct *param_1, const MenuItem *menuItems, const u32 *colo
|
||||
if (menuIndex < 0)
|
||||
menuIndex = iVar1;
|
||||
|
||||
sub_8013134(¶m_1->input, counter, index);
|
||||
param_1->input.menuIndex = menuIndex;
|
||||
sub_80137B0(¶m_1->input, 0);
|
||||
sub_8013134(&menu->input, counter, index);
|
||||
menu->input.menuIndex = menuIndex;
|
||||
sub_80137B0(&menu->input, 0);
|
||||
|
||||
param_1->unk4C = TRUE;
|
||||
param_1->unk4D = TRUE;
|
||||
param_1->unk4E = TRUE;
|
||||
param_1->menuAction = -1;
|
||||
menu->unk4C = TRUE;
|
||||
menu->unk4D = TRUE;
|
||||
menu->unk4E = TRUE;
|
||||
menu->menuAction = -1;
|
||||
}
|
||||
|
||||
void sub_8012E04(MenuStruct *param_1, const MenuItem *menuItems, const u32 *colorArray, u16 *param_4, s32 menuAction, s32 index)
|
||||
void sub_8012E04(MenuStruct *menu, const MenuItem *menuItems, const u32 *colorArray, u16 *param_4, s32 menuAction, s32 index)
|
||||
{
|
||||
const u8 *textPtr;
|
||||
s32 counter;
|
||||
@@ -350,31 +350,31 @@ void sub_8012E04(MenuStruct *param_1, const MenuItem *menuItems, const u32 *colo
|
||||
if (menuIndex < 0)
|
||||
menuIndex = iVar1;
|
||||
|
||||
sub_8013134(¶m_1->input, counter, index);
|
||||
param_1->input.menuIndex = menuIndex;
|
||||
sub_80137B0(¶m_1->input, 0);
|
||||
sub_8013134(&menu->input, counter, index);
|
||||
menu->input.menuIndex = menuIndex;
|
||||
sub_80137B0(&menu->input, 0);
|
||||
|
||||
param_1->index = index;
|
||||
param_1->menuTextColorArray = colorArray;
|
||||
menu->index = index;
|
||||
menu->menuTextColorArray = colorArray;
|
||||
if (colorArray == NULL)
|
||||
param_1->menuTextColorArray = gDefaultMenuTextColors;
|
||||
menu->menuTextColorArray = gDefaultMenuTextColors;
|
||||
|
||||
param_1->unkC = param_4;
|
||||
param_1->menuItems = menuItems;
|
||||
param_1->unk4E = FALSE;
|
||||
param_1->unk4C = TRUE;
|
||||
param_1->unk4D = TRUE;
|
||||
param_1->menuAction = -1;
|
||||
menu->unkC = param_4;
|
||||
menu->menuItems = menuItems;
|
||||
menu->unk4E = FALSE;
|
||||
menu->unk4C = TRUE;
|
||||
menu->unk4D = TRUE;
|
||||
menu->menuAction = -1;
|
||||
}
|
||||
|
||||
void sub_8012EA4(MenuStruct *param_1, bool8 r1)
|
||||
void sub_8012EA4(MenuStruct *menu, bool8 r1)
|
||||
{
|
||||
param_1->unk4C = r1;
|
||||
param_1->unk4D = TRUE;
|
||||
sub_8012EBC(param_1);
|
||||
menu->unk4C = r1;
|
||||
menu->unk4D = TRUE;
|
||||
sub_8012EBC(menu);
|
||||
}
|
||||
|
||||
void sub_8012EBC(MenuStruct *param_1)
|
||||
void sub_8012EBC(MenuStruct *menu)
|
||||
{
|
||||
s32 x;
|
||||
s32 y;
|
||||
@@ -389,21 +389,21 @@ void sub_8012EBC(MenuStruct *param_1)
|
||||
u8 buffer[256];
|
||||
Window *window;
|
||||
|
||||
if (param_1->unk4D) {
|
||||
sub_80073B8(param_1->index);
|
||||
index = param_1->index;
|
||||
if (menu->unk4D) {
|
||||
sub_80073B8(menu->index);
|
||||
index = menu->index;
|
||||
window = &gWindows[index];
|
||||
|
||||
if (window->type == WINDOW_TYPE_WITH_HEADER) {
|
||||
WindowTemplate *windowTemplate = &winTemplates.id[index];
|
||||
RestoreSavedWindows(&winTemplates);
|
||||
x = GetStringLineWidth(param_1->unk0);
|
||||
PrintFormattedStringOnWindow(((windowTemplate->header->width * 8 - x) / 2) + 8, 0, param_1->unk0, param_1->index, 0);
|
||||
x = GetStringLineWidth(menu->unk0);
|
||||
PrintFormattedStringOnWindow(((windowTemplate->header->width * 8 - x) / 2) + 8, 0, menu->unk0, menu->index, 0);
|
||||
}
|
||||
|
||||
colorArray = param_1->menuTextColorArray;
|
||||
menuItemsPtr = param_1->menuItems;
|
||||
_puVar2 = param_1->unkC;
|
||||
colorArray = menu->menuTextColorArray;
|
||||
menuItemsPtr = menu->menuItems;
|
||||
_puVar2 = menu->unkC;
|
||||
counter = 0;
|
||||
|
||||
if (menuItemsPtr->text != NULL) {
|
||||
@@ -422,141 +422,141 @@ void sub_8012EBC(MenuStruct *param_1)
|
||||
color = colorArray[0]; // Use the default white
|
||||
|
||||
sprintfStatic(buffer,gUnknown_80D4828, color, textPtr);
|
||||
y = GetMenuEntryYCoord(¶m_1->input, counter);
|
||||
PrintFormattedStringOnWindow(8, y, buffer, param_1->index, 0);
|
||||
y = GetMenuEntryYCoord(&menu->input, counter);
|
||||
PrintFormattedStringOnWindow(8, y, buffer, menu->index, 0);
|
||||
menuItemsPtr++;
|
||||
counter++;
|
||||
} while (menuItemsPtr->text != NULL);
|
||||
}
|
||||
|
||||
sub_80073E0(param_1->index);
|
||||
param_1->unk4D = FALSE;
|
||||
sub_80073E0(menu->index);
|
||||
menu->unk4D = FALSE;
|
||||
}
|
||||
|
||||
if (param_1->unk4E) {
|
||||
if (param_1->unk4C)
|
||||
AddMenuCursorSprite(¶m_1->input);
|
||||
if (menu->unk4E) {
|
||||
if (menu->unk4C)
|
||||
AddMenuCursorSprite(&menu->input);
|
||||
else
|
||||
sub_8013660(¶m_1->input);
|
||||
sub_8013660(&menu->input);
|
||||
}
|
||||
}
|
||||
|
||||
bool8 sub_8012FD8(MenuStruct *param_1)
|
||||
bool8 sub_8012FD8(MenuStruct *menu)
|
||||
{
|
||||
u32 prevMenuIndex;
|
||||
s32 index;
|
||||
const MenuItem *item;
|
||||
|
||||
prevMenuIndex = param_1->input.menuIndex;
|
||||
prevMenuIndex = menu->input.menuIndex;
|
||||
|
||||
if (param_1->unk4C) {
|
||||
switch (GetKeyPress(¶m_1->input)) {
|
||||
if (menu->unk4C) {
|
||||
switch (GetKeyPress(&menu->input)) {
|
||||
case INPUT_DPAD_DOWN:
|
||||
MoveMenuCursorDown(¶m_1->input);
|
||||
if (prevMenuIndex != param_1->input.menuIndex)
|
||||
MoveMenuCursorDown(&menu->input);
|
||||
if (prevMenuIndex != menu->input.menuIndex)
|
||||
PlayMenuSoundEffect(3);
|
||||
break;
|
||||
case INPUT_DPAD_UP:
|
||||
MoveMenuCursorUp(¶m_1->input);
|
||||
if (prevMenuIndex != param_1->input.menuIndex)
|
||||
MoveMenuCursorUp(&menu->input);
|
||||
if (prevMenuIndex != menu->input.menuIndex)
|
||||
PlayMenuSoundEffect(3);
|
||||
break;
|
||||
case INPUT_A_BUTTON:
|
||||
index = sub_80137A8(¶m_1->input);
|
||||
item = ¶m_1->menuItems[index];
|
||||
index = sub_80137A8(&menu->input);
|
||||
item = &menu->menuItems[index];
|
||||
|
||||
if (item->menuAction > -1 && (param_1->unkC == NULL || param_1->unkC[index] != 1)) {
|
||||
param_1->menuAction = item->menuAction;
|
||||
++param_1; --param_1;
|
||||
param_1->unk4C = FALSE;
|
||||
param_1->input.unk24 = 0;
|
||||
if (item->menuAction > -1 && (menu->unkC == NULL || menu->unkC[index] != 1)) {
|
||||
menu->menuAction = item->menuAction;
|
||||
++menu; --menu;
|
||||
menu->unk4C = FALSE;
|
||||
menu->input.unk24 = 0;
|
||||
}
|
||||
else {
|
||||
PlayMenuSoundEffect(2);
|
||||
break;
|
||||
}
|
||||
|
||||
if (param_1->unkC != NULL && param_1->unkC[index] == 2)
|
||||
if (menu->unkC != NULL && menu->unkC[index] == 2)
|
||||
PlayMenuSoundEffect(2);
|
||||
else
|
||||
PlayMenuSoundEffect(0);
|
||||
break;
|
||||
case INPUT_B_BUTTON:
|
||||
if (param_1->menuItems[param_1->input.unk1A].menuAction > -1) {
|
||||
param_1->menuAction = param_1->menuItems[param_1->input.unk1A].menuAction;
|
||||
param_1->unk4C = FALSE;
|
||||
if (menu->menuItems[menu->input.unk1A].menuAction > -1) {
|
||||
menu->menuAction = menu->menuItems[menu->input.unk1A].menuAction;
|
||||
menu->unk4C = FALSE;
|
||||
PlayMenuSoundEffect(1);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
sub_8012EBC(param_1);
|
||||
return param_1->unk4C;
|
||||
sub_8012EBC(menu);
|
||||
return menu->unk4C;
|
||||
}
|
||||
|
||||
bool8 sub_80130A8(MenuStruct *param_1)
|
||||
bool8 sub_80130A8(MenuStruct *menu)
|
||||
{
|
||||
s32 index;
|
||||
const MenuItem *menuItem;
|
||||
|
||||
if (param_1->unk4C) {
|
||||
switch (GetKeyPress(¶m_1->input))
|
||||
if (menu->unk4C) {
|
||||
switch (GetKeyPress(&menu->input))
|
||||
{
|
||||
case INPUT_A_BUTTON:
|
||||
index = sub_80137A8(¶m_1->input);
|
||||
menuItem = ¶m_1->menuItems[index];
|
||||
param_1->menuAction = menuItem->menuAction;
|
||||
param_1->unk4C = FALSE;
|
||||
param_1->input.unk24 = 0;
|
||||
index = sub_80137A8(&menu->input);
|
||||
menuItem = &menu->menuItems[index];
|
||||
menu->menuAction = menuItem->menuAction;
|
||||
menu->unk4C = FALSE;
|
||||
menu->input.unk24 = 0;
|
||||
PlayMenuSoundEffect(0);
|
||||
break;
|
||||
case INPUT_B_BUTTON:
|
||||
if (param_1->menuItems[param_1->input.unk1A].menuAction > -1) {
|
||||
param_1->menuAction = param_1->menuItems[param_1->input.unk1A].menuAction;
|
||||
param_1->unk4C = FALSE;
|
||||
if (menu->menuItems[menu->input.unk1A].menuAction > -1) {
|
||||
menu->menuAction = menu->menuItems[menu->input.unk1A].menuAction;
|
||||
menu->unk4C = FALSE;
|
||||
PlayMenuSoundEffect(0);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
sub_8012EBC(param_1);
|
||||
return param_1->unk4C;
|
||||
sub_8012EBC(menu);
|
||||
return menu->unk4C;
|
||||
}
|
||||
|
||||
bool8 sub_8013114(MenuStruct *param_1, s32 *menuAction)
|
||||
bool8 sub_8013114(MenuStruct *menu, s32 *menuAction)
|
||||
{
|
||||
if (param_1->unk4C)
|
||||
if (menu->unk4C)
|
||||
return TRUE;
|
||||
|
||||
if (menuAction != NULL)
|
||||
*menuAction = param_1->menuAction;
|
||||
*menuAction = menu->menuAction;
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static void sub_8013134(MenuInputStruct *param_1, u32 menuItemCounter, u32 windowId)
|
||||
static void sub_8013134(MenuInputStruct *menuInput, u32 menuItemCounter, u32 windowId)
|
||||
{
|
||||
Window *window = &gWindows[windowId];
|
||||
|
||||
param_1->unk0 = windowId;
|
||||
param_1->menuIndex = 0;
|
||||
param_1->unk1A = menuItemCounter;
|
||||
param_1->unk1C = menuItemCounter;
|
||||
param_1->unk1E = 0;
|
||||
param_1->unk4 = 0;
|
||||
menuInput->windowId = windowId;
|
||||
menuInput->menuIndex = 0;
|
||||
menuInput->unk1A = menuItemCounter;
|
||||
menuInput->entriesPerPage = menuItemCounter;
|
||||
menuInput->unk1E = 0;
|
||||
menuInput->unk4 = 0;
|
||||
|
||||
if (window->type == WINDOW_TYPE_WITH_HEADER)
|
||||
param_1->firstEntryY = 16;
|
||||
menuInput->firstEntryY = 16;
|
||||
else
|
||||
param_1->firstEntryY = 2;
|
||||
menuInput->firstEntryY = 2;
|
||||
|
||||
param_1->unkC = 0;
|
||||
param_1->unkE = 0;
|
||||
param_1->unk14.x = 0;
|
||||
param_1->unk24 = 0;
|
||||
sub_801317C(¶m_1->unk28);
|
||||
menuInput->unkC = 0;
|
||||
menuInput->unkE = 0;
|
||||
menuInput->unk14.x = 0;
|
||||
menuInput->unk24 = 0;
|
||||
sub_801317C(&menuInput->unk28);
|
||||
}
|
||||
|
||||
// arm9.bin::0201BD28
|
||||
@@ -574,20 +574,20 @@ void sub_801317C(MenuInputStructSub *param_1)
|
||||
}
|
||||
|
||||
// arm9.bin::0201BD18
|
||||
void AddMenuCursorSprite(MenuInputStruct *param_1)
|
||||
void AddMenuCursorSprite(MenuInputStruct *menuInput)
|
||||
{
|
||||
AddMenuCursorSprite_(param_1, 0);
|
||||
AddMenuCursorSprite_(menuInput, 0);
|
||||
}
|
||||
|
||||
// arm9.bin::0201B978
|
||||
void AddMenuCursorSprite_(MenuInputStruct *a0, u8 *a1)
|
||||
void AddMenuCursorSprite_(MenuInputStruct *menuInput, u8 *a1)
|
||||
{
|
||||
struct SpriteOAM sp = {0};
|
||||
|
||||
if (a0->unk1A > 0) {
|
||||
UpdateMenuCursorSpriteCoords(a0);
|
||||
if (menuInput->unk1A > 0) {
|
||||
UpdateMenuCursorSpriteCoords(menuInput);
|
||||
|
||||
if (!(a0->unk24 & 8)) {
|
||||
if (!(menuInput->unk24 & 8)) {
|
||||
SpriteSetAffine1(&sp, 0);
|
||||
SpriteSetAffine2(&sp, 0);
|
||||
SpriteSetObjMode(&sp, 0);
|
||||
@@ -601,18 +601,18 @@ void AddMenuCursorSprite_(MenuInputStruct *a0, u8 *a1)
|
||||
SpriteSetPalNum(&sp, 15);
|
||||
SpriteSetUnk6_0(&sp, 0);
|
||||
SpriteSetUnk6_1(&sp, 0);
|
||||
SpriteSetX(&sp, a0->unk8.x);
|
||||
SpriteSetY(&sp, a0->unk8.y + 1);
|
||||
SpriteSetX(&sp, menuInput->unk8.x);
|
||||
SpriteSetY(&sp, menuInput->unk8.y + 1);
|
||||
|
||||
AddSprite(&sp, 0xFF, 0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
sub_8013470(a0);
|
||||
if (a0->unk14.x != 0)
|
||||
sub_801332C(&a0->unk14);
|
||||
sub_8013470(menuInput);
|
||||
if (menuInput->unk14.x != 0)
|
||||
sub_801332C(&menuInput->unk14);
|
||||
|
||||
a0->unk24++;
|
||||
menuInput->unk24++;
|
||||
|
||||
// More here in NDS
|
||||
}
|
||||
@@ -692,108 +692,104 @@ static void sub_8013470(MenuInputStruct *a0)
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8013660(MenuInputStruct *param_1)
|
||||
void sub_8013660(MenuInputStruct *menuInput)
|
||||
{
|
||||
if (0 < param_1->unk1A) {
|
||||
UpdateMenuCursorSpriteCoords(param_1);
|
||||
sub_801332C(¶m_1->unk8);
|
||||
if (0 < menuInput->unk1A) {
|
||||
UpdateMenuCursorSpriteCoords(menuInput);
|
||||
sub_801332C(&menuInput->unk8);
|
||||
}
|
||||
}
|
||||
|
||||
// arm9.bin::0201B14C
|
||||
void UpdateMenuCursorSpriteCoords(MenuInputStruct *param_1)
|
||||
void UpdateMenuCursorSpriteCoords(MenuInputStruct *menuInput)
|
||||
{
|
||||
s32 index;
|
||||
Window *window;
|
||||
|
||||
index = param_1->unk0;
|
||||
window = &gWindows[index];
|
||||
param_1->unk8.x = window->x * 8 + param_1->unk4;
|
||||
param_1->unk8.y = window->y * 8 + GetMenuEntryYCoord(param_1, param_1->menuIndex);
|
||||
Window *window = &gWindows[menuInput->windowId];
|
||||
menuInput->unk8.x = window->x * 8 + menuInput->unk4;
|
||||
menuInput->unk8.y = window->y * 8 + GetMenuEntryYCoord(menuInput, menuInput->menuIndex);
|
||||
}
|
||||
|
||||
void MoveMenuCursorDown(MenuInputStruct *param_1)
|
||||
void MoveMenuCursorDown(MenuInputStruct *menuInput)
|
||||
{
|
||||
param_1->unk24 = 0;
|
||||
menuInput->unk24 = 0;
|
||||
|
||||
if (param_1->unk1A < 1)
|
||||
param_1->menuIndex = 0;
|
||||
if (menuInput->unk1A < 1)
|
||||
menuInput->menuIndex = 0;
|
||||
else {
|
||||
param_1->menuIndex++;
|
||||
menuInput->menuIndex++;
|
||||
|
||||
if (param_1->menuIndex >= param_1->unk1A)
|
||||
param_1->menuIndex = 0;
|
||||
if (menuInput->menuIndex >= menuInput->unk1A)
|
||||
menuInput->menuIndex = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void MoveMenuCursorDownWrapAround(MenuInputStruct *param_1, u8 param_2)
|
||||
void MoveMenuCursorDownWrapAround(MenuInputStruct *menuInput, u8 param_2)
|
||||
{
|
||||
param_1->unk24 = 0;
|
||||
menuInput->unk24 = 0;
|
||||
|
||||
if (param_1->unk1A < 1)
|
||||
param_1->menuIndex = 0;
|
||||
if (menuInput->unk1A < 1)
|
||||
menuInput->menuIndex = 0;
|
||||
else {
|
||||
param_1->menuIndex++;
|
||||
menuInput->menuIndex++;
|
||||
|
||||
if (param_1->menuIndex >= param_1->unk1A) {
|
||||
if (menuInput->menuIndex >= menuInput->unk1A) {
|
||||
if (param_2 != 0)
|
||||
param_1->menuIndex = 0;
|
||||
menuInput->menuIndex = 0;
|
||||
else
|
||||
param_1->menuIndex = param_1->unk1A - 1;
|
||||
menuInput->menuIndex = menuInput->unk1A - 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void MoveMenuCursorUp(MenuInputStruct *param_1)
|
||||
void MoveMenuCursorUp(MenuInputStruct *menuInput)
|
||||
{
|
||||
param_1->unk24 = 0;
|
||||
menuInput->unk24 = 0;
|
||||
|
||||
if (param_1->unk1A < 1)
|
||||
param_1->menuIndex = 0;
|
||||
if (menuInput->unk1A < 1)
|
||||
menuInput->menuIndex = 0;
|
||||
else {
|
||||
param_1->menuIndex--;
|
||||
menuInput->menuIndex--;
|
||||
|
||||
if (param_1->menuIndex < 0)
|
||||
param_1->menuIndex = param_1->unk1A - 1;
|
||||
if (menuInput->menuIndex < 0)
|
||||
menuInput->menuIndex = menuInput->unk1A - 1;
|
||||
}
|
||||
}
|
||||
|
||||
void MoveMenuCursorUpWrapAround(MenuInputStruct *param_1, u8 param_2)
|
||||
void MoveMenuCursorUpWrapAround(MenuInputStruct *menuInput, u8 param_2)
|
||||
{
|
||||
param_1->unk24 = 0;
|
||||
menuInput->unk24 = 0;
|
||||
|
||||
if (param_1->unk1A < 1)
|
||||
param_1->menuIndex = 0;
|
||||
if (menuInput->unk1A < 1)
|
||||
menuInput->menuIndex = 0;
|
||||
else {
|
||||
param_1->menuIndex--;
|
||||
menuInput->menuIndex--;
|
||||
|
||||
if (param_1->menuIndex < 0) {
|
||||
if (menuInput->menuIndex < 0) {
|
||||
if (param_2 != 0)
|
||||
param_1->menuIndex = param_1->unk1A - 1;
|
||||
menuInput->menuIndex = menuInput->unk1A - 1;
|
||||
else
|
||||
param_1->menuIndex = 0;
|
||||
menuInput->menuIndex = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8013780(MenuInputStruct *param_1, s32 param_2)
|
||||
void sub_8013780(MenuInputStruct *menuInput, s32 param_2)
|
||||
{
|
||||
if (param_2 < 0)
|
||||
param_1->menuIndex = 0;
|
||||
else if (param_2 >= param_1->unk1A)
|
||||
param_1->menuIndex = param_1->unk1A - 1;
|
||||
menuInput->menuIndex = 0;
|
||||
else if (param_2 >= menuInput->unk1A)
|
||||
menuInput->menuIndex = menuInput->unk1A - 1;
|
||||
else
|
||||
param_1->menuIndex = param_2;
|
||||
menuInput->menuIndex = param_2;
|
||||
|
||||
param_1->unk24 = 0;
|
||||
menuInput->unk24 = 0;
|
||||
}
|
||||
|
||||
s32 sub_80137A8(MenuInputStruct *param_1)
|
||||
s32 sub_80137A8(MenuInputStruct *menuInput)
|
||||
{
|
||||
return param_1->menuIndex;
|
||||
return menuInput->menuIndex;
|
||||
}
|
||||
|
||||
void sub_80137B0(MenuInputStruct *param_1, s32 param_2)
|
||||
void sub_80137B0(MenuInputStruct *menuInput, s32 param_2)
|
||||
{
|
||||
s32 iVar1;
|
||||
s32 iVar2;
|
||||
@@ -802,197 +798,195 @@ void sub_80137B0(MenuInputStruct *param_1, s32 param_2)
|
||||
iVar2 = param_2 << 8;
|
||||
}
|
||||
else {
|
||||
if (gWindows[param_1->unk0].type == WINDOW_TYPE_WITH_HEADER)
|
||||
if (gWindows[menuInput->windowId].type == WINDOW_TYPE_WITH_HEADER)
|
||||
iVar1 = 16;
|
||||
else
|
||||
iVar1 = 0;
|
||||
|
||||
iVar2 = (gWindows[param_1->unk0].height * 8 - iVar1) << 8;
|
||||
iVar2 = (gWindows[menuInput->windowId].height * 8 - iVar1) << 8;
|
||||
}
|
||||
|
||||
param_1->unk10 = iVar2 / param_1->unk1C;
|
||||
menuInput->unk10 = iVar2 / menuInput->entriesPerPage;
|
||||
}
|
||||
|
||||
void sub_80137F8(MenuInputStruct *param_1, u32 param_2)
|
||||
void sub_80137F8(MenuInputStruct *menuInput, u32 param_2)
|
||||
{
|
||||
param_1->unk10 = param_2 << 8;
|
||||
menuInput->unk10 = param_2 << 8;
|
||||
}
|
||||
|
||||
// arm9.bin::0201AF70
|
||||
s32 GetMenuEntryYCoord(MenuInputStruct *menu, s32 entryId)
|
||||
s32 GetMenuEntryYCoord(MenuInputStruct *menuInput, s32 entryId)
|
||||
{
|
||||
s32 firstY = menu->firstEntryY;
|
||||
s32 iVar1 = entryId * menu->unk10;
|
||||
s32 firstY = menuInput->firstEntryY;
|
||||
s32 iVar1 = entryId * menuInput->unk10;
|
||||
|
||||
return firstY + (iVar1 / 256);
|
||||
}
|
||||
|
||||
void sub_8013818(MenuInputStruct *param_1, s32 param_2, u32 param_3, s32 param_4)
|
||||
void CreateMenuOnWindow(MenuInputStruct *menuInput, s32 totalCount, u32 perPageCount, s32 windowId)
|
||||
{
|
||||
param_1->unk0 = param_4;
|
||||
param_1->unk22 = param_2;
|
||||
param_1->unk1C = param_3;
|
||||
param_1->unk14.x = 0;
|
||||
param_1->unk24 = 0;
|
||||
param_1->menuIndex = 0;
|
||||
param_1->unk1E = 0;
|
||||
menuInput->windowId = windowId;
|
||||
menuInput->totalEntriesCount = totalCount;
|
||||
menuInput->entriesPerPage = perPageCount;
|
||||
menuInput->unk14.x = 0;
|
||||
menuInput->unk24 = 0;
|
||||
menuInput->menuIndex = 0;
|
||||
menuInput->unk1E = 0;
|
||||
|
||||
sub_801317C(¶m_1->unk28);
|
||||
sub_8013984(param_1);
|
||||
sub_80137F8(param_1, 12);
|
||||
sub_801317C(&menuInput->unk28);
|
||||
sub_8013984(menuInput);
|
||||
sub_80137F8(menuInput, 12);
|
||||
}
|
||||
|
||||
void sub_8013848(MenuInputStruct *param_1, s32 param_2, u32 param_3, s32 param_4)
|
||||
void sub_8013848(MenuInputStruct *menuInput, s32 totalCount, u32 perPageCount, s32 windowId)
|
||||
{
|
||||
param_1->unk0 = param_4;
|
||||
param_1->unk22 = param_2;
|
||||
param_1->unk1C = param_3;
|
||||
param_1->unk14.x = 0;
|
||||
param_1->unk24 = 0;
|
||||
param_1->menuIndex = 0;
|
||||
param_1->unk1E = 0;
|
||||
menuInput->windowId = windowId;
|
||||
menuInput->totalEntriesCount = totalCount;
|
||||
menuInput->entriesPerPage = perPageCount;
|
||||
menuInput->unk14.x = 0;
|
||||
menuInput->unk24 = 0;
|
||||
menuInput->menuIndex = 0;
|
||||
menuInput->unk1E = 0;
|
||||
|
||||
sub_801317C(¶m_1->unk28);
|
||||
sub_8013984(param_1);
|
||||
sub_80137F8(param_1, 24);
|
||||
sub_801317C(&menuInput->unk28);
|
||||
sub_8013984(menuInput);
|
||||
sub_80137F8(menuInput, 24);
|
||||
}
|
||||
|
||||
void sub_8013878(MenuInputStruct *param_1, s32 param_2)
|
||||
void sub_8013878(MenuInputStruct *menuInput, s32 param_2)
|
||||
{
|
||||
if (param_2 < 0)
|
||||
param_2 = 0;
|
||||
else if (param_2 >= param_1->unk22)
|
||||
param_2 = param_1->unk22 - 1;
|
||||
else if (param_2 >= menuInput->totalEntriesCount)
|
||||
param_2 = menuInput->totalEntriesCount - 1;
|
||||
|
||||
param_1->unk1E = param_2 / param_1->unk1C;
|
||||
param_1->menuIndex = param_2 % param_1->unk1C;
|
||||
param_1->unk24 = 0;
|
||||
sub_8013984(param_1);
|
||||
menuInput->unk1E = param_2 / menuInput->entriesPerPage;
|
||||
menuInput->menuIndex = param_2 % menuInput->entriesPerPage;
|
||||
menuInput->unk24 = 0;
|
||||
sub_8013984(menuInput);
|
||||
}
|
||||
|
||||
bool8 sub_80138B8(MenuInputStruct *param_1, bool8 param_2)
|
||||
bool8 sub_80138B8(MenuInputStruct *menuInput, bool8 param_2)
|
||||
{
|
||||
s32 sVar1;
|
||||
s32 oldIndex;
|
||||
|
||||
sVar1 = param_1->unk1E;
|
||||
oldIndex = param_1->menuIndex;
|
||||
AddMenuCursorSprite(param_1);
|
||||
sVar1 = menuInput->unk1E;
|
||||
oldIndex = menuInput->menuIndex;
|
||||
AddMenuCursorSprite(menuInput);
|
||||
|
||||
if (param_2) {
|
||||
switch (GetKeyPress(param_1)) {
|
||||
switch (GetKeyPress(menuInput)) {
|
||||
case INPUT_DPAD_UP:
|
||||
MoveMenuCursorUp(param_1);
|
||||
if (oldIndex != param_1->menuIndex)
|
||||
MoveMenuCursorUp(menuInput);
|
||||
if (oldIndex != menuInput->menuIndex)
|
||||
PlayMenuSoundEffect(3);
|
||||
break;
|
||||
case INPUT_DPAD_DOWN:
|
||||
MoveMenuCursorDown(param_1);
|
||||
if (oldIndex != param_1->menuIndex)
|
||||
MoveMenuCursorDown(menuInput);
|
||||
if (oldIndex != menuInput->menuIndex)
|
||||
PlayMenuSoundEffect(3);
|
||||
break;
|
||||
case INPUT_DPAD_LEFT:
|
||||
sub_8013A7C(param_1);
|
||||
sub_8013A7C(menuInput);
|
||||
break;
|
||||
case INPUT_DPAD_RIGHT:
|
||||
sub_8013A54(param_1);
|
||||
sub_8013A54(menuInput);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (sVar1 != param_1->unk1E) {
|
||||
if (sVar1 != menuInput->unk1E) {
|
||||
PlayMenuSoundEffect(4);
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
bool8 sub_8013938(MenuInputStruct *param_1)
|
||||
bool8 sub_8013938(MenuInputStruct *menuInput)
|
||||
{
|
||||
s32 sVar1;
|
||||
|
||||
sVar1 = param_1->unk1E;
|
||||
param_1->unk1A = 0;
|
||||
param_1->unk14.x = 0;
|
||||
AddMenuCursorSprite(param_1);
|
||||
sVar1 = menuInput->unk1E;
|
||||
menuInput->unk1A = 0;
|
||||
menuInput->unk14.x = 0;
|
||||
AddMenuCursorSprite(menuInput);
|
||||
|
||||
switch (GetKeyPress(param_1)) {
|
||||
switch (GetKeyPress(menuInput)) {
|
||||
case INPUT_DPAD_LEFT:
|
||||
sub_8013A7C(param_1);
|
||||
sub_8013A7C(menuInput);
|
||||
break;
|
||||
case INPUT_DPAD_RIGHT:
|
||||
sub_8013A54(param_1);
|
||||
sub_8013A54(menuInput);
|
||||
break;
|
||||
}
|
||||
|
||||
if (sVar1 != param_1->unk1E) {
|
||||
if (sVar1 != menuInput->unk1E) {
|
||||
PlayMenuSoundEffect(4);
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void sub_8013984(MenuInputStruct *param_1)
|
||||
void sub_8013984(MenuInputStruct *menuInput)
|
||||
{
|
||||
s32 iVar2;
|
||||
s32 iVar4;
|
||||
Window *window;
|
||||
|
||||
iVar4 = param_1->unk0;
|
||||
window = &gWindows[iVar4];
|
||||
window = &gWindows[menuInput->windowId];
|
||||
|
||||
if (param_1->unk1C == 0)
|
||||
param_1->unk1C++;
|
||||
if (menuInput->entriesPerPage == 0)
|
||||
menuInput->entriesPerPage++;
|
||||
|
||||
param_1->unk20 = param_1->unk22 / param_1->unk1C;
|
||||
iVar2 = param_1->unk22 % param_1->unk1C;
|
||||
menuInput->unk20 = menuInput->totalEntriesCount / menuInput->entriesPerPage;
|
||||
iVar2 = menuInput->totalEntriesCount % menuInput->entriesPerPage;
|
||||
if (iVar2 != 0)
|
||||
param_1->unk20++;
|
||||
menuInput->unk20++;
|
||||
|
||||
if (param_1->unk1E > param_1->unk20 - 1)
|
||||
param_1->unk1E = param_1->unk20 - 1;
|
||||
if (menuInput->unk1E > menuInput->unk20 - 1)
|
||||
menuInput->unk1E = menuInput->unk20 - 1;
|
||||
|
||||
if (param_1->unk1E != param_1->unk20 - 1 || param_1->unk22 % param_1->unk1C == 0)
|
||||
param_1->unk1A = param_1->unk1C;
|
||||
if (menuInput->unk1E != menuInput->unk20 - 1 || menuInput->totalEntriesCount % menuInput->entriesPerPage == 0)
|
||||
menuInput->unk1A = menuInput->entriesPerPage;
|
||||
else
|
||||
param_1->unk1A = param_1->unk22 % param_1->unk1C;
|
||||
menuInput->unk1A = menuInput->totalEntriesCount % menuInput->entriesPerPage;
|
||||
|
||||
if (param_1->menuIndex > param_1->unk1A - 1)
|
||||
param_1->menuIndex = param_1->unk1A - 1;
|
||||
if (menuInput->menuIndex > menuInput->unk1A - 1)
|
||||
menuInput->menuIndex = menuInput->unk1A - 1;
|
||||
|
||||
param_1->unk4 = 0;
|
||||
menuInput->unk4 = 0;
|
||||
|
||||
if (window->type== WINDOW_TYPE_WITH_HEADER)
|
||||
param_1->firstEntryY = 16;
|
||||
menuInput->firstEntryY = 16;
|
||||
else
|
||||
param_1->firstEntryY = 0;
|
||||
menuInput->firstEntryY = 0;
|
||||
|
||||
if (param_1->unk20 < 2)
|
||||
param_1->unkC = 0;
|
||||
if (menuInput->unk20 < 2)
|
||||
menuInput->unkC = 0;
|
||||
else
|
||||
param_1->unkC = (window->x + window->width - 2) * 8;
|
||||
menuInput->unkC = (window->x + window->width - 2) * 8;
|
||||
|
||||
param_1->unkE = (window->y + 1) * 8 - 2;
|
||||
menuInput->unkE = (window->y + 1) * 8 - 2;
|
||||
}
|
||||
|
||||
void sub_8013A54(MenuInputStruct *param_1)
|
||||
void sub_8013A54(MenuInputStruct *menuInput)
|
||||
{
|
||||
if (param_1->unk1E < param_1->unk20 - 1)
|
||||
param_1->unk1E++;
|
||||
if (menuInput->unk1E < menuInput->unk20 - 1)
|
||||
menuInput->unk1E++;
|
||||
else
|
||||
param_1->unk1E = 0;
|
||||
menuInput->unk1E = 0;
|
||||
|
||||
sub_8013984(param_1);
|
||||
sub_8013984(menuInput);
|
||||
}
|
||||
|
||||
void sub_8013A7C(MenuInputStruct *param_1)
|
||||
void sub_8013A7C(MenuInputStruct *menuInput)
|
||||
{
|
||||
if (param_1->unk1E < 1)
|
||||
param_1->unk1E = param_1->unk20 - 1;
|
||||
if (menuInput->unk1E < 1)
|
||||
menuInput->unk1E = menuInput->unk20 - 1;
|
||||
else
|
||||
param_1->unk1E--;
|
||||
menuInput->unk1E--;
|
||||
|
||||
sub_8013984(param_1);
|
||||
sub_8013984(menuInput);
|
||||
}
|
||||
|
||||
void sub_8013AA0(unkStructFor8013AA0 *a0)
|
||||
|
||||
@@ -30,7 +30,7 @@ bool8 sub_801E198(GameOptions *optionsMenu)
|
||||
sub_8012D08(sUnknown_203B260->unk48, 1);
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&sUnknown_203B260->unk4C, TRUE, TRUE);
|
||||
sub_8013818(&sUnknown_203B260->input, 1, 1, sUnknown_203B260->unk44);
|
||||
CreateMenuOnWindow(&sUnknown_203B260->input, 1, 1, sUnknown_203B260->unk44);
|
||||
nullsub_38();
|
||||
CreateOptionsMenu();
|
||||
return TRUE;
|
||||
|
||||
@@ -49,7 +49,7 @@ void CreatePartnerSelectionMenu(s16 starterID)
|
||||
gUnknown_203B404->s18.header.f3 = 0;
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&gUnknown_203B404->s18.s0.windows, TRUE, TRUE);
|
||||
sub_8013818(&gUnknown_203B404->s18.s0.input, GetValidPartners(), 10, gUnknown_203B404->s18.s0.winId);
|
||||
CreateMenuOnWindow(&gUnknown_203B404->s18.s0.input, GetValidPartners(), 10, gUnknown_203B404->s18.s0.winId);
|
||||
RedrawPartnerSelectionMenu();
|
||||
PersonalityTest_DisplayPartnerSprite();
|
||||
}
|
||||
@@ -80,7 +80,7 @@ u16 HandlePartnerSelectionInput(void)
|
||||
|
||||
UNUSED static void sub_803CE34(bool8 cursorSprite)
|
||||
{
|
||||
gUnknown_203B404->s18.s0.input.unk22 = GetValidPartners();
|
||||
gUnknown_203B404->s18.s0.input.totalEntriesCount = GetValidPartners();
|
||||
sub_8013984(&gUnknown_203B404->s18.s0.input);
|
||||
RedrawPartnerSelectionMenu();
|
||||
PersonalityTest_DisplayPartnerSprite();
|
||||
|
||||
@@ -46,7 +46,7 @@ bool8 sub_802B640(u32 a0, DungeonPos *a1, u32 a2)
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&sUnknown_203B2CC->s38.windows, TRUE, TRUE);
|
||||
|
||||
sub_8013818(&sUnknown_203B2CC->s38.input, GetNumPKMNNews(), a2, a0);
|
||||
CreateMenuOnWindow(&sUnknown_203B2CC->s38.input, GetNumPKMNNews(), a2, a0);
|
||||
|
||||
sUnknown_203B2CC->s38.input.menuIndex = sUnknown_203B2D0;
|
||||
sUnknown_203B2CC->s38.input.unk1E = sUnknown_203B2D2;
|
||||
@@ -87,7 +87,7 @@ u32 sub_802B720(bool8 a0)
|
||||
|
||||
u8 GetPokemonNewsIndex(void)
|
||||
{
|
||||
return sUnknown_203B2CC->receivedNewsletters[(sUnknown_203B2CC->s38.input.unk1E * sUnknown_203B2CC->s38.input.unk1C) + sUnknown_203B2CC->s38.input.menuIndex];
|
||||
return sUnknown_203B2CC->receivedNewsletters[(sUnknown_203B2CC->s38.input.unk1E * sUnknown_203B2CC->s38.input.entriesPerPage) + sUnknown_203B2CC->s38.input.menuIndex];
|
||||
}
|
||||
|
||||
void sub_802B7D0(bool8 cursorSprite)
|
||||
@@ -95,7 +95,7 @@ void sub_802B7D0(bool8 cursorSprite)
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&sUnknown_203B2CC->s38.windows, FALSE, FALSE);
|
||||
|
||||
sUnknown_203B2CC->s38.input.unk22 = GetNumPKMNNews();
|
||||
sUnknown_203B2CC->s38.input.totalEntriesCount = GetNumPKMNNews();
|
||||
sub_8013984(&sUnknown_203B2CC->s38.input);
|
||||
sub_802B880();
|
||||
CreatePKMNNewsMenu();
|
||||
@@ -141,7 +141,7 @@ static void CreatePKMNNewsMenu(void)
|
||||
|
||||
for (index = 0; index < sUnknown_203B2CC->s38.input.unk1A; index++) {
|
||||
y = GetMenuEntryYCoord(&sUnknown_203B2CC->s38.input, index);
|
||||
new_index = (sUnknown_203B2CC->s38.input.unk1E * sUnknown_203B2CC->s38.input.unk1C) + index;
|
||||
new_index = (sUnknown_203B2CC->s38.input.unk1E * sUnknown_203B2CC->s38.input.entriesPerPage) + index;
|
||||
mailIndex = sUnknown_203B2CC->receivedNewsletters[new_index];
|
||||
sub_803B6B0(10, y, 6, sUnknown_203B2CC->s38.winId);
|
||||
sub_802BC7C();
|
||||
|
||||
@@ -83,7 +83,7 @@ u32 sub_802BDEC(bool8 a0)
|
||||
|
||||
u8 sub_802BE74(void)
|
||||
{
|
||||
return sUnknown_203B2D8->unk0[(sUnknown_203B2D8->unk4.s0.input.unk1E * sUnknown_203B2D8->unk4.s0.input.unk1C) + sUnknown_203B2D8->unk4.s0.input.menuIndex];
|
||||
return sUnknown_203B2D8->unk0[(sUnknown_203B2D8->unk4.s0.input.unk1E * sUnknown_203B2D8->unk4.s0.input.entriesPerPage) + sUnknown_203B2D8->unk4.s0.input.menuIndex];
|
||||
}
|
||||
|
||||
void sub_802BE94(bool8 cursorSprite)
|
||||
@@ -91,7 +91,7 @@ void sub_802BE94(bool8 cursorSprite)
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&sUnknown_203B2D8->unk4.s0.windows, FALSE, FALSE);
|
||||
|
||||
sUnknown_203B2D8->unk4.s0.input.unk22 = CountEmptyMailSlots();
|
||||
sUnknown_203B2D8->unk4.s0.input.totalEntriesCount = CountEmptyMailSlots();
|
||||
sub_8013984(&sUnknown_203B2D8->unk4.s0.input);
|
||||
sub_802BF30();
|
||||
CreateMailMenu();
|
||||
@@ -134,7 +134,7 @@ void CreateMailMenu(void)
|
||||
PrintStringOnWindow((sUnknown_203B2D8->unk4.s0.input.unk1E * 8) + 10, 0, sMailbox, sUnknown_203B2D8->unk4.s0.winId, 0);
|
||||
|
||||
for (i = 0; i < sUnknown_203B2D8->unk4.s0.input.unk1A; i++) {
|
||||
mail = GetMailboxSlotInfo(sUnknown_203B2D8->unk0[(sUnknown_203B2D8->unk4.s0.input.unk1E * sUnknown_203B2D8->unk4.s0.input.unk1C) + i]);
|
||||
mail = GetMailboxSlotInfo(sUnknown_203B2D8->unk0[(sUnknown_203B2D8->unk4.s0.input.unk1E * sUnknown_203B2D8->unk4.s0.input.entriesPerPage) + i]);
|
||||
local.unk0[0] = sUnknown_203B2D8->unk4.s0.winId;
|
||||
local.y = GetMenuEntryYCoord(&sUnknown_203B2D8->unk4.s0.input, i);
|
||||
|
||||
|
||||
@@ -37,7 +37,7 @@ bool8 sub_80211AC(u32 mode, u32 a1)
|
||||
sWigglytuffShop1Work->s40.s0.unk38->header = &sWigglytuffShop1Work->s40.header;
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&sWigglytuffShop1Work->s40.s0.windows, TRUE, TRUE);
|
||||
sub_8013818(&sWigglytuffShop1Work->s40.s0.input, sub_8021664(), 10, a1);
|
||||
CreateMenuOnWindow(&sWigglytuffShop1Work->s40.s0.input, sub_8021664(), 10, a1);
|
||||
|
||||
if (sUnknown_203B284 == sWigglytuffShop1Work->mode) {
|
||||
sWigglytuffShop1Work->s40.s0.input.menuIndex = sUnknown_203B288;
|
||||
@@ -82,14 +82,14 @@ u32 sub_8021274(bool8 a0)
|
||||
|
||||
u8 sub_802132C(void)
|
||||
{
|
||||
return sWigglytuffShop1Work->friendAreas[(sWigglytuffShop1Work->s40.s0.input.unk1E * sWigglytuffShop1Work->s40.s0.input.unk1C) + sWigglytuffShop1Work->s40.s0.input.menuIndex];
|
||||
return sWigglytuffShop1Work->friendAreas[(sWigglytuffShop1Work->s40.s0.input.unk1E * sWigglytuffShop1Work->s40.s0.input.entriesPerPage) + sWigglytuffShop1Work->s40.s0.input.menuIndex];
|
||||
}
|
||||
|
||||
void sub_8021354(bool8 cursorSprite)
|
||||
{
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&sWigglytuffShop1Work->s40.s0.windows, FALSE, FALSE);
|
||||
sWigglytuffShop1Work->s40.s0.input.unk22 = sub_8021664();
|
||||
sWigglytuffShop1Work->s40.s0.input.totalEntriesCount = sub_8021664();
|
||||
sub_8013984(&sWigglytuffShop1Work->s40.s0.input);
|
||||
sub_8021410();
|
||||
sub_8021494();
|
||||
@@ -138,7 +138,7 @@ void sub_8021494(void)
|
||||
sub_8012BC4((sWigglytuffShop1Work->s40.header.width * 8) + 4, 0, sWigglytuffShop1Work->s40.s0.input.unk1E + 1, 1, 7, sWigglytuffShop1Work->s40.s0.winId);
|
||||
|
||||
for (i = 0; i < sWigglytuffShop1Work->s40.s0.input.unk1A; i++) {
|
||||
friendAreaIndex = sWigglytuffShop1Work->friendAreas[(sWigglytuffShop1Work->s40.s0.input.unk1E * sWigglytuffShop1Work->s40.s0.input.unk1C) + i];
|
||||
friendAreaIndex = sWigglytuffShop1Work->friendAreas[(sWigglytuffShop1Work->s40.s0.input.unk1E * sWigglytuffShop1Work->s40.s0.input.entriesPerPage) + i];
|
||||
|
||||
if (sWigglytuffShop1Work->mode == 2) {
|
||||
WriteFriendAreaName(buffer1, friendAreaIndex, TRUE);
|
||||
|
||||
@@ -99,7 +99,7 @@ u32 sub_80306A8(u32 wonderMailType, u32 r1, DungeonPos *r2, u32 r3)
|
||||
sub_8012D08(gUnknown_203B320->s28.s0.unk38, r3);
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&gUnknown_203B320->s28.s0.windows, TRUE, TRUE);
|
||||
sub_8013818(&gUnknown_203B320->s28.s0.input, sub_8030A74(), r3, r1);
|
||||
CreateMenuOnWindow(&gUnknown_203B320->s28.s0.input, sub_8030A74(), r3, r1);
|
||||
sub_80308A0();
|
||||
sub_803092C();
|
||||
return 1;
|
||||
@@ -137,12 +137,12 @@ u32 sub_8030768(u8 r0)
|
||||
|
||||
u8 sub_80307EC(void)
|
||||
{
|
||||
return gUnknown_203B320->unk0[(gUnknown_203B320->s28.s0.input.unk1E * gUnknown_203B320->s28.s0.input.unk1C) + gUnknown_203B320->s28.s0.input.menuIndex];
|
||||
return gUnknown_203B320->unk0[(gUnknown_203B320->s28.s0.input.unk1E * gUnknown_203B320->s28.s0.input.entriesPerPage) + gUnknown_203B320->s28.s0.input.menuIndex];
|
||||
}
|
||||
|
||||
void sub_8030810(u8 r0)
|
||||
{
|
||||
gUnknown_203B320->s28.s0.input.unk22 = sub_8030A74();
|
||||
gUnknown_203B320->s28.s0.input.totalEntriesCount = sub_8030A74();
|
||||
sub_8013984(&gUnknown_203B320->s28.s0.input);
|
||||
|
||||
sub_80308A0();
|
||||
@@ -199,7 +199,7 @@ void sub_803092C(void)
|
||||
sub_8012BC4(r5,0,gUnknown_203B320->s28.s0.input.unk1E + 1,1,7,gUnknown_203B320->s28.s0.winId);
|
||||
|
||||
for (index = 0; index < gUnknown_203B320->s28.s0.input.unk1A; index++) {
|
||||
mail = GetMailatIndex(gUnknown_203B320->unk0[(gUnknown_203B320->s28.s0.input.unk1E * gUnknown_203B320->s28.s0.input.unk1C) + index]);
|
||||
mail = GetMailatIndex(gUnknown_203B320->unk0[(gUnknown_203B320->s28.s0.input.unk1E * gUnknown_203B320->s28.s0.input.entriesPerPage) + index]);
|
||||
local.unk0[0] = gUnknown_203B320->s28.s0.winId;
|
||||
local.y = GetMenuEntryYCoord(&gUnknown_203B320->s28.s0.input,index);
|
||||
local.mailTitleType = 7;
|
||||
|
||||
@@ -78,14 +78,14 @@ u32 sub_802C1E4(bool8 a0)
|
||||
|
||||
u8 sub_802C26C(void)
|
||||
{
|
||||
return gUnknown_203B2E0->pelipperBoardSlots[(gUnknown_203B2E0->unk8.s0.input.unk1E * gUnknown_203B2E0->unk8.s0.input.unk1C) + gUnknown_203B2E0->unk8.s0.input.menuIndex];
|
||||
return gUnknown_203B2E0->pelipperBoardSlots[(gUnknown_203B2E0->unk8.s0.input.unk1E * gUnknown_203B2E0->unk8.s0.input.entriesPerPage) + gUnknown_203B2E0->unk8.s0.input.menuIndex];
|
||||
}
|
||||
|
||||
void sub_802C28C(bool8 cursorSprite)
|
||||
{
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&gUnknown_203B2E0->unk8.s0.windows, FALSE, FALSE);
|
||||
gUnknown_203B2E0->unk8.s0.input.unk22 = CountPelipperBoardSlots();
|
||||
gUnknown_203B2E0->unk8.s0.input.totalEntriesCount = CountPelipperBoardSlots();
|
||||
sub_8013984(&gUnknown_203B2E0->unk8.s0.input);
|
||||
sub_802C328();
|
||||
DrawPelipperBoardJobMenu();
|
||||
@@ -137,7 +137,7 @@ void DrawPelipperBoardJobMenu(void)
|
||||
sub_8012BC4(x, 0, gUnknown_203B2E0->unk8.s0.input.unk1E + 1, 2, 7, gUnknown_203B2E0->unk8.s0.winId);
|
||||
|
||||
for (i = 0; i < gUnknown_203B2E0->unk8.s0.input.unk1A; i++) {
|
||||
slotIndex = (gUnknown_203B2E0->pelipperBoardSlots[(gUnknown_203B2E0->unk8.s0.input.unk1E * gUnknown_203B2E0->unk8.s0.input.unk1C) + i]);
|
||||
slotIndex = (gUnknown_203B2E0->pelipperBoardSlots[(gUnknown_203B2E0->unk8.s0.input.unk1E * gUnknown_203B2E0->unk8.s0.input.entriesPerPage) + i]);
|
||||
mail = GetPelipperBoardSlotInfo(slotIndex);
|
||||
local.unk0[0] = gUnknown_203B2E0->unk8.s0.winId;
|
||||
local.y = GetMenuEntryYCoord(&gUnknown_203B2E0->unk8.s0.input, i);
|
||||
|
||||
@@ -80,14 +80,14 @@ u32 sub_802C598(bool8 a0)
|
||||
|
||||
u8 GetPelipperBoardSlotIndex(void)
|
||||
{
|
||||
return gUnknown_203B2E8->pelipperBoardSlots[(gUnknown_203B2E8->unk8.s0.input.unk1E * gUnknown_203B2E8->unk8.s0.input.unk1C) + gUnknown_203B2E8->unk8.s0.input.menuIndex];
|
||||
return gUnknown_203B2E8->pelipperBoardSlots[(gUnknown_203B2E8->unk8.s0.input.unk1E * gUnknown_203B2E8->unk8.s0.input.entriesPerPage) + gUnknown_203B2E8->unk8.s0.input.menuIndex];
|
||||
}
|
||||
|
||||
void sub_802C640(bool8 cursorSprite)
|
||||
{
|
||||
ResetUnusedInputStruct();
|
||||
ShowWindows(&gUnknown_203B2E8->unk8.s0.windows, FALSE, FALSE);
|
||||
gUnknown_203B2E8->unk8.s0.input.unk22 = CountAcceptedJobs();
|
||||
gUnknown_203B2E8->unk8.s0.input.totalEntriesCount = CountAcceptedJobs();
|
||||
sub_8013984(&gUnknown_203B2E8->unk8.s0.input);
|
||||
sub_802C6DC();
|
||||
DrawJobListMenu();
|
||||
@@ -138,7 +138,7 @@ void DrawJobListMenu(void)
|
||||
sub_8012BC4(x, 0, gUnknown_203B2E8->unk8.s0.input.unk1E + 1, 2, 7, gUnknown_203B2E8->unk8.s0.winId);
|
||||
|
||||
for (i = 0; i < gUnknown_203B2E8->unk8.s0.input.unk1A; i++) {
|
||||
mail = GetJobSlotInfo(gUnknown_203B2E8->pelipperBoardSlots[(gUnknown_203B2E8->unk8.s0.input.unk1E * gUnknown_203B2E8->unk8.s0.input.unk1C) + i]);
|
||||
mail = GetJobSlotInfo(gUnknown_203B2E8->pelipperBoardSlots[(gUnknown_203B2E8->unk8.s0.input.unk1E * gUnknown_203B2E8->unk8.s0.input.entriesPerPage) + i]);
|
||||
local.unk0[0] = gUnknown_203B2E8->unk8.s0.winId;
|
||||
local.y = GetMenuEntryYCoord(&gUnknown_203B2E8->unk8.s0.input, i);
|
||||
sub_803B35C(mail, &local);
|
||||
|
||||
@@ -64,7 +64,7 @@ u32 sub_802CE5C(bool8 a0)
|
||||
|
||||
u8 sub_802CEBC(void)
|
||||
{
|
||||
return (sUnknown_203B2F4->s0.input.unk1E * sUnknown_203B2F4->s0.input.unk1C) + sUnknown_203B2F4->s0.input.menuIndex;
|
||||
return (sUnknown_203B2F4->s0.input.unk1E * sUnknown_203B2F4->s0.input.entriesPerPage) + sUnknown_203B2F4->s0.input.menuIndex;
|
||||
}
|
||||
|
||||
void sub_802CED8(bool8 cursorSprite)
|
||||
@@ -118,7 +118,7 @@ void sub_802CFD0(void)
|
||||
sub_8012BC4(r5, 0, sUnknown_203B2F4->s0.input.unk1E + 1, 2, 7, sUnknown_203B2F4->s0.winId);
|
||||
|
||||
for (r5 = 0; r5 < sUnknown_203B2F4->s0.input.unk1A; r5++) {
|
||||
iVar1 = sub_803B344((sUnknown_203B2F4->s0.input.unk1E * sUnknown_203B2F4->s0.input.unk1C) + r5);
|
||||
iVar1 = sub_803B344((sUnknown_203B2F4->s0.input.unk1E * sUnknown_203B2F4->s0.input.entriesPerPage) + r5);
|
||||
|
||||
local.unk0[0] = sUnknown_203B2F4->s0.winId;
|
||||
local.y = GetMenuEntryYCoord(&sUnknown_203B2F4->s0.input, r5);
|
||||
|
||||
@@ -552,12 +552,12 @@ static bool8 PlayerEnterDungeonPrompt_Async(u8 *str)
|
||||
|
||||
menuInput.menuIndex = 1;
|
||||
menuInput.unk1A = 2;
|
||||
menuInput.unk1C = 2;
|
||||
menuInput.entriesPerPage = 2;
|
||||
menuInput.unk1E = 0;
|
||||
menuInput.unk20 = 0;
|
||||
menuInput.unk4 = 0;
|
||||
menuInput.firstEntryY = 0;
|
||||
menuInput.unk0 = 1;
|
||||
menuInput.windowId = 1;
|
||||
menuInput.unkC = 0;
|
||||
menuInput.unkE = 0;
|
||||
menuInput.unk14.x = 0;
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
.include "src/iq_skill_info_menu.o"
|
||||
.include "src/code_801C8C4.o"
|
||||
.include "src/code_801D014.o"
|
||||
.include "src/code_801D9E4.o"
|
||||
.include "src/debug_field_map_window.o"
|
||||
.include "src/options_menu1.o"
|
||||
.include "src/options_menu2.o"
|
||||
.include "src/hints_menu1.o"
|
||||
|
||||
Reference in New Issue
Block a user