wigglytuff and code801c244 file

This commit is contained in:
DizzyEggg 2024-07-13 14:35:46 +02:00
parent c64aa61420
commit 9eec35694f
6 changed files with 103 additions and 228 deletions

View File

@ -5,6 +5,7 @@
#include "structs/menu.h"
#include "pokemon.h"
#include "structs/str_text.h"
#include "structs/struct_sub80095e4.h"
// size: 0xC4
struct unkStruct_203B23C
@ -13,14 +14,7 @@ struct unkStruct_203B23C
/* 0x4 */ PokemonStruct1 *pokeStruct;
/* 0x8 */ u8 iqSkills[NUM_IQ_SKILLS];
/* 0x20 */ s32 numIQSkills;
/* 0x24 */ MenuInputStruct input;
u32 unk58;
UnkTextStruct2 *unk5C;
UnkTextStruct2 unk60[4];
u8 unkC0;
u8 unkC1;
u8 unkC2;
u8 unkC3;
/* 0x24 */ struct_Sub80095E4_2 s24;
};
bool8 HasNoAvailIQSkills(s16 species);
@ -32,4 +26,4 @@ void sub_801C3B0(bool8);
void sub_801C3F8(void);
void sub_801C4C8(void);
#endif // GUARD_CODE_801C244_H
#endif // GUARD_CODE_801C244_H

View File

@ -41,4 +41,18 @@ typedef struct struct_Sub80095E4_2
sub_800641C((ptr).unk3C, TRUE, TRUE); \
}
// For sub_801C440 where unkE and unk10 are the same.
#define SUB_80095E4_CALL_2(ptr) \
{ \
s32 a0 = sub_80095E4((ptr).input.unk1A, 12) + 2; \
UNUSED s16 oldE = (ptr).unk3C[(ptr).unk34].unkE; \
s16 newE = a0; \
\
(ptr).unk3C[(ptr).unk34].unkE = newE; \
(ptr).unk3C[(ptr).unk34].unk10 = newE; \
\
ResetUnusedInputStruct(); \
sub_800641C((ptr).unk3C, TRUE, TRUE); \
}
#endif // GUARD_struct_sub80095e4_H

View File

@ -4,16 +4,14 @@
#include "constants/friend_area.h"
#include "structs/menu.h"
#include "structs/str_text.h"
#include "structs/struct_sub80095e4.h"
typedef struct WigglytuffShop1Work
{
/* 0x0 */ u8 friendAreas[NUM_FRIEND_AREAS];
/* 0x3C */ u32 mode;
MenuInputStruct unk40;
s32 unk74;
UnkTextStruct2 *unk78;
UnkTextStruct2 unk7C[4];
u8 unkDC[4];
struct_Sub80095E4_2 s40;
} WigglytuffShop1Work;
bool8 sub_80211AC(u32 mode, u32);
@ -24,4 +22,4 @@ void sub_80213A0(void);
void sub_8021494(void);
bool8 sub_8021700(u32 kind);
#endif // GUARD_WIGGLYTUFF_SHOP1_H
#endif // GUARD_WIGGLYTUFF_SHOP1_H

View File

