Merge pull request #389 from DizzyEggg/code_8023868
Some checks are pending
GithubCI / build (push) Waiting to run

Code 8023868 (friend_list)
This commit is contained in:
AnonymousRandomPerson 2025-05-12 19:17:06 -04:00 committed by GitHub
commit d9bc5ea342
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
38 changed files with 923 additions and 1833 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1,30 +0,0 @@
#ifndef GUARD_CODE_8023868_H
#define GUARD_CODE_8023868_H
struct unkStruct_3001B60
{
u32 unk0;
u32 sortMethod;
u32 unk8;
u32 unkC;
u32 unk10;
u8 fill14[0x18 - 0x14];
s16 unk18;
s16 unk1A[2];
u8 fill1C[0x370 - 0x1E];
s16 unk370;
s16 unk372;
s16 unk374;
s16 unk376;
};
// code_8023868.s
extern void sub_8023868(u32, u32, u32, u32);
extern u32 sub_8023A94(bool8);
extern s16 sub_8023B44(void);
extern void sub_8023B7C(u32);
extern void sub_8023C60(void);
extern void sub_8023DA4(void);
extern bool8 sub_8024108(u32);
#endif // GUARD_CODE_8023868_H

31
include/friend_list.h Normal file
View File

@ -0,0 +1,31 @@
#ifndef GUARD_FRIEND_LIST_H
#define GUARD_FRIEND_LIST_H
#include "structs/struct_sub80095e4.h"
struct unkStruct_3001B60
{
u32 unk0;
u32 sortMethod;
s32 unk8;
u32 unkC;
u32 unk10;
u8 unk14;
u8 unk15;
u8 unk16;
u8 unk17;
u8 unk18;
s16 unk1A[NUM_MONSTERS];
u8 unk354;
struct_Sub80095E4_2 unk358;
};
bool8 FriendList_Init(u32 r5, u32 windowId, DungeonPos *pos, u32 r10);
u32 FriendList_HandleInput(bool8);
s32 FriendList_GetCurrId(void);
void sub_8023B7C(bool8 addCursor);
void FriendList_Free(void);
void FriendList_ShowWindow(void);
bool8 sub_8024108(s32);
#endif // GUARD_FRIEND_LIST_H

View File

@ -146,6 +146,11 @@ static inline bool8 IsMonPartner(PokemonStruct1 *mon)
return (mon->dungeonLocation.id == DUNGEON_JOIN_LOCATION_PARTNER);
}
static inline bool8 IsMonLeader(PokemonStruct1 *mon)
{
return (mon->dungeonLocation.id == DUNGEON_JOIN_LOCATION_LEADER);
}
// Needed to match a couple of functions which use species id.
// The theory is that there was some internal species conversion which got scrapped later on.
static inline s16 SpeciesId(s32 id)

View File

@ -12,7 +12,7 @@
typedef struct struct_Sub80095E4
{
/* 0x0 */ MenuInputStruct input;
/* 0x34 */ u32 unk34;
/* 0x34 */ u32 winId;
/* 0x38 */ WindowTemplate *unk38;
/* 0x3C */ WindowTemplates windows;
} struct_Sub80095E4;
@ -22,7 +22,7 @@ typedef struct struct_Sub80095E4
typedef struct struct_Sub80095E4_2
{
/* 0x0 */ struct_Sub80095E4 s0; // s as in 'struct' ; decided to go against unk as to not have `->unk0->unk3C`
/* 0x9C */ WindowHeader unk9C;
/* 0x9C */ WindowHeader header;
} struct_Sub80095E4_2;
// Note: In order to get matching ASM, this macro had to be created.
@ -33,13 +33,13 @@ typedef struct struct_Sub80095E4_2
s16 newE; \
s16 a0 = (_a0); \
UNUSED s32 a0_ = a0; \
UNUSED s16 oldE = (ptr).windows.id[(ptr).unk34].height; \
UNUSED s16 oldE = (ptr).windows.id[(ptr).winId].height; \
a0_ = 0; \
new10 = a0 + 2; \
newE = a0; \
\
(ptr).windows.id[(ptr).unk34].height = newE; \
(ptr).windows.id[(ptr).unk34].unk10 = a0 + 2; \
(ptr).windows.id[(ptr).winId].height = newE; \
(ptr).windows.id[(ptr).winId].unk10 = a0 + 2; \
\
ResetUnusedInputStruct(); \
ShowWindows(&(ptr).windows, TRUE, TRUE); \
@ -54,14 +54,14 @@ typedef struct struct_Sub80095E4_2
#define SUB_80095E4_CALL_2(ptr) \
{ \
s32 a0 = sub_80095E4((ptr).input.unk1A, 12) + 2; \
UNUSED s16 oldE = (ptr).windows.id[(ptr).unk34].height; \
UNUSED s16 oldE = (ptr).windows.id[(ptr).winId].height; \
s16 newE = a0; \
\
(ptr).windows.id[(ptr).unk34].height = newE; \
(ptr).windows.id[(ptr).unk34].unk10 = newE; \
(ptr).windows.id[(ptr).winId].height = newE; \
(ptr).windows.id[(ptr).winId].unk10 = newE; \
\
ResetUnusedInputStruct(); \
ShowWindows(&(ptr).windows, TRUE, TRUE); \
ShowWindows(&(ptr).windows, TRUE, TRUE); \
}
// sub_802BF30 and sub_802C328 use a different function call, and 24 instead of 12

View File

@ -136,8 +136,7 @@ SECTIONS {
src/wigglytuff_shop3.o(.text);
src/code_80227B8.o(.text);
src/code_8023144.o(.text);
asm/code_8023868.o(.text);
src/code_8023868.o(.text);
src/friend_list.o(.text);
src/code_8024458.o(.text);
src/luminous_cave.o(.text);
src/friend_list_menu.o(.text);
@ -492,7 +491,7 @@ SECTIONS {
src/wigglytuff_shop3.o(.rodata);
src/code_80227B8.o(.rodata);
src/code_8023144.o(.rodata);
src/code_8023868.o(.rodata);
src/friend_list.o(.rodata);
src/code_8024458.o(.rodata);
src/luminous_cave.o(.rodata);
src/friend_list_menu.o(.rodata);

View File

@ -22,11 +22,11 @@ static void sub_8032084();
bool8 CreateAdventureLogScreen(u32 kind)
{
sAdventureLog = MemoryAlloc(sizeof(*sAdventureLog), 8);
sAdventureLog->s0.unk34 = kind;
sAdventureLog->s0.winId = kind;
sAdventureLog->s0.unk38 = &sAdventureLog->s0.windows.id[kind];
RestoreSavedWindows(&sAdventureLog->s0.windows);
sAdventureLog->s0.windows.id[sAdventureLog->s0.unk34] = sUnknown_80E2008;
sAdventureLog->s0.unk38->header = &sAdventureLog->unk9C;
sAdventureLog->s0.windows.id[sAdventureLog->s0.winId] = sUnknown_80E2008;
sAdventureLog->s0.unk38->header = &sAdventureLog->header;
ResetUnusedInputStruct();
ShowWindows(&sAdventureLog->s0.windows, TRUE, TRUE);
@ -63,7 +63,7 @@ u32 HandleAdventureLogInput(bool8 a0)
void CleanAdventureLogScreen(void)
{
if (sAdventureLog != NULL) {
sAdventureLog->s0.windows.id[sAdventureLog->s0.unk34] = sUnknown_80E1FF0;
sAdventureLog->s0.windows.id[sAdventureLog->s0.winId] = sUnknown_80E1FF0;
ResetUnusedInputStruct();
ShowWindows(&sAdventureLog->s0.windows, TRUE, TRUE);
MemoryFree(sAdventureLog);
@ -73,10 +73,10 @@ void CleanAdventureLogScreen(void)
static void sub_8032084(void)
{
sAdventureLog->unk9C.count = sAdventureLog->s0.input.unk20;
sAdventureLog->unk9C.currId = sAdventureLog->s0.input.unk1E;
sAdventureLog->unk9C.width = 11;
sAdventureLog->unk9C.f3 = 0;
sAdventureLog->header.count = sAdventureLog->s0.input.unk20;
sAdventureLog->header.currId = sAdventureLog->s0.input.unk1E;
sAdventureLog->header.width = 11;
sAdventureLog->header.f3 = 0;
SUB_80095E4_CALL(sAdventureLog->s0);
}
@ -88,16 +88,16 @@ static void DisplayAdventureLog(void)
s32 r6; // r6
u8 aa;
CallPrepareTextbox_8008C54(sAdventureLog->s0.unk34);
sub_80073B8(sAdventureLog->s0.unk34);
CallPrepareTextbox_8008C54(sAdventureLog->s0.winId);
sub_80073B8(sAdventureLog->s0.winId);
r4 = sAdventureLog->s0.input.unk1E * 8;
r6 = r4;
r6 += 10;
PrintStringOnWindow(r6, 0, sAdventureLogText, sAdventureLog->s0.unk34, 0);
PrintStringOnWindow(r6, 0, sAdventureLogText, sAdventureLog->s0.winId, 0);
r4 += 4;
r6 = r4 + (sAdventureLog->unk9C.width * 8);
sub_8012BC4(r6, 0, sAdventureLog->s0.input.unk1E + 1, 1, 7, sAdventureLog->s0.unk34);
r6 = r4 + (sAdventureLog->header.width * 8);
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;
@ -107,31 +107,31 @@ static void DisplayAdventureLog(void)
case AA_NUM_FLOORS_EXPLORED: {
s32 v1 = GetAdventureFloorsExplored();
gFormatArgs[0] = (s16)v1;
PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&sAdventureLog->s0.input, i), GetAdventureLogLine(aa), sAdventureLog->s0.unk34, 0);
PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&sAdventureLog->s0.input, i), GetAdventureLogLine(aa), sAdventureLog->s0.winId, 0);
break;
}
case AA_NUM_MOVES_LEARNED: {
s32 v2 = GetAdventureMovesLearned();
gFormatArgs[0] = (s16)v2;
PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&sAdventureLog->s0.input, i), GetAdventureLogLine(aa), sAdventureLog->s0.unk34, 0);
PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&sAdventureLog->s0.input, i), GetAdventureLogLine(aa), sAdventureLog->s0.winId, 0);
break;
}
case AA_NUM_THIEVING_SUCCESSES: {
s32 v3 = GetThievingSuccesses();
gFormatArgs[0] = (s16)v3;
PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&sAdventureLog->s0.input, i), GetAdventureLogLine(aa), sAdventureLog->s0.unk34, 0);
PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&sAdventureLog->s0.input, i), GetAdventureLogLine(aa), sAdventureLog->s0.winId, 0);
break;
}
case AA_NUM_FRIEND_RESCUE_SUCCESSES: {
s32 v4 = GetFriendRescueSuccesses();
gFormatArgs[0] = v4;
PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&sAdventureLog->s0.input, i), GetAdventureLogLine(aa), sAdventureLog->s0.unk34, 0);
PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&sAdventureLog->s0.input, i), GetAdventureLogLine(aa), sAdventureLog->s0.winId, 0);
break;
}
case AA_NUM_POKEMON_EVOLVED: {
s32 v5 = GetAdventureNumEvolved();
gFormatArgs[0] = v5;
PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&sAdventureLog->s0.input, i), GetAdventureLogLine(aa), sAdventureLog->s0.unk34, 0);
PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&sAdventureLog->s0.input, i), GetAdventureLogLine(aa), sAdventureLog->s0.winId, 0);
break;
}
case AA_NUM_POKEMON_JOINED: {
@ -140,14 +140,14 @@ static void DisplayAdventureLog(void)
// fallthrough
}
default: {
PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&sAdventureLog->s0.input, i), GetAdventureLogLine(aa), sAdventureLog->s0.unk34, 0);
PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&sAdventureLog->s0.input, i), GetAdventureLogLine(aa), sAdventureLog->s0.winId, 0);
break;
}
}
}
else
PrintStringOnWindow(8, GetMenuEntryYCoord(&sAdventureLog->s0.input, i), sPlaceholder, sAdventureLog->s0.unk34, 0);
PrintStringOnWindow(8, GetMenuEntryYCoord(&sAdventureLog->s0.input, i), sPlaceholder, sAdventureLog->s0.winId, 0);
}
sub_80073E0(sAdventureLog->s0.unk34);
sub_80073E0(sAdventureLog->s0.winId);
}

View File

@ -29,14 +29,14 @@ bool8 sub_801C8C4(s32 a0, s32 a1, DungeonPos *a2, u32 a3)
sUnknown_203B244->unk0 = a0;
sub_801CF94();
sUnknown_203B244->unk4B4.s0.unk34 = a1;
sUnknown_203B244->unk4B4.s0.winId = a1;
sUnknown_203B244->unk4B4.s0.unk38 = &sUnknown_203B244->unk4B4.s0.windows.id[a1];
RestoreSavedWindows(&sUnknown_203B244->unk4B4.s0.windows);
sUnknown_203B244->unk4B4.s0.windows.id[sUnknown_203B244->unk4B4.s0.unk34] = sUnknown_80DBE54;
sUnknown_203B244->unk4B4.s0.unk38->header = &sUnknown_203B244->unk4B4.unk9C;
sUnknown_203B244->unk4B4.s0.windows.id[sUnknown_203B244->unk4B4.s0.winId] = sUnknown_80DBE54;
sUnknown_203B244->unk4B4.s0.unk38->header = &sUnknown_203B244->unk4B4.header;
if (a2 != NULL)
sUnknown_203B244->unk4B4.s0.windows.id[sUnknown_203B244->unk4B4.s0.unk34].pos = *a2;
sUnknown_203B244->unk4B4.s0.windows.id[sUnknown_203B244->unk4B4.s0.winId].pos = *a2;
sub_8012D08(sUnknown_203B244->unk4B4.s0.unk38, a3);
ResetUnusedInputStruct();
@ -128,7 +128,7 @@ void sub_801CBB8(void)
sUnknown_203B248 = sUnknown_203B244->unk0;
sUnknown_203B24C = sUnknown_203B244->unk4B4.s0.input.menuIndex;
sUnknown_203B24E = sUnknown_203B244->unk4B4.s0.input.unk1E;
sUnknown_203B244->unk4B4.s0.windows.id[sUnknown_203B244->unk4B4.s0.unk34] = sUnknown_80DBE3C;
sUnknown_203B244->unk4B4.s0.windows.id[sUnknown_203B244->unk4B4.s0.winId] = sUnknown_80DBE3C;
ResetUnusedInputStruct();
ShowWindows(&sUnknown_203B244->unk4B4.s0.windows, TRUE, TRUE);
MemoryFree(sUnknown_203B244);
@ -138,10 +138,10 @@ void sub_801CBB8(void)
static void sub_801CC38(void)
{
sUnknown_203B244->unk4B4.unk9C.count = 1;
sUnknown_203B244->unk4B4.unk9C.currId = 0;
sUnknown_203B244->unk4B4.unk9C.width = 12;
sUnknown_203B244->unk4B4.unk9C.f3 = 0;
sUnknown_203B244->unk4B4.header.count = 1;
sUnknown_203B244->unk4B4.header.currId = 0;
sUnknown_203B244->unk4B4.header.width = 12;
sUnknown_203B244->unk4B4.header.f3 = 0;
SUB_80095E4_CALL(sUnknown_203B244->unk4B4.s0);
}
@ -154,24 +154,24 @@ void sub_801CCD8(void)
s32 index;
u8 buffer[80];
CallPrepareTextbox_8008C54(sUnknown_203B244->unk4B4.s0.unk34);
sub_80073B8(sUnknown_203B244->unk4B4.s0.unk34);
PrintStringOnWindow(10, 0, sStorage, sUnknown_203B244->unk4B4.s0.unk34, 0);
sub_8012BC4(sUnknown_203B244->unk4B4.unk9C.width * 8 + 4, 0, sUnknown_203B244->unk4B4.s0.input.unk1E + 1, 2, 7, sUnknown_203B244->unk4B4.s0.unk34);
CallPrepareTextbox_8008C54(sUnknown_203B244->unk4B4.s0.winId);
sub_80073B8(sUnknown_203B244->unk4B4.s0.winId);
PrintStringOnWindow(10, 0, sStorage, sUnknown_203B244->unk4B4.s0.winId, 0);
sub_8012BC4(sUnknown_203B244->unk4B4.header.width * 8 + 4, 0, sUnknown_203B244->unk4B4.s0.input.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];
BufferItemName(buffer, itemID, NULL);
y = GetMenuEntryYCoord(&sUnknown_203B244->unk4B4.s0.input, index);
PrintStringOnWindow(8, y, buffer, sUnknown_203B244->unk4B4.s0.unk34, 0);
PrintStringOnWindow(8, y, buffer, sUnknown_203B244->unk4B4.s0.winId, 0);
y2 = GetMenuEntryYCoord(&sUnknown_203B244->unk4B4.s0.input, index);
sub_8012BC4((sUnknown_203B244->unk4B4.s0.unk38->width * 8) - 2, y2, gTeamInventoryRef->teamStorage[itemID], 3, 5, sUnknown_203B244->unk4B4.s0.unk34);
sub_8012BC4((sUnknown_203B244->unk4B4.s0.unk38->width * 8) - 2, y2, gTeamInventoryRef->teamStorage[itemID], 3, 5, sUnknown_203B244->unk4B4.s0.winId);
if (sub_801CFE0(itemID) & 1)
sub_8007B7C(sUnknown_203B244->unk4B4.s0.unk34, 8, GetMenuEntryYCoord(&sUnknown_203B244->unk4B4.s0.input, index), (sUnknown_203B244->unk4B4.s0.unk38->width - 1) * 8, 10);
sub_8007B7C(sUnknown_203B244->unk4B4.s0.winId, 8, GetMenuEntryYCoord(&sUnknown_203B244->unk4B4.s0.input, index), (sUnknown_203B244->unk4B4.s0.unk38->width - 1) * 8, 10);
}
sub_80073E0(sUnknown_203B244->unk4B4.s0.unk34);
sub_80073E0(sUnknown_203B244->unk4B4.s0.winId);
}
static u32 sub_801CE58(void)

View File

@ -5,7 +5,7 @@
#include "code_800D090.h"
#include "code_801D014.h"
#include "code_80227B8.h"
#include "code_8023868.h"
#include "friend_list.h"
#include "code_8024458.h"
#include "code_80958E8.h"
#include "common_strings.h"

View File

