mirror of
https://github.com/pret/pmd-red.git
synced 2026-10-01 05:18:28 -05:00
fix instances of sub80095e4 memes
This commit is contained in:
@@ -4,18 +4,8 @@
|
||||
#include "structs/menu.h"
|
||||
#include "structs/str_text.h"
|
||||
|
||||
// size: 0xA0
|
||||
typedef struct AdventureLog
|
||||
{
|
||||
/* 0x0 */ MenuInputStruct input;
|
||||
u32 unk34;
|
||||
UnkTextStruct2 *unk38;
|
||||
UnkTextStruct2 unk3C[4];
|
||||
u8 unk9C[4];
|
||||
} AdventureLog;
|
||||
|
||||
void CleanAdventureLogScreen(void);
|
||||
bool8 CreateAdventureLogScreen(u32 kind);
|
||||
u32 HandleAdventureLogInput(bool8);
|
||||
|
||||
#endif // GUARD_ADVENTURE_LOG_H
|
||||
#endif // GUARD_ADVENTURE_LOG_H
|
||||
|
||||
@@ -4,16 +4,6 @@
|
||||
#include "structs/menu.h"
|
||||
#include "structs/str_text.h"
|
||||
|
||||
// size: 0xA0
|
||||
struct unkStruct_203B258
|
||||
{
|
||||
/* 0x0 */ MenuInputStruct input;
|
||||
u32 unk34;
|
||||
UnkTextStruct2 *unk38;
|
||||
UnkTextStruct2 unk3C[4];
|
||||
u8 unk9C[4];
|
||||
};
|
||||
|
||||
// size: 0x1C
|
||||
struct unkStruct_81188F0
|
||||
{
|
||||
@@ -32,4 +22,4 @@ u32 sub_801DA78(void);
|
||||
s16 sub_801DAC0(void);
|
||||
void sub_801DB0C(void);
|
||||
|
||||
#endif // GUARD_CODE_801D9E4_H
|
||||
#endif // GUARD_CODE_801D9E4_H
|
||||
|
||||
@@ -4,15 +4,6 @@
|
||||
#include "structs/menu.h"
|
||||
#include "structs/str_text.h"
|
||||
|
||||
// size: 0x9C
|
||||
struct unkStruct_203B264
|
||||
{
|
||||
MenuInputStruct input;
|
||||
u32 unk34;
|
||||
UnkTextStruct2 *unk38;
|
||||
UnkTextStruct2 unk3C[4];
|
||||
};
|
||||
|
||||
void CreateHintSelectionScreen(bool8 cursorSprite);
|
||||
s32 GetChosenHintIndex(void);
|
||||
|
||||
@@ -20,4 +11,4 @@ bool8 sub_801E3F0(u32);
|
||||
u32 sub_801E474(bool8);
|
||||
void sub_801E54C(void);
|
||||
|
||||
#endif // GUARD_HINTS_MENU1_H
|
||||
#endif // GUARD_HINTS_MENU1_H
|
||||
|
||||
@@ -4,16 +4,6 @@
|
||||
#include "structs/menu.h"
|
||||
#include "structs/str_text.h"
|
||||
|
||||
// size: 0xA0
|
||||
typedef struct unkStruct_203B214
|
||||
{
|
||||
/* 0x0 */ MenuInputStruct input;
|
||||
u32 unk34;
|
||||
UnkTextStruct2 *unk38;
|
||||
UnkTextStruct2 unk3C[4];
|
||||
u8 unk9C[4];
|
||||
} unkStruct_203B214;
|
||||
|
||||
bool8 sub_8019E40(u32);
|
||||
u32 sub_8019EDC(bool8);
|
||||
u8 sub_8019FB0(void);
|
||||
@@ -21,4 +11,4 @@ void sub_8019FCC(bool8);
|
||||
void sub_801A010(void);
|
||||
void sub_801A0D8(void);
|
||||
|
||||
#endif // GUARD_KECLEON_BROS2_H
|
||||
#endif // GUARD_KECLEON_BROS2_H
|
||||
|
||||
@@ -4,16 +4,6 @@
|
||||
#include "structs/menu.h"
|
||||
#include "structs/str_text.h"
|
||||
|
||||
// size: 0xA0
|
||||
typedef struct unkStruct_203B21C
|
||||
{
|
||||
/* 0x0 */ MenuInputStruct input;
|
||||
u32 unk34;
|
||||
UnkTextStruct2 *unk38;
|
||||
UnkTextStruct2 unk3C[4];
|
||||
u8 unk9C[4];
|
||||
} unkStruct_203B21C;
|
||||
|
||||
u8 sub_801A20C(u32);
|
||||
u32 sub_801A2A8(bool8);
|
||||
u8 sub_801A37C(void);
|
||||
@@ -21,4 +11,4 @@ void sub_801A398(bool8);
|
||||
void sub_801A3DC(void);
|
||||
void sub_801A4A4(void);
|
||||
|
||||
#endif // GUARD_KECLEON_BROS3_H
|
||||
#endif // GUARD_KECLEON_BROS3_H
|
||||
|
||||
@@ -4,16 +4,13 @@
|
||||
#include "constants/dungeon.h"
|
||||
#include "structs/menu.h"
|
||||
#include "structs/str_text.h"
|
||||
#include "structs/struct_sub80095e4.h"
|
||||
|
||||
// size: 0xD0
|
||||
typedef struct MakuhitaDojoWork2
|
||||
{
|
||||
s16 unk0[NUM_DUNGEON_MAZE];
|
||||
/* 0x30 */ MenuInputStruct input;
|
||||
u32 unk64;
|
||||
UnkTextStruct2 *unk68;
|
||||
UnkTextStruct2 unk6C[4];
|
||||
u8 unkCC[4];
|
||||
/* 0x30 */ struct_Sub80095E4_2 s30;
|
||||
} MakuhitaDojoWork2;
|
||||
|
||||
bool8 MakuhitaDojo_ReturnFalse(void);
|
||||
@@ -23,4 +20,4 @@ u32 sub_80303AC(bool8);
|
||||
s16 sub_8030418(void);
|
||||
void sub_8030480(void);
|
||||
|
||||
#endif // GUARD_MAKUHITA_DOJO2_H
|
||||
#endif // GUARD_MAKUHITA_DOJO2_H
|
||||
|
||||
@@ -4,15 +4,13 @@
|
||||
#include "constants/wonder_mail.h"
|
||||
#include "structs/menu.h"
|
||||
#include "structs/str_text.h"
|
||||
#include "structs/struct_sub80095e4.h"
|
||||
|
||||
// size: 0xD4;
|
||||
struct unkStruct_203B2CC
|
||||
{
|
||||
/* 0x0 */ u8 receivedNewsletters[NUM_POKEMON_NEWS];
|
||||
/* 0x38 */ MenuInputStruct input;
|
||||
u32 unk6C;
|
||||
UnkTextStruct2 *unk70;
|
||||
UnkTextStruct2 unk74[4];
|
||||
/* 0x38 */ struct_Sub80095E4 s38;
|
||||
};
|
||||
|
||||
u8 GetPokemonNewsIndex(void);
|
||||
@@ -23,4 +21,4 @@ u32 sub_802B720(bool8);
|
||||
void sub_802B7D0(bool8 cursorSprite);
|
||||
void sub_802B81C(void);
|
||||
|
||||
#endif // GUARD_POKEMON_NEWS1_H
|
||||
#endif // GUARD_POKEMON_NEWS1_H
|
||||
|
||||
44
include/structs/struct_sub80095e4.h
Normal file
44
include/structs/struct_sub80095e4.h
Normal file
@@ -0,0 +1,44 @@
|
||||
#ifndef GUARD_struct_sub80095e4_H
|
||||
#define GUARD_struct_sub80095e4_H
|
||||
|
||||
#include "structs/menu.h"
|
||||
#include "structs/str_text.h"
|
||||
|
||||
s32 sub_80095E4(s32 a0, s32 a1);
|
||||
|
||||
// Struct related with sub_80095E4
|
||||
typedef struct struct_Sub80095E4
|
||||
{
|
||||
/* 0x0 */ MenuInputStruct input;
|
||||
u32 unk34;
|
||||
UnkTextStruct2 *unk38;
|
||||
UnkTextStruct2 unk3C[4];
|
||||
// size: 0x9C
|
||||
} struct_Sub80095E4;
|
||||
|
||||
// Has 1 additional array.
|
||||
// size: 0xA0
|
||||
typedef struct struct_Sub80095E4_2
|
||||
{
|
||||
/* 0x0 */ struct_Sub80095E4 s0; // s as in 'struct' ; decided to go against unk as to not have `->unk0->unk3C`
|
||||
u8 unk9C[4];
|
||||
} struct_Sub80095E4_2;
|
||||
|
||||
// Note: In order to get matching ASM, this macro had to be created.
|
||||
// It's probable the code below is not exactly how it was originally written, but it generates the same asm.
|
||||
#define SUB_80095E4_CALL(ptr) \
|
||||
{ \
|
||||
s16 a0 = sub_80095E4((ptr).input.unk1A, 12) + 2; \
|
||||
UNUSED s32 a0_ = a0; \
|
||||
UNUSED s16 oldE = (ptr).unk3C[(ptr).unk34].unkE; \
|
||||
UNUSED s32 new10 = a0 + 2; \
|
||||
s16 newE = a0; \
|
||||
\
|
||||
(ptr).unk3C[(ptr).unk34].unkE = newE; \
|
||||
(ptr).unk3C[(ptr).unk34].unk10 = a0 + 2; \
|
||||
\
|
||||
ResetUnusedInputStruct(); \
|
||||
sub_800641C((ptr).unk3C, TRUE, TRUE); \
|
||||
}
|
||||
|
||||
#endif // GUARD_struct_sub80095e4_H
|
||||
@@ -10,10 +10,11 @@
|
||||
#include "menu_input.h"
|
||||
#include "text1.h"
|
||||
#include "text2.h"
|
||||
#include "structs/struct_sub80095e4.h"
|
||||
|
||||
extern u32 gUnknown_202DE30;
|
||||
|
||||
static EWRAM_DATA_2 AdventureLog *sAdventureLog = {0};
|
||||
static EWRAM_DATA_2 struct_Sub80095E4_2 *sAdventureLog = {0};
|
||||
|
||||
#include "data/adventure_log.h"
|
||||
|
||||
@@ -23,16 +24,16 @@ static void sub_8032084();
|
||||
|
||||
bool8 CreateAdventureLogScreen(u32 kind)
|
||||
{
|
||||
sAdventureLog = MemoryAlloc(sizeof(AdventureLog), 8);
|
||||
sAdventureLog->unk34 = kind;
|
||||
sAdventureLog->unk38 = &sAdventureLog->unk3C[kind];
|
||||
sub_8006518(sAdventureLog->unk3C);
|
||||
sAdventureLog->unk3C[sAdventureLog->unk34] = sUnknown_80E2008;
|
||||
sAdventureLog->unk38->unk14 = sAdventureLog->unk9C;
|
||||
sAdventureLog = MemoryAlloc(sizeof(*sAdventureLog), 8);
|
||||
sAdventureLog->s0.unk34 = kind;
|
||||
sAdventureLog->s0.unk38 = &sAdventureLog->s0.unk3C[kind];
|
||||
sub_8006518(sAdventureLog->s0.unk3C);
|
||||
sAdventureLog->s0.unk3C[sAdventureLog->s0.unk34] = sUnknown_80E2008;
|
||||
sAdventureLog->s0.unk38->unk14 = sAdventureLog->unk9C;
|
||||
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(sAdventureLog->unk3C, TRUE, TRUE);
|
||||
sub_8013818(&sAdventureLog->input, 0x20, 8, kind);
|
||||
sub_800641C(sAdventureLog->s0.unk3C, TRUE, TRUE);
|
||||
sub_8013818(&sAdventureLog->s0.input, 0x20, 8, kind);
|
||||
sub_8032084();
|
||||
DisplayAdventureLog();
|
||||
return TRUE;
|
||||
@@ -41,11 +42,11 @@ bool8 CreateAdventureLogScreen(u32 kind)
|
||||
u32 HandleAdventureLogInput(bool8 a0)
|
||||
{
|
||||
if (!a0) {
|
||||
sub_8013660(&sAdventureLog->input);
|
||||
sub_8013660(&sAdventureLog->s0.input);
|
||||
return 0;
|
||||
}
|
||||
|
||||
switch (GetKeyPress(&sAdventureLog->input)) {
|
||||
switch (GetKeyPress(&sAdventureLog->s0.input)) {
|
||||
case INPUT_B_BUTTON:
|
||||
PlayMenuSoundEffect(1);
|
||||
return 2;
|
||||
@@ -53,7 +54,7 @@ u32 HandleAdventureLogInput(bool8 a0)
|
||||
PlayMenuSoundEffect(0);
|
||||
return 3;
|
||||
default:
|
||||
if (sub_8013938(&sAdventureLog->input)) {
|
||||
if (sub_8013938(&sAdventureLog->s0.input)) {
|
||||
sub_8032084();
|
||||
DisplayAdventureLog();
|
||||
return 1;
|
||||
@@ -65,93 +66,23 @@ u32 HandleAdventureLogInput(bool8 a0)
|
||||
void CleanAdventureLogScreen(void)
|
||||
{
|
||||
if (sAdventureLog != NULL) {
|
||||
sAdventureLog->unk3C[sAdventureLog->unk34] = sUnknown_80E1FF0;
|
||||
sAdventureLog->s0.unk3C[sAdventureLog->s0.unk34] = sUnknown_80E1FF0;
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(sAdventureLog->unk3C, TRUE, TRUE);
|
||||
sub_800641C(sAdventureLog->s0.unk3C, TRUE, TRUE);
|
||||
MemoryFree(sAdventureLog);
|
||||
sAdventureLog = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef NONMATCHING // sub_80095E4 memes
|
||||
static void sub_8032084(void)
|
||||
{
|
||||
u32 sVar2;
|
||||
|
||||
sAdventureLog->unk9C[0] = sAdventureLog->unk20;
|
||||
sAdventureLog->unk9C[1] = sAdventureLog->unk0.unk1E;
|
||||
sAdventureLog->unk9C[0] = sAdventureLog->s0.input.unk20;
|
||||
sAdventureLog->unk9C[1] = sAdventureLog->s0.input.unk1E;
|
||||
sAdventureLog->unk9C[2] = 11;
|
||||
sAdventureLog->unk9C[3] = 0;
|
||||
// So a sign extend..
|
||||
sVar2 = sub_80095E4(sAdventureLog->unk0.unk1A, 12) + 2 << 0x10;
|
||||
// TODO needs asr r3, r0, r16
|
||||
// and lsr r0, r0, r16
|
||||
sAdventureLog->unk3C[sAdventureLog->unk34].unkE = sVar2;
|
||||
// Good past here except regs for this store
|
||||
sAdventureLog->unk3C[sAdventureLog->unk34].unk10 = sVar2 + 2;
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(sAdventureLog->unk3C, TRUE, TRUE);
|
||||
|
||||
SUB_80095E4_CALL(sAdventureLog->s0);
|
||||
}
|
||||
#else
|
||||
NAKED
|
||||
static void sub_8032084(void)
|
||||
{
|
||||
asm_unified("\tpush {r4,lr}\n"
|
||||
"\tldr r4, _080320F4\n"
|
||||
"\tldr r0, [r4]\n"
|
||||
"\tldrh r1, [r0, 0x20]\n"
|
||||
"\tadds r0, 0x9C\n"
|
||||
"\tmovs r2, 0\n"
|
||||
"\tstrb r1, [r0]\n"
|
||||
"\tldr r0, [r4]\n"
|
||||
"\tldrh r1, [r0, 0x1E]\n"
|
||||
"\tadds r0, 0x9D\n"
|
||||
"\tstrb r1, [r0]\n"
|
||||
"\tldr r0, [r4]\n"
|
||||
"\tadds r0, 0x9E\n"
|
||||
"\tmovs r1, 0xB\n"
|
||||
"\tstrb r1, [r0]\n"
|
||||
"\tldr r0, [r4]\n"
|
||||
"\tadds r0, 0x9F\n"
|
||||
"\tstrb r2, [r0]\n"
|
||||
"\tldr r0, [r4]\n"
|
||||
"\tmovs r1, 0x1A\n"
|
||||
"\tldrsh r0, [r0, r1]\n"
|
||||
"\tmovs r1, 0xC\n"
|
||||
"\tbl sub_80095E4\n"
|
||||
"\tadds r0, 0x2\n"
|
||||
"\tlsls r0, 16\n"
|
||||
"\tldr r2, [r4]\n"
|
||||
"\tldr r3, [r2, 0x34]\n"
|
||||
"\tlsls r1, r3, 1\n"
|
||||
"\tadds r1, r3\n"
|
||||
"\tlsls r1, 3\n"
|
||||
"\tadds r1, r2, r1\n"
|
||||
"\tadds r1, 0x4A\n"
|
||||
"\tasrs r3, r0, 16\n"
|
||||
"\tlsrs r0, 16\n"
|
||||
"\tstrh r0, [r1]\n"
|
||||
"\tldr r1, [r2, 0x34]\n"
|
||||
"\tlsls r0, r1, 1\n"
|
||||
"\tadds r0, r1\n"
|
||||
"\tlsls r0, 3\n"
|
||||
"\tadds r2, r0\n"
|
||||
"\tadds r3, 0x2\n"
|
||||
"\tadds r2, 0x4C\n"
|
||||
"\tstrh r3, [r2]\n"
|
||||
"\tbl ResetUnusedInputStruct\n"
|
||||
"\tldr r0, [r4]\n"
|
||||
"\tadds r0, 0x3C\n"
|
||||
"\tmovs r1, 0x1\n"
|
||||
"\tmovs r2, 0x1\n"
|
||||
"\tbl sub_800641C\n"
|
||||
"\tpop {r4}\n"
|
||||
"\tpop {r0}\n"
|
||||
"\tbx r0\n"
|
||||
"\t.align 2, 0\n"
|
||||
"_080320F4: .4byte sAdventureLog");
|
||||
}
|
||||
#endif
|
||||
|
||||
static void DisplayAdventureLog(void)
|
||||
{
|
||||
@@ -161,59 +92,59 @@ static void DisplayAdventureLog(void)
|
||||
u8 temp;
|
||||
s32 v1, v2, v3, v4, v5, v6;
|
||||
|
||||
sub_8008C54(sAdventureLog->unk34);
|
||||
sub_80073B8(sAdventureLog->unk34);
|
||||
r4 = sAdventureLog->input.unk1E * 8;
|
||||
sub_8008C54(sAdventureLog->s0.unk34);
|
||||
sub_80073B8(sAdventureLog->s0.unk34);
|
||||
r4 = sAdventureLog->s0.input.unk1E * 8;
|
||||
r6 = r4;
|
||||
r6 += 10;
|
||||
xxx_call_draw_string(r6, 0, sAdventureLogText, sAdventureLog->unk34, 0);
|
||||
xxx_call_draw_string(r6, 0, sAdventureLogText, sAdventureLog->s0.unk34, 0);
|
||||
|
||||
r4 += 4;
|
||||
r6 = r4 + (sAdventureLog->unk9C[2] * 8);
|
||||
sub_8012BC4(r6, 0, sAdventureLog->input.unk1E + 1, 1, 7, sAdventureLog->unk34);
|
||||
sub_8012BC4(r6, 0, sAdventureLog->s0.input.unk1E + 1, 1, 7, sAdventureLog->s0.unk34);
|
||||
|
||||
for (i = 0; i < sAdventureLog->input.unk1A; i++) {
|
||||
temp = (sAdventureLog->input.unk1E * sAdventureLog->input.unk1C) + i;
|
||||
for (i = 0; i < sAdventureLog->s0.input.unk1A; i++) {
|
||||
temp = (sAdventureLog->s0.input.unk1E * sAdventureLog->s0.input.unk1C) + i;
|
||||
|
||||
if (sub_8097710(temp)) {
|
||||
switch (temp) {
|
||||
case 12:
|
||||
v1 = sub_80978B8();
|
||||
gUnknown_202DE30 = (s16)v1;
|
||||
xxx_format_and_draw(8, sub_8013800(&sAdventureLog->input, i), GetAdventureLogLine(temp), sAdventureLog->unk34, 0);
|
||||
xxx_format_and_draw(8, sub_8013800(&sAdventureLog->s0.input, i), GetAdventureLogLine(temp), sAdventureLog->s0.unk34, 0);
|
||||
break;
|
||||
case 7:
|
||||
v2 = sub_8097880();
|
||||
gUnknown_202DE30 = (s16)v2;
|
||||
xxx_format_and_draw(8, sub_8013800(&sAdventureLog->input, i), GetAdventureLogLine(temp), sAdventureLog->unk34, 0);
|
||||
xxx_format_and_draw(8, sub_8013800(&sAdventureLog->s0.input, i), GetAdventureLogLine(temp), sAdventureLog->s0.unk34, 0);
|
||||
break;
|
||||
case 11:
|
||||
v3 = sub_8097838();
|
||||
gUnknown_202DE30 = (s16)v3;
|
||||
xxx_format_and_draw(8, sub_8013800(&sAdventureLog->input, i), GetAdventureLogLine(temp), sAdventureLog->unk34, 0);
|
||||
xxx_format_and_draw(8, sub_8013800(&sAdventureLog->s0.input, i), GetAdventureLogLine(temp), sAdventureLog->s0.unk34, 0);
|
||||
break;
|
||||
case 8:
|
||||
v4 = sub_80977B8();
|
||||
gUnknown_202DE30 = v4;
|
||||
xxx_format_and_draw(8, sub_8013800(&sAdventureLog->input, i), GetAdventureLogLine(temp), sAdventureLog->unk34, 0);
|
||||
xxx_format_and_draw(8, sub_8013800(&sAdventureLog->s0.input, i), GetAdventureLogLine(temp), sAdventureLog->s0.unk34, 0);
|
||||
break;
|
||||
case 9:
|
||||
v5 = sub_80977F8();
|
||||
gUnknown_202DE30 = v5;
|
||||
xxx_format_and_draw(8, sub_8013800(&sAdventureLog->input, i), GetAdventureLogLine(temp), sAdventureLog->unk34, 0);
|
||||
xxx_format_and_draw(8, sub_8013800(&sAdventureLog->s0.input, i), GetAdventureLogLine(temp), sAdventureLog->s0.unk34, 0);
|
||||
break;
|
||||
case 10:
|
||||
v6 = sub_8097870();
|
||||
gUnknown_202DE30 = (s16)v6;
|
||||
// fallthrough
|
||||
default:
|
||||
xxx_format_and_draw(8, sub_8013800(&sAdventureLog->input, i), GetAdventureLogLine(temp), sAdventureLog->unk34, 0);
|
||||
xxx_format_and_draw(8, sub_8013800(&sAdventureLog->s0.input, i), GetAdventureLogLine(temp), sAdventureLog->s0.unk34, 0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
xxx_call_draw_string(8, sub_8013800(&sAdventureLog->input, i), sPlaceholder, sAdventureLog->unk34, 0);
|
||||
xxx_call_draw_string(8, sub_8013800(&sAdventureLog->s0.input, i), sPlaceholder, sAdventureLog->s0.unk34, 0);
|
||||
}
|
||||
|
||||
sub_80073E0(sAdventureLog->unk34);
|
||||
sub_80073E0(sAdventureLog->s0.unk34);
|
||||
}
|
||||
|
||||
@@ -9,8 +9,9 @@
|
||||
#include "menu_input.h"
|
||||
#include "text1.h"
|
||||
#include "text2.h"
|
||||
#include "structs/struct_sub80095e4.h"
|
||||
|
||||
static EWRAM_DATA_2 struct unkStruct_203B258 *sUnknown_203B258 = {0};
|
||||
static EWRAM_DATA_2 struct struct_Sub80095E4_2 *sUnknown_203B258 = {0};
|
||||
|
||||
extern struct unkStruct_81188F0 gUnknown_81188F0[10];
|
||||
extern unkStruct_811BAF4 gUnknown_811BAF4[10];
|
||||
@@ -22,15 +23,15 @@ static void sub_801DBD4(void);
|
||||
|
||||
bool8 sub_801D9E4(void)
|
||||
{
|
||||
sUnknown_203B258 = MemoryAlloc(sizeof(struct unkStruct_203B258), 8);
|
||||
sUnknown_203B258->unk34 = 3;
|
||||
sUnknown_203B258->unk38 = &sUnknown_203B258->unk3C[3];
|
||||
sub_8006518(sUnknown_203B258->unk3C);
|
||||
sUnknown_203B258->unk3C[sUnknown_203B258->unk34] = sUnknown_80DBF88;
|
||||
sUnknown_203B258->unk38->unk14 = sUnknown_203B258->unk9C;
|
||||
sUnknown_203B258 = MemoryAlloc(sizeof(*sUnknown_203B258), 8);
|
||||
sUnknown_203B258->s0.unk34 = 3;
|
||||
sUnknown_203B258->s0.unk38 = &sUnknown_203B258->s0.unk3C[3];
|
||||
sub_8006518(sUnknown_203B258->s0.unk3C);
|
||||
sUnknown_203B258->s0.unk3C[sUnknown_203B258->s0.unk34] = sUnknown_80DBF88;
|
||||
sUnknown_203B258->s0.unk38->unk14 = sUnknown_203B258->unk9C;
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(sUnknown_203B258->unk3C, TRUE, TRUE);
|
||||
sub_8013818(&sUnknown_203B258->input, 229, 10, sUnknown_203B258->unk34);
|
||||
sub_800641C(sUnknown_203B258->s0.unk3C, TRUE, TRUE);
|
||||
sub_8013818(&sUnknown_203B258->s0.input, 229, 10, sUnknown_203B258->s0.unk34);
|
||||
sub_801DB54();
|
||||
sub_801DBD4();
|
||||
return TRUE;
|
||||
@@ -40,21 +41,21 @@ void sub_801DA58(s16 a0)
|
||||
{
|
||||
s32 cast;
|
||||
cast = a0;
|
||||
sub_8013878(&sUnknown_203B258->input, cast);
|
||||
sub_8013878(&sUnknown_203B258->s0.input, cast);
|
||||
sub_801DB54();
|
||||
sub_801DBD4();
|
||||
}
|
||||
|
||||
u32 sub_801DA78(void)
|
||||
{
|
||||
switch (GetKeyPress(&sUnknown_203B258->input)) {
|
||||
switch (GetKeyPress(&sUnknown_203B258->s0.input)) {
|
||||
case INPUT_B_BUTTON:
|
||||
PlayMenuSoundEffect(1);
|
||||
return 2;
|
||||
case INPUT_A_BUTTON:
|
||||
return 3;
|
||||
default:
|
||||
if (sub_80138B8(&sUnknown_203B258->input, 1)) {
|
||||
if (sub_80138B8(&sUnknown_203B258->s0.input, 1)) {
|
||||
sub_801DB54();
|
||||
sub_801DBD4();
|
||||
return 1;
|
||||
@@ -65,126 +66,73 @@ u32 sub_801DA78(void)
|
||||
|
||||
s16 sub_801DAC0(void)
|
||||
{
|
||||
return (sUnknown_203B258->input.unk1E * sUnknown_203B258->input.unk1C) + sUnknown_203B258->input.menuIndex;
|
||||
return (sUnknown_203B258->s0.input.unk1E * sUnknown_203B258->s0.input.unk1C) + sUnknown_203B258->s0.input.menuIndex;
|
||||
}
|
||||
|
||||
UNUSED static void sub_801DADC(bool8 a0)
|
||||
{
|
||||
sUnknown_203B258->input.unk22 = 229;
|
||||
sub_8013984(&sUnknown_203B258->input);
|
||||
sUnknown_203B258->s0.input.unk22 = 229;
|
||||
sub_8013984(&sUnknown_203B258->s0.input);
|
||||
sub_801DB54();
|
||||
sub_801DBD4();
|
||||
if (a0)
|
||||
AddMenuCursorSprite(&sUnknown_203B258->input);
|
||||
AddMenuCursorSprite(&sUnknown_203B258->s0.input);
|
||||
}
|
||||
|
||||
void sub_801DB0C(void)
|
||||
{
|
||||
if (sUnknown_203B258 != NULL) {
|
||||
sUnknown_203B258->unk3C[sUnknown_203B258->unk34] = sUnknown_80DBF70;
|
||||
sUnknown_203B258->s0.unk3C[sUnknown_203B258->s0.unk34] = sUnknown_80DBF70;
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(sUnknown_203B258->unk3C, TRUE, TRUE);
|
||||
sub_800641C(sUnknown_203B258->s0.unk3C, TRUE, TRUE);
|
||||
MemoryFree(sUnknown_203B258);
|
||||
sUnknown_203B258 = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
NAKED // sub_80095E4 memes
|
||||
static void sub_801DB54(void)
|
||||
{
|
||||
asm_unified(
|
||||
"\tpush {r4,lr}\n"
|
||||
"\tldr r4, _0801DBD0\n"
|
||||
"\tldr r0, [r4]\n"
|
||||
"\tadds r0, 0x9C\n"
|
||||
"\tmovs r2, 0\n"
|
||||
"\tmovs r1, 0x1\n"
|
||||
"\tstrb r1, [r0]\n"
|
||||
"\tldr r0, [r4]\n"
|
||||
"\tadds r0, 0x9D\n"
|
||||
"\tstrb r2, [r0]\n"
|
||||
"\tldr r0, [r4]\n"
|
||||
"\tadds r0, 0x9E\n"
|
||||
"\tmovs r1, 0x8\n"
|
||||
"\tstrb r1, [r0]\n"
|
||||
"\tldr r0, [r4]\n"
|
||||
"\tadds r0, 0x9F\n"
|
||||
"\tstrb r2, [r0]\n"
|
||||
"\tbl ResetUnusedInputStruct\n"
|
||||
"\tldr r0, [r4]\n"
|
||||
"\tadds r0, 0x3C\n"
|
||||
"\tmovs r1, 0x1\n"
|
||||
"\tmovs r2, 0x1\n"
|
||||
"\tbl sub_800641C\n"
|
||||
"\tldr r0, [r4]\n"
|
||||
"\tmovs r1, 0x1A\n"
|
||||
"\tldrsh r0, [r0, r1]\n"
|
||||
"\tmovs r1, 0xC\n"
|
||||
"\tbl sub_80095E4\n"
|
||||
"\tadds r0, 0x2\n"
|
||||
"\tlsls r0, 16\n"
|
||||
"\tldr r2, [r4]\n"
|
||||
"\tldr r3, [r2, 0x34]\n"
|
||||
"\tlsls r1, r3, 1\n"
|
||||
"\tadds r1, r3\n"
|
||||
"\tlsls r1, 3\n"
|
||||
"\tadds r1, r2, r1\n"
|
||||
"\tadds r1, 0x4A\n"
|
||||
"\tasrs r3, r0, 16\n"
|
||||
"\tlsrs r0, 16\n"
|
||||
"\tstrh r0, [r1]\n"
|
||||
"\tldr r1, [r2, 0x34]\n"
|
||||
"\tlsls r0, r1, 1\n"
|
||||
"\tadds r0, r1\n"
|
||||
"\tlsls r0, 3\n"
|
||||
"\tadds r2, r0\n"
|
||||
"\tadds r3, 0x2\n"
|
||||
"\tadds r2, 0x4C\n"
|
||||
"\tstrh r3, [r2]\n"
|
||||
"\tbl ResetUnusedInputStruct\n"
|
||||
"\tldr r0, [r4]\n"
|
||||
"\tadds r0, 0x3C\n"
|
||||
"\tmovs r1, 0x1\n"
|
||||
"\tmovs r2, 0x1\n"
|
||||
"\tbl sub_800641C\n"
|
||||
"\tpop {r4}\n"
|
||||
"\tpop {r0}\n"
|
||||
"\tbx r0\n"
|
||||
"\t.align 2, 0\n"
|
||||
"_0801DBD0: .4byte sUnknown_203B258");
|
||||
sUnknown_203B258->unk9C[0] = 1;
|
||||
sUnknown_203B258->unk9C[1] = 0;
|
||||
sUnknown_203B258->unk9C[2] = 8;
|
||||
sUnknown_203B258->unk9C[3] = 0;
|
||||
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(sUnknown_203B258->s0.unk3C, TRUE, TRUE);
|
||||
|
||||
SUB_80095E4_CALL(sUnknown_203B258->s0);
|
||||
}
|
||||
|
||||
static void sub_801DBD4(void)
|
||||
{
|
||||
unkStruct_811BAF4 *temp;
|
||||
struct unkStruct_81188F0 *temp2;
|
||||
s32 y;
|
||||
#ifndef NONMATCHING
|
||||
register s32 x asm("r4");
|
||||
#else
|
||||
s32 x;
|
||||
#endif
|
||||
s32 x, y, n;
|
||||
s16 index;
|
||||
int counter;
|
||||
|
||||
sub_8008C54(sUnknown_203B258->unk34);
|
||||
sub_80073B8(sUnknown_203B258->unk34);
|
||||
xxx_call_draw_string(10, 0, sField, sUnknown_203B258->unk34, 0); // Field
|
||||
sub_8008C54(sUnknown_203B258->s0.unk34);
|
||||
sub_80073B8(sUnknown_203B258->s0.unk34);
|
||||
xxx_call_draw_string(10, 0, sField, sUnknown_203B258->s0.unk34, 0); // Field
|
||||
|
||||
x = (sUnknown_203B258->unk9C[2] * 8) - 2;
|
||||
sub_8012BC4(x, 0, sUnknown_203B258->input.unk1E + 1, 2, 7, sUnknown_203B258->unk34);
|
||||
n = sUnknown_203B258->s0.input.unk1E + 1;
|
||||
sub_8012BC4(x, 0, n, 2, 7, sUnknown_203B258->s0.unk34);
|
||||
|
||||
for (counter = 0; counter < sUnknown_203B258->input.unk1A; counter++) {
|
||||
index = (sUnknown_203B258->input.unk1E * sUnknown_203B258->input.unk1C) + counter;
|
||||
// This line has no real effect. It's a magic 'fakematch' to fool agb into generating the same asm. Remove if you don't care about matching.
|
||||
if (x) { counter = 0; }
|
||||
|
||||
for (counter = 0; counter < sUnknown_203B258->s0.input.unk1A; counter++) {
|
||||
index = (sUnknown_203B258->s0.input.unk1E * sUnknown_203B258->s0.input.unk1C) + counter;
|
||||
temp = &gUnknown_811BAF4[index];
|
||||
temp2 = &gUnknown_81188F0[temp->unk4];
|
||||
|
||||
y = sub_8013800(&sUnknown_203B258->input, counter);
|
||||
xxx_call_draw_string(8, y, temp2->text1, sUnknown_203B258->unk34, 0);
|
||||
y = sub_8013800(&sUnknown_203B258->s0.input, counter);
|
||||
xxx_call_draw_string(8, y, temp2->text1, sUnknown_203B258->s0.unk34, 0);
|
||||
|
||||
y = sub_8013800(&sUnknown_203B258->input, counter);
|
||||
xxx_call_draw_string(62, y, temp->text, sUnknown_203B258->unk34, 0);
|
||||
y = sub_8013800(&sUnknown_203B258->s0.input, counter);
|
||||
xxx_call_draw_string(62, y, temp->text, sUnknown_203B258->s0.unk34, 0);
|
||||
}
|
||||
|
||||
sub_80073E0(sUnknown_203B258->unk34);
|
||||
}
|
||||
sub_80073E0(sUnknown_203B258->s0.unk34);
|
||||
}
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
#include "pokemon.h"
|
||||
#include "text1.h"
|
||||
#include "text2.h"
|
||||
#include "structs/struct_sub80095e4.h"
|
||||
|
||||
struct unkStruct_203B274
|
||||
{
|
||||
@@ -16,11 +17,7 @@ struct unkStruct_203B274
|
||||
PokemonStruct1 *pokeStruct;
|
||||
unkStruct_808E218_arg *unk4;
|
||||
unkStruct_808E218_arg unk8;
|
||||
MenuInputStruct input;
|
||||
s32 unk37C;
|
||||
UnkTextStruct2 *unk380;
|
||||
UnkTextStruct2 unk384[4];
|
||||
u8 unk3E4[4];
|
||||
struct_Sub80095E4_2 s348;
|
||||
};
|
||||
extern struct unkStruct_203B274 *gUnknown_203B274;
|
||||
|
||||
@@ -57,18 +54,18 @@ bool8 sub_801F428(s16 index, s32 param_2)
|
||||
gUnknown_203B274 = MemoryAlloc(sizeof(struct unkStruct_203B274), 0x8);
|
||||
gUnknown_203B274->pokeStruct = &gRecruitedPokemonRef->pokemon[index_s32];
|
||||
gUnknown_203B274->unk4 = &gUnknown_203B274->unk8;
|
||||
gUnknown_203B274->unk37C = param_2;
|
||||
gUnknown_203B274->unk380 = &gUnknown_203B274->unk384[gUnknown_203B274->unk37C];
|
||||
sub_8006518(gUnknown_203B274->unk384);
|
||||
gUnknown_203B274->unk384[gUnknown_203B274->unk37C] = sUnknown_80DC2C4;
|
||||
gUnknown_203B274->unk380->unk14 = gUnknown_203B274->unk3E4;
|
||||
gUnknown_203B274->unk3E4[0] = 1;
|
||||
gUnknown_203B274->unk3E4[1] = 0;
|
||||
gUnknown_203B274->unk3E4[2] = 0xC;
|
||||
gUnknown_203B274->unk3E4[3] = 0;
|
||||
gUnknown_203B274->s348.s0.unk34 = param_2;
|
||||
gUnknown_203B274->s348.s0.unk38 = &gUnknown_203B274->s348.s0.unk3C[gUnknown_203B274->s348.s0.unk34];
|
||||
sub_8006518(gUnknown_203B274->s348.s0.unk3C);
|
||||
gUnknown_203B274->s348.s0.unk3C[gUnknown_203B274->s348.s0.unk34] = sUnknown_80DC2C4;
|
||||
gUnknown_203B274->s348.s0.unk38->unk14 = gUnknown_203B274->s348.unk9C;
|
||||
gUnknown_203B274->s348.unk9C[0] = 1;
|
||||
gUnknown_203B274->s348.unk9C[1] = 0;
|
||||
gUnknown_203B274->s348.unk9C[2] = 0xC;
|
||||
gUnknown_203B274->s348.unk9C[3] = 0;
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gUnknown_203B274->unk384, TRUE, TRUE);
|
||||
sub_8013818(&gUnknown_203B274->input, sub_801F7E4(), 4, param_2);
|
||||
sub_800641C(gUnknown_203B274->s348.s0.unk3C, TRUE, TRUE);
|
||||
sub_8013818(&gUnknown_203B274->s348.s0.input, sub_801F7E4(), 4, param_2);
|
||||
sub_801F690();
|
||||
sub_801F700();
|
||||
return TRUE;
|
||||
@@ -77,11 +74,11 @@ bool8 sub_801F428(s16 index, s32 param_2)
|
||||
u32 sub_801F520(u8 param_1)
|
||||
{
|
||||
if (param_1 == 0) {
|
||||
sub_8013660(&gUnknown_203B274->input);
|
||||
sub_8013660(&gUnknown_203B274->s348.s0.input);
|
||||
return 0;
|
||||
}
|
||||
else {
|
||||
switch(GetKeyPress(&gUnknown_203B274->input))
|
||||
switch(GetKeyPress(&gUnknown_203B274->s348.s0.input))
|
||||
{
|
||||
case 2:
|
||||
PlayMenuSoundEffect(1);
|
||||
@@ -95,7 +92,7 @@ u32 sub_801F520(u8 param_1)
|
||||
default:
|
||||
break;
|
||||
}
|
||||
if (sub_80138B8(&gUnknown_203B274->input,1) != 0) {
|
||||
if (sub_80138B8(&gUnknown_203B274->s348.s0.input,1) != 0) {
|
||||
sub_801F690();
|
||||
sub_801F700();
|
||||
return 1;
|
||||
@@ -107,87 +104,36 @@ u32 sub_801F520(u8 param_1)
|
||||
}
|
||||
|
||||
u16 sub_801F5B4(void)
|
||||
{
|
||||
return gUnknown_203B274->unk4->unk0[gUnknown_203B274->input.unk1E * gUnknown_203B274->input.unk1C + gUnknown_203B274->input.menuIndex];
|
||||
{
|
||||
return gUnknown_203B274->unk4->unk0[gUnknown_203B274->s348.s0.input.unk1E * gUnknown_203B274->s348.s0.input.unk1C + gUnknown_203B274->s348.s0.input.menuIndex];
|
||||
}
|
||||
|
||||
void sub_801F5F0(bool8 r0)
|
||||
{
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gUnknown_203B274->unk384, FALSE, FALSE);
|
||||
sub_8013984(&gUnknown_203B274->input);
|
||||
sub_800641C(gUnknown_203B274->s348.s0.unk3C, FALSE, FALSE);
|
||||
sub_8013984(&gUnknown_203B274->s348.s0.input);
|
||||
sub_801F690();
|
||||
sub_801F700();
|
||||
if(r0)
|
||||
AddMenuCursorSprite(&gUnknown_203B274->input);
|
||||
AddMenuCursorSprite(&gUnknown_203B274->s348.s0.input);
|
||||
}
|
||||
|
||||
void sub_801F63C(void)
|
||||
{
|
||||
if(gUnknown_203B274 != NULL)
|
||||
{
|
||||
gUnknown_203B274->unk384[gUnknown_203B274->unk37C] = sUnknown_80DC2AC;
|
||||
gUnknown_203B274->s348.s0.unk3C[gUnknown_203B274->s348.s0.unk34] = sUnknown_80DC2AC;
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gUnknown_203B274->unk384, TRUE, TRUE);
|
||||
sub_800641C(gUnknown_203B274->s348.s0.unk3C, TRUE, TRUE);
|
||||
MemoryFree(gUnknown_203B274);
|
||||
gUnknown_203B274 = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
NAKED // sub_80095E4 memes
|
||||
void sub_801F690(void)
|
||||
{
|
||||
asm_unified(
|
||||
"\tpush {r4,r5,lr}\n"
|
||||
"\tldr r5, _0801F6F4\n"
|
||||
"\tldr r0, [r5]\n"
|
||||
"\tldr r1, _0801F6F8\n"
|
||||
"\tadds r0, r1\n"
|
||||
"\tmovs r2, 0\n"
|
||||
"\tldrsh r0, [r0, r2]\n"
|
||||
"\tmovs r1, 0xC\n"
|
||||
"\tbl sub_80095E4\n"
|
||||
"\tadds r0, 0x2\n"
|
||||
"\tlsls r0, 16\n"
|
||||
"\tldr r3, [r5]\n"
|
||||
"\tmovs r1, 0xDF\n"
|
||||
"\tlsls r1, 2\n"
|
||||
"\tadds r4, r3, r1\n"
|
||||
"\tldr r2, [r4]\n"
|
||||
"\tlsls r1, r2, 1\n"
|
||||
"\tadds r1, r2\n"
|
||||
"\tlsls r1, 3\n"
|
||||
"\tadds r1, r3, r1\n"
|
||||
"\tldr r2, _0801F6FC\n"
|
||||
"\tadds r1, r2\n"
|
||||
"\tasrs r2, r0, 16\n"
|
||||
"\tlsrs r0, 16\n"
|
||||
"\tstrh r0, [r1]\n"
|
||||
"\tldr r1, [r4]\n"
|
||||
"\tlsls r0, r1, 1\n"
|
||||
"\tadds r0, r1\n"
|
||||
"\tlsls r0, 3\n"
|
||||
"\tadds r3, r0\n"
|
||||
"\tadds r2, 0x2\n"
|
||||
"\tmovs r0, 0xE5\n"
|
||||
"\tlsls r0, 2\n"
|
||||
"\tadds r3, r0\n"
|
||||
"\tstrh r2, [r3]\n"
|
||||
"\tbl ResetUnusedInputStruct\n"
|
||||
"\tldr r0, [r5]\n"
|
||||
"\tmovs r1, 0xE1\n"
|
||||
"\tlsls r1, 2\n"
|
||||
"\tadds r0, r1\n"
|
||||
"\tmovs r1, 0x1\n"
|
||||
"\tmovs r2, 0x1\n"
|
||||
"\tbl sub_800641C\n"
|
||||
"\tpop {r4,r5}\n"
|
||||
"\tpop {r0}\n"
|
||||
"\tbx r0\n"
|
||||
"\t.align 2, 0\n"
|
||||
"_0801F6F4: .4byte gUnknown_203B274\n"
|
||||
"_0801F6F8: .4byte 0x00000362\n"
|
||||
"_0801F6FC: .4byte 0x00000392");
|
||||
SUB_80095E4_CALL(gUnknown_203B274->s348.s0);
|
||||
}
|
||||
|
||||
void sub_801F700(void)
|
||||
@@ -197,17 +143,17 @@ void sub_801F700(void)
|
||||
u8 buffer2 [48];
|
||||
u8 buffer1 [128];
|
||||
|
||||
sub_8008C54(gUnknown_203B274->unk37C);
|
||||
sub_80073B8(gUnknown_203B274->unk37C);
|
||||
sprintfStatic(buffer1,gUnknown_80DC2DC,gUnknown_203B274->input.unk1E + 1,gUnknown_203B274->input.unk20); // Moves Page: %d/%d
|
||||
xxx_call_draw_string(0x10,0,buffer1,gUnknown_203B274->unk37C,0);
|
||||
for(index = 0; index < gUnknown_203B274->input.unk1A; index++)
|
||||
sub_8008C54(gUnknown_203B274->s348.s0.unk34);
|
||||
sub_80073B8(gUnknown_203B274->s348.s0.unk34);
|
||||
sprintfStatic(buffer1,gUnknown_80DC2DC,gUnknown_203B274->s348.s0.input.unk1E + 1,gUnknown_203B274->s348.s0.input.unk20); // Moves Page: %d/%d
|
||||
xxx_call_draw_string(0x10,0,buffer1,gUnknown_203B274->s348.s0.unk34,0);
|
||||
for(index = 0; index < gUnknown_203B274->s348.s0.input.unk1A; index++)
|
||||
{
|
||||
sub_8092C84(buffer2,gUnknown_203B274->unk4->unk0[gUnknown_203B274->input.unk1E * gUnknown_203B274->input.unk1C + index]);
|
||||
y = sub_8013800(&gUnknown_203B274->input, index);
|
||||
xxx_call_draw_string(8,y,buffer2,gUnknown_203B274->unk37C,0);
|
||||
sub_8092C84(buffer2,gUnknown_203B274->unk4->unk0[gUnknown_203B274->s348.s0.input.unk1E * gUnknown_203B274->s348.s0.input.unk1C + index]);
|
||||
y = sub_8013800(&gUnknown_203B274->s348.s0.input, index);
|
||||
xxx_call_draw_string(8,y,buffer2,gUnknown_203B274->s348.s0.unk34,0);
|
||||
}
|
||||
sub_80073E0(gUnknown_203B274->unk37C);
|
||||
sub_80073E0(gUnknown_203B274->s348.s0.unk34);
|
||||
}
|
||||
|
||||
u32 sub_801F7E4(void)
|
||||
|
||||
@@ -8,8 +8,9 @@
|
||||
#include "menu_input.h"
|
||||
#include "text1.h"
|
||||
#include "text2.h"
|
||||
#include "structs/struct_sub80095e4.h"
|
||||
|
||||
static EWRAM_DATA_2 struct unkStruct_203B264 *sUnknown_203B264 = {0};
|
||||
static EWRAM_DATA_2 struct_Sub80095E4 *sUnknown_203B264 = {0};
|
||||
|
||||
#include "data/hints_menu1.h"
|
||||
|
||||
@@ -20,7 +21,7 @@ static void sub_801E594(void);
|
||||
bool8 sub_801E3F0(u32 a0)
|
||||
{
|
||||
if (sUnknown_203B264 == NULL)
|
||||
sUnknown_203B264 = MemoryAlloc(sizeof(struct unkStruct_203B264), 8);
|
||||
sUnknown_203B264 = MemoryAlloc(sizeof(*sUnknown_203B264), 8);
|
||||
|
||||
sUnknown_203B264->unk34 = a0;
|
||||
sUnknown_203B264->unk38 = &sUnknown_203B264->unk3C[a0];
|
||||
@@ -93,48 +94,9 @@ void sub_801E54C(void)
|
||||
}
|
||||
}
|
||||
|
||||
NAKED // sub_80095E4 memes
|
||||
static void sub_801E594(void)
|
||||
{
|
||||
asm_unified(
|
||||
"\tpush {r4,lr}\n"
|
||||
"\tldr r4, _0801E5E4\n"
|
||||
"\tldr r0, [r4]\n"
|
||||
"\tmovs r1, 0x1A\n"
|
||||
"\tldrsh r0, [r0, r1]\n"
|
||||
"\tmovs r1, 0xC\n"
|
||||
"\tbl sub_80095E4\n"
|
||||
"\tadds r0, 0x2\n"
|
||||
"\tlsls r0, 16\n"
|
||||
"\tldr r2, [r4]\n"
|
||||
"\tldr r3, [r2, 0x34]\n"
|
||||
"\tlsls r1, r3, 1\n"
|
||||
"\tadds r1, r3\n"
|
||||
"\tlsls r1, 3\n"
|
||||
"\tadds r1, r2, r1\n"
|
||||
"\tadds r1, 0x4A\n"
|
||||
"\tasrs r3, r0, 16\n"
|
||||
"\tlsrs r0, 16\n"
|
||||
"\tstrh r0, [r1]\n"
|
||||
"\tldr r1, [r2, 0x34]\n"
|
||||
"\tlsls r0, r1, 1\n"
|
||||
"\tadds r0, r1\n"
|
||||
"\tlsls r0, 3\n"
|
||||
"\tadds r2, r0\n"
|
||||
"\tadds r3, 0x2\n"
|
||||
"\tadds r2, 0x4C\n"
|
||||
"\tstrh r3, [r2]\n"
|
||||
"\tbl ResetUnusedInputStruct\n"
|
||||
"\tldr r0, [r4]\n"
|
||||
"\tadds r0, 0x3C\n"
|
||||
"\tmovs r1, 0x1\n"
|
||||
"\tmovs r2, 0x1\n"
|
||||
"\tbl sub_800641C\n"
|
||||
"\tpop {r4}\n"
|
||||
"\tpop {r0}\n"
|
||||
"\tbx r0\n"
|
||||
"\t.align 2, 0\n"
|
||||
"_0801E5E4: .4byte sUnknown_203B264");
|
||||
SUB_80095E4_CALL(*sUnknown_203B264);
|
||||
}
|
||||
|
||||
static void DrawHintSelectionMenu(void)
|
||||
@@ -152,4 +114,4 @@ static void DrawHintSelectionMenu(void)
|
||||
}
|
||||
|
||||
sub_80073E0(sUnknown_203B264->unk34);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,8 +10,9 @@
|
||||
#include "menu_input.h"
|
||||
#include "text1.h"
|
||||
#include "text2.h"
|
||||
#include "structs/struct_sub80095e4.h"
|
||||
|
||||
static EWRAM_DATA_2 unkStruct_203B214 *gUnknown_203B214 = {0};
|
||||
static EWRAM_DATA_2 struct_Sub80095E4_2 *gUnknown_203B214 = {0};
|
||||
static EWRAM_DATA_2 u16 gUnknown_203B218 = {0};
|
||||
|
||||
#include "data/kecleon_bros2.h"
|
||||
@@ -23,17 +24,17 @@ bool8 sub_8019E40(u32 r0)
|
||||
if (CountKecleonShopItems() == 0)
|
||||
return FALSE;
|
||||
|
||||
gUnknown_203B214 = MemoryAlloc(sizeof(unkStruct_203B214), 8);
|
||||
gUnknown_203B214->unk34 = r0;
|
||||
gUnknown_203B214->unk38 = &gUnknown_203B214->unk3C[gUnknown_203B214->unk34];
|
||||
sub_8006518(gUnknown_203B214->unk3C);
|
||||
gUnknown_203B214->unk3C[gUnknown_203B214->unk34] = sUnknown_80DB8CC;
|
||||
gUnknown_203B214->unk38->unk14 = gUnknown_203B214->unk9C;
|
||||
gUnknown_203B214 = MemoryAlloc(sizeof(*gUnknown_203B214), 8);
|
||||
gUnknown_203B214->s0.unk34 = r0;
|
||||
gUnknown_203B214->s0.unk38 = &gUnknown_203B214->s0.unk3C[gUnknown_203B214->s0.unk34];
|
||||
sub_8006518(gUnknown_203B214->s0.unk3C);
|
||||
gUnknown_203B214->s0.unk3C[gUnknown_203B214->s0.unk34] = sUnknown_80DB8CC;
|
||||
gUnknown_203B214->s0.unk38->unk14 = gUnknown_203B214->unk9C;
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gUnknown_203B214->unk3C, TRUE, TRUE);
|
||||
sub_8013818(&gUnknown_203B214->input, CountKecleonShopItems(), 10, r0);
|
||||
gUnknown_203B214->input.menuIndex = gUnknown_203B218;
|
||||
sub_8013984(&gUnknown_203B214->input);
|
||||
sub_800641C(gUnknown_203B214->s0.unk3C, TRUE, TRUE);
|
||||
sub_8013818(&gUnknown_203B214->s0.input, CountKecleonShopItems(), 10, r0);
|
||||
gUnknown_203B214->s0.input.menuIndex = gUnknown_203B218;
|
||||
sub_8013984(&gUnknown_203B214->s0.input);
|
||||
sub_801A064();
|
||||
sub_801A0D8();
|
||||
return TRUE;
|
||||
@@ -45,11 +46,11 @@ u32 sub_8019EDC(bool8 r0)
|
||||
BulkItem *item;
|
||||
|
||||
if (!r0) {
|
||||
sub_8013660(&gUnknown_203B214->input);
|
||||
sub_8013660(&gUnknown_203B214->s0.input);
|
||||
return 0;
|
||||
}
|
||||
|
||||
switch (GetKeyPress(&gUnknown_203B214->input)) {
|
||||
switch (GetKeyPress(&gUnknown_203B214->s0.input)) {
|
||||
case INPUT_B_BUTTON:
|
||||
PlayMenuSoundEffect(1);
|
||||
return 2;
|
||||
@@ -67,7 +68,7 @@ u32 sub_8019EDC(bool8 r0)
|
||||
PlayMenuSoundEffect(4);
|
||||
return 4;
|
||||
default:
|
||||
if (sub_80138B8(&gUnknown_203B214->input, 1) != FALSE) {
|
||||
if (sub_80138B8(&gUnknown_203B214->s0.input, 1) != FALSE) {
|
||||
sub_801A064();
|
||||
sub_801A0D8();
|
||||
return 1;
|
||||
@@ -78,110 +79,42 @@ u32 sub_8019EDC(bool8 r0)
|
||||
|
||||
u8 sub_8019FB0(void)
|
||||
{
|
||||
return (gUnknown_203B214->input.unk1E * gUnknown_203B214->input.unk1C) + (u8)gUnknown_203B214->input.menuIndex;
|
||||
return (gUnknown_203B214->s0.input.unk1E * gUnknown_203B214->s0.input.unk1C) + (u8)gUnknown_203B214->s0.input.menuIndex;
|
||||
}
|
||||
|
||||
void sub_8019FCC(bool8 r0)
|
||||
{
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gUnknown_203B214->unk3C, FALSE, FALSE);
|
||||
gUnknown_203B214->input.unk22 = CountKecleonShopItems();
|
||||
sub_8013984(&gUnknown_203B214->input);
|
||||
sub_800641C(gUnknown_203B214->s0.unk3C, FALSE, FALSE);
|
||||
gUnknown_203B214->s0.input.unk22 = CountKecleonShopItems();
|
||||
sub_8013984(&gUnknown_203B214->s0.input);
|
||||
sub_801A064();
|
||||
sub_801A0D8();
|
||||
if (r0)
|
||||
AddMenuCursorSprite(&gUnknown_203B214->input);
|
||||
AddMenuCursorSprite(&gUnknown_203B214->s0.input);
|
||||
}
|
||||
|
||||
void sub_801A010(void)
|
||||
{
|
||||
if (gUnknown_203B214 != NULL) {
|
||||
gUnknown_203B218 = gUnknown_203B214->input.menuIndex;
|
||||
gUnknown_203B214->unk3C[gUnknown_203B214->unk34] = sUnknown_80DB8B4;
|
||||
gUnknown_203B218 = gUnknown_203B214->s0.input.menuIndex;
|
||||
gUnknown_203B214->s0.unk3C[gUnknown_203B214->s0.unk34] = sUnknown_80DB8B4;
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gUnknown_203B214->unk3C, TRUE, TRUE);
|
||||
sub_800641C(gUnknown_203B214->s0.unk3C, TRUE, TRUE);
|
||||
MemoryFree(gUnknown_203B214);
|
||||
gUnknown_203B214 = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
#if NONMATCHING // sub_80095E4 memes https://decomp.me/scratch/VjeuO
|
||||
static void sub_801A064(void)
|
||||
{
|
||||
s16 val;
|
||||
|
||||
gUnknown_203B214->unk9C[0] = gUnknown_203B214->input.unk20;
|
||||
gUnknown_203B214->unk9C[1] = gUnknown_203B214->input.unk1E;
|
||||
gUnknown_203B214->unk9C[0] = gUnknown_203B214->s0.input.unk20;
|
||||
gUnknown_203B214->unk9C[1] = gUnknown_203B214->s0.input.unk1E;
|
||||
gUnknown_203B214->unk9C[2] = 10;
|
||||
gUnknown_203B214->unk9C[3] = 0;
|
||||
|
||||
val = sub_80095E4(gUnknown_203B214->input.unk1A, 12) + 2;
|
||||
gUnknown_203B214->unk3C[gUnknown_203B214->unk34].unkE = val;
|
||||
gUnknown_203B214->unk3C[gUnknown_203B214->unk34].unk10 = val + 2;
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gUnknown_203B214->unk3C, TRUE, TRUE);
|
||||
SUB_80095E4_CALL(gUnknown_203B214->s0);
|
||||
}
|
||||
#else
|
||||
NAKED
|
||||
static void sub_801A064(void)
|
||||
{
|
||||
asm_unified(
|
||||
"\tpush {r4,lr}\n"
|
||||
"\tldr r4, _0801A0D4\n"
|
||||
"\tldr r0, [r4]\n"
|
||||
"\tldrh r1, [r0, 0x20]\n"
|
||||
"\tadds r0, 0x9C\n"
|
||||
"\tmovs r2, 0\n"
|
||||
"\tstrb r1, [r0]\n"
|
||||
"\tldr r0, [r4]\n"
|
||||
"\tldrh r1, [r0, 0x1E]\n"
|
||||
"\tadds r0, 0x9D\n"
|
||||
"\tstrb r1, [r0]\n"
|
||||
"\tldr r0, [r4]\n"
|
||||
"\tadds r0, 0x9E\n"
|
||||
"\tmovs r1, 0xA\n"
|
||||
"\tstrb r1, [r0]\n"
|
||||
"\tldr r0, [r4]\n"
|
||||
"\tadds r0, 0x9F\n"
|
||||
"\tstrb r2, [r0]\n"
|
||||
"\tldr r0, [r4]\n"
|
||||
"\tmovs r1, 0x1A\n"
|
||||
"\tldrsh r0, [r0, r1]\n"
|
||||
"\tmovs r1, 0xC\n"
|
||||
"\tbl sub_80095E4\n"
|
||||
"\tadds r0, 0x2\n"
|
||||
"\tlsls r0, 16\n"
|
||||
"\tldr r2, [r4]\n"
|
||||
"\tldr r3, [r2, 0x34]\n"
|
||||
"\tlsls r1, r3, 1\n"
|
||||
"\tadds r1, r3\n"
|
||||
"\tlsls r1, 3\n"
|
||||
"\tadds r1, r2, r1\n"
|
||||
"\tadds r1, 0x4A\n"
|
||||
"\tasrs r3, r0, 16\n"
|
||||
"\tlsrs r0, 16\n"
|
||||
"\tstrh r0, [r1]\n"
|
||||
"\tldr r1, [r2, 0x34]\n"
|
||||
"\tlsls r0, r1, 1\n"
|
||||
"\tadds r0, r1\n"
|
||||
"\tlsls r0, 3\n"
|
||||
"\tadds r2, r0\n"
|
||||
"\tadds r3, 0x2\n"
|
||||
"\tadds r2, 0x4C\n"
|
||||
"\tstrh r3, [r2]\n"
|
||||
"\tbl ResetUnusedInputStruct\n"
|
||||
"\tldr r0, [r4]\n"
|
||||
"\tadds r0, 0x3C\n"
|
||||
"\tmovs r1, 0x1\n"
|
||||
"\tmovs r2, 0x1\n"
|
||||
"\tbl sub_800641C\n"
|
||||
"\tpop {r4}\n"
|
||||
"\tpop {r0}\n"
|
||||
"\tbx r0\n"
|
||||
"\t.align 2, 0\n"
|
||||
"_0801A0D4: .4byte gUnknown_203B214");
|
||||
}
|
||||
#endif // NONMATCHING
|
||||
|
||||
void sub_801A0D8(void)
|
||||
{
|
||||
@@ -195,12 +128,12 @@ void sub_801A0D8(void)
|
||||
Item item;
|
||||
u8 temp_calc;
|
||||
|
||||
sub_8008C54(gUnknown_203B214->unk34);
|
||||
sub_80073B8(gUnknown_203B214->unk34);
|
||||
xxx_call_draw_string((gUnknown_203B214->input.unk1E * 8) + 10, 0, sGoods, gUnknown_203B214->unk34, 0);
|
||||
sub_8008C54(gUnknown_203B214->s0.unk34);
|
||||
sub_80073B8(gUnknown_203B214->s0.unk34);
|
||||
xxx_call_draw_string((gUnknown_203B214->s0.input.unk1E * 8) + 10, 0, sGoods, gUnknown_203B214->s0.unk34, 0);
|
||||
|
||||
for (index = 0; index < gUnknown_203B214->input.unk1A; index++) {
|
||||
temp_calc = (gUnknown_203B214->input.unk1E * gUnknown_203B214->input.unk1C) + index;
|
||||
for (index = 0; index < gUnknown_203B214->s0.input.unk1A; index++) {
|
||||
temp_calc = (gUnknown_203B214->s0.input.unk1E * gUnknown_203B214->s0.input.unk1C) + index;
|
||||
heldItem = GetKecleonShopItem(temp_calc);
|
||||
item.id = heldItem->id;
|
||||
item.quantity = heldItem->quantity;
|
||||
@@ -213,15 +146,15 @@ void sub_801A0D8(void)
|
||||
buyPrice = GetStackBuyPrice(&item);
|
||||
|
||||
if (buyPrice <= gTeamInventoryRef->teamMoney) {
|
||||
y = sub_8013800(&gUnknown_203B214->input, index);
|
||||
xxx_call_draw_string(8, y, auStack204, gUnknown_203B214->unk34, 0);
|
||||
y = sub_8013800(&gUnknown_203B214->s0.input, index);
|
||||
xxx_call_draw_string(8, y, auStack204, gUnknown_203B214->s0.unk34, 0);
|
||||
}
|
||||
else {
|
||||
sprintfStatic(auStack112, sFmtRed, auStack204);
|
||||
y = sub_8013800(&gUnknown_203B214->input, index);
|
||||
xxx_call_draw_string(8, y, auStack112, gUnknown_203B214->unk34, 0);
|
||||
y = sub_8013800(&gUnknown_203B214->s0.input, index);
|
||||
xxx_call_draw_string(8, y, auStack112, gUnknown_203B214->s0.unk34, 0);
|
||||
}
|
||||
}
|
||||
|
||||
sub_80073E0(gUnknown_203B214->unk34);
|
||||
}
|
||||
sub_80073E0(gUnknown_203B214->s0.unk34);
|
||||
}
|
||||
|
||||
@@ -10,8 +10,9 @@
|
||||
#include "menu_input.h"
|
||||
#include "text1.h"
|
||||
#include "text2.h"
|
||||
#include "structs/struct_sub80095e4.h"
|
||||
|
||||
static EWRAM_DATA_2 unkStruct_203B21C *gUnknown_203B21C = {0};
|
||||
static EWRAM_DATA_2 struct_Sub80095E4_2 *gUnknown_203B21C = {0};
|
||||
static EWRAM_DATA_2 u16 gUnknown_203B220 = {0};
|
||||
|
||||
#include "data/kecleon_bros3.h"
|
||||
@@ -23,17 +24,17 @@ u8 sub_801A20C(u32 r0)
|
||||
if (CountKecleonWareItems() == 0)
|
||||
return 0;
|
||||
|
||||
gUnknown_203B21C = MemoryAlloc(sizeof(unkStruct_203B21C), 8);
|
||||
gUnknown_203B21C->unk34 = r0;
|
||||
gUnknown_203B21C->unk38 = &gUnknown_203B21C->unk3C[gUnknown_203B21C->unk34];
|
||||
sub_8006518(gUnknown_203B21C->unk3C);
|
||||
gUnknown_203B21C->unk3C[gUnknown_203B21C->unk34] = sUnknown_80DB914;
|
||||
gUnknown_203B21C->unk38->unk14 = gUnknown_203B21C->unk9C;
|
||||
gUnknown_203B21C = MemoryAlloc(sizeof(*gUnknown_203B21C), 8);
|
||||
gUnknown_203B21C->s0.unk34 = r0;
|
||||
gUnknown_203B21C->s0.unk38 = &gUnknown_203B21C->s0.unk3C[gUnknown_203B21C->s0.unk34];
|
||||
sub_8006518(gUnknown_203B21C->s0.unk3C);
|
||||
gUnknown_203B21C->s0.unk3C[gUnknown_203B21C->s0.unk34] = sUnknown_80DB914;
|
||||
gUnknown_203B21C->s0.unk38->unk14 = gUnknown_203B21C->unk9C;
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gUnknown_203B21C->unk3C, TRUE, TRUE);
|
||||
sub_8013818(&gUnknown_203B21C->input, CountKecleonWareItems(), 10, r0);
|
||||
gUnknown_203B21C->input.menuIndex = gUnknown_203B220;
|
||||
sub_8013984(&gUnknown_203B21C->input);
|
||||
sub_800641C(gUnknown_203B21C->s0.unk3C, TRUE, TRUE);
|
||||
sub_8013818(&gUnknown_203B21C->s0.input, CountKecleonWareItems(), 10, r0);
|
||||
gUnknown_203B21C->s0.input.menuIndex = gUnknown_203B220;
|
||||
sub_8013984(&gUnknown_203B21C->s0.input);
|
||||
sub_801A430();
|
||||
sub_801A4A4();
|
||||
return TRUE;
|
||||
@@ -45,11 +46,11 @@ u32 sub_801A2A8(bool8 r0)
|
||||
BulkItem *item;
|
||||
|
||||
if (!r0) {
|
||||
sub_8013660(&gUnknown_203B21C->input);
|
||||
sub_8013660(&gUnknown_203B21C->s0.input);
|
||||
return 0;
|
||||
}
|
||||
|
||||
switch (GetKeyPress(&gUnknown_203B21C->input)) {
|
||||
switch (GetKeyPress(&gUnknown_203B21C->s0.input)) {
|
||||
case INPUT_B_BUTTON:
|
||||
PlayMenuSoundEffect(1);
|
||||
return 2;
|
||||
@@ -68,7 +69,7 @@ u32 sub_801A2A8(bool8 r0)
|
||||
PlayMenuSoundEffect(4);
|
||||
return 4;
|
||||
default:
|
||||
if (sub_80138B8(&gUnknown_203B21C->input, 1) != 0) {
|
||||
if (sub_80138B8(&gUnknown_203B21C->s0.input, 1) != 0) {
|
||||
sub_801A430();
|
||||
sub_801A4A4();
|
||||
return 1;
|
||||
@@ -79,109 +80,42 @@ u32 sub_801A2A8(bool8 r0)
|
||||
|
||||
u8 sub_801A37C(void)
|
||||
{
|
||||
return (gUnknown_203B21C->input.unk1E * gUnknown_203B21C->input.unk1C) + gUnknown_203B21C->input.menuIndex;
|
||||
return (gUnknown_203B21C->s0.input.unk1E * gUnknown_203B21C->s0.input.unk1C) + gUnknown_203B21C->s0.input.menuIndex;
|
||||
}
|
||||
|
||||
void sub_801A398(bool8 r0)
|
||||
{
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gUnknown_203B21C->unk3C, FALSE, FALSE);
|
||||
gUnknown_203B21C->input.unk22 = CountKecleonWareItems();
|
||||
sub_8013984(&gUnknown_203B21C->input);
|
||||
sub_800641C(gUnknown_203B21C->s0.unk3C, FALSE, FALSE);
|
||||
gUnknown_203B21C->s0.input.unk22 = CountKecleonWareItems();
|
||||
sub_8013984(&gUnknown_203B21C->s0.input);
|
||||
sub_801A430();
|
||||
sub_801A4A4();
|
||||
if (r0)
|
||||
AddMenuCursorSprite(&gUnknown_203B21C->input);
|
||||
AddMenuCursorSprite(&gUnknown_203B21C->s0.input);
|
||||
}
|
||||
|
||||
void sub_801A3DC(void)
|
||||
{
|
||||
if (gUnknown_203B21C != NULL) {
|
||||
gUnknown_203B220 = gUnknown_203B21C->input.menuIndex;
|
||||
gUnknown_203B21C->unk3C[gUnknown_203B21C->unk34] = sUnknown_80DB8FC;
|
||||
gUnknown_203B220 = gUnknown_203B21C->s0.input.menuIndex;
|
||||
gUnknown_203B21C->s0.unk3C[gUnknown_203B21C->s0.unk34] = sUnknown_80DB8FC;
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gUnknown_203B21C->unk3C, TRUE, TRUE);
|
||||
sub_800641C(gUnknown_203B21C->s0.unk3C, TRUE, TRUE);
|
||||
MemoryFree(gUnknown_203B21C);
|
||||
gUnknown_203B21C = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
#if NONMATCHING // sub_80095E4 memes https://decomp.me/scratch/L78xC
|
||||
static void sub_801A430(void)
|
||||
{
|
||||
s16 val;
|
||||
|
||||
gUnknown_203B21C->unk9C[0] = gUnknown_203B21C->input.unk20;
|
||||
gUnknown_203B21C->unk9C[1] = gUnknown_203B21C->input.unk1E;
|
||||
gUnknown_203B21C->unk9C[0] = gUnknown_203B21C->s0.input.unk20;
|
||||
gUnknown_203B21C->unk9C[1] = gUnknown_203B21C->s0.input.unk1E;
|
||||
gUnknown_203B21C->unk9C[2] = 10;
|
||||
gUnknown_203B21C->unk9C[3] = 0;
|
||||
|
||||
val = sub_80095E4(gUnknown_203B21C->input.unk1A, 12) + 2;
|
||||
gUnknown_203B21C->unk3C[gUnknown_203B21C->unk34].unkE = val;
|
||||
gUnknown_203B21C->unk3C[gUnknown_203B21C->unk34].unk10 = val + 2;
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gUnknown_203B21C->unk3C, TRUE, TRUE);
|
||||
SUB_80095E4_CALL(gUnknown_203B21C->s0);
|
||||
}
|
||||
#else
|
||||
NAKED
|
||||
static void sub_801A430(void)
|
||||
{
|
||||
asm_unified("\tpush {r4,lr}\n"
|
||||
"\tldr r4, _0801A4A0\n"
|
||||
"\tldr r0, [r4]\n"
|
||||
"\tldrh r1, [r0, 0x20]\n"
|
||||
"\tadds r0, 0x9C\n"
|
||||
"\tmovs r2, 0\n"
|
||||
"\tstrb r1, [r0]\n"
|
||||
"\tldr r0, [r4]\n"
|
||||
"\tldrh r1, [r0, 0x1E]\n"
|
||||
"\tadds r0, 0x9D\n"
|
||||
"\tstrb r1, [r0]\n"
|
||||
"\tldr r0, [r4]\n"
|
||||
"\tadds r0, 0x9E\n"
|
||||
"\tmovs r1, 0xA\n"
|
||||
"\tstrb r1, [r0]\n"
|
||||
"\tldr r0, [r4]\n"
|
||||
"\tadds r0, 0x9F\n"
|
||||
"\tstrb r2, [r0]\n"
|
||||
"\tldr r0, [r4]\n"
|
||||
"\tmovs r1, 0x1A\n"
|
||||
"\tldrsh r0, [r0, r1]\n"
|
||||
"\tmovs r1, 0xC\n"
|
||||
"\tbl sub_80095E4\n"
|
||||
"\tadds r0, 0x2\n"
|
||||
"\tlsls r0, 16\n"
|
||||
"\tldr r2, [r4]\n"
|
||||
"\tldr r3, [r2, 0x34]\n"
|
||||
"\tlsls r1, r3, 1\n"
|
||||
"\tadds r1, r3\n"
|
||||
"\tlsls r1, 3\n"
|
||||
"\tadds r1, r2, r1\n"
|
||||
"\tadds r1, 0x4A\n"
|
||||
"\tasrs r3, r0, 16\n"
|
||||
"\tlsrs r0, 16\n"
|
||||
"\tstrh r0, [r1]\n"
|
||||
"\tldr r1, [r2, 0x34]\n"
|
||||
"\tlsls r0, r1, 1\n"
|
||||
"\tadds r0, r1\n"
|
||||
"\tlsls r0, 3\n"
|
||||
"\tadds r2, r0\n"
|
||||
"\tadds r3, 0x2\n"
|
||||
"\tadds r2, 0x4C\n"
|
||||
"\tstrh r3, [r2]\n"
|
||||
"\tbl ResetUnusedInputStruct\n"
|
||||
"\tldr r0, [r4]\n"
|
||||
"\tadds r0, 0x3C\n"
|
||||
"\tmovs r1, 0x1\n"
|
||||
"\tmovs r2, 0x1\n"
|
||||
"\tbl sub_800641C\n"
|
||||
"\tpop {r4}\n"
|
||||
"\tpop {r0}\n"
|
||||
"\tbx r0\n"
|
||||
"\t.align 2, 0\n"
|
||||
"_0801A4A0: .4byte gUnknown_203B21C");
|
||||
}
|
||||
#endif // NONMATCHING
|
||||
|
||||
void sub_801A4A4(void)
|
||||
{
|
||||
@@ -195,12 +129,12 @@ void sub_801A4A4(void)
|
||||
Item item;
|
||||
u8 temp_calc;
|
||||
|
||||
sub_8008C54(gUnknown_203B21C->unk34);
|
||||
sub_80073B8(gUnknown_203B21C->unk34);
|
||||
xxx_call_draw_string(gUnknown_203B21C->input.unk1E * 8 + 10, 0, sGoods, gUnknown_203B21C->unk34, 0);
|
||||
sub_8008C54(gUnknown_203B21C->s0.unk34);
|
||||
sub_80073B8(gUnknown_203B21C->s0.unk34);
|
||||
xxx_call_draw_string(gUnknown_203B21C->s0.input.unk1E * 8 + 10, 0, sGoods, gUnknown_203B21C->s0.unk34, 0);
|
||||
|
||||
for (index = 0; index < gUnknown_203B21C->input.unk1A; index++) {
|
||||
temp_calc = (gUnknown_203B21C->input.unk1E * gUnknown_203B21C->input.unk1C) + index;
|
||||
for (index = 0; index < gUnknown_203B21C->s0.input.unk1A; index++) {
|
||||
temp_calc = (gUnknown_203B21C->s0.input.unk1E * gUnknown_203B21C->s0.input.unk1C) + index;
|
||||
heldItem = GetKecleonWareItem(temp_calc);
|
||||
item.id = heldItem->id;
|
||||
item.quantity = heldItem->quantity;
|
||||
@@ -213,15 +147,15 @@ void sub_801A4A4(void)
|
||||
buyPrice = GetStackBuyPrice(&item);
|
||||
|
||||
if (buyPrice <= gTeamInventoryRef->teamMoney) {
|
||||
y = sub_8013800(&gUnknown_203B21C->input, index);
|
||||
xxx_call_draw_string(8, y, buffer1, gUnknown_203B21C->unk34, 0);
|
||||
y = sub_8013800(&gUnknown_203B21C->s0.input, index);
|
||||
xxx_call_draw_string(8, y, buffer1, gUnknown_203B21C->s0.unk34, 0);
|
||||
}
|
||||
else {
|
||||
sprintfStatic(buffer2, sFmtRed, buffer1);
|
||||
y = sub_8013800(&gUnknown_203B21C->input, index);
|
||||
xxx_call_draw_string(8, y, buffer2, gUnknown_203B21C->unk34, 0);
|
||||
y = sub_8013800(&gUnknown_203B21C->s0.input, index);
|
||||
xxx_call_draw_string(8, y, buffer2, gUnknown_203B21C->s0.unk34, 0);
|
||||
}
|
||||
}
|
||||
|
||||
sub_80073E0(gUnknown_203B21C->unk34);
|
||||
}
|
||||
sub_80073E0(gUnknown_203B21C->s0.unk34);
|
||||
}
|
||||
|
||||
@@ -31,19 +31,19 @@ bool8 sub_80302E8(s32 param_1, UnkTextStruct2_sub *param_2, u32 param_3)
|
||||
if (sMakuhitaDojoWork2 == NULL)
|
||||
sMakuhitaDojoWork2 = MemoryAlloc(sizeof(MakuhitaDojoWork2), 8);
|
||||
|
||||
sMakuhitaDojoWork2->unk64 = param_1;
|
||||
sMakuhitaDojoWork2->unk68 = &sMakuhitaDojoWork2->unk6C[param_1];
|
||||
sub_8006518(sMakuhitaDojoWork2->unk6C);
|
||||
sMakuhitaDojoWork2->unk6C[sMakuhitaDojoWork2->unk64] = sUnknown_80E0804;
|
||||
sMakuhitaDojoWork2->unk68->unk14 = sMakuhitaDojoWork2->unkCC;
|
||||
sMakuhitaDojoWork2->s30.s0.unk34 = param_1;
|
||||
sMakuhitaDojoWork2->s30.s0.unk38 = &sMakuhitaDojoWork2->s30.s0.unk3C[param_1];
|
||||
sub_8006518(sMakuhitaDojoWork2->s30.s0.unk3C);
|
||||
sMakuhitaDojoWork2->s30.s0.unk3C[sMakuhitaDojoWork2->s30.s0.unk34] = sUnknown_80E0804;
|
||||
sMakuhitaDojoWork2->s30.s0.unk38->unk14 = sMakuhitaDojoWork2->s30.unk9C;
|
||||
|
||||
if (param_2 != NULL)
|
||||
sMakuhitaDojoWork2->unk6C[sMakuhitaDojoWork2->unk64].unk8 = *param_2;
|
||||
sMakuhitaDojoWork2->s30.s0.unk3C[sMakuhitaDojoWork2->s30.s0.unk34].unk8 = *param_2;
|
||||
|
||||
sub_8012D08(sMakuhitaDojoWork2->unk68, param_3);
|
||||
sub_8012D08(sMakuhitaDojoWork2->s30.s0.unk38, param_3);
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(sMakuhitaDojoWork2->unk6C, TRUE, TRUE);
|
||||
sub_8013818(&sMakuhitaDojoWork2->input, sub_8030668(), param_3, param_1);
|
||||
sub_800641C(sMakuhitaDojoWork2->s30.s0.unk3C, TRUE, TRUE);
|
||||
sub_8013818(&sMakuhitaDojoWork2->s30.s0.input, sub_8030668(), param_3, param_1);
|
||||
sub_80304C8();
|
||||
MakuhitaDojo_DrawCourseList();
|
||||
return TRUE;
|
||||
@@ -52,11 +52,11 @@ bool8 sub_80302E8(s32 param_1, UnkTextStruct2_sub *param_2, u32 param_3)
|
||||
u32 sub_80303AC(bool8 param_1)
|
||||
{
|
||||
if (param_1 == FALSE) {
|
||||
sub_8013660(&sMakuhitaDojoWork2->input);
|
||||
sub_8013660(&sMakuhitaDojoWork2->s30.s0.input);
|
||||
return 0;
|
||||
}
|
||||
|
||||
switch (GetKeyPress(&sMakuhitaDojoWork2->input)) {
|
||||
switch (GetKeyPress(&sMakuhitaDojoWork2->s30.s0.input)) {
|
||||
case INPUT_B_BUTTON:
|
||||
PlayMenuSoundEffect(1);
|
||||
return 2;
|
||||
@@ -64,7 +64,7 @@ u32 sub_80303AC(bool8 param_1)
|
||||
PlayMenuSoundEffect(0);
|
||||
return 3;
|
||||
default:
|
||||
if (sub_80138B8(&sMakuhitaDojoWork2->input, 1)) {
|
||||
if (sub_80138B8(&sMakuhitaDojoWork2->s30.s0.input, 1)) {
|
||||
sub_80304C8();
|
||||
MakuhitaDojo_DrawCourseList();
|
||||
return 1;
|
||||
@@ -76,107 +76,39 @@ u32 sub_80303AC(bool8 param_1)
|
||||
|
||||
s16 sub_8030418(void)
|
||||
{
|
||||
return sMakuhitaDojoWork2->unk0[(sMakuhitaDojoWork2->input.unk1E * sMakuhitaDojoWork2->input.unk1C) + sMakuhitaDojoWork2->input.menuIndex];
|
||||
return sMakuhitaDojoWork2->unk0[(sMakuhitaDojoWork2->s30.s0.input.unk1E * sMakuhitaDojoWork2->s30.s0.input.unk1C) + sMakuhitaDojoWork2->s30.s0.input.menuIndex];
|
||||
}
|
||||
|
||||
UNUSED static void sub_8030444(bool8 a0)
|
||||
{
|
||||
sMakuhitaDojoWork2->input.unk22 = sub_8030668();
|
||||
sub_8013984(&sMakuhitaDojoWork2->input);
|
||||
sMakuhitaDojoWork2->s30.s0.input.unk22 = sub_8030668();
|
||||
sub_8013984(&sMakuhitaDojoWork2->s30.s0.input);
|
||||
sub_80304C8();
|
||||
MakuhitaDojo_DrawCourseList();
|
||||
if (a0)
|
||||
AddMenuCursorSprite(&sMakuhitaDojoWork2->input);
|
||||
AddMenuCursorSprite(&sMakuhitaDojoWork2->s30.s0.input);
|
||||
}
|
||||
|
||||
void sub_8030480(void)
|
||||
{
|
||||
if (sMakuhitaDojoWork2 != NULL) {
|
||||
sMakuhitaDojoWork2->unk6C[sMakuhitaDojoWork2->unk64] = sUnknown_80E07EC;
|
||||
sMakuhitaDojoWork2->s30.s0.unk3C[sMakuhitaDojoWork2->s30.s0.unk34] = sUnknown_80E07EC;
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(sMakuhitaDojoWork2->unk6C, TRUE, TRUE);
|
||||
sub_800641C(sMakuhitaDojoWork2->s30.s0.unk3C, TRUE, TRUE);
|
||||
MemoryFree(sMakuhitaDojoWork2);
|
||||
sMakuhitaDojoWork2 = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef NONMATCHING // sub_80095E4 memes https://decomp.me/scratch/lM7lE
|
||||
static void sub_80304C8(void)
|
||||
{
|
||||
s16 test;
|
||||
sMakuhitaDojoWork2->s30.unk9C[0] = 1;
|
||||
sMakuhitaDojoWork2->s30.unk9C[1] = 0;
|
||||
sMakuhitaDojoWork2->s30.unk9C[2] = 8;
|
||||
sMakuhitaDojoWork2->s30.unk9C[3] = 0;
|
||||
|
||||
sMakuhitaDojoWork2->unkCC[0] = 1;
|
||||
sMakuhitaDojoWork2->unkCC[1] = 0;
|
||||
sMakuhitaDojoWork2->unkCC[2] = 8;
|
||||
sMakuhitaDojoWork2->unkCC[3] = 0;
|
||||
|
||||
test = sub_80095E4(sMakuhitaDojoWork2->input.unk1A, 12) + 2;
|
||||
sMakuhitaDojoWork2->unk6C[sMakuhitaDojoWork2->unk64].unkE = test;
|
||||
sMakuhitaDojoWork2->unk6C[sMakuhitaDojoWork2->unk64].unk10 = test + 2;
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(sMakuhitaDojoWork2->unk6C, TRUE, TRUE);
|
||||
SUB_80095E4_CALL(sMakuhitaDojoWork2->s30.s0);
|
||||
}
|
||||
#else
|
||||
NAKED
|
||||
static void sub_80304C8(void)
|
||||
{
|
||||
asm_unified(
|
||||
"\tpush {r4,lr}\n"
|
||||
"\tldr r4, _08030538\n"
|
||||
"\tldr r0, [r4]\n"
|
||||
"\tadds r0, 0xCC\n"
|
||||
"\tmovs r2, 0\n"
|
||||
"\tmovs r1, 0x1\n"
|
||||
"\tstrb r1, [r0]\n"
|
||||
"\tldr r0, [r4]\n"
|
||||
"\tadds r0, 0xCD\n"
|
||||
"\tstrb r2, [r0]\n"
|
||||
"\tldr r0, [r4]\n"
|
||||
"\tadds r0, 0xCE\n"
|
||||
"\tmovs r1, 0x8\n"
|
||||
"\tstrb r1, [r0]\n"
|
||||
"\tldr r0, [r4]\n"
|
||||
"\tadds r0, 0xCF\n"
|
||||
"\tstrb r2, [r0]\n"
|
||||
"\tldr r0, [r4]\n"
|
||||
"\tadds r0, 0x4A\n"
|
||||
"\tmovs r1, 0\n"
|
||||
"\tldrsh r0, [r0, r1]\n"
|
||||
"\tmovs r1, 0xC\n"
|
||||
"\tbl sub_80095E4\n"
|
||||
"\tadds r0, 0x2\n"
|
||||
"\tlsls r0, 16\n"
|
||||
"\tldr r2, [r4]\n"
|
||||
"\tldr r3, [r2, 0x64]\n"
|
||||
"\tlsls r1, r3, 1\n"
|
||||
"\tadds r1, r3\n"
|
||||
"\tlsls r1, 3\n"
|
||||
"\tadds r1, r2, r1\n"
|
||||
"\tadds r1, 0x7A\n"
|
||||
"\tasrs r3, r0, 16\n"
|
||||
"\tlsrs r0, 16\n"
|
||||
"\tstrh r0, [r1]\n"
|
||||
"\tldr r1, [r2, 0x64]\n"
|
||||
"\tlsls r0, r1, 1\n"
|
||||
"\tadds r0, r1\n"
|
||||
"\tlsls r0, 3\n"
|
||||
"\tadds r2, r0\n"
|
||||
"\tadds r3, 0x2\n"
|
||||
"\tadds r2, 0x7C\n"
|
||||
"\tstrh r3, [r2]\n"
|
||||
"\tbl ResetUnusedInputStruct\n"
|
||||
"\tldr r0, [r4]\n"
|
||||
"\tadds r0, 0x6C\n"
|
||||
"\tmovs r1, 0x1\n"
|
||||
"\tmovs r2, 0x1\n"
|
||||
"\tbl sub_800641C\n"
|
||||
"\tpop {r4}\n"
|
||||
"\tpop {r0}\n"
|
||||
"\tbx r0\n"
|
||||
"\t.align 2, 0\n"
|
||||
"_08030538: .4byte sMakuhitaDojoWork2");
|
||||
}
|
||||
#endif // NONMATCHING
|
||||
|
||||
static void MakuhitaDojo_DrawCourseList(void)
|
||||
{
|
||||
@@ -188,27 +120,27 @@ static void MakuhitaDojo_DrawCourseList(void)
|
||||
s32 i;
|
||||
u8 buffer[256];
|
||||
|
||||
sub_8008C54(sMakuhitaDojoWork2->unk64);
|
||||
sub_80073B8(sMakuhitaDojoWork2->unk64);
|
||||
xxx_call_draw_string(10, 0, sCourses, sMakuhitaDojoWork2->unk64, 0);
|
||||
sub_8012BC4((sMakuhitaDojoWork2->unkCC[2] * 8) + 4, 0, sMakuhitaDojoWork2->input.unk1E + 1, 2, 7, sMakuhitaDojoWork2->unk64);
|
||||
sub_8008C54(sMakuhitaDojoWork2->s30.s0.unk34);
|
||||
sub_80073B8(sMakuhitaDojoWork2->s30.s0.unk34);
|
||||
xxx_call_draw_string(10, 0, sCourses, sMakuhitaDojoWork2->s30.s0.unk34, 0);
|
||||
sub_8012BC4((sMakuhitaDojoWork2->s30.unk9C[2] * 8) + 4, 0, sMakuhitaDojoWork2->s30.s0.input.unk1E + 1, 2, 7, sMakuhitaDojoWork2->s30.s0.unk34);
|
||||
|
||||
for (i = 0; i < sMakuhitaDojoWork2->input.unk1A; i++) {
|
||||
iVar6 = sMakuhitaDojoWork2->unk0[sMakuhitaDojoWork2->input.unk1E * sMakuhitaDojoWork2->input.unk1C + i];
|
||||
for (i = 0; i < sMakuhitaDojoWork2->s30.s0.input.unk1A; i++) {
|
||||
iVar6 = sMakuhitaDojoWork2->unk0[sMakuhitaDojoWork2->s30.s0.input.unk1E * sMakuhitaDojoWork2->s30.s0.input.unk1C + i];
|
||||
dungeonIndex = sub_80A2740(iVar6);
|
||||
|
||||
mazeIndex = sub_80A2668(iVar6);
|
||||
|
||||
y = sub_8013800(&sMakuhitaDojoWork2->input, i);
|
||||
y = sub_8013800(&sMakuhitaDojoWork2->s30.s0.input, i);
|
||||
color = COLOR_WHITE_2; // COLOR_WHITE again?
|
||||
if ((bool8)IsMazeCompleted(mazeIndex)) {
|
||||
xxx_call_draw_string(8, y, sStarBullet, sMakuhitaDojoWork2->unk64, 0);
|
||||
xxx_call_draw_string(8, y, sStarBullet, sMakuhitaDojoWork2->s30.s0.unk34, 0);
|
||||
color = COLOR_GREEN;
|
||||
}
|
||||
sprintfStatic(buffer, sFmtColor, color, GetDungeonName1(dungeonIndex));
|
||||
xxx_call_draw_string(16, y, buffer, sMakuhitaDojoWork2->unk64, 0);
|
||||
xxx_call_draw_string(16, y, buffer, sMakuhitaDojoWork2->s30.s0.unk34, 0);
|
||||
}
|
||||
sub_80073E0(sMakuhitaDojoWork2->unk64);
|
||||
sub_80073E0(sMakuhitaDojoWork2->s30.s0.unk34);
|
||||
}
|
||||
|
||||
static s32 sub_8030668(void)
|
||||
@@ -230,4 +162,4 @@ static s32 sub_8030668(void)
|
||||
bool8 MakuhitaDojo_ReturnFalse(void)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,14 +20,14 @@ const u8 UnkData_80D47C4[] = {0x01, 0x00, 0x10, 0x00};
|
||||
|
||||
const UnkTextStruct2 gUnknown_80D47C8[4] = {
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x06,
|
||||
0x06,
|
||||
0x02, 0x02,
|
||||
0x1a, 0x0c,
|
||||
0x0c, 0x00,
|
||||
UnkData_80D47C4,
|
||||
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x03,
|
||||
0x03,
|
||||
0x00, 0x00,
|
||||
0x00, 0x00,
|
||||
0x00, 0x00,
|
||||
@@ -173,7 +173,7 @@ void sub_8012BC4(u32 x, u32 y, s32 n, s32 len, u32 color, u32 a5)
|
||||
s32 *piVar4;
|
||||
s32 total_x;
|
||||
s32 decimal[8];
|
||||
|
||||
|
||||
total_x = 0;
|
||||
|
||||
ConvertToDecimal(decimal, n, len);
|
||||
@@ -238,7 +238,7 @@ void sub_8012CAC(UnkTextStruct2 *a0, const MenuItem *a1)
|
||||
#else
|
||||
s32 r0;
|
||||
#endif
|
||||
|
||||
|
||||
r7 = 0;
|
||||
r6 = 0;
|
||||
|
||||
@@ -479,7 +479,7 @@ void sub_8012EBC(MenuStruct *param_1)
|
||||
counter++;
|
||||
} while (menuItemsPtr->text != NULL);
|
||||
}
|
||||
|
||||
|
||||
sub_80073E0(param_1->index);
|
||||
param_1->unk4D = FALSE;
|
||||
}
|
||||
@@ -592,7 +592,7 @@ static void sub_8013134(MenuInputStruct *param_1, u32 menuItemCounter, u32 index
|
||||
UnkTextStruct1 *temp;
|
||||
|
||||
temp = &gUnknown_2027370[index];
|
||||
|
||||
|
||||
param_1->unk0 = index;
|
||||
param_1->menuIndex = 0;
|
||||
param_1->unk1A = menuItemCounter;
|
||||
@@ -833,7 +833,7 @@ static void sub_8013470(MenuInputStruct *a0)
|
||||
r1 = ptr->attrib3;
|
||||
r0 = r1 & (u16)~SPRITEOAM_MASK_TILENUM;
|
||||
r0 |= r2;
|
||||
|
||||
|
||||
r0 &= (u16)~SPRITEOAM_MASK_PRIORITY;
|
||||
|
||||
r5 = (u16)~SPRITEOAM_MASK_UNK6_4;
|
||||
@@ -886,7 +886,7 @@ static void sub_8013470(MenuInputStruct *a0)
|
||||
r1 = ptr->attrib3;
|
||||
r0 = r1 & (u16)~SPRITEOAM_MASK_TILENUM;
|
||||
r0 |= r2;
|
||||
|
||||
|
||||
r0 &= (u16)~SPRITEOAM_MASK_PRIORITY;
|
||||
|
||||
r5 = (u16)~SPRITEOAM_MASK_UNK6_4;
|
||||
@@ -936,7 +936,7 @@ void UpdateMenuCursorSpriteCoords(MenuInputStruct *param_1)
|
||||
}
|
||||
|
||||
void MoveMenuCursorDown(MenuInputStruct *param_1)
|
||||
{
|
||||
{
|
||||
param_1->unk24 = 0;
|
||||
|
||||
if (param_1->unk1A < 1)
|
||||
@@ -950,7 +950,7 @@ void MoveMenuCursorDown(MenuInputStruct *param_1)
|
||||
}
|
||||
|
||||
void sub_80136E0(MenuInputStruct *param_1, u8 param_2)
|
||||
{
|
||||
{
|
||||
param_1->unk24 = 0;
|
||||
|
||||
if (param_1->unk1A < 1)
|
||||
@@ -968,7 +968,7 @@ void sub_80136E0(MenuInputStruct *param_1, u8 param_2)
|
||||
}
|
||||
|
||||
void MoveMenuCursorUp(MenuInputStruct *param_1)
|
||||
{
|
||||
{
|
||||
param_1->unk24 = 0;
|
||||
|
||||
if (param_1->unk1A < 1)
|
||||
@@ -982,7 +982,7 @@ void MoveMenuCursorUp(MenuInputStruct *param_1)
|
||||
}
|
||||
|
||||
void sub_8013744(MenuInputStruct *param_1, u8 param_2)
|
||||
{
|
||||
{
|
||||
param_1->unk24 = 0;
|
||||
|
||||
if (param_1->unk1A < 1)
|
||||
@@ -1301,7 +1301,7 @@ u32 sub_8013BBC(unkStructFor8013AA0 *a0)
|
||||
a0->unk28.attrib2 |= temp;
|
||||
}
|
||||
AddSprite(&a0->unk28, 0x100, NULL, NULL);
|
||||
|
||||
|
||||
a0->unk28.attrib2 &= ~SPRITEOAM_MASK_MATRIXNUM;
|
||||
{
|
||||
u32 temp = a0->unk28.unk6;
|
||||
|
||||
@@ -32,26 +32,26 @@ bool8 sub_802B640(u32 a0, UnkTextStruct2_sub *a1, u32 a2)
|
||||
if (sUnknown_203B2CC == NULL)
|
||||
sUnknown_203B2CC = MemoryAlloc(sizeof(struct unkStruct_203B2CC), 8);
|
||||
|
||||
sUnknown_203B2CC->unk6C = a0;
|
||||
sUnknown_203B2CC->unk70 = &sUnknown_203B2CC->unk74[a0];
|
||||
sUnknown_203B2CC->s38.unk34 = a0;
|
||||
sUnknown_203B2CC->s38.unk38 = &sUnknown_203B2CC->s38.unk3C[a0];
|
||||
|
||||
sub_8006518(sUnknown_203B2CC->unk74);
|
||||
sub_8006518(sUnknown_203B2CC->s38.unk3C);
|
||||
|
||||
sUnknown_203B2CC->unk74[sUnknown_203B2CC->unk6C] = sUnknown_80DFBEC;
|
||||
sUnknown_203B2CC->s38.unk3C[sUnknown_203B2CC->s38.unk34] = sUnknown_80DFBEC;
|
||||
|
||||
if (a1 != NULL)
|
||||
sUnknown_203B2CC->unk74[sUnknown_203B2CC->unk6C].unk8 = *a1;
|
||||
sUnknown_203B2CC->s38.unk3C[sUnknown_203B2CC->s38.unk34].unk8 = *a1;
|
||||
|
||||
sub_8012D08(sUnknown_203B2CC->unk70, a2);
|
||||
sub_8012D08(sUnknown_203B2CC->s38.unk38, a2);
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(sUnknown_203B2CC->unk74, TRUE, TRUE);
|
||||
sub_800641C(sUnknown_203B2CC->s38.unk3C, TRUE, TRUE);
|
||||
|
||||
sub_8013818(&sUnknown_203B2CC->input, GetNumPKMNNews(), a2, a0);
|
||||
sub_8013818(&sUnknown_203B2CC->s38.input, GetNumPKMNNews(), a2, a0);
|
||||
|
||||
sUnknown_203B2CC->input.menuIndex = sUnknown_203B2D0;
|
||||
sUnknown_203B2CC->input.unk1E = sUnknown_203B2D2;
|
||||
sUnknown_203B2CC->s38.input.menuIndex = sUnknown_203B2D0;
|
||||
sUnknown_203B2CC->s38.input.unk1E = sUnknown_203B2D2;
|
||||
|
||||
sub_8013984(&sUnknown_203B2CC->input);
|
||||
sub_8013984(&sUnknown_203B2CC->s38.input);
|
||||
sub_802B880();
|
||||
CreatePKMNNewsMenu();
|
||||
|
||||
@@ -61,11 +61,11 @@ bool8 sub_802B640(u32 a0, UnkTextStruct2_sub *a1, u32 a2)
|
||||
u32 sub_802B720(bool8 a0)
|
||||
{
|
||||
if (!a0) {
|
||||
sub_8013660(&sUnknown_203B2CC->input);
|
||||
sub_8013660(&sUnknown_203B2CC->s38.input);
|
||||
return 0;
|
||||
}
|
||||
|
||||
switch (GetKeyPress(&sUnknown_203B2CC->input)) {
|
||||
switch (GetKeyPress(&sUnknown_203B2CC->s38.input)) {
|
||||
case INPUT_B_BUTTON:
|
||||
PlayMenuSoundEffect(1);
|
||||
return 2;
|
||||
@@ -77,7 +77,7 @@ u32 sub_802B720(bool8 a0)
|
||||
return 4;
|
||||
}
|
||||
|
||||
if (sub_80138B8(&sUnknown_203B2CC->input, 1)) {
|
||||
if (sub_80138B8(&sUnknown_203B2CC->s38.input, 1)) {
|
||||
sub_802B880();
|
||||
CreatePKMNNewsMenu();
|
||||
return 1;
|
||||
@@ -87,83 +87,43 @@ u32 sub_802B720(bool8 a0)
|
||||
|
||||
u8 GetPokemonNewsIndex(void)
|
||||
{
|
||||
return sUnknown_203B2CC->receivedNewsletters[(sUnknown_203B2CC->input.unk1E * sUnknown_203B2CC->input.unk1C) + sUnknown_203B2CC->input.menuIndex];
|
||||
return sUnknown_203B2CC->receivedNewsletters[(sUnknown_203B2CC->s38.input.unk1E * sUnknown_203B2CC->s38.input.unk1C) + sUnknown_203B2CC->s38.input.menuIndex];
|
||||
}
|
||||
|
||||
void sub_802B7D0(bool8 cursorSprite)
|
||||
{
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(sUnknown_203B2CC->unk74, FALSE, FALSE);
|
||||
sub_800641C(sUnknown_203B2CC->s38.unk3C, FALSE, FALSE);
|
||||
|
||||
sUnknown_203B2CC->input.unk22 = GetNumPKMNNews();
|
||||
sub_8013984(&sUnknown_203B2CC->input);
|
||||
sUnknown_203B2CC->s38.input.unk22 = GetNumPKMNNews();
|
||||
sub_8013984(&sUnknown_203B2CC->s38.input);
|
||||
sub_802B880();
|
||||
CreatePKMNNewsMenu();
|
||||
|
||||
if (cursorSprite)
|
||||
AddMenuCursorSprite(&sUnknown_203B2CC->input);
|
||||
AddMenuCursorSprite(&sUnknown_203B2CC->s38.input);
|
||||
}
|
||||
|
||||
void sub_802B81C(void)
|
||||
{
|
||||
if (sUnknown_203B2CC != NULL) {
|
||||
sUnknown_203B2D0 = sUnknown_203B2CC->input.menuIndex;
|
||||
sUnknown_203B2D0 = sUnknown_203B2CC->s38.input.menuIndex;
|
||||
|
||||
sUnknown_203B2D2 = sUnknown_203B2CC->input.unk1E;
|
||||
sUnknown_203B2D2 = sUnknown_203B2CC->s38.input.unk1E;
|
||||
|
||||
sUnknown_203B2CC->unk74[sUnknown_203B2CC->unk6C] = sUnknown_80DFBD0;
|
||||
sUnknown_203B2CC->s38.unk3C[sUnknown_203B2CC->s38.unk34] = sUnknown_80DFBD0;
|
||||
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(sUnknown_203B2CC->unk74, TRUE, TRUE);
|
||||
sub_800641C(sUnknown_203B2CC->s38.unk3C, TRUE, TRUE);
|
||||
|
||||
MemoryFree(sUnknown_203B2CC);
|
||||
sUnknown_203B2CC = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
NAKED // sub_80095E4 memes
|
||||
static void sub_802B880(void)
|
||||
{
|
||||
asm_unified(
|
||||
"\tpush {r4,lr}\n"
|
||||
"\tldr r4, _0802B8D0\n"
|
||||
"\tldr r0, [r4]\n"
|
||||
"\tadds r0, 0x52\n"
|
||||
"\tmovs r1, 0\n"
|
||||
"\tldrsh r0, [r0, r1]\n"
|
||||
"\tmovs r1, 0xC\n"
|
||||
"\tbl sub_80095E4\n"
|
||||
"\tadds r0, 0x2\n"
|
||||
"\tlsls r0, 16\n"
|
||||
"\tldr r2, [r4]\n"
|
||||
"\tldr r3, [r2, 0x6C]\n"
|
||||
"\tlsls r1, r3, 1\n"
|
||||
"\tadds r1, r3\n"
|
||||
"\tlsls r1, 3\n"
|
||||
"\tadds r1, r2, r1\n"
|
||||
"\tadds r1, 0x82\n"
|
||||
"\tasrs r3, r0, 16\n"
|
||||
"\tlsrs r0, 16\n"
|
||||
"\tstrh r0, [r1]\n"
|
||||
"\tldr r1, [r2, 0x6C]\n"
|
||||
"\tlsls r0, r1, 1\n"
|
||||
"\tadds r0, r1\n"
|
||||
"\tlsls r0, 3\n"
|
||||
"\tadds r2, r0\n"
|
||||
"\tadds r3, 0x2\n"
|
||||
"\tadds r2, 0x84\n"
|
||||
"\tstrh r3, [r2]\n"
|
||||
"\tbl ResetUnusedInputStruct\n"
|
||||
"\tldr r0, [r4]\n"
|
||||
"\tadds r0, 0x74\n"
|
||||
"\tmovs r1, 0x1\n"
|
||||
"\tmovs r2, 0x1\n"
|
||||
"\tbl sub_800641C\n"
|
||||
"\tpop {r4}\n"
|
||||
"\tpop {r0}\n"
|
||||
"\tbx r0\n"
|
||||
"\t.align 2, 0\n"
|
||||
"\t_0802B8D0: .4byte sUnknown_203B2CC");
|
||||
SUB_80095E4_CALL(sUnknown_203B2CC->s38);
|
||||
}
|
||||
|
||||
static void CreatePKMNNewsMenu(void)
|
||||
@@ -173,22 +133,22 @@ static void CreatePKMNNewsMenu(void)
|
||||
s32 new_index;
|
||||
u8 mailIndex;
|
||||
|
||||
sub_8008C54(sUnknown_203B2CC->unk6C);
|
||||
sub_80073B8(sUnknown_203B2CC->unk6C);
|
||||
xxx_call_draw_string(10, 0, sNewsList, sUnknown_203B2CC->unk6C, 0);
|
||||
sub_8008C54(sUnknown_203B2CC->s38.unk34);
|
||||
sub_80073B8(sUnknown_203B2CC->s38.unk34);
|
||||
xxx_call_draw_string(10, 0, sNewsList, sUnknown_203B2CC->s38.unk34, 0);
|
||||
|
||||
sub_8012BC4((sUnknown_80DFBE8[2] * 8) + 4, 0, sUnknown_203B2CC->input.unk1E + 1, 2, 7, sUnknown_203B2CC->unk6C);
|
||||
sub_8012BC4((sUnknown_80DFBE8[2] * 8) + 4, 0, sUnknown_203B2CC->s38.input.unk1E + 1, 2, 7, sUnknown_203B2CC->s38.unk34);
|
||||
|
||||
for (index = 0; index < sUnknown_203B2CC->input.unk1A; index++) {
|
||||
y = sub_8013800(&sUnknown_203B2CC->input, index);
|
||||
new_index = (sUnknown_203B2CC->input.unk1E * sUnknown_203B2CC->input.unk1C) + index;
|
||||
for (index = 0; index < sUnknown_203B2CC->s38.input.unk1A; index++) {
|
||||
y = sub_8013800(&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->unk6C);
|
||||
sub_803B6B0(10, y, 6, sUnknown_203B2CC->s38.unk34);
|
||||
sub_802BC7C();
|
||||
xxx_format_and_draw(21, y, GetPokemonMailHeadline(mailIndex), sUnknown_203B2CC->unk6C, 0);
|
||||
xxx_format_and_draw(21, y, GetPokemonMailHeadline(mailIndex), sUnknown_203B2CC->s38.unk34, 0);
|
||||
}
|
||||
|
||||
sub_80073E0(sUnknown_203B2CC->unk6C);
|
||||
sub_80073E0(sUnknown_203B2CC->s38.unk34);
|
||||
}
|
||||
|
||||
static s32 GetNumPKMNNews(void)
|
||||
@@ -218,4 +178,4 @@ bool8 HasNoPKMNNews(void)
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
#include "code_803B050.h"
|
||||
#include "wonder_mail_802CDD4.h"
|
||||
#include "input.h"
|
||||
#include "structs/struct_sub80095e4.h"
|
||||
|
||||
struct unkStruct_203B30C
|
||||
{
|
||||
@@ -66,16 +67,11 @@ struct unkStruct_203B314
|
||||
u8 unkB9;
|
||||
u8 unkBA;
|
||||
u8 unkBB;
|
||||
MenuInputStruct input;
|
||||
u32 unkF0;
|
||||
UnkTextStruct2 *unkF4;
|
||||
UnkTextStruct2 unkF8[4];
|
||||
u8 unk158[4];
|
||||
struct struct_Sub80095E4_2 sBC;
|
||||
};
|
||||
|
||||
extern struct unkStruct_203B314 *gUnknown_203B314;
|
||||
|
||||
|
||||
enum FriendRewardStates
|
||||
{
|
||||
PREP_MONEY_REWARD,
|
||||
@@ -504,7 +500,7 @@ void HandleMissionReward(void)
|
||||
u8 itemID;
|
||||
struct unkStruct_8090F58 local_20;
|
||||
Item item;
|
||||
|
||||
|
||||
switch(gUnknown_203B310->state) {
|
||||
case PREP_MONEY_REWARD:
|
||||
moneyReward = gUnknown_203B310->unk10->moneyReward;
|
||||
@@ -572,7 +568,7 @@ void HandleMissionReward(void)
|
||||
break;
|
||||
case PREP_ITEM_REWARD:
|
||||
itemID = gUnknown_203B310->unk10->itemRewards[0];
|
||||
if (itemID != ITEM_NOTHING)
|
||||
if (itemID != ITEM_NOTHING)
|
||||
{
|
||||
if (gUnknown_203B310->unk10->moneyReward == 0) {
|
||||
item.id = itemID;
|
||||
@@ -695,24 +691,24 @@ u32 sub_802F73C(u32 r0, UnkTextStruct2_sub *r1, u32 r2, u8 r3)
|
||||
gUnknown_203B314 = MemoryAlloc(sizeof(struct unkStruct_203B314), 8);
|
||||
|
||||
gUnknown_203B314->unkB8 = r3;
|
||||
gUnknown_203B314->unkF0 = r0;
|
||||
gUnknown_203B314->unkF4 = &gUnknown_203B314->unkF8[gUnknown_203B314->unkF0];
|
||||
sub_8006518(gUnknown_203B314->unkF8);
|
||||
gUnknown_203B314->sBC.s0.unk34 = r0;
|
||||
gUnknown_203B314->sBC.s0.unk38 = &gUnknown_203B314->sBC.s0.unk3C[gUnknown_203B314->sBC.s0.unk34];
|
||||
sub_8006518(gUnknown_203B314->sBC.s0.unk3C);
|
||||
|
||||
if (r3 != 0)
|
||||
gUnknown_203B314->unkF8[gUnknown_203B314->unkF0] = gUnknown_80E072C;
|
||||
gUnknown_203B314->sBC.s0.unk3C[gUnknown_203B314->sBC.s0.unk34] = gUnknown_80E072C;
|
||||
else
|
||||
gUnknown_203B314->unkF8[gUnknown_203B314->unkF0] = gUnknown_80E0714;
|
||||
gUnknown_203B314->sBC.s0.unk3C[gUnknown_203B314->sBC.s0.unk34] = gUnknown_80E0714;
|
||||
|
||||
gUnknown_203B314->unkF4->unk14 = gUnknown_203B314->unk158;
|
||||
gUnknown_203B314->sBC.s0.unk38->unk14 = gUnknown_203B314->sBC.unk9C;
|
||||
|
||||
if (r1 != 0)
|
||||
gUnknown_203B314->unkF8[gUnknown_203B314->unkF0].unk8 = *r1;
|
||||
gUnknown_203B314->sBC.s0.unk3C[gUnknown_203B314->sBC.s0.unk34].unk8 = *r1;
|
||||
|
||||
sub_8012D08(gUnknown_203B314->unkF4, r2);
|
||||
sub_8012D08(gUnknown_203B314->sBC.s0.unk38, r2);
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gUnknown_203B314->unkF8, TRUE, TRUE);
|
||||
sub_8013818(&gUnknown_203B314->input, sub_802FBF4(), r2, r0);
|
||||
sub_800641C(gUnknown_203B314->sBC.s0.unk3C, TRUE, TRUE);
|
||||
sub_8013818(&gUnknown_203B314->sBC.s0.input, sub_802FBF4(), r2, r0);
|
||||
sub_802F9C0();
|
||||
sub_802FA50();
|
||||
return 1;
|
||||
@@ -725,15 +721,15 @@ u32 sub_802F848(s16 param_1)
|
||||
|
||||
param_1_32 = param_1; // cast needed
|
||||
|
||||
for( index = 0; index < gUnknown_203B314->input.unk22; index++ ) {
|
||||
for( index = 0; index < gUnknown_203B314->sBC.s0.input.unk22; index++ ) {
|
||||
if (gUnknown_203B314->unk0[index] == param_1_32) {
|
||||
sub_8013878(&gUnknown_203B314->input,index);
|
||||
sub_8013878(&gUnknown_203B314->sBC.s0.input,index);
|
||||
sub_802F9C0();
|
||||
sub_802FA50();
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
sub_8013878(&gUnknown_203B314->input,0);
|
||||
sub_8013878(&gUnknown_203B314->sBC.s0.input,0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -741,12 +737,12 @@ u32 sub_802F8A0(u8 r0)
|
||||
{
|
||||
if(r0 == 0)
|
||||
{
|
||||
sub_8013660(&gUnknown_203B314->input);
|
||||
sub_8013660(&gUnknown_203B314->sBC.s0.input);
|
||||
return 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
switch(GetKeyPress(&gUnknown_203B314->input))
|
||||
switch(GetKeyPress(&gUnknown_203B314->sBC.s0.input))
|
||||
{
|
||||
case INPUT_B_BUTTON:
|
||||
PlayMenuSoundEffect(1);
|
||||
@@ -755,7 +751,7 @@ u32 sub_802F8A0(u8 r0)
|
||||
PlayMenuSoundEffect(0);
|
||||
return 3;
|
||||
default:
|
||||
if(sub_80138B8(&gUnknown_203B314->input, 1) != 0)
|
||||
if(sub_80138B8(&gUnknown_203B314->sBC.s0.input, 1) != 0)
|
||||
{
|
||||
sub_802F9C0();
|
||||
sub_802FA50();
|
||||
@@ -771,103 +767,40 @@ u32 sub_802F8A0(u8 r0)
|
||||
|
||||
s16 sub_802F90C(void)
|
||||
{
|
||||
return gUnknown_203B314->unk0[(gUnknown_203B314->input.unk1E * gUnknown_203B314->input.unk1C) + gUnknown_203B314->input.menuIndex];
|
||||
return gUnknown_203B314->unk0[(gUnknown_203B314->sBC.s0.input.unk1E * gUnknown_203B314->sBC.s0.input.unk1C) + gUnknown_203B314->sBC.s0.input.menuIndex];
|
||||
}
|
||||
|
||||
void sub_802F938(u8 r0)
|
||||
{
|
||||
gUnknown_203B314->input.unk22 = sub_802FBF4();
|
||||
sub_8013984(&gUnknown_203B314->input);
|
||||
gUnknown_203B314->sBC.s0.input.unk22 = sub_802FBF4();
|
||||
sub_8013984(&gUnknown_203B314->sBC.s0.input);
|
||||
sub_802F9C0();
|
||||
sub_802FA50();
|
||||
|
||||
if(r0 != 0)
|
||||
AddMenuCursorSprite(&gUnknown_203B314->input);
|
||||
AddMenuCursorSprite(&gUnknown_203B314->sBC.s0.input);
|
||||
}
|
||||
|
||||
void sub_802F974(void)
|
||||
{
|
||||
if(gUnknown_203B314 != NULL)
|
||||
{
|
||||
gUnknown_203B314->unkF8[gUnknown_203B314->unkF0] = gUnknown_80E06FC;
|
||||
gUnknown_203B314->sBC.s0.unk3C[gUnknown_203B314->sBC.s0.unk34] = gUnknown_80E06FC;
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gUnknown_203B314->unkF8, TRUE, TRUE);
|
||||
sub_800641C(gUnknown_203B314->sBC.s0.unk3C, TRUE, TRUE);
|
||||
MemoryFree(gUnknown_203B314);
|
||||
gUnknown_203B314 = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
NAKED // sub_80095E4 memes
|
||||
void sub_802F9C0(void)
|
||||
{
|
||||
asm_unified(
|
||||
"\tpush {r4,r5,lr}\n"
|
||||
"\tldr r4, _0802FA44\n"
|
||||
"\tldr r0, [r4]\n"
|
||||
"\tmovs r1, 0xAC\n"
|
||||
"\tlsls r1, 1\n"
|
||||
"\tadds r0, r1\n"
|
||||
"\tmovs r2, 0\n"
|
||||
"\tmovs r1, 0x1\n"
|
||||
"\tstrb r1, [r0]\n"
|
||||
"\tldr r0, [r4]\n"
|
||||
"\tldr r3, _0802FA48\n"
|
||||
"\tadds r0, r3\n"
|
||||
"\tstrb r2, [r0]\n"
|
||||
"\tldr r0, [r4]\n"
|
||||
"\tadds r3, 0x1\n"
|
||||
"\tadds r1, r0, r3\n"
|
||||
"\tmovs r0, 0x8\n"
|
||||
"\tstrb r0, [r1]\n"
|
||||
"\tldr r0, [r4]\n"
|
||||
"\tldr r1, _0802FA4C\n"
|
||||
"\tadds r0, r1\n"
|
||||
"\tstrb r2, [r0]\n"
|
||||
"\tldr r0, [r4]\n"
|
||||
"\tadds r0, 0xD6\n"
|
||||
"\tmovs r2, 0\n"
|
||||
"\tldrsh r0, [r0, r2]\n"
|
||||
"\tmovs r1, 0xC\n"
|
||||
"\tbl sub_80095E4\n"
|
||||
"\tadds r0, 0x2\n"
|
||||
"\tlsls r0, 16\n"
|
||||
"\tldr r3, [r4]\n"
|
||||
"\tadds r5, r3, 0\n"
|
||||
"\tadds r5, 0xF0\n"
|
||||
"\tldr r2, [r5]\n"
|
||||
"\tlsls r1, r2, 1\n"
|
||||
"\tadds r1, r2\n"
|
||||
"\tlsls r1, 3\n"
|
||||
"\tadds r1, r3, r1\n"
|
||||
"\tmovs r2, 0x83\n"
|
||||
"\tlsls r2, 1\n"
|
||||
"\tadds r1, r2\n"
|
||||
"\tasrs r2, r0, 16\n"
|
||||
"\tlsrs r0, 16\n"
|
||||
"\tstrh r0, [r1]\n"
|
||||
"\tldr r1, [r5]\n"
|
||||
"\tlsls r0, r1, 1\n"
|
||||
"\tadds r0, r1\n"
|
||||
"\tlsls r0, 3\n"
|
||||
"\tadds r3, r0\n"
|
||||
"\tadds r2, 0x2\n"
|
||||
"\tmovs r0, 0x84\n"
|
||||
"\tlsls r0, 1\n"
|
||||
"\tadds r3, r0\n"
|
||||
"\tstrh r2, [r3]\n"
|
||||
"\tbl ResetUnusedInputStruct\n"
|
||||
"\tldr r0, [r4]\n"
|
||||
"\tadds r0, 0xF8\n"
|
||||
"\tmovs r1, 0x1\n"
|
||||
"\tmovs r2, 0x1\n"
|
||||
"\tbl sub_800641C\n"
|
||||
"\tpop {r4,r5}\n"
|
||||
"\tpop {r0}\n"
|
||||
"\tbx r0\n"
|
||||
"\t.align 2, 0\n"
|
||||
"_0802FA44: .4byte gUnknown_203B314\n"
|
||||
"_0802FA48: .4byte 0x00000159\n"
|
||||
"_0802FA4C: .4byte 0x0000015b");
|
||||
gUnknown_203B314->sBC.unk9C[0] = 1;
|
||||
gUnknown_203B314->sBC.unk9C[1] = 0;
|
||||
gUnknown_203B314->sBC.unk9C[2] = 8;
|
||||
gUnknown_203B314->sBC.unk9C[3] = 0;
|
||||
|
||||
SUB_80095E4_CALL(gUnknown_203B314->sBC.s0);
|
||||
}
|
||||
|
||||
void sub_802FA50(void)
|
||||
@@ -878,33 +811,33 @@ void sub_802FA50(void)
|
||||
u32 y2;
|
||||
int index;
|
||||
int counter;
|
||||
|
||||
sub_8008C54(gUnknown_203B314->unkF0);
|
||||
sub_80073B8(gUnknown_203B314->unkF0);
|
||||
xxx_call_draw_string(10,0,gUnknown_80E0744,gUnknown_203B314->unkF0,0);
|
||||
sub_8012BC4(gUnknown_203B314->unk158[2] * 8 + 4,0,gUnknown_203B314->input.unk1E + 1,2,7,gUnknown_203B314->unkF0);
|
||||
|
||||
sub_8008C54(gUnknown_203B314->sBC.s0.unk34);
|
||||
sub_80073B8(gUnknown_203B314->sBC.s0.unk34);
|
||||
xxx_call_draw_string(10,0,gUnknown_80E0744,gUnknown_203B314->sBC.s0.unk34,0);
|
||||
sub_8012BC4(gUnknown_203B314->sBC.unk9C[2] * 8 + 4,0,gUnknown_203B314->sBC.s0.input.unk1E + 1,2,7,gUnknown_203B314->sBC.s0.unk34);
|
||||
if (gUnknown_203B314->unkB8 != 0) {
|
||||
for(counter = 0; counter < gUnknown_203B314->input.unk1A; counter++)
|
||||
for(counter = 0; counter < gUnknown_203B314->sBC.s0.input.unk1A; counter++)
|
||||
{
|
||||
y = sub_8013800(&gUnknown_203B314->input,counter);
|
||||
index = gUnknown_203B314->input.unk1E * gUnknown_203B314->input.unk1C + counter;
|
||||
y = sub_8013800(&gUnknown_203B314->sBC.s0.input,counter);
|
||||
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) {
|
||||
xxx_call_draw_string(10,y,gUnknown_80E0750,gUnknown_203B314->unkF0,0);
|
||||
xxx_call_draw_string(10,y,gUnknown_80E0750,gUnknown_203B314->sBC.s0.unk34,0);
|
||||
}
|
||||
else if (gUnknown_203B314->unk8A[index] != 0) {
|
||||
xxx_call_draw_string(10,y,gUnknown_80E0754,gUnknown_203B314->unkF0,0);
|
||||
xxx_call_draw_string(10,y,gUnknown_80E0754,gUnknown_203B314->sBC.s0.unk34,0);
|
||||
}
|
||||
xxx_call_draw_string(0x18,y,sub_80974A0(sVar1),gUnknown_203B314->unkF0,0);
|
||||
xxx_call_draw_string(0x18,y,sub_80974A0(sVar1),gUnknown_203B314->sBC.s0.unk34,0);
|
||||
}
|
||||
}
|
||||
else {
|
||||
for(counter = 0; counter < gUnknown_203B314->input.unk1A; counter++)
|
||||
for(counter = 0; counter < gUnknown_203B314->sBC.s0.input.unk1A; counter++)
|
||||
{
|
||||
y2 = sub_8013800(&gUnknown_203B314->input,counter);
|
||||
text = sub_80974A0(gUnknown_203B314->unk0[gUnknown_203B314->input.unk1E * gUnknown_203B314->input.unk1C + counter]);
|
||||
xxx_call_draw_string(8,y2,text,gUnknown_203B314->unkF0,0);
|
||||
y2 = sub_8013800(&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]);
|
||||
xxx_call_draw_string(8,y2,text,gUnknown_203B314->sBC.s0.unk34,0);
|
||||
}
|
||||
}
|
||||
sub_80073E0(gUnknown_203B314->unkF0);
|
||||
sub_80073E0(gUnknown_203B314->sBC.s0.unk34);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user