@ -37,15 +37,15 @@ bool8 sub_801C244(s16 species, u32 index, u32 a2)
sUnknown_203B23C->species = species_s32;
sUnknown_203B23C->pokeStruct = &gRecruitedPokemonRef->pokemon[species_s32];
sUnknown_203B23C->numIQSkills = GetNumAvailableIQSkills(sUnknown_203B23C->iqSkills, sUnknown_203B23C->pokeStruct->IQ);
sUnknown_203B23C->unk58 = index;
sUnknown_203B23C->unk5C = &sUnknown_203B23C->unk60[index];
sub_8006518(sUnknown_203B23C->unk60);
sUnknown_203B23C->unk60[sUnknown_203B23C->unk58] = sUnknown_80DBDF0;
sUnknown_203B23C->unk5C->unk14 = &sUnknown_203B23C->unkC0;
sub_8012D08(sUnknown_203B23C->unk5C, a2);
sUnknown_203B23C->s24.s0.unk34 = index;
sUnknown_203B23C->s24.s0.unk38 = &sUnknown_203B23C->s24.s0.unk3C[index];
sub_8006518(sUnknown_203B23C->s24.s0.unk3C);
sUnknown_203B23C->s24.s0.unk3C[sUnknown_203B23C->s24.s0.unk34] = sUnknown_80DBDF0;
sUnknown_203B23C->s24.s0.unk38->unk14 = sUnknown_203B23C->s24.unk9C;
sub_8012D08(sUnknown_203B23C->s24.s0.unk38, a2);
ResetUnusedInputStruct();
sub_800641C(sUnknown_203B23C->unk60, TRUE, TRUE);
sub_8013818(&sUnknown_203B23C->input, sUnknown_203B23C->numIQSkills, a2, index);
sub_800641C(sUnknown_203B23C->s24.s0.unk3C, TRUE, TRUE);
sub_8013818(&sUnknown_203B23C->s24.s0.input, sUnknown_203B23C->numIQSkills, a2, index);
sub_801C440();
sub_801C4C8();
return TRUE;
@ -54,11 +54,11 @@ bool8 sub_801C244(s16 species, u32 index, u32 a2)
u32 sub_801C308(bool8 a0)
{
if (!a0) {
sub_8013660(&sUnknown_203B23C->input);
sub_8013660(&sUnknown_203B23C->s24.s0.input);
return 0;
}
switch (GetKeyPress(&sUnknown_203B23C->input)) {
switch (GetKeyPress(&sUnknown_203B23C->s24.s0.input)) {
case 2:
PlayMenuSoundEffect(1);
return 2;
@ -69,7 +69,7 @@ u32 sub_801C308(bool8 a0)
PlayMenuSoundEffect(4);
return 4;
default:
if (sub_80138B8(&sUnknown_203B23C->input, 1) != 0) {
if (sub_80138B8(&sUnknown_203B23C->s24.s0.input, 1) != 0) {
sub_801C440();
sub_801C4C8();
return 1;
@ -80,121 +80,44 @@ u32 sub_801C308(bool8 a0)
s32 sub_801C390(void)
{
return (sUnknown_203B23C->input.unk1E * sUnknown_203B23C->input.unk1C) + sUnknown_203B23C->input.menuIndex;
return (sUnknown_203B23C->s24.s0.input.unk1E * sUnknown_203B23C->s24.s0.input.unk1C) + sUnknown_203B23C->s24.s0.input.menuIndex;
}
void sub_801C3B0(bool8 r0)
{
ResetUnusedInputStruct();
sub_800641C(sUnknown_203B23C->unk60, FALSE, FALSE);
sUnknown_203B23C->input.unk22 = sUnknown_203B23C->numIQSkills;
sub_8013984(&sUnknown_203B23C->input);
sub_800641C(sUnknown_203B23C->s24.s0.unk3C, FALSE, FALSE);
sUnknown_203B23C->s24.s0.input.unk22 = sUnknown_203B23C->numIQSkills;
sub_8013984(&sUnknown_203B23C->s24.s0.input);
sub_801C440();
sub_801C4C8();
if (r0)
AddMenuCursorSprite(&sUnknown_203B23C->input);
AddMenuCursorSprite(&sUnknown_203B23C->s24.s0.input);
}
void sub_801C3F8(void)
{
if (sUnknown_203B23C != NULL) {
sUnknown_203B23C->unk60[sUnknown_203B23C->unk58] = sUnknown_80DBDD8;
sUnknown_203B23C->s24.s0.unk3C[sUnknown_203B23C->s24.s0.unk34] = sUnknown_80DBDD8;
ResetUnusedInputStruct();
sub_800641C(sUnknown_203B23C->unk60, TRUE, TRUE);
sub_800641C(sUnknown_203B23C->s24.s0.unk3C, TRUE, TRUE);
MemoryFree(sUnknown_203B23C);
sUnknown_203B23C = NULL;
}
}
#ifdef NONMATCHING // sub_80095E4 memes
// https://decomp.me/scratch/NdDP3 (98.06% matching) - Seth
static void sub_801C440(void)
{
u16 sVar2;
sUnknown_203B23C->s24.unk9C[0] = sUnknown_203B23C->s24.s0.input.unk20;
sUnknown_203B23C->s24.unk9C[1] = sUnknown_203B23C->s24.s0.input.unk1E;
sUnknown_203B23C->s24.unk9C[2] = 10;
sUnknown_203B23C->s24.unk9C[3] = 0;
ResetUnusedInputStruct();
sub_800641C(sUnknown_203B23C->s24.s0.unk3C, TRUE, TRUE);
sUnknown_203B23C->unkC0 = sUnknown_203B23C->unk24.unk20;
sUnknown_203B23C->unkC1 = sUnknown_203B23C->unk24.unk1E;
sUnknown_203B23C->unkC2 = 10;
sUnknown_203B23C->unkC3 = 0;
ResetUnusedInputStruct();
sub_800641C(sUnknown_203B23C->unk60, TRUE, TRUE);
sVar2 = sub_80095E4(sUnknown_203B23C->unk24.unk1A, 12) + 2;
sUnknown_203B23C->unk60[sUnknown_203B23C->unk58].unkE = sVar2;
sUnknown_203B23C->unk60[sUnknown_203B23C->unk58].unk10 = sVar2;
ResetUnusedInputStruct();
sub_800641C(sUnknown_203B23C->unk60, TRUE, TRUE);
SUB_80095E4_CALL_2(sUnknown_203B23C->s24.s0);
}
#else
NAKED
static void sub_801C440(void)
{
asm_unified(
"\tpush {r4,lr}\n"
"\tldr r4, _0801C4C4\n"
"\tldr r0, [r4]\n"
"\tadds r1, r0, 0\n"
"\tadds r1, 0x44\n"
"\tldrh r1, [r1]\n"
"\tadds r0, 0xC0\n"
"\tmovs r2, 0\n"
"\tstrb r1, [r0]\n"
"\tldr r0, [r4]\n"
"\tadds r1, r0, 0\n"
"\tadds r1, 0x42\n"
"\tldrh r1, [r1]\n"
"\tadds r0, 0xC1\n"
"\tstrb r1, [r0]\n"
"\tldr r0, [r4]\n"
"\tadds r0, 0xC2\n"
"\tmovs r1, 0xA\n"
"\tstrb r1, [r0]\n"
"\tldr r0, [r4]\n"
"\tadds r0, 0xC3\n"
"\tstrb r2, [r0]\n"
"\tbl ResetUnusedInputStruct\n"
"\tldr r0, [r4]\n"
"\tadds r0, 0x60\n"
"\tmovs r1, 0x1\n"
"\tmovs r2, 0x1\n"
"\tbl sub_800641C\n"
"\tldr r0, [r4]\n"
"\tmovs r1, 0x3E\n"
"\tldrsh r0, [r0, r1]\n"
"\tmovs r1, 0xC\n"
"\tbl sub_80095E4\n"
"\tadds r0, 0x2\n"
"\tldr r2, [r4]\n"
"\tldr r3, [r2, 0x58]\n"
"\tlsls r1, r3, 1\n"
"\tadds r1, r3\n"
"\tlsls r1, 3\n"
"\tadds r1, r2, r1\n"
"\tadds r1, 0x6E\n"
"\tlsls r0, 16\n"
"\tlsrs r0, 16\n"
"\tstrh r0, [r1]\n"
"\tldr r3, [r2, 0x58]\n"
"\tlsls r1, r3, 1\n"
"\tadds r1, r3\n"
"\tlsls r1, 3\n"
"\tadds r2, r1\n"
"\tadds r2, 0x70\n"
"\tstrh r0, [r2]\n"
"\tbl ResetUnusedInputStruct\n"
"\tldr r0, [r4]\n"
"\tadds r0, 0x60\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"
"_0801C4C4: .4byte sUnknown_203B23C"
);
}
#endif
void sub_801C4C8(void)
{
@ -204,21 +127,21 @@ void sub_801C4C8(void)
u32 skillIndex;
s32 counter;
sub_8008C54(sUnknown_203B23C->unk58);
sub_80073B8(sUnknown_203B23C->unk58);
x = sUnknown_203B23C->input.unk1E * 8;
sub_8008C54(sUnknown_203B23C->s24.s0.unk34);
sub_80073B8(sUnknown_203B23C->s24.s0.unk34);
x = sUnknown_203B23C->s24.s0.input.unk1E * 8;
x2 = x;
x2 += 10;
xxx_call_draw_string(x2, 0, sIQSkills, sUnknown_203B23C->unk58, 0);
xxx_call_draw_string(x2, 0, sIQSkills, sUnknown_203B23C->s24.s0.unk34, 0);
x += 4;
x2 = x + sUnknown_203B23C->unkC2 * 8;
sub_8012BC4(x2, 0, sUnknown_203B23C->input.unk1E + 1, 1, 7, sUnknown_203B23C->unk58);
x2 = x + sUnknown_203B23C->s24.unk9C[2] * 8;
sub_8012BC4(x2, 0, sUnknown_203B23C->s24.s0.input.unk1E + 1, 1, 7, sUnknown_203B23C->s24.s0.unk34);
for (counter = 0; counter < sUnknown_203B23C->input.unk1A; counter++) {
skillIndex = sUnknown_203B23C->iqSkills[(sUnknown_203B23C->input.unk1E * sUnknown_203B23C->input.unk1C) + counter];
for (counter = 0; counter < sUnknown_203B23C->s24.s0.input.unk1A; counter++) {
skillIndex = sUnknown_203B23C->iqSkills[(sUnknown_203B23C->s24.s0.input.unk1E * sUnknown_203B23C->s24.s0.input.unk1C) + counter];
y = sub_8013800(&sUnknown_203B23C->input, counter);
y = sub_8013800(&sUnknown_203B23C->s24.s0.input, counter);
strncpy(gUnknown_202DEA8, GetIQSkillName(skillIndex), 80);
if (IsIQSkillSet((u8 *)&sUnknown_203B23C->pokeStruct->IQSkills, 1 << skillIndex))
@ -226,10 +149,10 @@ void sub_801C4C8(void)
else
strcpy(gUnknown_202DEA8 - 80, sUnknown_80DBE18);
xxx_format_and_draw(12, y, sFmt01, sUnknown_203B23C->unk58, 0);
xxx_format_and_draw(12, y, sFmt01, sUnknown_203B23C->s24.s0.unk34, 0);
}
sub_80073E0(sUnknown_203B23C->unk58);
sub_80073E0(sUnknown_203B23C->s24.s0.unk34);
}
bool8 HasNoAvailIQSkills(s16 species)
@ -245,4 +168,4 @@ bool8 HasNoAvailIQSkills(s16 species)
return TRUE;
return FALSE;
}
}

View File

@ -119,7 +119,7 @@ static void sub_801DBD4(void)
n = sUnknown_203B258->s0.input.unk1E + 1;
sub_8012BC4(x, 0, n, 2, 7, sUnknown_203B258->s0.unk34);
// 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.
// This line has no real effect. It's a magic 'fakematch' to fool agb into generating the same asm. It can be removed if you don't care about matching.
if (x) { counter = 0; }
for (counter = 0; counter < sUnknown_203B258->s0.input.unk1A; counter++) {

View File

@ -30,19 +30,19 @@ bool8 sub_80211AC(u32 mode, u32 a1)
sWigglytuffShop1Work = MemoryAlloc(sizeof(WigglytuffShop1Work), 8);
sWigglytuffShop1Work->mode = mode;
sWigglytuffShop1Work->unk74 = a1;
sWigglytuffShop1Work->unk78 = &sWigglytuffShop1Work->unk7C[sWigglytuffShop1Work->unk74];
sub_8006518(sWigglytuffShop1Work->unk7C);
sWigglytuffShop1Work->unk7C[sWigglytuffShop1Work->unk74] = sUnknown_80DC47C;
sWigglytuffShop1Work->unk78->unk14 = sWigglytuffShop1Work->unkDC;
sWigglytuffShop1Work->s40.s0.unk34 = a1;
sWigglytuffShop1Work->s40.s0.unk38 = &sWigglytuffShop1Work->s40.s0.unk3C[sWigglytuffShop1Work->s40.s0.unk34];
sub_8006518(sWigglytuffShop1Work->s40.s0.unk3C);
sWigglytuffShop1Work->s40.s0.unk3C[sWigglytuffShop1Work->s40.s0.unk34] = sUnknown_80DC47C;
sWigglytuffShop1Work->s40.s0.unk38->unk14 = sWigglytuffShop1Work->s40.unk9C;
ResetUnusedInputStruct();
sub_800641C(sWigglytuffShop1Work->unk7C, TRUE, TRUE);
sub_8013818(&sWigglytuffShop1Work->unk40, sub_8021664(), 10, a1);
sub_800641C(sWigglytuffShop1Work->s40.s0.unk3C, TRUE, TRUE);
sub_8013818(&sWigglytuffShop1Work->s40.s0.input, sub_8021664(), 10, a1);
if (sUnknown_203B284 == sWigglytuffShop1Work->mode) {
sWigglytuffShop1Work->unk40.menuIndex = sUnknown_203B288;
sWigglytuffShop1Work->unk40.unk1E = sUnknown_203B28A;
sub_8013984(&sWigglytuffShop1Work->unk40);
sWigglytuffShop1Work->s40.s0.input.menuIndex = sUnknown_203B288;
sWigglytuffShop1Work->s40.s0.input.unk1E = sUnknown_203B28A;
sub_8013984(&sWigglytuffShop1Work->s40.s0.input);
}
sub_8021410();
@ -53,11 +53,11 @@ bool8 sub_80211AC(u32 mode, u32 a1)
u32 sub_8021274(bool8 a0)
{
if (!a0) {
sub_8013660(&sWigglytuffShop1Work->unk40);
sub_8013660(&sWigglytuffShop1Work->s40.s0.input);
return 0;
}
switch (GetKeyPress(&sWigglytuffShop1Work->unk40)) {
switch (GetKeyPress(&sWigglytuffShop1Work->s40.s0.input)) {
case INPUT_B_BUTTON:
PlayMenuSoundEffect(1);
return 2;
@ -71,7 +71,7 @@ u32 sub_8021274(bool8 a0)
PlayMenuSoundEffect(4);
return 4;
default:
if (sub_80138B8(&sWigglytuffShop1Work->unk40, 1) != 0) {
if (sub_80138B8(&sWigglytuffShop1Work->s40.s0.input, 1) != 0) {
sub_8021410();
sub_8021494();
return 1;
@ -82,100 +82,46 @@ u32 sub_8021274(bool8 a0)
u8 sub_802132C(void)
{
return sWigglytuffShop1Work->friendAreas[(sWigglytuffShop1Work->unk40.unk1E * sWigglytuffShop1Work->unk40.unk1C) + sWigglytuffShop1Work->unk40.menuIndex];
return sWigglytuffShop1Work->friendAreas[(sWigglytuffShop1Work->s40.s0.input.unk1E * sWigglytuffShop1Work->s40.s0.input.unk1C) + sWigglytuffShop1Work->s40.s0.input.menuIndex];
}
void sub_8021354(bool8 cursorSprite)
{
ResetUnusedInputStruct();
sub_800641C(sWigglytuffShop1Work->unk7C, FALSE, FALSE);
sWigglytuffShop1Work->unk40.unk22 = sub_8021664();
sub_8013984(&sWigglytuffShop1Work->unk40);
sub_800641C(sWigglytuffShop1Work->s40.s0.unk3C, FALSE, FALSE);
sWigglytuffShop1Work->s40.s0.input.unk22 = sub_8021664();
sub_8013984(&sWigglytuffShop1Work->s40.s0.input);
sub_8021410();
sub_8021494();
if (cursorSprite)
AddMenuCursorSprite(&sWigglytuffShop1Work->unk40);
AddMenuCursorSprite(&sWigglytuffShop1Work->s40.s0.input);
}
void sub_80213A0(void)
{
if (sWigglytuffShop1Work) {
sUnknown_203B284 = sWigglytuffShop1Work->mode;
sUnknown_203B288 = sWigglytuffShop1Work->unk40.menuIndex;
sUnknown_203B28A = sWigglytuffShop1Work->unk40.unk1E;
sWigglytuffShop1Work->unk7C[sWigglytuffShop1Work->unk74] = sUnknown_80DC464;
sUnknown_203B288 = sWigglytuffShop1Work->s40.s0.input.menuIndex;
sUnknown_203B28A = sWigglytuffShop1Work->s40.s0.input.unk1E;
sWigglytuffShop1Work->s40.s0.unk3C[sWigglytuffShop1Work->s40.s0.unk34] = sUnknown_80DC464;
ResetUnusedInputStruct();
sub_800641C(sWigglytuffShop1Work->unk7C, TRUE, TRUE);
sub_800641C(sWigglytuffShop1Work->s40.s0.unk3C, TRUE, TRUE);
MemoryFree(sWigglytuffShop1Work);
sWigglytuffShop1Work = NULL;
}
}
NAKED // sub_80095E4 memes
static void sub_8021410(void)
{
asm_unified(
"\tpush {r4,lr}\n"
"\tldr r4, _08021490\n"
"\tldr r0, [r4]\n"
"\tadds r0, 0xDC\n"
"\tmovs r2, 0\n"
"\tmovs r1, 0x1\n"
"\tstrb r1, [r0]\n"
"\tldr r0, [r4]\n"
"\tadds r0, 0xDD\n"
"\tstrb r2, [r0]\n"
"\tldr r0, [r4]\n"
"\tadds r0, 0xDE\n"
"\tmovs r1, 0xC\n"
"\tstrb r1, [r0]\n"
"\tldr r0, [r4]\n"
"\tadds r0, 0xDF\n"
"\tstrb r2, [r0]\n"
"\tbl ResetUnusedInputStruct\n"
"\tldr r0, [r4]\n"
"\tadds r0, 0x7C\n"
"\tmovs r1, 0x1\n"
"\tmovs r2, 0x1\n"
"\tbl sub_800641C\n"
"\tldr r0, [r4]\n"
"\tadds r0, 0x5A\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, 0x74]\n"
"\tlsls r1, r3, 1\n"
"\tadds r1, r3\n"
"\tlsls r1, 3\n"
"\tadds r1, r2, r1\n"
"\tadds r1, 0x8A\n"
"\tasrs r3, r0, 16\n"
"\tlsrs r0, 16\n"
"\tstrh r0, [r1]\n"
"\tldr r1, [r2, 0x74]\n"
"\tlsls r0, r1, 1\n"
"\tadds r0, r1\n"
"\tlsls r0, 3\n"
"\tadds r2, r0\n"
"\tadds r3, 0x2\n"
"\tadds r2, 0x8C\n"
"\tstrh r3, [r2]\n"
"\tbl ResetUnusedInputStruct\n"
"\tldr r0, [r4]\n"
"\tadds r0, 0x7C\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"
"_08021490: .4byte sWigglytuffShop1Work");
sWigglytuffShop1Work->s40.unk9C[0] = 1;
sWigglytuffShop1Work->s40.unk9C[1] = 0;
sWigglytuffShop1Work->s40.unk9C[2] = 12;
sWigglytuffShop1Work->s40.unk9C[3] = 0;
ResetUnusedInputStruct();
sub_800641C(sWigglytuffShop1Work->s40.s0.unk3C, TRUE, TRUE);
SUB_80095E4_CALL(sWigglytuffShop1Work->s40.s0);
}
void sub_8021494(void)
@ -185,38 +131,38 @@ void sub_8021494(void)
u8 buffer1[80];
u8 buffer2[80];
sub_8008C54(sWigglytuffShop1Work->unk74);
sub_80073B8(sWigglytuffShop1Work->unk74);
xxx_call_draw_string(10, 0, sFriendAreas, sWigglytuffShop1Work->unk74, 0);
sub_8008C54(sWigglytuffShop1Work->s40.s0.unk34);
sub_80073B8(sWigglytuffShop1Work->s40.s0.unk34);
xxx_call_draw_string(10, 0, sFriendAreas, sWigglytuffShop1Work->s40.s0.unk34, 0);
sub_8012BC4((sWigglytuffShop1Work->unkDC[2] * 8) + 4, 0, sWigglytuffShop1Work->unk40.unk1E + 1, 1, 7, sWigglytuffShop1Work->unk74);
sub_8012BC4((sWigglytuffShop1Work->s40.unk9C[2] * 8) + 4, 0, sWigglytuffShop1Work->s40.s0.input.unk1E + 1, 1, 7, sWigglytuffShop1Work->s40.s0.unk34);
for (i = 0; i < sWigglytuffShop1Work->unk40.unk1A; i++) {
friendAreaIndex = sWigglytuffShop1Work->friendAreas[(sWigglytuffShop1Work->unk40.unk1E * sWigglytuffShop1Work->unk40.unk1C) + i];
for (i = 0; i < sWigglytuffShop1Work->s40.s0.input.unk1A; i++) {
friendAreaIndex = sWigglytuffShop1Work->friendAreas[(sWigglytuffShop1Work->s40.s0.input.unk1E * sWigglytuffShop1Work->s40.s0.input.unk1C) + i];
if (sWigglytuffShop1Work->mode == 2) {
sub_8092578(buffer1, friendAreaIndex, TRUE);
if (GetFriendAreaPrice(friendAreaIndex) <= gTeamInventoryRef->teamMoney)
xxx_call_draw_string(8,sub_8013800(&sWigglytuffShop1Work->unk40, i), buffer1, sWigglytuffShop1Work->unk74, 0);
xxx_call_draw_string(8,sub_8013800(&sWigglytuffShop1Work->s40.s0.input, i), buffer1, sWigglytuffShop1Work->s40.s0.unk34, 0);
else {
sprintfStatic(buffer2, sFmtRedString, buffer1);
xxx_call_draw_string(8, sub_8013800(&sWigglytuffShop1Work->unk40, i), buffer2, sWigglytuffShop1Work->unk74, 0);
xxx_call_draw_string(8, sub_8013800(&sWigglytuffShop1Work->s40.s0.input, i), buffer2, sWigglytuffShop1Work->s40.s0.unk34, 0);
}
}
else if (sWigglytuffShop1Work->mode == 0) {
if (gFriendAreas[friendAreaIndex] == TRUE)
xxx_call_draw_string(8, sub_8013800(&sWigglytuffShop1Work->unk40, i), GetFriendAreaName(friendAreaIndex), sWigglytuffShop1Work->unk74, 0);
xxx_call_draw_string(8, sub_8013800(&sWigglytuffShop1Work->s40.s0.input, i), GetFriendAreaName(friendAreaIndex), sWigglytuffShop1Work->s40.s0.unk34, 0);
else {
sprintfStatic(buffer2, sFmtGreenString, GetFriendAreaName(friendAreaIndex));
xxx_call_draw_string(8, sub_8013800(&sWigglytuffShop1Work->unk40, i), buffer2, sWigglytuffShop1Work->unk74, 0);
xxx_call_draw_string(8, sub_8013800(&sWigglytuffShop1Work->s40.s0.input, i), buffer2, sWigglytuffShop1Work->s40.s0.unk34, 0);
}
}
else
xxx_call_draw_string(8, sub_8013800(&sWigglytuffShop1Work->unk40, i), GetFriendAreaName(friendAreaIndex), sWigglytuffShop1Work->unk74, 0);
xxx_call_draw_string(8, sub_8013800(&sWigglytuffShop1Work->s40.s0.input, i), GetFriendAreaName(friendAreaIndex), sWigglytuffShop1Work->s40.s0.unk34, 0);
}
sub_80073E0(sWigglytuffShop1Work->unk74);
sub_80073E0(sWigglytuffShop1Work->s40.s0.unk34);
}
static s32 sub_8021664(void)
@ -282,7 +228,7 @@ bool8 sub_8021700(u32 kind)
for (i = BOUNTIFUL_SEA; i < NUM_FRIEND_AREAS; i++) {
if (gFriendAreas[i])
continue;
switch (GetFriendAreaUnlockCondition(i)) {
case UNLOCK_SHOP_STORY:
return FALSE;
@ -296,4 +242,4 @@ bool8 sub_8021700(u32 kind)
}
return TRUE;
}
}