@ -23,14 +23,14 @@ static void sub_801DBD4(void);
bool8 sub_801D9E4(void)
{
sUnknown_203B258 = MemoryAlloc(sizeof(*sUnknown_203B258), 8);
sUnknown_203B258->s0.unk34 = 3;
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.unk34] = sUnknown_80DBF88;
sUnknown_203B258->s0.unk38->header = &sUnknown_203B258->unk9C;
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.unk34);
sub_8013818(&sUnknown_203B258->s0.input, 229, 10, sUnknown_203B258->s0.winId);
sub_801DB54();
sub_801DBD4();
return TRUE;
@ -81,7 +81,7 @@ UNUSED static void sub_801DADC(bool8 a0)
void sub_801DB0C(void)
{
if (sUnknown_203B258 != NULL) {
sUnknown_203B258->s0.windows.id[sUnknown_203B258->s0.unk34] = sUnknown_80DBF70;
sUnknown_203B258->s0.windows.id[sUnknown_203B258->s0.winId] = sUnknown_80DBF70;
ResetUnusedInputStruct();
ShowWindows(&sUnknown_203B258->s0.windows, TRUE, TRUE);
MemoryFree(sUnknown_203B258);
@ -91,10 +91,10 @@ void sub_801DB0C(void)
static void sub_801DB54(void)
{
sUnknown_203B258->unk9C.count = 1;
sUnknown_203B258->unk9C.currId = 0;
sUnknown_203B258->unk9C.width = 8;
sUnknown_203B258->unk9C.f3 = 0;
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);
@ -110,13 +110,13 @@ static void sub_801DBD4(void)
s16 index;
int counter;
CallPrepareTextbox_8008C54(sUnknown_203B258->s0.unk34);
sub_80073B8(sUnknown_203B258->s0.unk34);
PrintStringOnWindow(10, 0, sField, sUnknown_203B258->s0.unk34, 0); // Field
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->unk9C.width * 8) - 2;
x = (sUnknown_203B258->header.width * 8) - 2;
n = sUnknown_203B258->s0.input.unk1E + 1;
sub_8012BC4(x, 0, n, 2, 7, sUnknown_203B258->s0.unk34);
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; }
@ -127,11 +127,11 @@ static void sub_801DBD4(void)
temp2 = &gUnknown_81188F0[temp->unk4];
y = GetMenuEntryYCoord(&sUnknown_203B258->s0.input, counter);
PrintStringOnWindow(8, y, temp2->text1, sUnknown_203B258->s0.unk34, 0);
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.unk34, 0);
PrintStringOnWindow(62, y, temp->text, sUnknown_203B258->s0.winId, 0);
}
sub_80073E0(sUnknown_203B258->s0.unk34);
sub_80073E0(sUnknown_203B258->s0.winId);
}

View File

@ -53,15 +53,15 @@ bool8 sub_801F428(s16 index, s32 param_2)
gUnknown_203B274 = MemoryAlloc(sizeof(struct unkStruct_203B274), 0x8);
gUnknown_203B274->pokeStruct = &gRecruitedPokemonRef->pokemon[index_s32];
gUnknown_203B274->unk4 = &gUnknown_203B274->unk8;
gUnknown_203B274->s348.s0.unk34 = param_2;
gUnknown_203B274->s348.s0.unk38 = &gUnknown_203B274->s348.s0.windows.id[gUnknown_203B274->s348.s0.unk34];
gUnknown_203B274->s348.s0.winId = param_2;
gUnknown_203B274->s348.s0.unk38 = &gUnknown_203B274->s348.s0.windows.id[gUnknown_203B274->s348.s0.winId];
RestoreSavedWindows(&gUnknown_203B274->s348.s0.windows);
gUnknown_203B274->s348.s0.windows.id[gUnknown_203B274->s348.s0.unk34] = sUnknown_80DC2C4;
gUnknown_203B274->s348.s0.unk38->header = &gUnknown_203B274->s348.unk9C;
gUnknown_203B274->s348.unk9C.count = 1;
gUnknown_203B274->s348.unk9C.currId = 0;
gUnknown_203B274->s348.unk9C.width = 0xC;
gUnknown_203B274->s348.unk9C.f3 = 0;
gUnknown_203B274->s348.s0.windows.id[gUnknown_203B274->s348.s0.winId] = sUnknown_80DC2C4;
gUnknown_203B274->s348.s0.unk38->header = &gUnknown_203B274->s348.header;
gUnknown_203B274->s348.header.count = 1;
gUnknown_203B274->s348.header.currId = 0;
gUnknown_203B274->s348.header.width = 0xC;
gUnknown_203B274->s348.header.f3 = 0;
ResetUnusedInputStruct();
ShowWindows(&gUnknown_203B274->s348.s0.windows, TRUE, TRUE);
sub_8013818(&gUnknown_203B274->s348.s0.input, sub_801F7E4(), 4, param_2);
@ -122,7 +122,7 @@ void sub_801F63C(void)
{
if(gUnknown_203B274 != NULL)
{
gUnknown_203B274->s348.s0.windows.id[gUnknown_203B274->s348.s0.unk34] = sUnknown_80DC2AC;
gUnknown_203B274->s348.s0.windows.id[gUnknown_203B274->s348.s0.winId] = sUnknown_80DC2AC;
ResetUnusedInputStruct();
ShowWindows(&gUnknown_203B274->s348.s0.windows, TRUE, TRUE);
MemoryFree(gUnknown_203B274);
@ -142,17 +142,17 @@ void sub_801F700(void)
u8 buffer2 [48];
u8 buffer1 [128];
CallPrepareTextbox_8008C54(gUnknown_203B274->s348.s0.unk34);
sub_80073B8(gUnknown_203B274->s348.s0.unk34);
CallPrepareTextbox_8008C54(gUnknown_203B274->s348.s0.winId);
sub_80073B8(gUnknown_203B274->s348.s0.winId);
sprintfStatic(buffer1,gUnknown_80DC2DC,gUnknown_203B274->s348.s0.input.unk1E + 1,gUnknown_203B274->s348.s0.input.unk20); // Moves Page: %d/%d
PrintStringOnWindow(0x10,0,buffer1,gUnknown_203B274->s348.s0.unk34,0);
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]);
y = GetMenuEntryYCoord(&gUnknown_203B274->s348.s0.input, index);
PrintStringOnWindow(8,y,buffer2,gUnknown_203B274->s348.s0.unk34,0);
PrintStringOnWindow(8,y,buffer2,gUnknown_203B274->s348.s0.winId,0);
}
sub_80073E0(gUnknown_203B274->s348.s0.unk34);
sub_80073E0(gUnknown_203B274->s348.s0.winId);
}
u32 sub_801F7E4(void)

View File

@ -47,15 +47,15 @@ bool8 sub_8023144(s32 a0, s32 index, DungeonPos *sub, u32 a3)
gUnknown_3001B5C->unk0 = param_1_u8;
gUnknown_3001B5C->unk4 = gUnknown_203B298;
gUnknown_3001B5C->s35C.s0.unk34 = index;
gUnknown_3001B5C->s35C.s0.winId = index;
gUnknown_3001B5C->s35C.s0.unk38 = &gUnknown_3001B5C->s35C.s0.windows.id[index];
RestoreSavedWindows(&gUnknown_3001B5C->s35C.s0.windows);
gUnknown_3001B5C->s35C.s0.windows.id[gUnknown_3001B5C->s35C.s0.unk34] = sUnknown_80DC91C;
gUnknown_3001B5C->s35C.s0.windows.id[gUnknown_3001B5C->s35C.s0.winId] = sUnknown_80DC91C;
gUnknown_3001B5C->s35C.s0.unk38->header = &gUnknown_3001B5C->s35C.unk9C;
gUnknown_3001B5C->s35C.s0.unk38->header = &gUnknown_3001B5C->s35C.header;
if (sub != NULL)
gUnknown_3001B5C->s35C.s0.windows.id[gUnknown_3001B5C->s35C.s0.unk34].pos = *sub;
gUnknown_3001B5C->s35C.s0.windows.id[gUnknown_3001B5C->s35C.s0.winId].pos = *sub;
sub_8012D08(gUnknown_3001B5C->s35C.s0.unk38, a3);
ResetUnusedInputStruct();
@ -128,7 +128,7 @@ void sub_80233A0(void)
gUnknown_203B298 = gUnknown_3001B5C->unk4;
gUnknown_203B29C = gUnknown_3001B5C->s35C.s0.input.menuIndex;
gUnknown_203B29E = gUnknown_3001B5C->s35C.s0.input.unk1E;
gUnknown_3001B5C->s35C.s0.windows.id[gUnknown_3001B5C->s35C.s0.unk34] = sUnknown_80DC904;
gUnknown_3001B5C->s35C.s0.windows.id[gUnknown_3001B5C->s35C.s0.winId] = sUnknown_80DC904;
ResetUnusedInputStruct();
ShowWindows(&gUnknown_3001B5C->s35C.s0.windows, TRUE, TRUE);
MemoryFree(gUnknown_3001B5C);
@ -138,10 +138,10 @@ void sub_80233A0(void)
static void sub_8023420(void)
{
gUnknown_3001B5C->s35C.unk9C.count = 1;
gUnknown_3001B5C->s35C.unk9C.currId = 0;
gUnknown_3001B5C->s35C.unk9C.width = 12;
gUnknown_3001B5C->s35C.unk9C.f3 = 0;
gUnknown_3001B5C->s35C.header.count = 1;
gUnknown_3001B5C->s35C.header.currId = 0;
gUnknown_3001B5C->s35C.header.width = 12;
gUnknown_3001B5C->s35C.header.f3 = 0;
SUB_80095E4_CALL_2(gUnknown_3001B5C->s35C.s0);
}
@ -159,11 +159,11 @@ static void sub_80234BC(void)
u8 buffer1[100];
FriendAreaCapacity auStack_2c;
CallPrepareTextbox_8008C54(gUnknown_3001B5C->s35C.s0.unk34);
sub_80073B8(gUnknown_3001B5C->s35C.s0.unk34);
PrintStringOnWindow(10, 0, sPokemon, gUnknown_3001B5C->s35C.s0.unk34, 0);
CallPrepareTextbox_8008C54(gUnknown_3001B5C->s35C.s0.winId);
sub_80073B8(gUnknown_3001B5C->s35C.s0.winId);
PrintStringOnWindow(10, 0, sPokemon, gUnknown_3001B5C->s35C.s0.winId, 0);
sub_8012BC4((gUnknown_3001B5C->s35C.unk9C.width * 8) + 4, 0, gUnknown_3001B5C->s35C.s0.input.unk1E + 1, 2, 7, gUnknown_3001B5C->s35C.s0.unk34);
sub_8012BC4((gUnknown_3001B5C->s35C.header.width * 8) + 4, 0, gUnknown_3001B5C->s35C.s0.input.unk1E + 1, 2, 7, gUnknown_3001B5C->s35C.s0.winId);
for (i = 0; i < gUnknown_3001B5C->s35C.s0.input.unk1A; i++) {
y = GetMenuEntryYCoord(&gUnknown_3001B5C->s35C.s0.input, i);
@ -175,26 +175,26 @@ static void sub_80234BC(void)
iVar4 = GetDexInternalNo(species, 0);
cVar2 = (iVar4 % 10) + 48;
sub_8012C60(20, y, cVar2, color, gUnknown_3001B5C->s35C.s0.unk34);
sub_8012C60(20, y, cVar2, color, gUnknown_3001B5C->s35C.s0.winId);
if (9 < iVar4) {
iVar4 /= 10;
cVar2 = (iVar4 % 10) + 48;
sub_8012C60(13, y, cVar2, color, gUnknown_3001B5C->s35C.s0.unk34);
sub_8012C60(13, y, cVar2, color, gUnknown_3001B5C->s35C.s0.winId);
if (9 < iVar4) {
uVar3 = iVar4 / 10;
cVar2 = (uVar3 % 10) + 48;
sub_8012C60(6, y, cVar2, color, gUnknown_3001B5C->s35C.s0.unk34);
sub_8012C60(6, y, cVar2, color, gUnknown_3001B5C->s35C.s0.winId);
}
}
sub_808D930(buffer1,species);
sprintfStatic(buffer2, sFmtColoredString, color, buffer1);
PrintStringOnWindow(36, y, buffer2, gUnknown_3001B5C->s35C.s0.unk34, 0);
PrintStringOnWindow(36, y, buffer2, gUnknown_3001B5C->s35C.s0.winId, 0);
}
sub_80073E0(gUnknown_3001B5C->s35C.s0.unk34);
sub_80073E0(gUnknown_3001B5C->s35C.s0.winId);
}
static u32 sub_80236A4(void)

View File

@ -1,174 +0,0 @@
#include "global.h"
#include "globaldata.h"
#include "code_800D090.h"
#include "code_8023868.h"
#include "pokemon.h"
#include "structs/str_text.h"
#include "text_util.h"
//static // MAKE STATIC WHEN code_8023868.s IS DONE
IWRAM_INIT struct unkStruct_3001B60 *gUnknown_3001B60 = {NULL};
#include "data/code_8023868.h"
static void SortbyAlphabetNo(s32, s32);
static void SortbyInternalNo(s32, s32);
static void SortbyName(s32, s32);
//static bool8 sub_8024184(PokemonStruct1 *pokemon, u8 area);
//static void sub_80241A8(void);
// THE REMAINING CODE FROM THIS FILE IS IN code_8023868.s STARTING WITH sub_8023868
//static // MAKE STATIC WHEN code_8023868.s IS DONE
bool8 sub_8024184(PokemonStruct1 *pokemon, u8 area)
{
if (area == GetFriendArea(pokemon->speciesNum))
return TRUE;
return FALSE;
}
//static // MAKE STATIC WHEN code_8023868.s IS DONE
void sub_80241A8(void)
{
switch (gUnknown_3001B60->sortMethod) {
case 2:
if (gUnknown_3001B60->unkC != gUnknown_3001B60->unk10)
SortbyAlphabetNo(gUnknown_3001B60->unkC, gUnknown_3001B60->unk10);
if (gUnknown_3001B60->unk10 != gUnknown_3001B60->unk8)
SortbyAlphabetNo(gUnknown_3001B60->unk10, gUnknown_3001B60->unk8);
break;
case 3:
if (gUnknown_3001B60->unkC != gUnknown_3001B60->unk10)
SortbyName(gUnknown_3001B60->unkC, gUnknown_3001B60->unk10);
if (gUnknown_3001B60->unk10 != gUnknown_3001B60->unk8)
SortbyName(gUnknown_3001B60->unk10, gUnknown_3001B60->unk8);
break;
case 1:
if (gUnknown_3001B60->unkC != gUnknown_3001B60->unk10)
SortbyInternalNo(gUnknown_3001B60->unkC, gUnknown_3001B60->unk10);
if (gUnknown_3001B60->unk10 != gUnknown_3001B60->unk8)
SortbyInternalNo(gUnknown_3001B60->unk10, gUnknown_3001B60->unk8);
break;
}
}
// TODO: Remove hacky if/do
static void SortbyInternalNo(s32 param_1, s32 param_2)
{
s16 *r4;
s32 iVar4;
s16 *r10;
s16 *r5;
s32 r6;
s32 r1;
s32 r7;
s32 r9;
r10 = &gUnknown_3001B60->unk18 + param_2;
r7 = param_1;
r1 = param_2 - 1;
if (r7 < r1) {
r9 = r1;
do {
r4 = r10;
r6 = r1;
iVar4 = r7 + 1;
for (; r6 > r7; r6--) {
if (GetInternalNo(gRecruitedPokemonRef->pokemon[r5 = r4 - 1, *r5].speciesNum) > GetInternalNo(gRecruitedPokemonRef->pokemon[*r4].speciesNum)) {
r1 = *r4;
*r4 = *r5;
*r5 = r1;
}
r4 = r5;
}
r7 = iVar4;
r1 = r9;
} while (iVar4 < r1);
}
}
// TODO: Remove hacky if/do
static void SortbyAlphabetNo(s32 param_1, s32 param_2)
{
s16 *r4;
s32 iVar4;
s16 *r10;
s16 *r5;
s32 r6;
s32 r1;
s32 r7;
s32 r9;
r10 = &gUnknown_3001B60->unk18 + param_2;
r7 = param_1;
r1 = param_2 - 1;
if (r7 < r1) {
r9 = r1;
do {
r4 = r10;
r6 = r1;
iVar4 = r7 + 1;
for (; r6 > r7; r6--) {
if (GetAlphabetParentNo(gRecruitedPokemonRef->pokemon[r5 = r4 - 1, *r5].speciesNum, 0) > GetAlphabetParentNo(gRecruitedPokemonRef->pokemon[*r4].speciesNum, 0)) {
r1 = *r4;
*r4 = *r5;
*r5 = r1;
}
r4 = r5;
}
r7 = iVar4;
r1 = r9;
} while (iVar4 < r1);
}
}
// TODO: Remove hacky if/do
static void SortbyName(s32 param_1, s32 param_2)
{
s16 *r4;
s32 iVar4;
s16 *r10;
s16 *r5;
s32 r6;
s32 r1;
s32 r7;
s32 r9;
r10 = &gUnknown_3001B60->unk18 + param_2;
r7 = param_1;
r1 = param_2 - 1;
if (r7 < r1) {
r9 = r1;
do {
r4 = r10;
r6 = r1;
iVar4 = r7 + 1;
for (; r6 > r7; r6--) {
r5 = r4 - 1;
if (ComparePokemonNames(*r5, *r4)) {
r1 = *r4;
*r4 = *r5;
*r5 = r1;
}
r4 = r5;
}
r7 = iVar4;
r1 = r9;
} while (iVar4 < r1);
}
}
UNUSED static PokemonStruct1 *sub_80243E8(void)
{
u8 buffer[40];
u8 nameBuffer[20];
PokemonStruct1 *pokeStruct = &gRecruitedPokemonRef->pokemon[gUnknown_3001B60->unk1A[(gUnknown_3001B60->unk376 * gUnknown_3001B60->unk374) + gUnknown_3001B60->unk370]];
sub_80922B4(nameBuffer, pokeStruct->name, POKEMON_NAME_LENGTH);
sprintfStatic(buffer, sUnknown_80DC9A4, nameBuffer);
return pokeStruct;
}

View File

@ -75,19 +75,19 @@ u32 sub_802F73C(u32 r0, DungeonPos *r1, u32 r2, u8 r3)
gUnknown_203B314 = MemoryAlloc(sizeof(struct unkStruct_203B314), 8);
gUnknown_203B314->unkB8 = r3;
gUnknown_203B314->sBC.s0.unk34 = r0;
gUnknown_203B314->sBC.s0.unk38 = &gUnknown_203B314->sBC.s0.windows.id[gUnknown_203B314->sBC.s0.unk34];
gUnknown_203B314->sBC.s0.winId = r0;
gUnknown_203B314->sBC.s0.unk38 = &gUnknown_203B314->sBC.s0.windows.id[gUnknown_203B314->sBC.s0.winId];
RestoreSavedWindows(&gUnknown_203B314->sBC.s0.windows);
if (r3 != 0)
gUnknown_203B314->sBC.s0.windows.id[gUnknown_203B314->sBC.s0.unk34] = gUnknown_80E072C;
gUnknown_203B314->sBC.s0.windows.id[gUnknown_203B314->sBC.s0.winId] = gUnknown_80E072C;
else
gUnknown_203B314->sBC.s0.windows.id[gUnknown_203B314->sBC.s0.unk34] = gUnknown_80E0714;
gUnknown_203B314->sBC.s0.windows.id[gUnknown_203B314->sBC.s0.winId] = gUnknown_80E0714;
gUnknown_203B314->sBC.s0.unk38->header = &gUnknown_203B314->sBC.unk9C;
gUnknown_203B314->sBC.s0.unk38->header = &gUnknown_203B314->sBC.header;
if (r1 != 0)
gUnknown_203B314->sBC.s0.windows.id[gUnknown_203B314->sBC.s0.unk34].pos = *r1;
gUnknown_203B314->sBC.s0.windows.id[gUnknown_203B314->sBC.s0.winId].pos = *r1;
sub_8012D08(gUnknown_203B314->sBC.s0.unk38, r2);
ResetUnusedInputStruct();
@ -169,7 +169,7 @@ void sub_802F974(void)
{
if(gUnknown_203B314 != NULL)
{
gUnknown_203B314->sBC.s0.windows.id[gUnknown_203B314->sBC.s0.unk34] = gUnknown_80E06FC;
gUnknown_203B314->sBC.s0.windows.id[gUnknown_203B314->sBC.s0.winId] = gUnknown_80E06FC;
ResetUnusedInputStruct();
ShowWindows(&gUnknown_203B314->sBC.s0.windows, TRUE, TRUE);
MemoryFree(gUnknown_203B314);
@ -179,10 +179,10 @@ void sub_802F974(void)
void sub_802F9C0(void)
{
gUnknown_203B314->sBC.unk9C.count = 1;
gUnknown_203B314->sBC.unk9C.currId = 0;
gUnknown_203B314->sBC.unk9C.width = 8;
gUnknown_203B314->sBC.unk9C.f3 = 0;
gUnknown_203B314->sBC.header.count = 1;
gUnknown_203B314->sBC.header.currId = 0;
gUnknown_203B314->sBC.header.width = 8;
gUnknown_203B314->sBC.header.f3 = 0;
SUB_80095E4_CALL(gUnknown_203B314->sBC.s0);
}
@ -196,10 +196,10 @@ void sub_802FA50(void)
int index;
int counter;
CallPrepareTextbox_8008C54(gUnknown_203B314->sBC.s0.unk34);
sub_80073B8(gUnknown_203B314->sBC.s0.unk34);
PrintStringOnWindow(10,0,gUnknown_80E0744,gUnknown_203B314->sBC.s0.unk34,0);
sub_8012BC4(gUnknown_203B314->sBC.unk9C.width * 8 + 4,0,gUnknown_203B314->sBC.s0.input.unk1E + 1,2,7,gUnknown_203B314->sBC.s0.unk34);
CallPrepareTextbox_8008C54(gUnknown_203B314->sBC.s0.winId);
sub_80073B8(gUnknown_203B314->sBC.s0.winId);
PrintStringOnWindow(10,0,gUnknown_80E0744,gUnknown_203B314->sBC.s0.winId,0);
sub_8012BC4(gUnknown_203B314->sBC.header.width * 8 + 4,0,gUnknown_203B314->sBC.s0.input.unk1E + 1,2,7,gUnknown_203B314->sBC.s0.winId);
if (gUnknown_203B314->unkB8 != 0) {
for(counter = 0; counter < gUnknown_203B314->sBC.s0.input.unk1A; counter++)
{
@ -207,12 +207,12 @@ void sub_802FA50(void)
index = gUnknown_203B314->sBC.s0.input.unk1E * gUnknown_203B314->sBC.s0.input.unk1C + counter;
sVar1 = gUnknown_203B314->unk0[index];
if (gUnknown_203B314->unk5C[index] != 0) {
PrintStringOnWindow(10,y,gUnknown_80E0750,gUnknown_203B314->sBC.s0.unk34,0);
PrintStringOnWindow(10,y,gUnknown_80E0750,gUnknown_203B314->sBC.s0.winId,0);
}
else if (gUnknown_203B314->unk8A[index] != 0) {
PrintStringOnWindow(10,y,gUnknown_80E0754,gUnknown_203B314->sBC.s0.unk34,0);
PrintStringOnWindow(10,y,gUnknown_80E0754,gUnknown_203B314->sBC.s0.winId,0);
}
PrintStringOnWindow(0x18,y,sub_80974A0(sVar1),gUnknown_203B314->sBC.s0.unk34,0);
PrintStringOnWindow(0x18,y,sub_80974A0(sVar1),gUnknown_203B314->sBC.s0.winId,0);
}
}
else {
@ -220,10 +220,10 @@ void sub_802FA50(void)
{
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]);
PrintStringOnWindow(8,y2,text,gUnknown_203B314->sBC.s0.unk34,0);
PrintStringOnWindow(8,y2,text,gUnknown_203B314->sBC.s0.winId,0);
}
}
sub_80073E0(gUnknown_203B314->sBC.s0.unk34);
sub_80073E0(gUnknown_203B314->sBC.s0.winId);
}
static inline void sub_802FBF4_sub(u8 *test, s32 counter)

View File

@ -1,27 +0,0 @@
//static // MAKE STATIC WHEN code_8023868.s IS DONE
const WindowTemplate sUnknown_80DC950 = {
0,
3,
0, 0,
0, 0,
0, 0,
NULL
};
//static // MAKE STATIC WHEN code_8023868.s IS DONE
const WindowTemplate sUnknown_80DC968 = {
0,
6,
2, 2,
15, 14,
14, 0,
NULL
};
ALIGNED(4) //static // MAKE STATIC WHEN code_8023868.s IS DONE
const u8 sUnknown_80DC980[] = _("Friends");
ALIGNED(4) //static // MAKE STATIC WHEN code_8023868.s IS DONE
const u8 sUnknown_80DC988[] = _("Pokémon Friends");
ALIGNED(4) //static // MAKE STATIC WHEN code_8023868.s IS DONE
const u8 sUnknown_80DC998[] = _("{color}%c%s{reset}");
ALIGNED(4) //static // MAKE STATIC WHEN code_8023868.s IS DONE
const u8 sUnknown_80DC9A4[] = _("%s");

View File

@ -1,7 +1,7 @@
#include "global.h"
#include "globaldata.h"
#include "code_801602C.h"
#include "code_8023868.h"
#include "friend_list.h"
#include "debug_menu4.h"
#include "input.h"
#include "memory.h"
@ -109,13 +109,13 @@ static void sub_803AD88(void)
{
switch (sUnknown_203B3F8->state) {
case 1:
sub_8023868(1, 0, 0, 10);
FriendList_Init(1, 0, 0, 10);
break;
case 2:
sub_8023B7C(1);
break;
case 3:
sub_8023DA4();
FriendList_ShowWindow();
sub_8012D60(&sUnknown_203B3F8->unk10, sUnknown_203B3F8->unk90, 0, sUnknown_203B3F8->unkD0, sUnknown_203B3F8->menuAction, 2);
break;
case 5:
@ -148,7 +148,7 @@ static void sub_803AE58(void)
PrintStringOnWindow(4, 0, sNumberPrompt, sUnknown_203B3F8->unk60.unk14, 0);
sub_8013C68(&sUnknown_203B3F8->unk60);
sub_80073E0(sUnknown_203B3F8->unk60.unk14);
sub_8023DA4();
FriendList_ShowWindow();
sub_8012EA4(&sUnknown_203B3F8->unk10, 0);
}
@ -181,14 +181,14 @@ static void sub_803AEB0(void)
static void sub_803AF38(void)
{
switch (sub_8023A94(TRUE)) {
switch (FriendList_HandleInput(TRUE)) {
case 3:
sUnknown_203B3F8->unk4 = sub_8023B44();
sUnknown_203B3F8->unk4 = FriendList_GetCurrId();
sUnknown_203B3F8->pokemon = &gRecruitedPokemonRef->pokemon[sUnknown_203B3F8->unk4];
sub_803ACD0(3);
break;
case 2:
sub_8023C60();
FriendList_Free();
sub_803ACD0(7);
break;
case 1:
@ -203,7 +203,7 @@ static void sub_803AF88(void)
menuAction = 0;
sub_8023A94(FALSE);
FriendList_HandleInput(FALSE);
if (sub_8012FD8(&sUnknown_203B3F8->unk10) == 0)
sub_8013114(&sUnknown_203B3F8->unk10, &menuAction);
@ -225,7 +225,7 @@ static void sub_803AF88(void)
static void sub_803AFE8(void)
{
sub_8023A94(FALSE);
FriendList_HandleInput(FALSE);
sub_8012FD8(&sUnknown_203B3F8->unk10);
switch (sub_8013BBC(&sUnknown_203B3F8->unk60)) {

View File

@ -4,7 +4,7 @@
#include "code_801B3C0.h"
#include "code_801EE10.h"
#include "code_801EE10_mid.h"
#include "code_8023868.h"
#include "friend_list.h"
#include "code_8024458.h"
#include "code_8098BDC.h"
#include "code_8099360.h"
@ -175,14 +175,14 @@ void sub_8027274(void)
case FRIEND_AREA_ACTION_MENU_EXIT:
break;
case FRIEND_AREA_ACTION_MENU_MAIN:
sub_8023868(1,0,0,7);
FriendList_Init(1,0,0,7);
break;
case FRIEND_AREA_ACTION_MENU_MAIN_2:
sub_8023B7C(1);
break;
case 3:
sub_8027D40(3, &sUnknown_203B2BC->item2);
sub_8023DA4();
FriendList_ShowWindow();
sub_8012D60(&sUnknown_203B2BC->unk7C, sUnknown_203B2BC->menuItems, 0, sUnknown_203B2BC->unk16C, sUnknown_203B2BC->menuAction1, 2);
break;
case FRIEND_AREA_ACTION_MENU_SUMMARY:
@ -383,12 +383,12 @@ void sub_80277FC(void)
{
PokemonStruct1 *pokeStruct;
switch(sub_8023A94(TRUE)) {
switch(FriendList_HandleInput(TRUE)) {
case 0:
case 1:
break;
case 3:
sUnknown_203B2BC->targetPoke = sub_8023B44();
sUnknown_203B2BC->targetPoke = FriendList_GetCurrId();
pokeStruct = &gRecruitedPokemonRef->pokemon[sUnknown_203B2BC->targetPoke];
sUnknown_203B2BC->pokeStruct = pokeStruct;
sUnknown_203B2BC->isTeamLeader = pokeStruct->isTeamLeader;
@ -396,7 +396,7 @@ void sub_80277FC(void)
SetFriendAreaActionMenuState(3);
break;
case 4:
sUnknown_203B2BC->targetPoke = sub_8023B44();
sUnknown_203B2BC->targetPoke = FriendList_GetCurrId();
pokeStruct = &gRecruitedPokemonRef->pokemon[sUnknown_203B2BC->targetPoke];
sUnknown_203B2BC->pokeStruct = pokeStruct;
sUnknown_203B2BC->isTeamLeader = pokeStruct->isTeamLeader;
@ -404,7 +404,7 @@ void sub_80277FC(void)
SetFriendAreaActionMenuState(4);
break;
case 2:
sub_8023C60();
FriendList_Free();
SetFriendAreaActionMenuState(FRIEND_AREA_ACTION_MENU_EXIT);
break;
}
@ -417,7 +417,7 @@ void sub_80278B4(void)
u32 menuAction;
menuAction = 0;
sub_8023A94(FALSE);
FriendList_HandleInput(FALSE);
if ((sub_8012FD8(&sUnknown_203B2BC->unk7C) == 0) && (sub_8013114(&sUnknown_203B2BC->unk7C,&menuAction), menuAction != FRIEND_AREA_ACTION_MENU_ACTION_NONE)) {
sUnknown_203B2BC->menuAction1 = menuAction;
}

476
src/friend_list.c Normal file
View File

@ -0,0 +1,476 @@
#include "global.h"
#include "globaldata.h"
#include "friend_list.h"
#include "code_800D090.h"
#include "code_80118A4.h"
#include "pokemon.h"
#include "structs/str_text.h"
#include "text_util.h"
#include "text_1.h"
#include "text_2.h"
#include "text_3.h"
#include "event_flag.h"
#include "menu_input.h"
#include "rescue_team_info.h"
#include "input.h"
#include "memory.h"
#include "ground_map_1.h"
#include "constants/input.h"
extern bool8 sub_808D750(s32 index_);
static IWRAM_INIT struct unkStruct_3001B60 *sFriendList = {NULL};
static void SortbyAlphabetNo(s32, s32);
static void SortbyInternalNo(s32, s32);
static void SortbyName(s32, s32);
static bool8 MonHasFriendArea(PokemonStruct1 *pokemon, u8 area);
static void SortNames(void);
static void SetUpWindowHeader(void);
static s32 sub_8023BD8(void);
static s32 sub_8023F8C(void);
extern s32 gUnknown_203B2A0;
extern s32 gUnknown_203B2A4;
extern u16 gUnknown_203B2A8;
extern u16 gUnknown_203B2AA;
static const WindowTemplate sDummyWinTemplate = WIN_TEMPLATE_DUMMY;
static const WindowTemplate sUnknown_80DC968 = {
.unk0 = 0,
.type = WINDOW_TYPE_WITH_HEADER,
.pos = {2, 2},
.width = 15,
.height = 14,
.unk10 = 14,
.unk12 = 0,
.header = NULL
};
bool8 FriendList_Init(u32 r5, u32 windowId, DungeonPos *pos, u32 r10)
{
if (sub_8024108(r5)) {
return FALSE;
}
if (sFriendList == NULL) {
sFriendList = MemoryAlloc(sizeof(*sFriendList), 8);
}
sFriendList->unk0 = r5;
if (gUnknown_203B2A0 != r5) {
sFriendList->sortMethod = 1;
}
else {
sFriendList->sortMethod = gUnknown_203B2A4;
}
sFriendList->unk14 = 0;
sFriendList->unk15 = 0;
sFriendList->unk16 = 0;
sFriendList->unk17 = 0;
sFriendList->unk18 = 0;
switch (sFriendList->unk0) {
case 0:
break;
case 1:
sFriendList->unk18 = 1;
break;
case 2:
sFriendList->unk14 = 1;
break;
case 3:
sFriendList->unk17 = 1;
sFriendList->unk15 = 1;
sFriendList->unk16 = 1;
break;
case 4:
sFriendList->unk18 = 1;
sFriendList->unk15 = 1;
if (!sub_80023E4(9)) {
sFriendList->unk16 = 1;
}
break;
}
if (sFriendList->unk0 == 4) {
sFriendList->unk354 = sub_8002658(sub_80A5728());
}
else {
sFriendList->unk354 = 0;
}
sFriendList->unk358.s0.winId = windowId;
sFriendList->unk358.s0.unk38 = &sFriendList->unk358.s0.windows.id[windowId];
RestoreSavedWindows(&sFriendList->unk358.s0.windows);
sFriendList->unk358.s0.windows.id[sFriendList->unk358.s0.winId] = sUnknown_80DC968;
sFriendList->unk358.s0.unk38->header = &sFriendList->unk358.header;
if (pos != NULL) {
sFriendList->unk358.s0.windows.id[sFriendList->unk358.s0.winId].pos = *pos;
}
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);
if (gUnknown_203B2A0 == sFriendList->unk0) {
sFriendList->unk358.s0.input.menuIndex = gUnknown_203B2A8;
sFriendList->unk358.s0.input.unk1E = gUnknown_203B2AA;
sub_8013984(&sFriendList->unk358.s0.input);
}
SetUpWindowHeader();
FriendList_ShowWindow();
return TRUE;
}
u32 FriendList_HandleInput(bool8 a0)
{
if (!a0) {
sub_8013660(&sFriendList->unk358.s0.input);
return 0;
}
switch (GetKeyPress(&sFriendList->unk358.s0.input)) {
case INPUT_B_BUTTON:
PlayMenuSoundEffect(1);
return 2;
case INPUT_START_BUTTON:
PlayMenuSoundEffect(4);
return 4;
case INPUT_A_BUTTON:
PlayMenuSoundEffect(0);
return 3;
case INPUT_SELECT_BUTTON:
PlayMenuSoundEffect(5);
sFriendList->sortMethod = (sFriendList->sortMethod < 3) ? sFriendList->sortMethod + 1 : 1;
sub_8023F8C();
SetUpWindowHeader();
FriendList_ShowWindow();
return 1;
default:
if (sub_80138B8(&sFriendList->unk358.s0.input, TRUE)) {
SetUpWindowHeader();
FriendList_ShowWindow();
return 1;
}
return 0;
}
}
s32 FriendList_GetCurrId(void)
{
return sFriendList->unk1A[(sFriendList->unk358.s0.input.unk1E * sFriendList->unk358.s0.input.unk1C) + 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();
sub_8013984(&sFriendList->unk358.s0.input);
SetUpWindowHeader();
FriendList_ShowWindow();
if (addCursor) {
AddMenuCursorSprite(&sFriendList->unk358.s0.input);
}
}
static s32 sub_8023BD8(void)
{
s32 i, j;
for (i = 0; i < sFriendList->unk8; i++) {
s32 id = sFriendList->unk1A[i];
if (!PokemonFlag1(&gRecruitedPokemonRef->pokemon[id])) {
sFriendList->unk8--;
for (j = i; j < sFriendList->unk8; j++) {
sFriendList->unk1A[j] = sFriendList->unk1A[j + 1];
}
}
}
return sFriendList->unk8;
}
void FriendList_Free(void)
{
if (sFriendList != NULL) {
gUnknown_203B2A0 = sFriendList->unk0;
gUnknown_203B2A4 = sFriendList->sortMethod;
gUnknown_203B2A8 = sFriendList->unk358.s0.input.menuIndex;
gUnknown_203B2AA = sFriendList->unk358.s0.input.unk1E;
sFriendList->unk358.s0.windows.id[sFriendList->unk358.s0.winId] = sDummyWinTemplate;
ResetUnusedInputStruct();
ShowWindows(&sFriendList->unk358.s0.windows, TRUE, TRUE);
MemoryFree(sFriendList);
sFriendList = NULL;
}
}
struct unkStruct_3001B60 *FriendList_GetPtr(void)
{
return sFriendList;
}
static void SetUpWindowHeader(void)
{
sFriendList->unk358.header.count = 1;
sFriendList->unk358.header.currId = 0;
sFriendList->unk358.header.f3 = 0;
switch (sFriendList->unk0) {
case 2:
sFriendList->unk358.header.width = 12;
break;
case 4:
sFriendList->unk358.header.width = 12;
break;
default:
sFriendList->unk358.header.width = 12;
break;
}
SUB_80095E4_CALL_2(sFriendList->unk358.s0);
}
void FriendList_ShowWindow(void)
{
s32 i, x;
u8 winTxtBuff[40];
u8 nameTxtBuff[POKEMON_NAME_LENGTH * 2];
u8 txtBuff3[20];
CallPrepareTextbox_8008C54(sFriendList->unk358.s0.winId);
sub_80073B8(sFriendList->unk358.s0.winId);
switch (sFriendList->unk0) {
case 2:
sub_80920D8(winTxtBuff);
PrintStringOnWindow(10, 0, winTxtBuff, sFriendList->unk358.s0.winId, '\0');
break;
case 4:
PrintStringOnWindow(10, 0, "Friends", sFriendList->unk358.s0.winId, '\0');
x = (sFriendList->unk358.header.width * 8) + 4;
sub_8012BC4(x, 0, sFriendList->unk358.s0.input.unk1E + 1, 2, 7, sFriendList->unk358.s0.winId);
break;
default:
PrintStringOnWindow(10, 0, _("Pokémon Friends"), sFriendList->unk358.s0.winId, '\0');
x = (sFriendList->unk358.header.width * 8) + 4;
sub_8012BC4(x, 0, sFriendList->unk358.s0.input.unk1E + 1, 2, 7, sFriendList->unk358.s0.winId);
break;
}
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];
PokemonStruct1 *pokePtr = &gRecruitedPokemonRef->pokemon[id];
u8 color = 7;
if (PokemonFlag2(pokePtr)) {
if (IsMonPartner(pokePtr)) {
color = 6;
}
if (IsMonLeader(pokePtr)) {
color = 6;
}
if (pokePtr->isTeamLeader) {
color = 5;
}
}
else if (sFriendList->unk18) {
if (sub_808D750(id)) {
color = 4;
}
else {
color = 2;
}
}
// This code doesn't do anything, but it's needed to match.
if (sFriendList->unk0 == 4 && MonHasFriendArea(pokePtr, sFriendList->unk354)) {
;
}
else if (sFriendList->unk0 == 2) {
;
}
sub_80922B4(nameTxtBuff, pokePtr->name, POKEMON_NAME_LENGTH);
sub_808D930(txtBuff3, pokePtr->speciesNum);
sprintfStatic(winTxtBuff, _("{color}%c%s{reset}"), color, nameTxtBuff);
PrintStringOnWindow(8, GetMenuEntryYCoord(&sFriendList->unk358.s0.input, i), winTxtBuff, sFriendList->unk358.s0.winId, '\0');
}
sub_80073E0(sFriendList->unk358.s0.winId);
}
static s32 sub_8023F8C(void)
{
s32 i;
PokemonStruct1 *pokeStruct;
sFriendList->unk8 = 0;
if (!sFriendList->unk15) {
for (i = 0; i < NUM_MONSTERS; i++) {
pokeStruct = &gRecruitedPokemonRef->pokemon[i];
if (pokeStruct->isTeamLeader && PokemonFlag1(pokeStruct)) {
sFriendList->unk1A[sFriendList->unk8++] = i;
break;
}
}
}
if (!sFriendList->unk16) {
for (i = 0; i < NUM_MONSTERS; i++) {
pokeStruct = &gRecruitedPokemonRef->pokemon[i];
if (IsMonPartner(pokeStruct) && !pokeStruct->isTeamLeader && PokemonFlag2(pokeStruct) && PokemonFlag1(pokeStruct)) {
sFriendList->unk1A[sFriendList->unk8++] = i;
break;
}
}
}
sFriendList->unkC = sFriendList->unk8;
if (!sFriendList->unk17) {
for (i = 0; i < NUM_MONSTERS; i++) {
pokeStruct = &gRecruitedPokemonRef->pokemon[i];
if (PokemonFlag2(pokeStruct) && PokemonFlag1(pokeStruct) && !pokeStruct->isTeamLeader && !IsMonPartner(pokeStruct)) {
sFriendList->unk1A[sFriendList->unk8++] = i;
if (sFriendList->unk8 >= 4) {
break;
}
}
}
}
sFriendList->unk10 = sFriendList->unk8;
if (!sFriendList->unk14) {
for (i = 0; i < NUM_MONSTERS; i++) {
pokeStruct = &gRecruitedPokemonRef->pokemon[i];
if (PokemonFlag1(pokeStruct) && !PokemonFlag2(&gRecruitedPokemonRef->pokemon[i])) {
sFriendList->unk1A[sFriendList->unk8++] = i;
}
}
}
SortNames();
return sFriendList->unk8;
}
bool8 sub_8024108(s32 param_1)
{
s32 i;
for (i = 0; i < NUM_MONSTERS; i++) {
PokemonStruct1 *pokeStruct = &gRecruitedPokemonRef->pokemon[i];
if (PokemonFlag1(pokeStruct)) {
if (param_1 == 2) {
if (!PokemonFlag2(pokeStruct)) continue;
}
else if (param_1 == 3) {
if (PokemonFlag2(pokeStruct)) continue;
}
else if (param_1 == 4) {
if (pokeStruct->isTeamLeader) continue;
if (!sub_80023E4(9)) {
if (!IsMonPartner(pokeStruct)) return FALSE;
if (PokemonFlag2(pokeStruct)) continue;
}
}
return FALSE;
}
}
return TRUE;
}
static bool8 MonHasFriendArea(PokemonStruct1 *pokemon, u8 area)
{
if (area == GetFriendArea(pokemon->speciesNum))
return TRUE;
return FALSE;
}
static void SortNames(void)
{
switch (sFriendList->sortMethod) {
case 2:
if (sFriendList->unkC != sFriendList->unk10)
SortbyAlphabetNo(sFriendList->unkC, sFriendList->unk10);
if (sFriendList->unk10 != sFriendList->unk8)
SortbyAlphabetNo(sFriendList->unk10, sFriendList->unk8);
break;
case 3:
if (sFriendList->unkC != sFriendList->unk10)
SortbyName(sFriendList->unkC, sFriendList->unk10);
if (sFriendList->unk10 != sFriendList->unk8)
SortbyName(sFriendList->unk10, sFriendList->unk8);
break;
case 1:
if (sFriendList->unkC != sFriendList->unk10)
SortbyInternalNo(sFriendList->unkC, sFriendList->unk10);
if (sFriendList->unk10 != sFriendList->unk8)
SortbyInternalNo(sFriendList->unk10, sFriendList->unk8);
break;
}
}
static void SortbyInternalNo(s32 startId, s32 arrId)
{
s32 temp;
s32 i, j;
s16 *arrPtr = &sFriendList->unk1A[arrId - 1];
for (i = startId; i < arrId - 1; i++) {
s16 *curr = arrPtr;
for (j = arrId - 1; j > i; j--) {
if (GetInternalNo(gRecruitedPokemonRef->pokemon[curr[-1]].speciesNum) > GetInternalNo(gRecruitedPokemonRef->pokemon[curr[0]].speciesNum)) {
SWAP(curr[0], curr[-1], temp);
}
curr--;
}
}
}
static void SortbyAlphabetNo(s32 startId, s32 arrId)
{
s32 temp;
s32 i, j;
s16 *arrPtr = &sFriendList->unk1A[arrId - 1];
for (i = startId; i < arrId - 1; i++) {
s16 *curr = arrPtr;
for (j = arrId - 1; j > i; j--) {
if (GetAlphabetParentNo(gRecruitedPokemonRef->pokemon[curr[-1]].speciesNum, 0) > GetAlphabetParentNo(gRecruitedPokemonRef->pokemon[curr[0]].speciesNum, 0)) {
SWAP(curr[0], curr[-1], temp);
}
curr--;
}
}
}
static void SortbyName(s32 startId, s32 arrId)
{
s32 temp;
s32 i, j;
s16 *arrPtr = &sFriendList->unk1A[arrId - 1];
for (i = startId; i < arrId - 1; i++) {
s16 * currPtr = arrPtr;
for (j = arrId - 1; j > i; j--) {
s16 *belowPtr = currPtr - 1;
if (ComparePokemonNames(*belowPtr, *currPtr)) {
SWAP(*currPtr, *belowPtr, temp);
}
currPtr--;
}
}
}
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]];
sub_80922B4(nameBuffer, pokeStruct->name, POKEMON_NAME_LENGTH);
sprintfStatic(buffer, "%s", nameBuffer);
return pokeStruct;
}

View File

@ -6,7 +6,7 @@
#include "code_801B3C0.h"
#include "code_801EE10.h"
#include "code_801EE10_mid.h"
#include "code_8023868.h"
#include "friend_list.h"
#include "code_8024458.h"
#include "code_8098BDC.h"
#include "code_8099360.h"
@ -188,7 +188,7 @@ void sub_8025518(void)
if (gUnknown_203B2B4->unk0 == 0) {
uVar3 = 2;
}
sub_8023868(uVar3,0,0,10);
FriendList_Init(uVar3,0,0,10);
break;
case 2:
sub_8023B7C(1);
@ -197,7 +197,7 @@ void sub_8025518(void)
if (gUnknown_203B2B4->unk0 == 0) {
sub_8025E68(3,&gUnknown_203B2B4->item2);
}
sub_8023DA4();
FriendList_ShowWindow();
PrintColoredPokeNameToBuffer(gFormatBuffer_Monsters[0],gUnknown_203B2B4->pokeStruct,7);
PrintColoredPokeNameToBuffer(gFormatBuffer_Monsters[1],gUnknown_203B2B4->pokeStruct,6);
sub_8012D60(&gUnknown_203B2B4->unk78,gUnknown_203B2B4->unkC8,0,gUnknown_203B2B4->unk108,gUnknown_203B2B4->menuAction1,2);
@ -371,22 +371,22 @@ void sub_802591C(void)
void sub_80259F0(void)
{
switch(sub_8023A94(TRUE))
switch(FriendList_HandleInput(TRUE))
{
case 3:
gUnknown_203B2B4->species = sub_8023B44();
gUnknown_203B2B4->species = FriendList_GetCurrId();
gUnknown_203B2B4->pokeStruct = &gRecruitedPokemonRef->pokemon[gUnknown_203B2B4->species];
PeekPokemonItem(gUnknown_203B2B4->species, &gUnknown_203B2B4->item2);
SetFriendListMenuState(3);
break;
case 4:
gUnknown_203B2B4->species = sub_8023B44();
gUnknown_203B2B4->species = FriendList_GetCurrId();
gUnknown_203B2B4->pokeStruct = &gRecruitedPokemonRef->pokemon[gUnknown_203B2B4->species];
PeekPokemonItem(gUnknown_203B2B4->species, &gUnknown_203B2B4->item2);
SetFriendListMenuState(FRIEND_LIST_MENU_STATE_SUMMARY);
break;
case 2:
sub_8023C60();
FriendList_Free();
SetFriendListMenuState(FRIEND_LIST_MENU_STATE_EXIT);
break;
}
@ -396,7 +396,7 @@ void sub_8025A84(void)
{
s32 menuAction = 0;
sub_8023A94(FALSE);
FriendList_HandleInput(FALSE);
if(!sub_8012FD8(&gUnknown_203B2B4->unk78))
{
sub_8013114(&gUnknown_203B2B4->unk78, &menuAction);
@ -406,7 +406,7 @@ void sub_8025A84(void)
{
case FRIEND_LIST_MENU_VISIT:
gUnknown_203B2B4->unkD = GetFriendArea(gUnknown_203B2B4->pokeStruct->speciesNum);
sub_8023C60();
FriendList_Free();
SetFriendListMenuState(FRIEND_LIST_MENU_STATE_EXIT);
break;
case FRIEND_LIST_MENU_GIVE:
@ -429,7 +429,7 @@ void sub_8025A84(void)
gUnknown_203B2B4->pokeStruct->unk0 &= ~(FLAG_ON_TEAM);
nullsub_104();
sub_808ED00();
sub_8023C60();
FriendList_Free();
SetFriendListMenuState(FRIEND_LIST_MENU_STATE_STANDBY);
break;
case FRIEND_LIST_MENU_MOVES:

View File

@ -7,7 +7,7 @@
#include "code_80118A4.h"
#include "code_801B3C0.h"
#include "code_801C8C4.h"
#include "code_8023868.h"
#include "friend_list.h"
#include "code_8024458.h"
#include "code_802F204.h"
#include "code_8094F88.h"
@ -304,7 +304,7 @@ extern u32 sub_8039068(u32, u8 *passwordBuffer, unkStruct_203B480 *r0);
extern void sub_8031E10(void);
extern u8 sub_800D588(void);
extern u32 sub_8023CE8(void);
extern u32 FriendList_GetPtr(void);
extern bool8 sub_8031D70(u32 mailIndex, s32);
extern u32 GetDungeonTeamRankPts(DungeonLocation *, u32);
@ -687,7 +687,7 @@ void CleanFriendRescueMenu(void)
gUnknown_203B33C = NULL;
sub_803084C();
sub_8031E10();
sub_8023C60();
FriendList_Free();
sub_80155F0();
sub_801CBB8();
sub_802F2C0();
@ -894,16 +894,16 @@ void sub_8032828(void)
CreateDialogueBoxAndPortrait(&gUnknown_80E2C48[0], 0, 0, 0x101);
break;
case 0x26:
if (sub_8023CE8() != 0)
sub_8023C60();
if (FriendList_GetPtr() != 0)
FriendList_Free();
ResetUnusedInputStruct();
ShowWindows(NULL, TRUE, TRUE);
sub_8023868(3, 0, 0, 9);
FriendList_Init(3, 0, 0, 9);
break;
case 0x27:
RestoreSavedWindows(&gUnknown_203B33C->unk35C);
SetMenuItems(gUnknown_203B33C->unk21C, &gUnknown_203B33C->unk35C, 3, &gUnknown_80E2334, gUnknown_80E234C, TRUE, 0, FALSE);
sub_8023DA4();
FriendList_ShowWindow();
sub_8035CF4(gUnknown_203B33C->unk21C, 3, 1);
break;
case 0x24:
@ -1857,16 +1857,16 @@ void sub_8034130(void)
void sub_803418C(void)
{
switch(sub_8023A94(TRUE))
switch(FriendList_HandleInput(TRUE))
{
case 2:
sub_8023C60();
FriendList_Free();
SetFriendRescueMenuState(FRIEND_RESCUE_MENU_MAIN);
sub_8035D1C();
gUnknown_203B33C->speciesNum = -1;
break;
case 3:
gUnknown_203B33C->speciesNum = sub_8023B44();
gUnknown_203B33C->speciesNum = FriendList_GetCurrId();
if(gUnknown_203B33C->unk524 == 0xE)
SetFriendRescueMenuState(9);
else
@ -1874,7 +1874,7 @@ void sub_803418C(void)
break;
case 4:
gUnknown_203B33C->fallbackState = 0x26;
gUnknown_203B33C->speciesNum = sub_8023B44();
gUnknown_203B33C->speciesNum = FriendList_GetCurrId();
RestoreSavedWindows(&gUnknown_203B33C->unk3BC);
ResetUnusedInputStruct();
ShowWindows(NULL, TRUE, TRUE);
@ -1889,13 +1889,13 @@ void sub_8034254(void)
s32 menuAction;
menuAction = -1;
sub_8023A94(FALSE);
FriendList_HandleInput(FALSE);
if(!sub_8012FD8(&gUnknown_203B33C->unk21C[3]))
sub_8013114(&gUnknown_203B33C->unk21C[3], &menuAction);
switch(menuAction)
{
case 9:
sub_8023C60();
FriendList_Free();
SetFriendRescueMenuState(0x29);
break;
case 10:
@ -1909,7 +1909,7 @@ void sub_8034254(void)
case 5:
case 8:
sub_8035CC0(&gUnknown_203B33C->unk35C, 3);
sub_8023DA4();
FriendList_ShowWindow();
SetFriendRescueMenuState(0x26);
break;
}

View File

@ -3,7 +3,7 @@
#include "code_80118A4.h"
#include "code_801EE10.h"
#include "code_801EE10_mid.h"
#include "code_8023868.h"
#include "friend_list.h"
#include "code_8024458.h"
#include "common_strings.h"
#include "felicity_bank.h"
@ -306,13 +306,13 @@ static void sub_801FF28(void)
CreateDialogueBoxAndPortrait(gCommonGulpin[gUnknown_203B27C->mode][GULPIN_DLG_08],0,gUnknown_203B27C->monPortraitPtr,0x10d);
break;
case 0xf:
sub_8023868(2,0,0,10);
FriendList_Init(2,0,0,10);
break;
case 0x10:
sub_8023B7C(1);
break;
case 0x11:
sub_8023DA4();
FriendList_ShowWindow();
sub_8012D60(&gUnknown_203B27C->unkCC,gUnknown_203B27C->unk7C,0,gUnknown_203B27C->unkBC,gUnknown_203B27C->menuAction2,2);
break;
case 0x12:
@ -682,17 +682,17 @@ static void sub_8020A34(void)
static void sub_8020A80(void)
{
switch(sub_8023A94(TRUE))
switch(FriendList_HandleInput(TRUE))
{
case 3:
gUnknown_203B27C->speciesNum = sub_8023B44();
gUnknown_203B27C->speciesNum = FriendList_GetCurrId();
gUnknown_203B27C->pokeStruct = &gRecruitedPokemonRef->pokemon[gUnknown_203B27C->speciesNum];
gUnknown_203B27C->isTeamLeader = gUnknown_203B27C->pokeStruct->isTeamLeader;
PrintPokeNameToBuffer(gFormatBuffer_Monsters[5], gUnknown_203B27C->pokeStruct);
sub_801FDA8(0x11);
break;
case 4:
gUnknown_203B27C->speciesNum = sub_8023B44();
gUnknown_203B27C->speciesNum = FriendList_GetCurrId();
gUnknown_203B27C->pokeStruct = &gRecruitedPokemonRef->pokemon[gUnknown_203B27C->speciesNum];
gUnknown_203B27C->isTeamLeader = gUnknown_203B27C->pokeStruct->isTeamLeader;
PrintPokeNameToBuffer(gFormatBuffer_Monsters[5], gUnknown_203B27C->pokeStruct);
@ -702,7 +702,7 @@ static void sub_8020A80(void)
case 1:
break;
case 2:
sub_8023C60();
FriendList_Free();
sub_801FDA8(7);
break;
}
@ -713,7 +713,7 @@ static void sub_8020B38(void)
s32 menuAction;
menuAction = 0;
sub_8023A94(FALSE);
FriendList_HandleInput(FALSE);
if (!sub_8012FD8(&gUnknown_203B27C->unkCC)) {
sub_8013114(&gUnknown_203B27C->unkCC,&menuAction);
if (menuAction != CANCEL_ACTION) {

View File

@ -23,10 +23,10 @@ bool8 sub_801E3F0(u32 a0)
if (sUnknown_203B264 == NULL)
sUnknown_203B264 = MemoryAlloc(sizeof(*sUnknown_203B264), 8);
sUnknown_203B264->unk34 = a0;
sUnknown_203B264->winId = a0;
sUnknown_203B264->unk38 = &sUnknown_203B264->windows.id[a0];
RestoreSavedWindows(&sUnknown_203B264->windows);
sUnknown_203B264->windows.id[sUnknown_203B264->unk34] = sUnknown_80DC0BC;
sUnknown_203B264->windows.id[sUnknown_203B264->winId] = sUnknown_80DC0BC;
sub_8012D08(sUnknown_203B264->unk38, 10);
ResetUnusedInputStruct();
ShowWindows(&sUnknown_203B264->windows, TRUE, TRUE);
@ -86,7 +86,7 @@ void CreateHintSelectionScreen(bool8 cursorSprite)
void sub_801E54C(void)
{
if (sUnknown_203B264 != NULL) {
sUnknown_203B264->windows.id[sUnknown_203B264->unk34] = sUnknown_80DC0A0;
sUnknown_203B264->windows.id[sUnknown_203B264->winId] = sUnknown_80DC0A0;
ResetUnusedInputStruct();
ShowWindows(&sUnknown_203B264->windows, TRUE, TRUE);
MemoryFree(sUnknown_203B264);
@ -104,14 +104,14 @@ static void DrawHintSelectionMenu(void)
s32 hintIndex;
s32 y;
CallPrepareTextbox_8008C54(sUnknown_203B264->unk34);
sub_80073B8(sUnknown_203B264->unk34);
PrintStringOnWindow(16, 0, sHints, sUnknown_203B264->unk34, 0);
CallPrepareTextbox_8008C54(sUnknown_203B264->winId);
sub_80073B8(sUnknown_203B264->winId);
PrintStringOnWindow(16, 0, sHints, sUnknown_203B264->winId, 0);
for (hintIndex = 0; hintIndex < HINT_MAX; hintIndex++) {
y = GetMenuEntryYCoord(&sUnknown_203B264->input, hintIndex);
PrintStringOnWindow(10, y, gCommonHints[hintIndex].heading, sUnknown_203B264->unk34, 0);
PrintStringOnWindow(10, y, gCommonHints[hintIndex].heading, sUnknown_203B264->winId, 0);
}
sub_80073E0(sUnknown_203B264->unk34);
sub_80073E0(sUnknown_203B264->winId);
}

View File

@ -21,14 +21,14 @@ static void sub_801E76C(void);
bool8 CreateHintDisplayScreen(u32 index)
{
sUnknown_203B268 = MemoryAlloc(sizeof(struct_Sub80095E4_2), 8);
sUnknown_203B268->s0.unk34 = 0;
sUnknown_203B268->s0.winId = 0;
sUnknown_203B268->s0.unk38 = &sUnknown_203B268->s0.windows.id[0];
RestoreSavedWindows(&sUnknown_203B268->s0.windows);
sUnknown_203B268->s0.windows.id[sUnknown_203B268->s0.unk34] = sUnknown_80DC0FC;
sUnknown_203B268->s0.unk38->header = &sUnknown_203B268->unk9C;
sUnknown_203B268->s0.windows.id[sUnknown_203B268->s0.winId] = sUnknown_80DC0FC;
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.unk34);
sub_8013818(&sUnknown_203B268->s0.input, 5, 1, sUnknown_203B268->s0.winId);
sUnknown_203B268->s0.input.unk1E = index;
sub_801E714();
@ -62,7 +62,7 @@ static void sub_801E714(void)
void DestroyHintDisplayScreen(void)
{
if (sUnknown_203B268 != NULL) {
sUnknown_203B268->s0.windows.id[sUnknown_203B268->s0.unk34] = sUnknown_80DC0E4;
sUnknown_203B268->s0.windows.id[sUnknown_203B268->s0.winId] = sUnknown_80DC0E4;
ResetUnusedInputStruct();
ShowWindows(&sUnknown_203B268->s0.windows, TRUE, TRUE);
MemoryFree(sUnknown_203B268);
@ -72,18 +72,18 @@ void DestroyHintDisplayScreen(void)
static void sub_801E76C(void)
{
sUnknown_203B268->unk9C.count = sUnknown_203B268->s0.input.unk20;
sUnknown_203B268->unk9C.currId = sUnknown_203B268->s0.input.unk1E;
sUnknown_203B268->unk9C.width = 15;
sUnknown_203B268->unk9C.f3 = 0;
sUnknown_203B268->header.count = sUnknown_203B268->s0.input.unk20;
sUnknown_203B268->header.currId = sUnknown_203B268->s0.input.unk1E;
sUnknown_203B268->header.width = 15;
sUnknown_203B268->header.f3 = 0;
ResetUnusedInputStruct();
ShowWindows(&sUnknown_203B268->s0.windows, TRUE, TRUE);
}
static void DisplayChosenHint(void)
{
sub_80073B8(sUnknown_203B268->s0.unk34);
PrintStringOnWindow((sUnknown_203B268->s0.input.unk1E * 8) + 16, 0, gCommonHints[sUnknown_203B268->s0.input.unk1E].heading, sUnknown_203B268->s0.unk34, 0);
PrintStringOnWindow(10, 20, gCommonHints[sUnknown_203B268->s0.input.unk1E].body, sUnknown_203B268->s0.unk34, 0);
sub_80073E0(sUnknown_203B268->s0.unk34);
sub_80073B8(sUnknown_203B268->s0.winId);
PrintStringOnWindow((sUnknown_203B268->s0.input.unk1E * 8) + 16, 0, gCommonHints[sUnknown_203B268->s0.input.unk1E].heading, sUnknown_203B268->s0.winId, 0);
PrintStringOnWindow(10, 20, gCommonHints[sUnknown_203B268->s0.input.unk1E].body, sUnknown_203B268->s0.winId, 0);
sub_80073E0(sUnknown_203B268->s0.winId);
}

View File

@ -30,11 +30,11 @@ bool8 CreateIQSkillListMenu(s16 species, u32 index, u32 a2)
sIQSkillListMenu->species = species_s32;
sIQSkillListMenu->pokeStruct = &gRecruitedPokemonRef->pokemon[species_s32];
sIQSkillListMenu->numIQSkills = GetNumAvailableIQSkills(sIQSkillListMenu->iqSkills, sIQSkillListMenu->pokeStruct->IQ);
sIQSkillListMenu->s24.s0.unk34 = index;
sIQSkillListMenu->s24.s0.winId = index;
sIQSkillListMenu->s24.s0.unk38 = &sIQSkillListMenu->s24.s0.windows.id[index];
RestoreSavedWindows(&sIQSkillListMenu->s24.s0.windows);
sIQSkillListMenu->s24.s0.windows.id[sIQSkillListMenu->s24.s0.unk34] = sUnknown_80DBDF0;
sIQSkillListMenu->s24.s0.unk38->header = &sIQSkillListMenu->s24.unk9C;
sIQSkillListMenu->s24.s0.windows.id[sIQSkillListMenu->s24.s0.winId] = sUnknown_80DBDF0;
sIQSkillListMenu->s24.s0.unk38->header = &sIQSkillListMenu->s24.header;
sub_8012D08(sIQSkillListMenu->s24.s0.unk38, a2);
ResetUnusedInputStruct();
ShowWindows(&sIQSkillListMenu->s24.s0.windows, TRUE, TRUE);
@ -92,7 +92,7 @@ void RedrawIQSkillListMenu(bool8 addCursor)
void CleanIQSkillListMenu(void)
{
if (sIQSkillListMenu != NULL) {
sIQSkillListMenu->s24.s0.windows.id[sIQSkillListMenu->s24.s0.unk34] = sUnknown_80DBDD8;
sIQSkillListMenu->s24.s0.windows.id[sIQSkillListMenu->s24.s0.winId] = sUnknown_80DBDD8;
ResetUnusedInputStruct();
ShowWindows(&sIQSkillListMenu->s24.s0.windows, TRUE, TRUE);
MemoryFree(sIQSkillListMenu);
@ -102,10 +102,10 @@ void CleanIQSkillListMenu(void)
static void sub_801C440(void)
{
sIQSkillListMenu->s24.unk9C.count = sIQSkillListMenu->s24.s0.input.unk20;
sIQSkillListMenu->s24.unk9C.currId = sIQSkillListMenu->s24.s0.input.unk1E;
sIQSkillListMenu->s24.unk9C.width = 10;
sIQSkillListMenu->s24.unk9C.f3 = 0;
sIQSkillListMenu->s24.header.count = sIQSkillListMenu->s24.s0.input.unk20;
sIQSkillListMenu->s24.header.currId = sIQSkillListMenu->s24.s0.input.unk1E;
sIQSkillListMenu->s24.header.width = 10;
sIQSkillListMenu->s24.header.f3 = 0;
ResetUnusedInputStruct();
ShowWindows(&sIQSkillListMenu->s24.s0.windows, TRUE, TRUE);
SUB_80095E4_CALL_2(sIQSkillListMenu->s24.s0);
@ -119,16 +119,16 @@ void BuildIQSkillList(void)
u32 skillIndex;
s32 counter;
CallPrepareTextbox_8008C54(sIQSkillListMenu->s24.s0.unk34);
sub_80073B8(sIQSkillListMenu->s24.s0.unk34);
CallPrepareTextbox_8008C54(sIQSkillListMenu->s24.s0.winId);
sub_80073B8(sIQSkillListMenu->s24.s0.winId);
x = sIQSkillListMenu->s24.s0.input.unk1E * 8;
x2 = x;
x2 += 10;
PrintStringOnWindow(x2, 0, sIQSkills, sIQSkillListMenu->s24.s0.unk34, 0);
PrintStringOnWindow(x2, 0, sIQSkills, sIQSkillListMenu->s24.s0.winId, 0);
x += 4;
x2 = x + sIQSkillListMenu->s24.unk9C.width * 8;
sub_8012BC4(x2, 0, sIQSkillListMenu->s24.s0.input.unk1E + 1, 1, 7, sIQSkillListMenu->s24.s0.unk34);
x2 = x + sIQSkillListMenu->s24.header.width * 8;
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];
@ -141,10 +141,10 @@ void BuildIQSkillList(void)
else
strcpy(gFormatBuffer_Items[1] - 80, sUnknown_80DBE18);
PrintFormattedStringOnWindow(12, y, sFmt01, sIQSkillListMenu->s24.s0.unk34, 0);
PrintFormattedStringOnWindow(12, y, sFmt01, sIQSkillListMenu->s24.s0.winId, 0);
}
sub_80073E0(sIQSkillListMenu->s24.s0.unk34);
sub_80073E0(sIQSkillListMenu->s24.s0.winId);
}
bool8 HasNoAvailIQSkills(s16 species)

View File

@ -26,11 +26,11 @@ bool8 sub_8019E40(u32 r0)
return FALSE;
gUnknown_203B214 = MemoryAlloc(sizeof(*gUnknown_203B214), 8);
gUnknown_203B214->s0.unk34 = r0;
gUnknown_203B214->s0.unk38 = &gUnknown_203B214->s0.windows.id[gUnknown_203B214->s0.unk34];
gUnknown_203B214->s0.winId = r0;
gUnknown_203B214->s0.unk38 = &gUnknown_203B214->s0.windows.id[gUnknown_203B214->s0.winId];
RestoreSavedWindows(&gUnknown_203B214->s0.windows);
gUnknown_203B214->s0.windows.id[gUnknown_203B214->s0.unk34] = sUnknown_80DB8CC;
gUnknown_203B214->s0.unk38->header = &gUnknown_203B214->unk9C;
gUnknown_203B214->s0.windows.id[gUnknown_203B214->s0.winId] = sUnknown_80DB8CC;
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);
@ -103,7 +103,7 @@ void sub_801A010(void)
{
if (gUnknown_203B214 != NULL) {
gUnknown_203B218 = gUnknown_203B214->s0.input.menuIndex;
gUnknown_203B214->s0.windows.id[gUnknown_203B214->s0.unk34] = sUnknown_80DB8B4;
gUnknown_203B214->s0.windows.id[gUnknown_203B214->s0.winId] = sUnknown_80DB8B4;
ResetUnusedInputStruct();
ShowWindows(&gUnknown_203B214->s0.windows, TRUE, TRUE);
MemoryFree(gUnknown_203B214);
@ -113,10 +113,10 @@ void sub_801A010(void)
static void sub_801A064(void)
{
gUnknown_203B214->unk9C.count = gUnknown_203B214->s0.input.unk20;
gUnknown_203B214->unk9C.currId = gUnknown_203B214->s0.input.unk1E;
gUnknown_203B214->unk9C.width = 10;
gUnknown_203B214->unk9C.f3 = 0;
gUnknown_203B214->header.count = gUnknown_203B214->s0.input.unk20;
gUnknown_203B214->header.currId = gUnknown_203B214->s0.input.unk1E;
gUnknown_203B214->header.width = 10;
gUnknown_203B214->header.f3 = 0;
SUB_80095E4_CALL(gUnknown_203B214->s0);
}
@ -134,9 +134,9 @@ void sub_801A0D8(void)
Item item;
u8 temp_calc;
CallPrepareTextbox_8008C54(gUnknown_203B214->s0.unk34);
sub_80073B8(gUnknown_203B214->s0.unk34);
PrintStringOnWindow((gUnknown_203B214->s0.input.unk1E * 8) + 10, 0, sGoods, gUnknown_203B214->s0.unk34, 0);
CallPrepareTextbox_8008C54(gUnknown_203B214->s0.winId);
sub_80073B8(gUnknown_203B214->s0.winId);
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;
@ -153,14 +153,14 @@ void sub_801A0D8(void)
if (buyPrice <= gTeamInventoryRef->teamMoney) {
y = GetMenuEntryYCoord(&gUnknown_203B214->s0.input, index);
PrintStringOnWindow(8, y, auStack204, gUnknown_203B214->s0.unk34, 0);
PrintStringOnWindow(8, y, auStack204, gUnknown_203B214->s0.winId, 0);
}
else {
sprintfStatic(auStack112, sFmtRed, auStack204);
y = GetMenuEntryYCoord(&gUnknown_203B214->s0.input, index);
PrintStringOnWindow(8, y, auStack112, gUnknown_203B214->s0.unk34, 0);
PrintStringOnWindow(8, y, auStack112, gUnknown_203B214->s0.winId, 0);
}
}
sub_80073E0(gUnknown_203B214->s0.unk34);
sub_80073E0(gUnknown_203B214->s0.winId);
}

View File

@ -26,11 +26,11 @@ bool8 sub_801A20C(u32 r0)
return FALSE;
gUnknown_203B21C = MemoryAlloc(sizeof(*gUnknown_203B21C), 8);
gUnknown_203B21C->s0.unk34 = r0;
gUnknown_203B21C->s0.unk38 = &gUnknown_203B21C->s0.windows.id[gUnknown_203B21C->s0.unk34];
gUnknown_203B21C->s0.winId = r0;
gUnknown_203B21C->s0.unk38 = &gUnknown_203B21C->s0.windows.id[gUnknown_203B21C->s0.winId];
RestoreSavedWindows(&gUnknown_203B21C->s0.windows);
gUnknown_203B21C->s0.windows.id[gUnknown_203B21C->s0.unk34] = sUnknown_80DB914;
gUnknown_203B21C->s0.unk38->header = &gUnknown_203B21C->unk9C;
gUnknown_203B21C->s0.windows.id[gUnknown_203B21C->s0.winId] = sUnknown_80DB914;
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);
@ -103,7 +103,7 @@ void sub_801A3DC(void)
{
if (gUnknown_203B21C != NULL) {
gUnknown_203B220 = gUnknown_203B21C->s0.input.menuIndex;
gUnknown_203B21C->s0.windows.id[gUnknown_203B21C->s0.unk34] = sUnknown_80DB8FC;
gUnknown_203B21C->s0.windows.id[gUnknown_203B21C->s0.winId] = sUnknown_80DB8FC;
ResetUnusedInputStruct();
ShowWindows(&gUnknown_203B21C->s0.windows, TRUE, TRUE);
MemoryFree(gUnknown_203B21C);
@ -113,10 +113,10 @@ void sub_801A3DC(void)
static void sub_801A430(void)
{
gUnknown_203B21C->unk9C.count = gUnknown_203B21C->s0.input.unk20;
gUnknown_203B21C->unk9C.currId = gUnknown_203B21C->s0.input.unk1E;
gUnknown_203B21C->unk9C.width = 10;
gUnknown_203B21C->unk9C.f3 = 0;
gUnknown_203B21C->header.count = gUnknown_203B21C->s0.input.unk20;
gUnknown_203B21C->header.currId = gUnknown_203B21C->s0.input.unk1E;
gUnknown_203B21C->header.width = 10;
gUnknown_203B21C->header.f3 = 0;
SUB_80095E4_CALL(gUnknown_203B21C->s0);
}
@ -134,9 +134,9 @@ void sub_801A4A4(void)
Item item;
u8 temp_calc;
CallPrepareTextbox_8008C54(gUnknown_203B21C->s0.unk34);
sub_80073B8(gUnknown_203B21C->s0.unk34);
PrintStringOnWindow(gUnknown_203B21C->s0.input.unk1E * 8 + 10, 0, sGoods, gUnknown_203B21C->s0.unk34, 0);
CallPrepareTextbox_8008C54(gUnknown_203B21C->s0.winId);
sub_80073B8(gUnknown_203B21C->s0.winId);
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;
@ -153,14 +153,14 @@ void sub_801A4A4(void)
if (buyPrice <= gTeamInventoryRef->teamMoney) {
y = GetMenuEntryYCoord(&gUnknown_203B21C->s0.input, index);
PrintStringOnWindow(8, y, buffer1, gUnknown_203B21C->s0.unk34, 0);
PrintStringOnWindow(8, y, buffer1, gUnknown_203B21C->s0.winId, 0);
}
else {
sprintfStatic(buffer2, sFmtRed, buffer1);
y = GetMenuEntryYCoord(&gUnknown_203B21C->s0.input, index);
PrintStringOnWindow(8, y, buffer2, gUnknown_203B21C->s0.unk34, 0);
PrintStringOnWindow(8, y, buffer2, gUnknown_203B21C->s0.winId, 0);
}
}
sub_80073E0(gUnknown_203B21C->s0.unk34);
sub_80073E0(gUnknown_203B21C->s0.winId);
}

View File

@ -47,14 +47,14 @@ bool8 sub_801A5D8(u32 param_1, s32 param_2, DungeonPos *param_3, u32 param_4)
gUnknown_203B224->unk0 = param_1;
FillInventoryGaps();
sub_801AE84();
gUnknown_203B224->unk54.s0.unk34 = param_2;
gUnknown_203B224->unk54.s0.winId = param_2;
gUnknown_203B224->unk54.s0.unk38 = &gUnknown_203B224->unk54.s0.windows.id[param_2];
RestoreSavedWindows(&gUnknown_203B224->unk54.s0.windows);
gUnknown_203B224->unk54.s0.windows.id[gUnknown_203B224->unk54.s0.unk34] = sUnknown_80DB95C;
gUnknown_203B224->unk54.s0.unk38->header = &gUnknown_203B224->unk54.unk9C;
gUnknown_203B224->unk54.s0.windows.id[gUnknown_203B224->unk54.s0.winId] = sUnknown_80DB95C;
gUnknown_203B224->unk54.s0.unk38->header = &gUnknown_203B224->unk54.header;
if (param_3 != NULL)
gUnknown_203B224->unk54.s0.windows.id[gUnknown_203B224->unk54.s0.unk34].pos = *param_3;
gUnknown_203B224->unk54.s0.windows.id[gUnknown_203B224->unk54.s0.winId].pos = *param_3;
sub_8012D08(gUnknown_203B224->unk54.s0.unk38, param_4);
sub_8099690(1);
@ -179,7 +179,7 @@ void sub_801A928(void)
if (gUnknown_203B224 != NULL) {
gUnknown_203B228 = gUnknown_203B224->unk54.s0.input.menuIndex;
gUnknown_203B22A = gUnknown_203B224->unk54.s0.input.unk1E;
gUnknown_203B224->unk54.s0.windows.id[gUnknown_203B224->unk54.s0.unk34] = sUnknown_80DB944;
gUnknown_203B224->unk54.s0.windows.id[gUnknown_203B224->unk54.s0.winId] = sUnknown_80DB944;
sub_8099690(0);
ResetUnusedInputStruct();
ShowWindows(&gUnknown_203B224->unk54.s0.windows, TRUE, TRUE);
@ -190,10 +190,10 @@ void sub_801A928(void)
static void sub_801A998(void)
{
gUnknown_203B224->unk54.unk9C.count = gUnknown_203B224->unk54.s0.input.unk20;
gUnknown_203B224->unk54.unk9C.currId = gUnknown_203B224->unk54.s0.input.unk1E;
gUnknown_203B224->unk54.unk9C.width = 11;
gUnknown_203B224->unk54.unk9C.f3 = 0;
gUnknown_203B224->unk54.header.count = gUnknown_203B224->unk54.s0.input.unk20;
gUnknown_203B224->unk54.header.currId = gUnknown_203B224->unk54.s0.input.unk1E;
gUnknown_203B224->unk54.header.width = 11;
gUnknown_203B224->unk54.header.f3 = 0;
ResetUnusedInputStruct();
ShowWindows(&gUnknown_203B224->unk54.s0.windows, TRUE, TRUE);
}
@ -207,14 +207,14 @@ void sub_801A9E0(void)
u8 buf1[80]; // sp4
Item item; // spC8
CallPrepareTextbox_8008C54(gUnknown_203B224->unk54.s0.unk34);
sub_80073B8(gUnknown_203B224->unk54.s0.unk34);
CallPrepareTextbox_8008C54(gUnknown_203B224->unk54.s0.winId);
sub_80073B8(gUnknown_203B224->unk54.s0.winId);
x = gUnknown_203B224->unk54.s0.input.unk1E * 8 + 10;
if (gUnknown_203B224->unk54.s0.input.unk1E == 0)
PrintStringOnWindow(x, 0, sTeamToolboxA, gUnknown_203B224->unk54.s0.unk34, 0);
PrintStringOnWindow(x, 0, sTeamToolboxA, gUnknown_203B224->unk54.s0.winId, 0);
else
PrintStringOnWindow(x, 0, sTeamToolboxB, gUnknown_203B224->unk54.s0.unk34, 0);
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;
@ -223,7 +223,7 @@ void sub_801A9E0(void)
switch (gUnknown_203B224->unk0) {
case 0: {
sub_8090E14(buf1, &item, 0);
PrintStringOnWindow(8, GetMenuEntryYCoord(&gUnknown_203B224->unk54.s0.input, r7), buf1, gUnknown_203B224->unk54.s0.unk34, 0);
PrintStringOnWindow(8, GetMenuEntryYCoord(&gUnknown_203B224->unk54.s0.input, r7), buf1, gUnknown_203B224->unk54.s0.winId, 0);
break;
}
case 1:
@ -236,7 +236,7 @@ void sub_801A9E0(void)
item.flags = 1;
sub_8090E14(buf1, &item, &thing);
PrintStringOnWindow(8, GetMenuEntryYCoord(&gUnknown_203B224->unk54.s0.input, r7), buf1, gUnknown_203B224->unk54.s0.unk34, 0);
PrintStringOnWindow(8, GetMenuEntryYCoord(&gUnknown_203B224->unk54.s0.input, r7), buf1, gUnknown_203B224->unk54.s0.winId, 0);
break;
}
case 3: {
@ -249,10 +249,10 @@ void sub_801A9E0(void)
sub_8090E14(buf1, &item, &thing);
if (gUnknown_203B224->unk4[teamItemIndex] != 0 || sub_801ADA0(teamItemIndex))
PrintStringOnWindow(8,GetMenuEntryYCoord(&gUnknown_203B224->unk54.s0.input,r7), buf1, gUnknown_203B224->unk54.s0.unk34, 0);
PrintStringOnWindow(8,GetMenuEntryYCoord(&gUnknown_203B224->unk54.s0.input,r7), buf1, gUnknown_203B224->unk54.s0.winId, 0);
else {
strncpy(gFormatBuffer_Items[0], buf1, 80);
PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&gUnknown_203B224->unk54.s0.input, r7), sFmtMoveItem0, gUnknown_203B224->unk54.s0.unk34, 0);
PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&gUnknown_203B224->unk54.s0.input, r7), sFmtMoveItem0, gUnknown_203B224->unk54.s0.winId, 0);
}
break;
}
@ -270,15 +270,15 @@ void sub_801A9E0(void)
if (GetStackSellPrice(&item) + gTeamInventoryRef->teamMoney > MAX_TEAM_MONEY) {
sprintfStatic(buf2, sFmtRed, buf1);
PrintStringOnWindow(8, GetMenuEntryYCoord(&gUnknown_203B224->unk54.s0.input, r7), buf2, gUnknown_203B224->unk54.s0.unk34, 0);
PrintStringOnWindow(8, GetMenuEntryYCoord(&gUnknown_203B224->unk54.s0.input, r7), buf2, gUnknown_203B224->unk54.s0.winId, 0);
}
else
PrintStringOnWindow(8, GetMenuEntryYCoord(&gUnknown_203B224->unk54.s0.input, r7), buf1, gUnknown_203B224->unk54.s0.unk34, 0);
PrintStringOnWindow(8, GetMenuEntryYCoord(&gUnknown_203B224->unk54.s0.input, r7), buf1, gUnknown_203B224->unk54.s0.winId, 0);
}
else {
sub_8090E14(buf1, &item, 0);
strncpy(gFormatBuffer_Items[0], buf1, 80);
PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&gUnknown_203B224->unk54.s0.input, r7), sFmtMoveItem0, gUnknown_203B224->unk54.s0.unk34, 0);
PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&gUnknown_203B224->unk54.s0.input, r7), sFmtMoveItem0, gUnknown_203B224->unk54.s0.winId, 0);
}
break;
}
@ -293,20 +293,20 @@ void sub_801A9E0(void)
sub_8090E14(buf1, &item, &thing);
if (IsGummiItem(item.id))
PrintStringOnWindow(8, GetMenuEntryYCoord(&gUnknown_203B224->unk54.s0.input, r7), buf1, gUnknown_203B224->unk54.s0.unk34, 0);
PrintStringOnWindow(8, GetMenuEntryYCoord(&gUnknown_203B224->unk54.s0.input, r7), buf1, gUnknown_203B224->unk54.s0.winId, 0);
else {
strncpy(gFormatBuffer_Items[0], buf1, 80);
PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&gUnknown_203B224->unk54.s0.input, r7), sFmtMoveItem0, gUnknown_203B224->unk54.s0.unk34, 0);
PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&gUnknown_203B224->unk54.s0.input, r7), sFmtMoveItem0, gUnknown_203B224->unk54.s0.winId, 0);
}
break;
}
}
if (sub_801AED0(teamItemIndex) & 1)
sub_8007B7C(gUnknown_203B224->unk54.s0.unk34, 8, GetMenuEntryYCoord(&gUnknown_203B224->unk54.s0.input, r7), (gUnknown_203B224->unk54.s0.unk38->width - 2) * 8, 10);
sub_8007B7C(gUnknown_203B224->unk54.s0.winId, 8, GetMenuEntryYCoord(&gUnknown_203B224->unk54.s0.input, r7), (gUnknown_203B224->unk54.s0.unk38->width - 2) * 8, 10);
}
sub_80073E0(gUnknown_203B224->unk54.s0.unk34);
sub_80073E0(gUnknown_203B224->unk54.s0.winId);
}
// arm9.bin::02026234

View File

@ -31,14 +31,14 @@ bool8 sub_80302E8(s32 param_1, DungeonPos *param_2, u32 param_3)
if (sMakuhitaDojoWork2 == NULL)
sMakuhitaDojoWork2 = MemoryAlloc(sizeof(MakuhitaDojoWork2), 8);
sMakuhitaDojoWork2->s30.s0.unk34 = param_1;
sMakuhitaDojoWork2->s30.s0.winId = param_1;
sMakuhitaDojoWork2->s30.s0.unk38 = &sMakuhitaDojoWork2->s30.s0.windows.id[param_1];
RestoreSavedWindows(&sMakuhitaDojoWork2->s30.s0.windows);
sMakuhitaDojoWork2->s30.s0.windows.id[sMakuhitaDojoWork2->s30.s0.unk34] = sUnknown_80E0804;
sMakuhitaDojoWork2->s30.s0.unk38->header = &sMakuhitaDojoWork2->s30.unk9C;
sMakuhitaDojoWork2->s30.s0.windows.id[sMakuhitaDojoWork2->s30.s0.winId] = sUnknown_80E0804;
sMakuhitaDojoWork2->s30.s0.unk38->header = &sMakuhitaDojoWork2->s30.header;
if (param_2 != NULL)
sMakuhitaDojoWork2->s30.s0.windows.id[sMakuhitaDojoWork2->s30.s0.unk34].pos = *param_2;
sMakuhitaDojoWork2->s30.s0.windows.id[sMakuhitaDojoWork2->s30.s0.winId].pos = *param_2;
sub_8012D08(sMakuhitaDojoWork2->s30.s0.unk38, param_3);
ResetUnusedInputStruct();
@ -92,7 +92,7 @@ UNUSED static void sub_8030444(bool8 a0)
void sub_8030480(void)
{
if (sMakuhitaDojoWork2 != NULL) {
sMakuhitaDojoWork2->s30.s0.windows.id[sMakuhitaDojoWork2->s30.s0.unk34] = sUnknown_80E07EC;
sMakuhitaDojoWork2->s30.s0.windows.id[sMakuhitaDojoWork2->s30.s0.winId] = sUnknown_80E07EC;
ResetUnusedInputStruct();
ShowWindows(&sMakuhitaDojoWork2->s30.s0.windows, TRUE, TRUE);
MemoryFree(sMakuhitaDojoWork2);
@ -102,10 +102,10 @@ void sub_8030480(void)
static void sub_80304C8(void)
{
sMakuhitaDojoWork2->s30.unk9C.count = 1;
sMakuhitaDojoWork2->s30.unk9C.currId = 0;
sMakuhitaDojoWork2->s30.unk9C.width = 8;
sMakuhitaDojoWork2->s30.unk9C.f3 = 0;
sMakuhitaDojoWork2->s30.header.count = 1;
sMakuhitaDojoWork2->s30.header.currId = 0;
sMakuhitaDojoWork2->s30.header.width = 8;
sMakuhitaDojoWork2->s30.header.f3 = 0;
SUB_80095E4_CALL(sMakuhitaDojoWork2->s30.s0);
}
@ -120,10 +120,10 @@ static void MakuhitaDojo_DrawCourseList(void)
s32 i;
u8 buffer[256];
CallPrepareTextbox_8008C54(sMakuhitaDojoWork2->s30.s0.unk34);
sub_80073B8(sMakuhitaDojoWork2->s30.s0.unk34);
PrintStringOnWindow(10, 0, sCourses, sMakuhitaDojoWork2->s30.s0.unk34, 0);
sub_8012BC4((sMakuhitaDojoWork2->s30.unk9C.width * 8) + 4, 0, sMakuhitaDojoWork2->s30.s0.input.unk1E + 1, 2, 7, sMakuhitaDojoWork2->s30.s0.unk34);
CallPrepareTextbox_8008C54(sMakuhitaDojoWork2->s30.s0.winId);
sub_80073B8(sMakuhitaDojoWork2->s30.s0.winId);
PrintStringOnWindow(10, 0, sCourses, sMakuhitaDojoWork2->s30.s0.winId, 0);
sub_8012BC4((sMakuhitaDojoWork2->s30.header.width * 8) + 4, 0, sMakuhitaDojoWork2->s30.s0.input.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];
@ -134,13 +134,13 @@ static void MakuhitaDojo_DrawCourseList(void)
y = GetMenuEntryYCoord(&sMakuhitaDojoWork2->s30.s0.input, i);
color = COLOR_WHITE_2; // COLOR_WHITE again?
if ((bool8)IsMazeCompleted(mazeIndex)) {
PrintStringOnWindow(8, y, sStarBullet, sMakuhitaDojoWork2->s30.s0.unk34, 0);
PrintStringOnWindow(8, y, sStarBullet, sMakuhitaDojoWork2->s30.s0.winId, 0);
color = COLOR_GREEN;
}
sprintfStatic(buffer, sFmtColor, color, GetDungeonName1(dungeonIndex));
PrintStringOnWindow(16, y, buffer, sMakuhitaDojoWork2->s30.s0.unk34, 0);
PrintStringOnWindow(16, y, buffer, sMakuhitaDojoWork2->s30.s0.winId, 0);
}
sub_80073E0(sMakuhitaDojoWork2->s30.s0.unk34);
sub_80073E0(sMakuhitaDojoWork2->s30.s0.winId);
}
static s32 sub_8030668(void)

View File

@ -33,7 +33,7 @@ void CreatePartnerSelectionMenu(s16 starterID)
sub_803CEAC();
gUnknown_203B404->StarterID = starterID_s32;
gUnknown_203B404->s18.s0.unk34 = 0;
gUnknown_203B404->s18.s0.winId = 0;
gUnknown_203B404->s18.s0.unk38 = &gUnknown_203B404->s18.s0.windows.id[0];
gUnknown_203B404->s18.s0.windows.id[0] = gUnknown_80F4290;
@ -41,15 +41,15 @@ void CreatePartnerSelectionMenu(s16 starterID)
gUnknown_203B404->s18.s0.windows.id[2] = gUnknown_80F4278;
gUnknown_203B404->s18.s0.windows.id[3] = gUnknown_80F4278;
gUnknown_203B404->s18.s0.unk38->header = &gUnknown_203B404->s18.unk9C;
gUnknown_203B404->s18.s0.unk38->header = &gUnknown_203B404->s18.header;
gUnknown_203B404->s18.unk9C.count = 1;
gUnknown_203B404->s18.unk9C.currId = 0;
gUnknown_203B404->s18.unk9C.width = 6;
gUnknown_203B404->s18.unk9C.f3 = 0;
gUnknown_203B404->s18.header.count = 1;
gUnknown_203B404->s18.header.currId = 0;
gUnknown_203B404->s18.header.width = 6;
gUnknown_203B404->s18.header.f3 = 0;
ResetUnusedInputStruct();
ShowWindows(&gUnknown_203B404->s18.s0.windows, TRUE, TRUE);
sub_8013818(&gUnknown_203B404->s18.s0.input, GetValidPartners(), 10, gUnknown_203B404->s18.s0.unk34);
sub_8013818(&gUnknown_203B404->s18.s0.input, GetValidPartners(), 10, gUnknown_203B404->s18.s0.winId);
RedrawPartnerSelectionMenu();
PersonalityTest_DisplayPartnerSprite();
}
@ -91,7 +91,7 @@ UNUSED static void sub_803CE34(bool8 cursorSprite)
void sub_803CE6C(void)
{
gUnknown_203B404->s18.s0.windows.id[gUnknown_203B404->s18.s0.unk34] = gUnknown_80F4278;
gUnknown_203B404->s18.s0.windows.id[gUnknown_203B404->s18.s0.winId] = gUnknown_80F4278;
ResetUnusedInputStruct();
ShowWindows(&gUnknown_203B404->s18.s0.windows, TRUE, TRUE);
sub_803CECC();
@ -124,18 +124,18 @@ static void RedrawPartnerSelectionMenu(void)
SUB_80095E4_CALL(gUnknown_203B404->s18.s0);
CallPrepareTextbox_8008C54(gUnknown_203B404->s18.s0.unk34);
sub_80073B8(gUnknown_203B404->s18.s0.unk34);
PrintStringOnWindow(12, 0, gPartnerSelectionHeaderText, gUnknown_203B404->s18.s0.unk34, 0);
CallPrepareTextbox_8008C54(gUnknown_203B404->s18.s0.winId);
sub_80073B8(gUnknown_203B404->s18.s0.winId);
PrintStringOnWindow(12, 0, gPartnerSelectionHeaderText, gUnknown_203B404->s18.s0.winId, 0);
monCounter = 0;
while (monCounter < gUnknown_203B404->s18.s0.input.unk1A) {
yCoord = GetMenuEntryYCoord(&gUnknown_203B404->s18.s0.input, monCounter);
monName = GetMonSpecies(gUnknown_203B404->PartnerArray[monCounter]);
PrintStringOnWindow(8, yCoord, monName, gUnknown_203B404->s18.s0.unk34, 0);
PrintStringOnWindow(8, yCoord, monName, gUnknown_203B404->s18.s0.winId, 0);
monCounter++;
}
sub_80073E0(gUnknown_203B404->s18.s0.unk34);
sub_80073E0(gUnknown_203B404->s18.s0.winId);
gUnknown_203B404->unk16 = 1;
}

View File

@ -32,15 +32,15 @@ bool8 sub_802B640(u32 a0, DungeonPos *a1, u32 a2)
if (sUnknown_203B2CC == NULL)
sUnknown_203B2CC = MemoryAlloc(sizeof(struct unkStruct_203B2CC), 8);
sUnknown_203B2CC->s38.unk34 = a0;
sUnknown_203B2CC->s38.winId = a0;
sUnknown_203B2CC->s38.unk38 = &sUnknown_203B2CC->s38.windows.id[a0];
RestoreSavedWindows(&sUnknown_203B2CC->s38.windows);
sUnknown_203B2CC->s38.windows.id[sUnknown_203B2CC->s38.unk34] = sUnknown_80DFBEC;
sUnknown_203B2CC->s38.windows.id[sUnknown_203B2CC->s38.winId] = sUnknown_80DFBEC;
if (a1 != NULL)
sUnknown_203B2CC->s38.windows.id[sUnknown_203B2CC->s38.unk34].pos = *a1;
sUnknown_203B2CC->s38.windows.id[sUnknown_203B2CC->s38.winId].pos = *a1;
sub_8012D08(sUnknown_203B2CC->s38.unk38, a2);
ResetUnusedInputStruct();
@ -111,7 +111,7 @@ void sub_802B81C(void)
sUnknown_203B2D2 = sUnknown_203B2CC->s38.input.unk1E;
sUnknown_203B2CC->s38.windows.id[sUnknown_203B2CC->s38.unk34] = sUnknown_80DFBD0;
sUnknown_203B2CC->s38.windows.id[sUnknown_203B2CC->s38.winId] = sUnknown_80DFBD0;
ResetUnusedInputStruct();
ShowWindows(&sUnknown_203B2CC->s38.windows, TRUE, TRUE);
@ -133,22 +133,22 @@ static void CreatePKMNNewsMenu(void)
s32 new_index;
u8 mailIndex;
CallPrepareTextbox_8008C54(sUnknown_203B2CC->s38.unk34);
sub_80073B8(sUnknown_203B2CC->s38.unk34);
PrintStringOnWindow(10, 0, sNewsList, sUnknown_203B2CC->s38.unk34, 0);
CallPrepareTextbox_8008C54(sUnknown_203B2CC->s38.winId);
sub_80073B8(sUnknown_203B2CC->s38.winId);
PrintStringOnWindow(10, 0, sNewsList, sUnknown_203B2CC->s38.winId, 0);
sub_8012BC4((sUnknown_80DFBE8.width * 8) + 4, 0, sUnknown_203B2CC->s38.input.unk1E + 1, 2, 7, sUnknown_203B2CC->s38.unk34);
sub_8012BC4((sUnknown_80DFBE8.width * 8) + 4, 0, sUnknown_203B2CC->s38.input.unk1E + 1, 2, 7, sUnknown_203B2CC->s38.winId);
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;
mailIndex = sUnknown_203B2CC->receivedNewsletters[new_index];
sub_803B6B0(10, y, 6, sUnknown_203B2CC->s38.unk34);
sub_803B6B0(10, y, 6, sUnknown_203B2CC->s38.winId);
sub_802BC7C();
PrintFormattedStringOnWindow(21, y, GetPokemonMailHeadline(mailIndex), sUnknown_203B2CC->s38.unk34, 0);
PrintFormattedStringOnWindow(21, y, GetPokemonMailHeadline(mailIndex), sUnknown_203B2CC->s38.winId, 0);
}
sub_80073E0(sUnknown_203B2CC->s38.unk34);
sub_80073E0(sUnknown_203B2CC->s38.winId);
}
static s32 GetNumPKMNNews(void)

View File

@ -34,14 +34,14 @@ bool8 sub_802BD14(s32 a0, DungeonPos *a1, u32 a2)
if (sUnknown_203B2D8 == NULL)
sUnknown_203B2D8 = MemoryAlloc(sizeof(struct unkStruct_203B2D8), 8);
sUnknown_203B2D8->unk4.s0.unk34 = a0;
sUnknown_203B2D8->unk4.s0.winId = a0;
sUnknown_203B2D8->unk4.s0.unk38 = &sUnknown_203B2D8->unk4.s0.windows.id[a0];
RestoreSavedWindows(&sUnknown_203B2D8->unk4.s0.windows);
sUnknown_203B2D8->unk4.s0.windows.id[sUnknown_203B2D8->unk4.s0.unk34] = sUnknown_80DFC74;
sUnknown_203B2D8->unk4.s0.unk38->header = &sUnknown_203B2D8->unk4.unk9C;
sUnknown_203B2D8->unk4.s0.windows.id[sUnknown_203B2D8->unk4.s0.winId] = sUnknown_80DFC74;
sUnknown_203B2D8->unk4.s0.unk38->header = &sUnknown_203B2D8->unk4.header;
if (a1 != NULL)
sUnknown_203B2D8->unk4.s0.windows.id[sUnknown_203B2D8->unk4.s0.unk34].pos = *a1;
sUnknown_203B2D8->unk4.s0.windows.id[sUnknown_203B2D8->unk4.s0.winId].pos = *a1;
sub_8012D34(sUnknown_203B2D8->unk4.s0.unk38, a2);
ResetUnusedInputStruct();
@ -104,7 +104,7 @@ void sub_802BEDC(void)
{
if (sUnknown_203B2D8 != NULL) {
sUnknown_203B2DC = sUnknown_203B2D8->unk4.s0.input.menuIndex;
sUnknown_203B2D8->unk4.s0.windows.id[sUnknown_203B2D8->unk4.s0.unk34] = sUnknown_80DFC5C;
sUnknown_203B2D8->unk4.s0.windows.id[sUnknown_203B2D8->unk4.s0.winId] = sUnknown_80DFC5C;
ResetUnusedInputStruct();
ShowWindows(&sUnknown_203B2D8->unk4.s0.windows, TRUE, TRUE);
MemoryFree(sUnknown_203B2D8);
@ -114,10 +114,10 @@ void sub_802BEDC(void)
static void sub_802BF30(void)
{
sUnknown_203B2D8->unk4.unk9C.count = 1;
sUnknown_203B2D8->unk4.unk9C.currId = 0;
sUnknown_203B2D8->unk4.unk9C.width = 12;
sUnknown_203B2D8->unk4.unk9C.f3 = 0;
sUnknown_203B2D8->unk4.header.count = 1;
sUnknown_203B2D8->unk4.header.currId = 0;
sUnknown_203B2D8->unk4.header.width = 12;
sUnknown_203B2D8->unk4.header.f3 = 0;
SUB_8009614_CALL(sUnknown_203B2D8->unk4.s0);
}
@ -129,21 +129,21 @@ void CreateMailMenu(void)
unkStruct_802C39C local;
u8 buffer[128];
CallPrepareTextbox_8008C54(sUnknown_203B2D8->unk4.s0.unk34);
sub_80073B8(sUnknown_203B2D8->unk4.s0.unk34);
PrintStringOnWindow((sUnknown_203B2D8->unk4.s0.input.unk1E * 8) + 10, 0, sMailbox, sUnknown_203B2D8->unk4.s0.unk34, 0);
CallPrepareTextbox_8008C54(sUnknown_203B2D8->unk4.s0.winId);
sub_80073B8(sUnknown_203B2D8->unk4.s0.winId);
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]);
local.unk0[0] = sUnknown_203B2D8->unk4.s0.unk34;
local.unk0[0] = sUnknown_203B2D8->unk4.s0.winId;
local.y = GetMenuEntryYCoord(&sUnknown_203B2D8->unk4.s0.input, i);
if (mail->mailType == MAIL_TYPE_UNK1) {
y = GetMenuEntryYCoord(&sUnknown_203B2D8->unk4.s0.input, i);
sub_803B6B0(10, y, 6, sUnknown_203B2D8->unk4.s0.unk34);
sub_803B6B0(10, y, 6, sUnknown_203B2D8->unk4.s0.winId);
PrintPokeNameToBuffer(gFormatBuffer_Monsters[0], GetPlayerPokemonStruct());
sprintfStatic(buffer, GetPokemonMailHeadline(mail->unk4.dungeon.floor), gFormatBuffer_Monsters[0]);
PrintStringOnWindow(21, y, buffer, sUnknown_203B2D8->unk4.s0.unk34, 0);
PrintStringOnWindow(21, y, buffer, sUnknown_203B2D8->unk4.s0.winId, 0);
}
else {
sub_803B35C(mail, &local);
@ -154,7 +154,7 @@ void CreateMailMenu(void)
}
}
sub_80073E0(sUnknown_203B2D8->unk4.s0.unk34);
sub_80073E0(sUnknown_203B2D8->unk4.s0.winId);
}
static s32 CountEmptyMailSlots(void)

View File

@ -30,11 +30,11 @@ bool8 sub_80211AC(u32 mode, u32 a1)
sWigglytuffShop1Work = MemoryAlloc(sizeof(WigglytuffShop1Work), 8);
sWigglytuffShop1Work->mode = mode;
sWigglytuffShop1Work->s40.s0.unk34 = a1;
sWigglytuffShop1Work->s40.s0.unk38 = &sWigglytuffShop1Work->s40.s0.windows.id[sWigglytuffShop1Work->s40.s0.unk34];
sWigglytuffShop1Work->s40.s0.winId = a1;
sWigglytuffShop1Work->s40.s0.unk38 = &sWigglytuffShop1Work->s40.s0.windows.id[sWigglytuffShop1Work->s40.s0.winId];
RestoreSavedWindows(&sWigglytuffShop1Work->s40.s0.windows);
sWigglytuffShop1Work->s40.s0.windows.id[sWigglytuffShop1Work->s40.s0.unk34] = sUnknown_80DC47C;
sWigglytuffShop1Work->s40.s0.unk38->header = &sWigglytuffShop1Work->s40.unk9C;
sWigglytuffShop1Work->s40.s0.windows.id[sWigglytuffShop1Work->s40.s0.winId] = sUnknown_80DC47C;
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);
@ -104,7 +104,7 @@ void sub_80213A0(void)
sUnknown_203B284 = sWigglytuffShop1Work->mode;
sUnknown_203B288 = sWigglytuffShop1Work->s40.s0.input.menuIndex;
sUnknown_203B28A = sWigglytuffShop1Work->s40.s0.input.unk1E;
sWigglytuffShop1Work->s40.s0.windows.id[sWigglytuffShop1Work->s40.s0.unk34] = sUnknown_80DC464;
sWigglytuffShop1Work->s40.s0.windows.id[sWigglytuffShop1Work->s40.s0.winId] = sUnknown_80DC464;
ResetUnusedInputStruct();
ShowWindows(&sWigglytuffShop1Work->s40.s0.windows, TRUE, TRUE);
MemoryFree(sWigglytuffShop1Work);
@ -114,10 +114,10 @@ void sub_80213A0(void)
static void sub_8021410(void)
{
sWigglytuffShop1Work->s40.unk9C.count = 1;
sWigglytuffShop1Work->s40.unk9C.currId = 0;
sWigglytuffShop1Work->s40.unk9C.width = 12;
sWigglytuffShop1Work->s40.unk9C.f3 = 0;
sWigglytuffShop1Work->s40.header.count = 1;
sWigglytuffShop1Work->s40.header.currId = 0;
sWigglytuffShop1Work->s40.header.width = 12;
sWigglytuffShop1Work->s40.header.f3 = 0;
ResetUnusedInputStruct();
ShowWindows(&sWigglytuffShop1Work->s40.s0.windows, TRUE, TRUE);
@ -131,11 +131,11 @@ void sub_8021494(void)
u8 buffer1[80];
u8 buffer2[80];
CallPrepareTextbox_8008C54(sWigglytuffShop1Work->s40.s0.unk34);
sub_80073B8(sWigglytuffShop1Work->s40.s0.unk34);
PrintStringOnWindow(10, 0, sFriendAreas, sWigglytuffShop1Work->s40.s0.unk34, 0);
CallPrepareTextbox_8008C54(sWigglytuffShop1Work->s40.s0.winId);
sub_80073B8(sWigglytuffShop1Work->s40.s0.winId);
PrintStringOnWindow(10, 0, sFriendAreas, sWigglytuffShop1Work->s40.s0.winId, 0);
sub_8012BC4((sWigglytuffShop1Work->s40.unk9C.width * 8) + 4, 0, sWigglytuffShop1Work->s40.s0.input.unk1E + 1, 1, 7, sWigglytuffShop1Work->s40.s0.unk34);
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];
@ -144,25 +144,25 @@ void sub_8021494(void)
WriteFriendAreaName(buffer1, friendAreaIndex, TRUE);
if (GetFriendAreaPrice(friendAreaIndex) <= gTeamInventoryRef->teamMoney)
PrintStringOnWindow(8,GetMenuEntryYCoord(&sWigglytuffShop1Work->s40.s0.input, i), buffer1, sWigglytuffShop1Work->s40.s0.unk34, 0);
PrintStringOnWindow(8,GetMenuEntryYCoord(&sWigglytuffShop1Work->s40.s0.input, i), buffer1, sWigglytuffShop1Work->s40.s0.winId, 0);
else {
sprintfStatic(buffer2, sFmtRedString, buffer1);
PrintStringOnWindow(8, GetMenuEntryYCoord(&sWigglytuffShop1Work->s40.s0.input, i), buffer2, sWigglytuffShop1Work->s40.s0.unk34, 0);
PrintStringOnWindow(8, GetMenuEntryYCoord(&sWigglytuffShop1Work->s40.s0.input, i), buffer2, sWigglytuffShop1Work->s40.s0.winId, 0);
}
}
else if (sWigglytuffShop1Work->mode == 0) {
if (gFriendAreas[friendAreaIndex] == TRUE)
PrintStringOnWindow(8, GetMenuEntryYCoord(&sWigglytuffShop1Work->s40.s0.input, i), GetFriendAreaName(friendAreaIndex), sWigglytuffShop1Work->s40.s0.unk34, 0);
PrintStringOnWindow(8, GetMenuEntryYCoord(&sWigglytuffShop1Work->s40.s0.input, i), GetFriendAreaName(friendAreaIndex), sWigglytuffShop1Work->s40.s0.winId, 0);
else {
sprintfStatic(buffer2, sFmtGreenString, GetFriendAreaName(friendAreaIndex));
PrintStringOnWindow(8, GetMenuEntryYCoord(&sWigglytuffShop1Work->s40.s0.input, i), buffer2, sWigglytuffShop1Work->s40.s0.unk34, 0);
PrintStringOnWindow(8, GetMenuEntryYCoord(&sWigglytuffShop1Work->s40.s0.input, i), buffer2, sWigglytuffShop1Work->s40.s0.winId, 0);
}
}
else
PrintStringOnWindow(8, GetMenuEntryYCoord(&sWigglytuffShop1Work->s40.s0.input, i), GetFriendAreaName(friendAreaIndex), sWigglytuffShop1Work->s40.s0.unk34, 0);
PrintStringOnWindow(8, GetMenuEntryYCoord(&sWigglytuffShop1Work->s40.s0.input, i), GetFriendAreaName(friendAreaIndex), sWigglytuffShop1Work->s40.s0.winId, 0);
}
sub_80073E0(sWigglytuffShop1Work->s40.s0.unk34);
sub_80073E0(sWigglytuffShop1Work->s40.s0.winId);
}
static s32 sub_8021664(void)

View File

@ -2,7 +2,7 @@
#include "globaldata.h"
#include "constants/communication_error_codes.h"
#include "code_80118A4.h"
#include "code_8023868.h"
#include "friend_list.h"
#include "code_8024458.h"
#include "code_8094F88.h"
#include "code_80A26CC.h"
@ -39,7 +39,7 @@ extern void sub_8031E10();
extern void sub_8031E00();
extern void sub_8031E10(void);
extern void sub_8031D70(u8, u32);
extern u32 sub_8023CE8(void);
extern u32 FriendList_GetPtr(void);
extern void sub_8030F58(u32);
extern void sub_8029B34(void);
extern void sub_8029AD8(void);
@ -401,7 +401,7 @@ void sub_80282FC(void)
MemoryFree(sUnknown_203B2C0);
sUnknown_203B2C0 = NULL;
sub_8031E10();
sub_8023C60();
FriendList_Free();
sub_803084C();
sub_80155F0();
sub_80310B4();
@ -454,17 +454,17 @@ void sub_8028348(void)
CreateDialogueBoxAndPortrait(gUnknown_80DDCBC, 0, 0,0x101);
break;
case SELECT_HELPER_POKEMON:
if(sub_8023CE8() == 0)
if(FriendList_GetPtr() == 0)
{
ResetUnusedInputStruct();
ShowWindows(NULL, TRUE, TRUE);
sub_8023868(3, 0, 0, 9);
FriendList_Init(3, 0, 0, 9);
}
break;
case 0x34:
RestoreSavedWindows(&sUnknown_203B2C0->unk35C);
SetMenuItems(sUnknown_203B2C0->unk21C, &sUnknown_203B2C0->unk35C, 3, &gUnknown_80DDAE4, gUnknown_80DDAFC, TRUE, 0, FALSE);
sub_8023DA4();
FriendList_ShowWindow();
sub_8035CF4(sUnknown_203B2C0->unk21C, 3, TRUE);
break;
case NO_POKEMON_IN_FRIEND_AREA:
@ -1559,20 +1559,20 @@ void sub_80297B8(void)
void sub_80297D4(void)
{
switch(sub_8023A94(TRUE))
switch(FriendList_HandleInput(TRUE))
{
case 2:
sub_8023C60();
FriendList_Free();
SetFriendRescueCounterState(FRIEND_RESCUE_MAIN);
sUnknown_203B2C0->speciesNum = -1;
break;
case 3:
sUnknown_203B2C0->speciesNum = sub_8023B44();
sUnknown_203B2C0->speciesNum = FriendList_GetCurrId();
SetFriendRescueCounterState(0x34);
break;
case 4:
sUnknown_203B2C0->fallbackState = SELECT_HELPER_POKEMON;
sUnknown_203B2C0->speciesNum = sub_8023B44();
sUnknown_203B2C0->speciesNum = FriendList_GetCurrId();
RestoreSavedWindows(&sUnknown_203B2C0->unk3BC);
ResetUnusedInputStruct();
ShowWindows(NULL, TRUE, TRUE);
@ -1586,7 +1586,7 @@ void sub_8029884(void)
{
s32 menuAction;
menuAction = -1;
sub_8023A94(FALSE);
FriendList_HandleInput(FALSE);
if(sub_8012FD8(&(sUnknown_203B2C0->unk21C[3])) == 0)
{
sub_8013114(&(sUnknown_203B2C0->unk21C[3]), &menuAction);
@ -1594,7 +1594,7 @@ void sub_8029884(void)
switch(menuAction)
{
case CONFIRM_ACTION:
sub_8023C60();
FriendList_Free();
SetFriendRescueCounterState(4);
break;
case INFO_ACTION:

View File

@ -85,16 +85,16 @@ u32 sub_80306A8(u32 wonderMailType, u32 r1, DungeonPos *r2, u32 r3)
gUnknown_203B320 = MemoryAlloc(sizeof(struct unkStruct_203B320), 8);
gUnknown_203B320->wonderMailType = wonderMailType;
gUnknown_203B320->s28.s0.unk34 = r1;
gUnknown_203B320->s28.s0.winId = r1;
gUnknown_203B320->s28.s0.unk38 = &gUnknown_203B320->s28.s0.windows.id[gUnknown_203B320->s28.s0.unk34];
gUnknown_203B320->s28.s0.unk38 = &gUnknown_203B320->s28.s0.windows.id[gUnknown_203B320->s28.s0.winId];
RestoreSavedWindows(&gUnknown_203B320->s28.s0.windows);
gUnknown_203B320->s28.s0.windows.id[gUnknown_203B320->s28.s0.unk34] = gUnknown_80E0854;
gUnknown_203B320->s28.s0.unk38->header = &gUnknown_203B320->s28.unk9C;
gUnknown_203B320->s28.s0.windows.id[gUnknown_203B320->s28.s0.winId] = gUnknown_80E0854;
gUnknown_203B320->s28.s0.unk38->header = &gUnknown_203B320->s28.header;
if (r2 != 0)
gUnknown_203B320->s28.s0.windows.id[gUnknown_203B320->s28.s0.unk34].pos = *r2;
gUnknown_203B320->s28.s0.windows.id[gUnknown_203B320->s28.s0.winId].pos = *r2;
sub_8012D08(gUnknown_203B320->s28.s0.unk38, r3);
ResetUnusedInputStruct();
@ -155,7 +155,7 @@ void sub_803084C(void)
{
if(gUnknown_203B320 != NULL)
{
gUnknown_203B320->s28.s0.windows.id[gUnknown_203B320->s28.s0.unk34] = gUnknown_80E083C;
gUnknown_203B320->s28.s0.windows.id[gUnknown_203B320->s28.s0.winId] = gUnknown_80E083C;
ResetUnusedInputStruct();
ShowWindows(&gUnknown_203B320->s28.s0.windows, TRUE, TRUE);
MemoryFree(gUnknown_203B320);
@ -170,10 +170,10 @@ u8 *sub_8030894(void)
void sub_80308A0(void)
{
gUnknown_203B320->s28.unk9C.count = gUnknown_203B320->s28.s0.input.unk20;
gUnknown_203B320->s28.unk9C.currId = gUnknown_203B320->s28.s0.input.unk1E;
gUnknown_203B320->s28.unk9C.width = 12;
gUnknown_203B320->s28.unk9C.f3 = 0;
gUnknown_203B320->s28.header.count = gUnknown_203B320->s28.s0.input.unk20;
gUnknown_203B320->s28.header.currId = gUnknown_203B320->s28.s0.input.unk1E;
gUnknown_203B320->s28.header.width = 12;
gUnknown_203B320->s28.header.f3 = 0;
ResetUnusedInputStruct();
ShowWindows(&gUnknown_203B320->s28.s0.windows, TRUE, TRUE);
@ -188,19 +188,19 @@ void sub_803092C(void)
s32 index;
unkStruct_802C39C local;
CallPrepareTextbox_8008C54(gUnknown_203B320->s28.s0.unk34);
sub_80073B8(gUnknown_203B320->s28.s0.unk34);
CallPrepareTextbox_8008C54(gUnknown_203B320->s28.s0.winId);
sub_80073B8(gUnknown_203B320->s28.s0.winId);
r4 = gUnknown_203B320->s28.s0.input.unk1E * 8;
r5 = r4;
r5 += 10;
PrintStringOnWindow(r5,0,gUnknown_80E086C[gUnknown_203B320->wonderMailType],gUnknown_203B320->s28.s0.unk34,0);
PrintStringOnWindow(r5,0,gUnknown_80E086C[gUnknown_203B320->wonderMailType],gUnknown_203B320->s28.s0.winId,0);
r4 += 4;
r5 = r4 + gUnknown_203B320->s28.unk9C.width * 8;
sub_8012BC4(r5,0,gUnknown_203B320->s28.s0.input.unk1E + 1,1,7,gUnknown_203B320->s28.s0.unk34);
r5 = r4 + gUnknown_203B320->s28.header.width * 8;
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]);
local.unk0[0] = gUnknown_203B320->s28.s0.unk34;
local.unk0[0] = gUnknown_203B320->s28.s0.winId;
local.y = GetMenuEntryYCoord(&gUnknown_203B320->s28.s0.input,index);
local.mailTitleType = 7;
local.mailMissionType = MISSION_TYPE_FRIEND_RESCUE;
@ -232,7 +232,7 @@ void sub_803092C(void)
}
CreateRescueTitle(&local);
}
sub_80073E0(gUnknown_203B320->s28.s0.unk34);
sub_80073E0(gUnknown_203B320->s28.s0.winId);
}
s32 sub_8030A74(void)

View File

@ -28,15 +28,15 @@ bool8 sub_802C10C(s32 a0, DungeonPos *a1, s32 a2)
if (gUnknown_203B2E0 == NULL)
gUnknown_203B2E0 = MemoryAlloc(sizeof(struct unkStruct_203B2E0), 8);
gUnknown_203B2E0->unk8.s0.unk34 = a0;
gUnknown_203B2E0->unk8.s0.winId = a0;
gUnknown_203B2E0->unk8.s0.unk38 = &gUnknown_203B2E0->unk8.s0.windows.id[a0];
RestoreSavedWindows(&gUnknown_203B2E0->unk8.s0.windows);
gUnknown_203B2E0->unk8.s0.windows.id[gUnknown_203B2E0->unk8.s0.unk34] = sUnknown_80DFCB4;
gUnknown_203B2E0->unk8.s0.unk38->header = &gUnknown_203B2E0->unk8.unk9C;
gUnknown_203B2E0->unk8.s0.windows.id[gUnknown_203B2E0->unk8.s0.winId] = sUnknown_80DFCB4;
gUnknown_203B2E0->unk8.s0.unk38->header = &gUnknown_203B2E0->unk8.header;
if (a1 != NULL)
gUnknown_203B2E0->unk8.s0.windows.id[gUnknown_203B2E0->unk8.s0.unk34].pos = *a1;
gUnknown_203B2E0->unk8.s0.windows.id[gUnknown_203B2E0->unk8.s0.winId].pos = *a1;
sub_8012D34(gUnknown_203B2E0->unk8.s0.unk38, a2);
ResetUnusedInputStruct();
@ -98,7 +98,7 @@ void sub_802C2D4(void)
{
if (gUnknown_203B2E0 != NULL) {
gUnknown_203B2E4 = gUnknown_203B2E0->unk8.s0.input.menuIndex;
gUnknown_203B2E0->unk8.s0.windows.id[gUnknown_203B2E0->unk8.s0.unk34] = sUnknown_80DFC9C;
gUnknown_203B2E0->unk8.s0.windows.id[gUnknown_203B2E0->unk8.s0.winId] = sUnknown_80DFC9C;
ResetUnusedInputStruct();
ShowWindows(&gUnknown_203B2E0->unk8.s0.windows, TRUE, TRUE);
MemoryFree(gUnknown_203B2E0);
@ -108,10 +108,10 @@ void sub_802C2D4(void)
static void sub_802C328(void)
{
gUnknown_203B2E0->unk8.unk9C.count = gUnknown_203B2E0->unk8.s0.input.unk20;
gUnknown_203B2E0->unk8.unk9C.currId = gUnknown_203B2E0->unk8.s0.input.unk1E;
gUnknown_203B2E0->unk8.unk9C.width = 12;
gUnknown_203B2E0->unk8.unk9C.f3 = 0;
gUnknown_203B2E0->unk8.header.count = gUnknown_203B2E0->unk8.s0.input.unk20;
gUnknown_203B2E0->unk8.header.currId = gUnknown_203B2E0->unk8.s0.input.unk1E;
gUnknown_203B2E0->unk8.header.width = 12;
gUnknown_203B2E0->unk8.header.f3 = 0;
SUB_8009614_CALL(gUnknown_203B2E0->unk8.s0);
}
@ -125,21 +125,21 @@ void DrawPelipperBoardJobMenu(void)
s32 i;
unkStruct_802C39C local;
CallPrepareTextbox_8008C54(gUnknown_203B2E0->unk8.s0.unk34);
sub_80073B8(gUnknown_203B2E0->unk8.s0.unk34);
CallPrepareTextbox_8008C54(gUnknown_203B2E0->unk8.s0.winId);
sub_80073B8(gUnknown_203B2E0->unk8.s0.winId);
iVar4 = gUnknown_203B2E0->unk8.s0.input.unk1E * 8;
x = iVar4;
x += 10;
PrintStringOnWindow(x, 0, sBulletinBoard, gUnknown_203B2E0->unk8.s0.unk34, 0);
PrintStringOnWindow(x, 0, sBulletinBoard, gUnknown_203B2E0->unk8.s0.winId, 0);
iVar4 += 4;
x = iVar4 + (gUnknown_203B2E0->unk8.unk9C.width * 8);
sub_8012BC4(x, 0, gUnknown_203B2E0->unk8.s0.input.unk1E + 1, 2, 7, gUnknown_203B2E0->unk8.s0.unk34);
x = iVar4 + (gUnknown_203B2E0->unk8.header.width * 8);
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]);
mail = GetPelipperBoardSlotInfo(slotIndex);
local.unk0[0] = gUnknown_203B2E0->unk8.s0.unk34;
local.unk0[0] = gUnknown_203B2E0->unk8.s0.winId;
local.y = GetMenuEntryYCoord(&gUnknown_203B2E0->unk8.s0.input, i);
sub_803B35C(mail, &local);
@ -149,7 +149,7 @@ void DrawPelipperBoardJobMenu(void)
CreateRescueTitle(&local);
}
sub_80073E0(gUnknown_203B2E0->unk8.s0.unk34);
sub_80073E0(gUnknown_203B2E0->unk8.s0.winId);
}
static s32 CountPelipperBoardSlots(void)

View File

@ -30,15 +30,15 @@ bool8 sub_802C4C8(s32 a0, DungeonPos *a1, u32 a2)
return FALSE;
gUnknown_203B2E8 = MemoryAlloc(sizeof(struct unkStruct_203B2E0), 8);
gUnknown_203B2E8->unk8.s0.unk34 = a0;
gUnknown_203B2E8->unk8.s0.winId = a0;
gUnknown_203B2E8->unk8.s0.unk38 = &gUnknown_203B2E8->unk8.s0.windows.id[a0];
RestoreSavedWindows(&gUnknown_203B2E8->unk8.s0.windows);
gUnknown_203B2E8->unk8.s0.windows.id[gUnknown_203B2E8->unk8.s0.unk34] = sUnknown_80DFCFC;
gUnknown_203B2E8->unk8.s0.unk38->header = &gUnknown_203B2E8->unk8.unk9C;
gUnknown_203B2E8->unk8.s0.windows.id[gUnknown_203B2E8->unk8.s0.winId] = sUnknown_80DFCFC;
gUnknown_203B2E8->unk8.s0.unk38->header = &gUnknown_203B2E8->unk8.header;
if (a1 != NULL)
gUnknown_203B2E8->unk8.s0.windows.id[gUnknown_203B2E8->unk8.s0.unk34].pos = *a1;
gUnknown_203B2E8->unk8.s0.windows.id[gUnknown_203B2E8->unk8.s0.winId].pos = *a1;
sub_8012D34(gUnknown_203B2E8->unk8.s0.unk38, a2);
ResetUnusedInputStruct();
@ -100,7 +100,7 @@ void sub_802C688(void)
{
if (gUnknown_203B2E8 != NULL) {
gUnknown_203B2EC = gUnknown_203B2E8->unk8.s0.input.menuIndex;
gUnknown_203B2E8->unk8.s0.windows.id[gUnknown_203B2E8->unk8.s0.unk34] = sUnknown_80DFCE4;
gUnknown_203B2E8->unk8.s0.windows.id[gUnknown_203B2E8->unk8.s0.winId] = sUnknown_80DFCE4;
ResetUnusedInputStruct();
ShowWindows(&gUnknown_203B2E8->unk8.s0.windows, TRUE, TRUE);
MemoryFree(gUnknown_203B2E8);
@ -110,10 +110,10 @@ void sub_802C688(void)
static void sub_802C6DC(void)
{
gUnknown_203B2E8->unk8.unk9C.count = gUnknown_203B2E8->unk8.s0.input.unk20;
gUnknown_203B2E8->unk8.unk9C.currId = gUnknown_203B2E8->unk8.s0.input.unk1E;
gUnknown_203B2E8->unk8.unk9C.width = 12;
gUnknown_203B2E8->unk8.unk9C.f3 = 0;
gUnknown_203B2E8->unk8.header.count = gUnknown_203B2E8->unk8.s0.input.unk20;
gUnknown_203B2E8->unk8.header.currId = gUnknown_203B2E8->unk8.s0.input.unk1E;
gUnknown_203B2E8->unk8.header.width = 12;
gUnknown_203B2E8->unk8.header.f3 = 0;
SUB_8009614_CALL(gUnknown_203B2E8->unk8.s0);
}
@ -126,26 +126,26 @@ void DrawJobListMenu(void)
s32 x;
unkStruct_802C39C local;
CallPrepareTextbox_8008C54(gUnknown_203B2E8->unk8.s0.unk34);
sub_80073B8(gUnknown_203B2E8->unk8.s0.unk34);
CallPrepareTextbox_8008C54(gUnknown_203B2E8->unk8.s0.winId);
sub_80073B8(gUnknown_203B2E8->unk8.s0.winId);
r4 = gUnknown_203B2E8->unk8.s0.input.unk1E * 8;
x = r4;
x += 10;
PrintStringOnWindow(x, 0, sJobList, gUnknown_203B2E8->unk8.s0.unk34, 0);
PrintStringOnWindow(x, 0, sJobList, gUnknown_203B2E8->unk8.s0.winId, 0);
r4 += 4;
x = r4 + (gUnknown_203B2E8->unk8.unk9C.width * 8);
sub_8012BC4(x, 0, gUnknown_203B2E8->unk8.s0.input.unk1E + 1, 2, 7, gUnknown_203B2E8->unk8.s0.unk34);
x = r4 + (gUnknown_203B2E8->unk8.header.width * 8);
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]);
local.unk0[0] = gUnknown_203B2E8->unk8.s0.unk34;
local.unk0[0] = gUnknown_203B2E8->unk8.s0.winId;
local.y = GetMenuEntryYCoord(&gUnknown_203B2E8->unk8.s0.input, i);
sub_803B35C(mail, &local);
CreateRescueTitle(&local);
}
sub_80073E0(gUnknown_203B2E8->unk8.s0.unk34);
sub_80073E0(gUnknown_203B2E8->unk8.s0.winId);
}
static s32 CountAcceptedJobs(void)

View File

@ -25,11 +25,11 @@ bool8 sub_802CDD4(u32 a0)
if (sUnknown_203B2F4 == NULL)
sUnknown_203B2F4 = MemoryAlloc(sizeof(struct_Sub80095E4_2), 8);
sUnknown_203B2F4->s0.unk34 = a0;
sUnknown_203B2F4->s0.unk38 = &sUnknown_203B2F4->s0.windows.id[sUnknown_203B2F4->s0.unk34];
sUnknown_203B2F4->s0.winId = a0;
sUnknown_203B2F4->s0.unk38 = &sUnknown_203B2F4->s0.windows.id[sUnknown_203B2F4->s0.winId];
RestoreSavedWindows(&sUnknown_203B2F4->s0.windows);
sUnknown_203B2F4->s0.windows.id[sUnknown_203B2F4->s0.unk34] = sUnknown_80DFDA4;
sUnknown_203B2F4->s0.unk38->header = &sUnknown_203B2F4->unk9C;
sUnknown_203B2F4->s0.windows.id[sUnknown_203B2F4->s0.winId] = sUnknown_80DFDA4;
sUnknown_203B2F4->s0.unk38->header = &sUnknown_203B2F4->header;
sub_8012D34(sUnknown_203B2F4->s0.unk38, 4);
ResetUnusedInputStruct();
ShowWindows(&sUnknown_203B2F4->s0.windows, TRUE, TRUE);
@ -82,7 +82,7 @@ void sub_802CED8(bool8 cursorSprite)
void sub_802CF14(void)
{
if (sUnknown_203B2F4 != NULL) {
sUnknown_203B2F4->s0.windows.id[sUnknown_203B2F4->s0.unk34] = sUnknown_80DFD8C;
sUnknown_203B2F4->s0.windows.id[sUnknown_203B2F4->s0.winId] = sUnknown_80DFD8C;
ResetUnusedInputStruct();
ShowWindows(&sUnknown_203B2F4->s0.windows, TRUE, TRUE);
MemoryFree(sUnknown_203B2F4);
@ -92,10 +92,10 @@ void sub_802CF14(void)
static void sub_802CF5C(void)
{
sUnknown_203B2F4->unk9C.count = sUnknown_203B2F4->s0.input.unk20;
sUnknown_203B2F4->unk9C.currId = sUnknown_203B2F4->s0.input.unk1E;
sUnknown_203B2F4->unk9C.width = 12;
sUnknown_203B2F4->unk9C.f3 = 0;
sUnknown_203B2F4->header.count = sUnknown_203B2F4->s0.input.unk20;
sUnknown_203B2F4->header.currId = sUnknown_203B2F4->s0.input.unk1E;
sUnknown_203B2F4->header.width = 12;
sUnknown_203B2F4->header.f3 = 0;
SUB_8009614_CALL(sUnknown_203B2F4->s0);
}
@ -107,20 +107,20 @@ void sub_802CFD0(void)
s32 r5;
s32 r4;
CallPrepareTextbox_8008C54(sUnknown_203B2F4->s0.unk34);
sub_80073B8(sUnknown_203B2F4->s0.unk34);
CallPrepareTextbox_8008C54(sUnknown_203B2F4->s0.winId);
sub_80073B8(sUnknown_203B2F4->s0.winId);
r5 = r4 = (sUnknown_203B2F4->s0.input.unk1E * 8) + 10;
PrintStringOnWindow(r5, 0, sRescueEvent, sUnknown_203B2F4->s0.unk34, 0);
PrintStringOnWindow(r5, 0, sRescueEvent, sUnknown_203B2F4->s0.winId, 0);
r4 -= 6;
r5 = r4 + (sUnknown_203B2F4->unk9C.width * 8);
sub_8012BC4(r5, 0, sUnknown_203B2F4->s0.input.unk1E + 1, 2, 7, sUnknown_203B2F4->s0.unk34);
r5 = r4 + (sUnknown_203B2F4->header.width * 8);
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);
local.unk0[0] = sUnknown_203B2F4->s0.unk34;
local.unk0[0] = sUnknown_203B2F4->s0.winId;
local.y = GetMenuEntryYCoord(&sUnknown_203B2F4->s0.input, r5);
sub_803B35C(&iVar1->mail, &local);
@ -129,5 +129,5 @@ void sub_802CFD0(void)
CreateRescueTitle(&local);
}
sub_80073E0(sUnknown_203B2F4->s0.unk34);
sub_80073E0(sUnknown_203B2F4->s0.winId);
}

View File

@ -2,7 +2,7 @@
.include "src/code_80035F0.o"
.include "src/code_8023144.o"
.include "src/code_8023868.o"
.include "src/friend_list.o"
.include "src/code_809A560.o"
.include "src/code_809C5C4.o"
.include "src/ground_map.o"