mirror of
https://github.com/pret/pmd-red.git
synced 2026-09-15 04:25:54 -05:00
decompile code_800F990
This commit is contained in:
2126
asm/code_800F990.s
2126
asm/code_800F990.s
File diff suppressed because it is too large
Load Diff
@@ -21,17 +21,12 @@ typedef struct unkStruct_202EE8C
|
||||
|
||||
extern unkStruct_202EE8C gUnknown_202EE8C[32];
|
||||
|
||||
struct UnkStruct_4014Ptr
|
||||
struct FiendArea
|
||||
{
|
||||
s32 unk0;
|
||||
const u8 *name;
|
||||
DungeonPos unk4;
|
||||
u8 unk8[8];
|
||||
u8 fill8[0x20-0x10];
|
||||
};
|
||||
|
||||
struct UnkStruct_4014Ptr2
|
||||
{
|
||||
struct UnkStruct_4014Ptr array[0];
|
||||
s16 unk10[8];
|
||||
};
|
||||
|
||||
struct UnkStruct_4018
|
||||
@@ -47,10 +42,13 @@ struct UnkBgStruct
|
||||
OpenedFile *unk0[5];
|
||||
u16 unk14[64][64];
|
||||
u16 unk2014[64][64];
|
||||
struct UnkStruct_4014Ptr2 *unk4014;
|
||||
const struct FiendArea *unk4014;
|
||||
struct UnkStruct_4018 unk4018[32];
|
||||
s32 unk4A18;
|
||||
u8 pad4A1C[0x4A2c-0x4A1C];
|
||||
s32 unk4A1C;
|
||||
s32 unk4A20;
|
||||
s32 unk4A24;
|
||||
s32 unk4A28;
|
||||
u8 unk4A2C;
|
||||
axdata unk4A30[8];
|
||||
axdata unk4C10;
|
||||
@@ -58,13 +56,13 @@ struct UnkBgStruct
|
||||
s32 unk4DCC;
|
||||
u32 unk4DD0;
|
||||
DungeonPos unk4DD4;
|
||||
s16 unk4DD8;
|
||||
s16 unk4DDA;
|
||||
DungeonPos unk4DD8;
|
||||
s32 unk4DDC;
|
||||
s32 unk4DE0;
|
||||
s32 unk4DE4;
|
||||
s32 unk4DE8;
|
||||
u8 unk4DEC[12];
|
||||
u8 unk4DEC[8];
|
||||
u8 unk4DF4;
|
||||
s32 unk4DF8;
|
||||
MenuInputStruct unk4DFC;
|
||||
};
|
||||
|
||||
@@ -89,7 +89,6 @@ SECTIONS {
|
||||
asm/code_800ED38.o(.text);
|
||||
src/code_800F034.o(.text);
|
||||
src/code_800F958.o(.text);
|
||||
asm/code_800F990.o(.text);
|
||||
src/code_8010F28.o(.text);
|
||||
src/code_80118A4.o(.text);
|
||||
src/debug.o(.text);
|
||||
|
||||
@@ -17,14 +17,19 @@
|
||||
#include "pokemon.h"
|
||||
#include "decompress.h"
|
||||
|
||||
extern u32 sub_809034C(u8 dungeonIndex, s32 speciesId_, u8 *buffer, bool32 param_4_, bool32 param_5_);
|
||||
extern void sub_801178C(void);
|
||||
extern void sub_80117C4(void);
|
||||
extern void PlayCancelSoundEffect(void);
|
||||
extern void PlayAcceptSoundEffect(void);
|
||||
extern void PlayCursorUpDownSoundEffect(void);
|
||||
extern s32 sprintf(char *, const char *, ...);
|
||||
extern void sub_800CB20(void);
|
||||
extern void xxx_call_update_bg_sound_input(void);
|
||||
extern bool8 sub_800FFE8(u8);
|
||||
extern void sub_80101F8(u8 *, u8);
|
||||
extern void CopyDungeonName1toBuffer(u8 *buffer, DungeonLocation *dungeonLocation);
|
||||
extern s32 Atan2_4096(PixelPos *a);
|
||||
extern void sub_80117AC(void);
|
||||
extern void sub_8011760(void);
|
||||
|
||||
struct UnkStruct_Sub1
|
||||
{
|
||||
@@ -36,13 +41,17 @@ struct UnkStruct_Sub1
|
||||
struct UnkStruct_203B0E8
|
||||
{
|
||||
struct UnkStruct_Sub1 unk0[64];
|
||||
u8 pad1[0x4014];
|
||||
OpenedFile *unk1100[5];
|
||||
u16 unk1114[64][64];
|
||||
u16 unk3114[64][64];
|
||||
axdata unk5114;
|
||||
u8 pad2[0x184];
|
||||
unkStruct_202EE8C unk5150[16];
|
||||
s32 unk52D0;
|
||||
s32 unk52D4;
|
||||
DungeonPos unk52D8;
|
||||
s16 unk52DC;
|
||||
s16 unk52DE;
|
||||
DungeonPos unk52DC;
|
||||
u16 unk52E0[1500];
|
||||
u8 unk5E98[1500];
|
||||
};
|
||||
|
||||
EWRAM_INIT struct UnkBgStruct *gUnknown_203B0E4 = NULL;
|
||||
@@ -63,12 +72,8 @@ EWRAM_INIT UnkTextStruct3 gUnknown_203B0EC = {
|
||||
.unkE = 3,
|
||||
.unk10 = 3,
|
||||
},
|
||||
[2] = {
|
||||
.unk4 = 3,
|
||||
},
|
||||
[3] = {
|
||||
.unk4 = 3,
|
||||
},
|
||||
[2] = { .unk4 = 3,},
|
||||
[3] = { .unk4 = 3,},
|
||||
}
|
||||
};
|
||||
|
||||
@@ -83,24 +88,781 @@ static inline bool8 ResetFlags(axdata *ptr)
|
||||
}
|
||||
|
||||
extern u8 *const gUnknown_80D408C[];
|
||||
extern u8 *const gUnknown_80D4014[];
|
||||
extern const FileArchive gTitleMenuFileArchive;
|
||||
extern const FileArchive gMonsterFileArchive;
|
||||
extern const u8 gUnknown_80D40E4[];
|
||||
extern const u8 gUnknown_80D40EC[];
|
||||
extern const u8 gUnknown_80D405C[];
|
||||
extern const DungeonPos gUnknown_80D40C4[];
|
||||
extern const u8 gUnknown_80D40FC[];
|
||||
extern const u8 gUnknown_80D4104[];
|
||||
extern const u8 gUnknown_80D4120[];
|
||||
extern const u8 gUnknown_80D4124[];
|
||||
extern const u8 gUnknown_80D3EFC[];
|
||||
extern const u8 gUnknown_80D40F4[];
|
||||
extern const u8 gUnknown_80D4064[];
|
||||
extern const u8 gUnknown_80D406C[];
|
||||
extern const u8 gUnknown_80D407C[];
|
||||
extern const u8 gUnknown_80D4080[];
|
||||
extern const u8 gUnknown_80D4074[];
|
||||
extern const DungeonPos gDungeonCoordinates[];
|
||||
|
||||
void sub_8010960(void);
|
||||
struct UnkStruct_sub_8010494
|
||||
{
|
||||
DungeonLocation unk0;
|
||||
DungeonLocation unk4;
|
||||
u8 pad1[8];
|
||||
u8 unk10;
|
||||
u8 pad2[0xA];
|
||||
s16 unk1C;
|
||||
u8 pad3[0x6E - 0x20];
|
||||
u8 unk6C;
|
||||
u8 unk6D[63];
|
||||
};
|
||||
|
||||
void sub_8010A88(bool8 a0)
|
||||
struct UnkStruct_sub_8010268
|
||||
{
|
||||
u8 fill0[4];
|
||||
struct UnkStruct_sub_8010494 unk4;
|
||||
struct UnkStruct_203B0E8 *unkB0;
|
||||
u8 unkB4;
|
||||
};
|
||||
|
||||
static void sub_8010950(void);
|
||||
static void sub_8010A88(bool8 a0);
|
||||
static bool8 sub_8010A00(void);
|
||||
static void nullsub_24(void);
|
||||
void sub_8011494(void);
|
||||
void sub_8010960(void);
|
||||
void sub_8010798(void);
|
||||
void sub_8010858(void);
|
||||
void sub_8010494(struct UnkStruct_sub_8010494 *r9);
|
||||
void sub_8010344(u8 id1, u8 id2);
|
||||
void sub_801059C(void);
|
||||
bool8 sub_8010C58(u8 *str);
|
||||
void sub_8010C10(const u8 *text);
|
||||
void sub_801091C(void);
|
||||
void sub_8011398(void);
|
||||
void sub_801073C(void);
|
||||
void sub_8010B74(DungeonLocation *dungLocation);
|
||||
void sub_801169C(void);
|
||||
void sub_80110B0(void);
|
||||
void sub_8010EF0(void);
|
||||
void sub_8011300(void);
|
||||
void sub_8011240(void);
|
||||
bool8 sub_800FFE8(u8 friendAreaId);
|
||||
void sub_8011168(void);
|
||||
void sub_80100C0(s32 a0, s32 a1, s32 count);
|
||||
u8 sub_8010014(void);
|
||||
s32 sub_800FAA8(s32 *a0, s32 *a1);
|
||||
bool8 sub_800FB6C(void);
|
||||
void sub_800FC28(void);
|
||||
void sub_800FC5C(u8 a0);
|
||||
void sub_8010DA4(void);
|
||||
|
||||
extern u16 gUnknown_2026E4E;
|
||||
extern u8 gUnknown_202DE18;
|
||||
extern u8 gUnknown_202DE19;
|
||||
|
||||
extern const struct FiendArea gFriendAreaLocations[];
|
||||
|
||||
extern const u8 gUnknown_80D3EDC[];
|
||||
extern const u8 gUnknown_80D3EEC[];
|
||||
|
||||
struct TestStruct
|
||||
{
|
||||
s16 max;
|
||||
s16 min;
|
||||
};
|
||||
|
||||
extern const struct TestStruct gUnknown_80D3EBC[];
|
||||
|
||||
struct struct_unk800F990
|
||||
{
|
||||
u32 unk0;
|
||||
u8 unk4;
|
||||
u8 unk5;
|
||||
struct UnkBgStruct *unk8;
|
||||
u8 unkC;
|
||||
};
|
||||
|
||||
void sub_800F990(struct struct_unk800F990 *param_1)
|
||||
{
|
||||
gUnknown_203B0E4 = param_1->unk8;
|
||||
gUnknown_2026E4E = 0x1010;
|
||||
sub_80095CC(0,0x14);
|
||||
UpdateFadeInTile(2);
|
||||
gUnknown_203B0E4->unk4014 = gFriendAreaLocations;
|
||||
gUnknown_203B0E4->unk4A2C = param_1->unk5;
|
||||
sub_8010DA4();
|
||||
gUnknown_203B0E4->unk4A28 = -1;
|
||||
gUnknown_203B0E4->unk4A1C = -1;
|
||||
sub_800FC5C(param_1->unk4);
|
||||
gUnknown_203B0E4->unk4A20 = gUnknown_203B0E4->unk4A24;
|
||||
gUnknown_202DE18 = 0xff;
|
||||
gUnknown_202DE19 = 0;
|
||||
sub_8011760();
|
||||
while (1) {
|
||||
s32 local_1c = 0;
|
||||
s32 local_18 = 0;
|
||||
s32 iVar2 = sub_800FAA8(&local_1c, &local_18);
|
||||
|
||||
if (iVar2 == 1) {
|
||||
sub_80100C0(local_1c, local_18, 0x32);
|
||||
}
|
||||
else if (iVar2 == 2) {
|
||||
if (!sub_800FB6C())
|
||||
continue;
|
||||
param_1->unkC = gUnknown_203B0E4->unk4DF4;
|
||||
break;
|
||||
}
|
||||
else if (iVar2 == 3) {
|
||||
if (gUnknown_203B0E4->unk4A18 == gUnknown_203B0E4->unk4A20) {
|
||||
param_1->unkC = 0;
|
||||
break;
|
||||
}
|
||||
sub_80100C0(gUnknown_203B0E4->unk4A20,0,10);
|
||||
}
|
||||
}
|
||||
|
||||
sub_800FC28();
|
||||
sub_8010EF0();
|
||||
nullsub_16();
|
||||
}
|
||||
|
||||
s32 sub_800FAA8(s32 *a0, s32 *a1)
|
||||
{
|
||||
s32 ret = 0;
|
||||
|
||||
sub_8011300();
|
||||
sub_8011398();
|
||||
while (ret == 0) {
|
||||
s32 r3;
|
||||
|
||||
sub_801169C();
|
||||
r3 = sub_8010014();
|
||||
if (r3 != 0xFF) {
|
||||
s32 r4 = gUnknown_203B0E4->unk4A18;
|
||||
struct UnkStruct_4018 *ptr = &gUnknown_203B0E4->unk4018[r4];
|
||||
|
||||
if (ptr->unk2[r3] >= 0) {
|
||||
s32 id = ptr->unk2[r3];
|
||||
struct UnkStruct_4018 *ptr2 = &gUnknown_203B0E4->unk4018[id];
|
||||
|
||||
if (ptr2->unk4018 != 0) {
|
||||
ret = 1;
|
||||
*a0 = id;
|
||||
*a1 = r3;
|
||||
gUnknown_203B0E4->unk4A28 = r3;
|
||||
gUnknown_203B0E4->unk4A1C = r4;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (gRealInputs.pressed & A_BUTTON) {
|
||||
PlayAcceptSoundEffect();
|
||||
ret = 2;
|
||||
}
|
||||
if (gRealInputs.pressed & B_BUTTON) {
|
||||
PlayCancelSoundEffect();
|
||||
ret = 3;
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
bool8 sub_800FB6C(void)
|
||||
{
|
||||
bool8 ret = FALSE;
|
||||
|
||||
sub_8011494();
|
||||
while (1) {
|
||||
MenuInputStruct *menuPtr = &gUnknown_203B0E4->unk4DFC;
|
||||
|
||||
AddMenuCursorSprite(menuPtr);
|
||||
sub_801169C();
|
||||
if (gRealInputs.repeated & DPAD_DOWN) {
|
||||
MoveMenuCursorDown(menuPtr);
|
||||
PlayCursorUpDownSoundEffect();
|
||||
}
|
||||
if (gRealInputs.repeated & DPAD_UP) {
|
||||
MoveMenuCursorUp(menuPtr);
|
||||
PlayCursorUpDownSoundEffect();
|
||||
}
|
||||
|
||||
if ((gRealInputs.pressed & A_BUTTON) || menuPtr->unk28.a_button) {
|
||||
PlayAcceptSoundEffect();
|
||||
gUnknown_203B0E4->unk4DF4 = gUnknown_203B0E4->unk4DEC[menuPtr->menuIndex];
|
||||
ret = TRUE;
|
||||
break;
|
||||
}
|
||||
if ((gRealInputs.pressed & B_BUTTON) || menuPtr->unk28.b_button) {
|
||||
PlayCancelSoundEffect();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
void sub_800FC28(void)
|
||||
{
|
||||
s32 i;
|
||||
|
||||
sub_8011168();
|
||||
sub_80117AC();
|
||||
for (i = 0; i < 60; i++) {
|
||||
gUnknown_203B0E4->unk4DCC -= 2;
|
||||
sub_801169C();
|
||||
}
|
||||
}
|
||||
|
||||
void sub_800FC5C(u8 a0)
|
||||
{
|
||||
s32 var_48 = 0;
|
||||
s32 i, j, k;
|
||||
|
||||
for (i = 0; i < 32; i++) {
|
||||
bool8 r7 = FALSE;
|
||||
bool8 r10 = FALSE;
|
||||
struct UnkStruct_4018 *r6 = &gUnknown_203B0E4->unk4018[i];
|
||||
const struct FiendArea *r2 = &gUnknown_203B0E4->unk4014[i];
|
||||
|
||||
for (j = 0; j < 8; j++) {
|
||||
r6->unk2[j] = 0xFFFF;
|
||||
}
|
||||
for (j = 0; j < 8; j++) {
|
||||
if (sub_800FFE8(r2->unk8[j])) {
|
||||
if (r2->unk8[j] == a0) {
|
||||
var_48 = i;
|
||||
}
|
||||
if (r2->unk8[j] == 0) {
|
||||
gUnknown_203B0E4->unk4A24 = i;
|
||||
r10 = TRUE;
|
||||
}
|
||||
r7 = TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
if (r7) {
|
||||
r6->unk4018 = 1;
|
||||
AxResInitFile(&r6->unk14, gUnknown_203B0E4->unk0[2], (r10) ? 12 : 1, 0, 0x40, 0, 1);
|
||||
}
|
||||
else {
|
||||
r6->unk4018 = 0;
|
||||
}
|
||||
}
|
||||
|
||||
for (i = 0; i < 32; i++) {
|
||||
s32 var1, var2;
|
||||
struct UnkStruct_4018 *r3 = &gUnknown_203B0E4->unk4018[i];
|
||||
const struct FiendArea *var_44 = &gUnknown_203B0E4->unk4014[i];
|
||||
|
||||
if (!r3->unk4018) {
|
||||
continue;
|
||||
}
|
||||
|
||||
for (j = 0; j < 8; j++) {
|
||||
r3->unk2[j] = 0xFFFF;
|
||||
if (var_44->unk10[j] >= 0) {
|
||||
struct UnkStruct_4018 *ptr = &gUnknown_203B0E4->unk4018[var_44->unk10[j]];
|
||||
if (ptr->unk4018) {
|
||||
r3->unk2[j] = var_44->unk10[j];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var1 = gUnknown_203B0E4->unk4A28;
|
||||
var2 = gUnknown_203B0E4->unk4A1C;
|
||||
if (var1 >= 0 && var2 >= 0) {
|
||||
struct UnkStruct_4018 *ptr = &gUnknown_203B0E4->unk4018[var2];
|
||||
if (ptr->unk4018) {
|
||||
var1 += 4;
|
||||
var1 &= 7;
|
||||
r3->unk2[var1] = var2;
|
||||
}
|
||||
}
|
||||
|
||||
for (j = 0; j < 8; j++) {
|
||||
s32 var_40 = -1;
|
||||
s32 var_3C = 999999;
|
||||
|
||||
if (r3->unk2[j] >= 0)
|
||||
continue;
|
||||
|
||||
for (k = 0; k < 32; k++) {
|
||||
bool8 r7;
|
||||
PixelPos pixelPos;
|
||||
s32 atanVal;
|
||||
struct UnkStruct_4018 *ptr2_18 = &gUnknown_203B0E4->unk4018[k];
|
||||
const struct FiendArea *ptr2_14 = &gUnknown_203B0E4->unk4014[k];
|
||||
|
||||
if (k == i)
|
||||
continue;
|
||||
if (ptr2_18->unk4018 == 0)
|
||||
continue;
|
||||
|
||||
pixelPos.x = (ptr2_14->unk4.x - var_44->unk4.x) << 8;
|
||||
pixelPos.y = (ptr2_14->unk4.y - var_44->unk4.y) << 8;
|
||||
atanVal = Atan2_4096(&pixelPos);
|
||||
pixelPos.x /= 4;
|
||||
pixelPos.y /= 4;
|
||||
pixelPos.x /= 256;
|
||||
pixelPos.y /= 256;
|
||||
if (pixelPos.x == 0) {
|
||||
pixelPos.x = 1;
|
||||
}
|
||||
if (pixelPos.y == 0) {
|
||||
pixelPos.y = 1;
|
||||
}
|
||||
|
||||
r7 = FALSE;
|
||||
if (j == 2) {
|
||||
while (atanVal >= 0x1000) {
|
||||
atanVal -= 0x1000;
|
||||
}
|
||||
while (atanVal < 0) {
|
||||
atanVal += 0x1000;
|
||||
}
|
||||
if (gUnknown_80D3EBC[j].max < atanVal || gUnknown_80D3EBC[j].min > atanVal) {
|
||||
r7 = TRUE;
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (gUnknown_80D3EBC[j].max <= atanVal && gUnknown_80D3EBC[j].min > atanVal) {
|
||||
r7 = TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
if (r7) {
|
||||
s32 sum = (pixelPos.x * pixelPos.x) + (pixelPos.y * pixelPos.y);
|
||||
if (var_3C > sum) {
|
||||
var_3C = sum;
|
||||
var_40 = k;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (var_40 >= 0) {
|
||||
r3->unk2[j] = var_40;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
AxResInitFile(&gUnknown_203B0E4->unk4C10, gUnknown_203B0E4->unk0[3], 0, 0, 0, 0, TRUE);
|
||||
gUnknown_203B0E4->unk4A18 = var_48;
|
||||
gUnknown_203B0E4->unk4DD8 = gUnknown_203B0E4->unk4014[var_48].unk4;
|
||||
gUnknown_203B0E4->unk4DD4.x = gUnknown_203B0E4->unk4DD8.x - 120;
|
||||
gUnknown_203B0E4->unk4DD4.y = gUnknown_203B0E4->unk4DD8.y - 80;
|
||||
sub_8011240();
|
||||
sub_80110B0();
|
||||
}
|
||||
|
||||
bool8 sub_800FFE8(u8 friendAreaId)
|
||||
{
|
||||
if (friendAreaId > 57) return FALSE;
|
||||
if (friendAreaId == 0) return TRUE;
|
||||
if (gFriendAreas[friendAreaId]) return TRUE;
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
u8 sub_8010014(void)
|
||||
{
|
||||
u8 sp1[16];
|
||||
u8 sp2[16];
|
||||
u8 *table;
|
||||
u32 flag;
|
||||
|
||||
memcpy(sp1, gUnknown_80D3EDC, 16);
|
||||
memcpy(sp2, gUnknown_80D3EEC, 16);
|
||||
flag = 0;
|
||||
table = (gRealInputs.held & R_BUTTON) ? sp2 : sp1;
|
||||
|
||||
if (gRealInputs.held & DPAD_DOWN) {
|
||||
flag |= 1;
|
||||
}
|
||||
if (gRealInputs.held & DPAD_RIGHT) {
|
||||
flag |= 2;
|
||||
}
|
||||
if (gRealInputs.held & DPAD_UP) {
|
||||
flag |= 4;
|
||||
}
|
||||
if (gRealInputs.held & DPAD_LEFT) {
|
||||
flag |= 8;
|
||||
}
|
||||
|
||||
if (gUnknown_202DE18 == table[flag]) {
|
||||
if (++gUnknown_202DE19 >= 3) {
|
||||
return table[flag];
|
||||
}
|
||||
}
|
||||
else {
|
||||
gUnknown_202DE18 = table[flag];
|
||||
gUnknown_202DE19 = 0;
|
||||
}
|
||||
return 0xFF;
|
||||
}
|
||||
|
||||
void sub_80100C0(s32 a0, s32 a1, s32 count)
|
||||
{
|
||||
s32 i, arrayId;
|
||||
DungeonPos pos1, pos2;
|
||||
|
||||
AxResInitFile(&gUnknown_203B0E4->unk4C10, gUnknown_203B0E4->unk0[3], 0, a1 & 7, 0, 0, TRUE);
|
||||
sub_8011168();
|
||||
|
||||
arrayId = gUnknown_203B0E4->unk4A18;
|
||||
pos1 = gUnknown_203B0E4->unk4014[arrayId].unk4;
|
||||
pos2 = gUnknown_203B0E4->unk4014[a0].unk4;
|
||||
|
||||
PlayCursorUpDownSoundEffect();
|
||||
for (i = 0; i < count; i++) {
|
||||
gUnknown_203B0E4->unk4DD8.x = ((((pos2.x - pos1.x) * (i << 8)) / count) / 256) + pos1.x;
|
||||
gUnknown_203B0E4->unk4DD8.y = ((((pos2.y - pos1.y) * (i << 8)) / count) / 256) + pos1.y;
|
||||
|
||||
sub_8011240();
|
||||
sub_80110B0();
|
||||
sub_801169C();
|
||||
}
|
||||
|
||||
gUnknown_203B0E4->unk4A18 = a0;
|
||||
gUnknown_203B0E4->unk4DD8 = gUnknown_203B0E4->unk4014[a0].unk4;
|
||||
sub_8011240();
|
||||
sub_80110B0();
|
||||
sub_801169C();
|
||||
AxResInitFile(&gUnknown_203B0E4->unk4C10, gUnknown_203B0E4->unk0[3], 0, 0, 0, 0, TRUE);
|
||||
}
|
||||
|
||||
void sub_80101F8(u8 *strBuffer, u8 index)
|
||||
{
|
||||
if (index == 0) {
|
||||
FormatString(gUnknown_80D3EFC, strBuffer, strBuffer + 0x50, 0);
|
||||
}
|
||||
else {
|
||||
WriteFriendAreaName(strBuffer, index, FALSE);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8010224(u8 unk8, DungeonPos *dst)
|
||||
{
|
||||
s32 i, j;
|
||||
|
||||
for (i = 0; i < 32; i++) {
|
||||
const struct FiendArea *friendArea = &gFriendAreaLocations[i];
|
||||
for (j = 0; j < 8; j++) {
|
||||
if (friendArea->unk8[j] == unk8) {
|
||||
dst->x = friendArea->unk4.x;
|
||||
dst->y = friendArea->unk4.y;
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
dst->x = 0;
|
||||
dst->y = 0;
|
||||
}
|
||||
|
||||
void sub_8010268(struct UnkStruct_sub_8010268 *r5)
|
||||
{
|
||||
s32 i, speciesId, var;
|
||||
u8 text[1000];
|
||||
|
||||
gUnknown_203B0E8 = r5->unkB0;
|
||||
gUnknown_2026E4E = 2566;
|
||||
sub_80095CC(0, 0x14);
|
||||
UpdateFadeInTile(2);
|
||||
sub_801059C();
|
||||
sub_8010494(&r5->unk4);
|
||||
sub_801178C();
|
||||
for (i = 0; i < 60; i++) {
|
||||
sub_8010960();
|
||||
}
|
||||
sub_8010344(r5->unk4.unk0.id, r5->unk4.unk4.id);
|
||||
sub_8010B74(&r5->unk4.unk4);
|
||||
for (i = 0; i < 60; i++) {
|
||||
sub_8010960();
|
||||
}
|
||||
|
||||
if (r5->unk4.unk10) {
|
||||
speciesId = r5->unk4.unk1C;
|
||||
ASM_MATCH_TRICK(speciesId);
|
||||
}
|
||||
else {
|
||||
speciesId = 0;
|
||||
}
|
||||
|
||||
var = sub_809034C(r5->unk4.unk4.id, speciesId, text, r5->unk4.unk6C, FALSE);
|
||||
if (var == 0) {
|
||||
r5->unkB4 = 1;
|
||||
}
|
||||
else if (var == 1) {
|
||||
sub_8010C10(text);
|
||||
r5->unkB4 = 0;
|
||||
}
|
||||
else if (var == 2) {
|
||||
if (sub_8010C58(text)) {
|
||||
r5->unkB4 = 1;
|
||||
}
|
||||
else {
|
||||
r5->unkB4 = 0;
|
||||
}
|
||||
}
|
||||
|
||||
sub_801091C();
|
||||
sub_801073C();
|
||||
nullsub_16();
|
||||
}
|
||||
|
||||
// Heavy math function.
|
||||
void sub_8010344(u8 id1, u8 id2)
|
||||
{
|
||||
s32 i, valMax, r3;
|
||||
PixelPos pixelPos;
|
||||
DungeonPos pos1 = gDungeonCoordinates[id1];
|
||||
DungeonPos pos2 = gDungeonCoordinates[id2];
|
||||
|
||||
valMax = max(abs(pos2.x - pos1.x), abs(pos2.y - pos1.y));
|
||||
valMax /= 2;
|
||||
|
||||
pixelPos.x = pos1.x - pos2.x;
|
||||
pixelPos.y = pos2.y - pos1.y;
|
||||
r3 = Atan2_4096(&pixelPos) - 1024;
|
||||
if (r3 < 0) {
|
||||
r3 += 511;
|
||||
}
|
||||
r3 >>= 9;
|
||||
r3 &= 7;
|
||||
AxResInitFile(&gUnknown_203B0E8->unk5114, gUnknown_203B0E8->unk1100[3], 0, r3, 0, 0, TRUE);
|
||||
|
||||
for (i = 0; i < valMax; i++) {
|
||||
gUnknown_203B0E8->unk52DC.x = ((((pos2.x - pos1.x) * (i << 8)) / valMax) / 256) + pos1.x;
|
||||
gUnknown_203B0E8->unk52DC.y = ((((pos2.y - pos1.y) * (i << 8)) / valMax) / 256) + pos1.y;
|
||||
sub_8010798();
|
||||
sub_8010858();
|
||||
sub_8010960();
|
||||
if (gRealInputs.pressed & A_BUTTON)
|
||||
break;
|
||||
if (gRealInputs.pressed & B_BUTTON)
|
||||
break;
|
||||
}
|
||||
|
||||
gUnknown_203B0E8->unk52DC = pos2;
|
||||
sub_8010798();
|
||||
sub_8010858();
|
||||
sub_8010960();
|
||||
}
|
||||
|
||||
void sub_8010494(struct UnkStruct_sub_8010494 *r9)
|
||||
{
|
||||
s32 i;
|
||||
for (i = 0; i < 64; i++) {
|
||||
struct UnkStruct_Sub1 *structPtr = &gUnknown_203B0E8->unk0[i];
|
||||
u8 r0;
|
||||
|
||||
if (i < 63) {
|
||||
r0 = r9->unk6D[i];
|
||||
}
|
||||
else {
|
||||
r0 = 1;
|
||||
}
|
||||
|
||||
if (r0) {
|
||||
structPtr->unk0 = 1;
|
||||
AxResInitFile(&structPtr->unk8, gUnknown_203B0E8->unk1100[2], (i == 63) ? 12 : 1, 0, 0x40, 0, 1);
|
||||
structPtr->unk4 = gDungeonCoordinates[i];
|
||||
}
|
||||
else {
|
||||
structPtr->unk0 = 0;
|
||||
}
|
||||
}
|
||||
|
||||
AxResInitFile(&gUnknown_203B0E8->unk5114, gUnknown_203B0E8->unk1100[3], 0, 0, 0, 0, TRUE);
|
||||
gUnknown_203B0E8->unk52DC = gDungeonCoordinates[r9->unk0.id];
|
||||
gUnknown_203B0E8->unk52D8.x = gUnknown_203B0E8->unk52DC.x - 120;
|
||||
gUnknown_203B0E8->unk52D8.y = gUnknown_203B0E8->unk52DC.y - 80;
|
||||
sub_8010798();
|
||||
sub_8010858();
|
||||
}
|
||||
|
||||
void sub_801059C(void)
|
||||
{
|
||||
u8 filename[0xC];
|
||||
s32 i, size;
|
||||
|
||||
PokemonStruct1 *pokeStruct = GetPlayerPokemonStruct();
|
||||
OpenedFile *file = OpenFileAndGetFileDataPtr(gUnknown_80D4014[0], &gTitleMenuFileArchive);
|
||||
OpenedFile *file2 = OpenFileAndGetFileDataPtr(gUnknown_80D4014[1], &gTitleMenuFileArchive);
|
||||
|
||||
sprintf(filename, gUnknown_80D405C, pokeStruct->speciesNum);
|
||||
gUnknown_203B0E8->unk1100[3] = OpenFileAndGetFileDataPtr(filename, &gMonsterFileArchive);
|
||||
gUnknown_203B0E8->unk1100[2] = OpenFileAndGetFileDataPtr(gUnknown_80D4064, &gTitleMenuFileArchive);
|
||||
gUnknown_203B0E8->unk1100[4] = OpenFileAndGetFileDataPtr(gUnknown_80D4014[2], &gTitleMenuFileArchive);
|
||||
gUnknown_203B0E8->unk1100[1] = OpenFileAndGetFileDataPtr(gUnknown_80D406C, &gMonsterFileArchive);
|
||||
gUnknown_203B0E8->unk1100[0] = OpenFileAndGetFileDataPtr(gUnknown_80D4014[3], &gTitleMenuFileArchive);
|
||||
gUnknown_203B0E8->unk52D4 = GetPokemonOverworldPalette(pokeStruct->speciesNum, 0);
|
||||
|
||||
sub_8005610(gUnknown_203B0E8->unk1100[2], 0x40, 0x1F, 0);
|
||||
|
||||
DecompressATGlobalFile((u32 *)(VRAM + 0x8000), 0x0, file);
|
||||
sub_8004AA4(gUnknown_203B0E8->unk5150, gUnknown_203B0E8->unk1100[4], 0x10);
|
||||
size = 0x4000;
|
||||
DecompressATFile((u8 *) &gUnknown_203B0E8->unk1114, size, file2);
|
||||
|
||||
gUnknown_203B0E8->unk52D0 = 0;
|
||||
gUnknown_203B0E8->unk52D8.x = 0;
|
||||
gUnknown_203B0E8->unk52D8.y = 0;
|
||||
|
||||
for (i = 0; i < 1500; i++) {
|
||||
gUnknown_203B0E8->unk52E0[i] |= 0xFFFF;
|
||||
gUnknown_203B0E8->unk5E98[i] = 0;
|
||||
}
|
||||
|
||||
CloseFile(file);
|
||||
CloseFile(file2);
|
||||
xxx_call_save_unk_text_struct_800641C(NULL, 1, 1);
|
||||
}
|
||||
|
||||
void sub_801073C(void)
|
||||
{
|
||||
CloseFile(gUnknown_203B0E8->unk1100[4]);
|
||||
CloseFile(gUnknown_203B0E8->unk1100[3]);
|
||||
CloseFile(gUnknown_203B0E8->unk1100[2]);
|
||||
CloseFile(gUnknown_203B0E8->unk1100[0]);
|
||||
CloseFile(gUnknown_203B0E8->unk1100[1]);
|
||||
}
|
||||
|
||||
void sub_8010798(void)
|
||||
{
|
||||
if (gUnknown_203B0E8->unk52DC.x - gUnknown_203B0E8->unk52D8.x < 48) {
|
||||
gUnknown_203B0E8->unk52D8.x = gUnknown_203B0E8->unk52DC.x - 48;
|
||||
}
|
||||
else if (gUnknown_203B0E8->unk52DC.x - gUnknown_203B0E8->unk52D8.x > 192) {
|
||||
gUnknown_203B0E8->unk52D8.x = gUnknown_203B0E8->unk52DC.x - 192;
|
||||
}
|
||||
|
||||
if (gUnknown_203B0E8->unk52DC.y - gUnknown_203B0E8->unk52D8.y < 48) {
|
||||
gUnknown_203B0E8->unk52D8.y = gUnknown_203B0E8->unk52DC.y - 48;
|
||||
}
|
||||
else if (gUnknown_203B0E8->unk52DC.y - gUnknown_203B0E8->unk52D8.y > 112) {
|
||||
gUnknown_203B0E8->unk52D8.y = gUnknown_203B0E8->unk52DC.y - 112;
|
||||
}
|
||||
|
||||
if (gUnknown_203B0E8->unk52D8.x < 0) {
|
||||
gUnknown_203B0E8->unk52D8.x = 0;
|
||||
}
|
||||
if (gUnknown_203B0E8->unk52D8.y < 0) {
|
||||
gUnknown_203B0E8->unk52D8.y = 0;
|
||||
}
|
||||
if (gUnknown_203B0E8->unk52D8.x >= 240) {
|
||||
gUnknown_203B0E8->unk52D8.x = 240;
|
||||
}
|
||||
if (gUnknown_203B0E8->unk52D8.y >= 160) {
|
||||
gUnknown_203B0E8->unk52D8.y = 160;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8010858(void)
|
||||
{
|
||||
s32 i, j;
|
||||
s32 y1 = gUnknown_203B0E8->unk52D8.y >> 3;
|
||||
s32 y2 = y1;
|
||||
|
||||
for (i = 0; i < 21; i++) {
|
||||
s32 x1 = gUnknown_203B0E8->unk52D8.x >> 3;
|
||||
s32 x2 = x1;
|
||||
|
||||
for (j = 0; j < 31; j++) {
|
||||
x1 &= 0x1F;
|
||||
y1 &= 0x1F;
|
||||
|
||||
gUnknown_202B038[2][y1][x1] = gUnknown_203B0E8->unk3114[y2][x2];
|
||||
gUnknown_202B038[3][y1][x1] = gUnknown_203B0E8->unk1114[y2][x2];
|
||||
x2++;
|
||||
x1++;
|
||||
}
|
||||
y2++;
|
||||
y1++;
|
||||
}
|
||||
|
||||
sub_80098F8(2);
|
||||
sub_80098F8(3);
|
||||
}
|
||||
|
||||
static void nullsub_24(void)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void sub_801091C(void)
|
||||
{
|
||||
s32 i;
|
||||
|
||||
sub_8010950();
|
||||
sub_80117C4();
|
||||
for (i = 0; i < 60; i++) {
|
||||
gUnknown_203B0E8->unk52D0 -= 2;
|
||||
sub_8010960();
|
||||
}
|
||||
}
|
||||
|
||||
static void sub_8010950(void)
|
||||
{
|
||||
xxx_call_save_unk_text_struct_800641C(NULL, TRUE, TRUE);
|
||||
}
|
||||
|
||||
void sub_8010960(void)
|
||||
{
|
||||
SetBG2RegOffsets(gUnknown_203B0E8->unk52D8.x, gUnknown_203B0E8->unk52D8.y);
|
||||
SetBG3RegOffsets(gUnknown_203B0E8->unk52D8.x, gUnknown_203B0E8->unk52D8.y);
|
||||
sub_8010A88(TRUE);
|
||||
sub_8010A00();
|
||||
sub_8005838(NULL, 0);
|
||||
nullsub_8(gGameOptionsRef->unkA);
|
||||
sub_8005180();
|
||||
sub_80060EC();
|
||||
IncrementPlayTime(gPlayTimeRef);
|
||||
sub_800CB20();
|
||||
LoadBufferedInputs();
|
||||
CopySpritesToOam();
|
||||
sub_8005304();
|
||||
TransferBGPaletteBuffer();
|
||||
xxx_call_update_bg_vram();
|
||||
nullsub_24();
|
||||
sub_8009908();
|
||||
xxx_call_update_bg_sound_input();
|
||||
sub_8011860();
|
||||
ResetSprites(FALSE);
|
||||
}
|
||||
|
||||
static bool8 sub_8010A00(void)
|
||||
{
|
||||
bool8 ret = FALSE;
|
||||
|
||||
if (gUnknown_203B0E8->unk52D0 < 31) {
|
||||
s32 i;
|
||||
RGB *color = (void *) gUnknown_203B0E8->unk1100[0]->data;
|
||||
|
||||
if (++gUnknown_203B0E8->unk52D0 >= 31) {
|
||||
gUnknown_203B0E8->unk52D0 = 31;
|
||||
}
|
||||
|
||||
for (i = 0; i < 224; color++, i++) {
|
||||
SetBGPaletteBufferColorRGB(i, color, gUnknown_203B0E8->unk52D0, NULL);
|
||||
}
|
||||
|
||||
color = (void *) gUnknown_203B0E8->unk1100[1]->data;
|
||||
for (i = 0; i < 240; color++, i++) {
|
||||
SetBGPaletteBufferColorRGB(i + 256, color, gUnknown_203B0E8->unk52D0, NULL);
|
||||
}
|
||||
|
||||
ret = TRUE;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void sub_8010A88(bool8 a0)
|
||||
{
|
||||
s32 i;
|
||||
unkStruct_2039DB0 var_2C;
|
||||
@@ -112,7 +874,7 @@ void sub_8010A88(bool8 a0)
|
||||
pos = gUnknown_203B0E8->unk52D8;
|
||||
RunAxAnimationFrame(&gUnknown_203B0E8->unk5114);
|
||||
if (a0) {
|
||||
DoAxFrame_800558C(&gUnknown_203B0E8->unk5114, gUnknown_203B0E8->unk52DC - pos.x, gUnknown_203B0E8->unk52DE - pos.y, 3, gUnknown_203B0E8->unk52D4, &var_2C);
|
||||
DoAxFrame_800558C(&gUnknown_203B0E8->unk5114, gUnknown_203B0E8->unk52DC.x - pos.x, gUnknown_203B0E8->unk52DC.y - pos.y, 3, gUnknown_203B0E8->unk52D4, &var_2C);
|
||||
}
|
||||
|
||||
for (i = 0; i < 64; i++) {
|
||||
@@ -146,7 +908,7 @@ void sub_8010B74(DungeonLocation *dungLocation)
|
||||
}
|
||||
};
|
||||
|
||||
if (gUnknown_203B0E8->unk52DE - gUnknown_203B0E8->unk52D8.y <= 80) {
|
||||
if (gUnknown_203B0E8->unk52DC.y - gUnknown_203B0E8->unk52D8.y <= 80) {
|
||||
spTxtStruct.a0[0].pos.y = 17;
|
||||
}
|
||||
else {
|
||||
@@ -305,11 +1067,11 @@ void sub_8010F28(void)
|
||||
var_30.unkA = 0x800;
|
||||
pos = gUnknown_203B0E4->unk4DD4;
|
||||
RunAxAnimationFrame(&gUnknown_203B0E4->unk4C10);
|
||||
DoAxFrame_800558C(&gUnknown_203B0E4->unk4C10, gUnknown_203B0E4->unk4DD8 - pos.x, gUnknown_203B0E4->unk4DDA - pos.y, 3, gUnknown_203B0E4->unk4DD0, &var_30);
|
||||
DoAxFrame_800558C(&gUnknown_203B0E4->unk4C10, gUnknown_203B0E4->unk4DD8.x - pos.x, gUnknown_203B0E4->unk4DD8.y - pos.y, 3, gUnknown_203B0E4->unk4DD0, &var_30);
|
||||
|
||||
for (i = 0; i < 32; i++) {
|
||||
struct UnkStruct_4018 *r0 = &gUnknown_203B0E4->unk4018[i];
|
||||
struct UnkStruct_4014Ptr *r5 = &gUnknown_203B0E4->unk4014->array[i];
|
||||
const struct FiendArea *r5 = &gUnknown_203B0E4->unk4014[i];
|
||||
if (r0->unk4018 != 0) {
|
||||
RunAxAnimationFrame(&r0->unk14);
|
||||
DoAxFrame_800558C(&r0->unk14, r5->unk4.x - pos.x, r5->unk4.y- pos.y, 1, 0, &var_30);
|
||||
@@ -323,8 +1085,8 @@ void sub_8010F28(void)
|
||||
RunAxAnimationFrame(&gUnknown_203B0E4->unk4A30[i]);
|
||||
if (!(gRealInputs.held & R_BUTTON) || (i % 2) != 0) {
|
||||
DoAxFrame_800558C(&gUnknown_203B0E4->unk4A30[i],
|
||||
(gUnknown_80D40C4[i].x + gUnknown_203B0E4->unk4DD8) - pos.x,
|
||||
(gUnknown_80D40C4[i].y + gUnknown_203B0E4->unk4DDA) - pos.y,
|
||||
(gUnknown_80D40C4[i].x + gUnknown_203B0E4->unk4DD8.x) - pos.x,
|
||||
(gUnknown_80D40C4[i].y + gUnknown_203B0E4->unk4DD8.y) - pos.y,
|
||||
2, 0, &var_30);
|
||||
}
|
||||
}
|
||||
@@ -402,18 +1164,18 @@ bool8 sub_80111C4(void)
|
||||
|
||||
void sub_8011240(void)
|
||||
{
|
||||
if (gUnknown_203B0E4->unk4DD8 - gUnknown_203B0E4->unk4DD4.x < 48) {
|
||||
gUnknown_203B0E4->unk4DD4.x = gUnknown_203B0E4->unk4DD8 - 48;
|
||||
if (gUnknown_203B0E4->unk4DD8.x - gUnknown_203B0E4->unk4DD4.x < 48) {
|
||||
gUnknown_203B0E4->unk4DD4.x = gUnknown_203B0E4->unk4DD8.x - 48;
|
||||
}
|
||||
else if (gUnknown_203B0E4->unk4DD8 - gUnknown_203B0E4->unk4DD4.x > 192) {
|
||||
gUnknown_203B0E4->unk4DD4.x = gUnknown_203B0E4->unk4DD8 - 192;
|
||||
else if (gUnknown_203B0E4->unk4DD8.x - gUnknown_203B0E4->unk4DD4.x > 192) {
|
||||
gUnknown_203B0E4->unk4DD4.x = gUnknown_203B0E4->unk4DD8.x - 192;
|
||||
}
|
||||
|
||||
if (gUnknown_203B0E4->unk4DDA - gUnknown_203B0E4->unk4DD4.y < 48) {
|
||||
gUnknown_203B0E4->unk4DD4.y = gUnknown_203B0E4->unk4DDA - 48;
|
||||
if (gUnknown_203B0E4->unk4DD8.y - gUnknown_203B0E4->unk4DD4.y < 48) {
|
||||
gUnknown_203B0E4->unk4DD4.y = gUnknown_203B0E4->unk4DD8.y - 48;
|
||||
}
|
||||
else if (gUnknown_203B0E4->unk4DDA - gUnknown_203B0E4->unk4DD4.y > 112) {
|
||||
gUnknown_203B0E4->unk4DD4.y = gUnknown_203B0E4->unk4DDA - 112;
|
||||
else if (gUnknown_203B0E4->unk4DD8.y - gUnknown_203B0E4->unk4DD4.y > 112) {
|
||||
gUnknown_203B0E4->unk4DD4.y = gUnknown_203B0E4->unk4DD8.y - 112;
|
||||
}
|
||||
|
||||
if (gUnknown_203B0E4->unk4DD4.x < 0) {
|
||||
@@ -450,7 +1212,7 @@ void sub_8011398(void)
|
||||
{
|
||||
u8 txt[200];
|
||||
s32 id = gUnknown_203B0E4->unk4A18;
|
||||
struct UnkStruct_4014Ptr *r6 = &gUnknown_203B0E4->unk4014->array[id];
|
||||
const struct FiendArea *r6 = &gUnknown_203B0E4->unk4014[id];
|
||||
UnkTextStruct3 spTxtStruct = {0};
|
||||
|
||||
spTxtStruct.a0[0].unk4 = 3;
|
||||
@@ -463,7 +1225,7 @@ void sub_8011398(void)
|
||||
spTxtStruct.a0[2].unk4 = 3;
|
||||
spTxtStruct.a0[3].unk4 = 3;
|
||||
|
||||
if (gUnknown_203B0E4->unk4DDA - gUnknown_203B0E4->unk4DD4.y <= 80) {
|
||||
if (gUnknown_203B0E4->unk4DD8.y - gUnknown_203B0E4->unk4DD4.y <= 80) {
|
||||
spTxtStruct.a0[0].pos.y = 17;
|
||||
}
|
||||
else {
|
||||
@@ -472,7 +1234,7 @@ void sub_8011398(void)
|
||||
|
||||
xxx_call_save_unk_text_struct_800641C(&spTxtStruct, TRUE, TRUE);
|
||||
sub_80073B8(0);
|
||||
sprintfStatic(txt, gUnknown_80D40FC, r6->unk0);
|
||||
sprintfStatic(txt, gUnknown_80D40FC, r6->name);
|
||||
PrintFormattedStringOnWindow(12, 2, txt, 0, '\0');
|
||||
sub_80073E0(0);
|
||||
gUnknown_203B0E4->unk4DDC = (spTxtStruct.a0[0].pos.x * 8) - 5;
|
||||
@@ -485,7 +1247,7 @@ void sub_8011494(void)
|
||||
{
|
||||
s32 i, count, var;
|
||||
s32 id = gUnknown_203B0E4->unk4A18;
|
||||
struct UnkStruct_4014Ptr *r8 = &gUnknown_203B0E4->unk4014->array[id];
|
||||
const struct FiendArea *r8 = &gUnknown_203B0E4->unk4014[id];
|
||||
MenuInputStruct *menuInput = &gUnknown_203B0E4->unk4DFC;
|
||||
UnkTextStruct2_sub2 subTxt;
|
||||
UnkTextStruct3 spTxtStruct = {
|
||||
@@ -561,7 +1323,7 @@ void sub_8011494(void)
|
||||
PrintFormattedStringOnWindow(12, r4, gUnknown_80D4120, 0, '\0');
|
||||
}
|
||||
else {
|
||||
sub_80926F8(r5, &unkFriendAreaStruct, gUnknown_203B0E4->unk4A2C); // TODO FIX R8
|
||||
sub_80926F8(r5, &unkFriendAreaStruct, gUnknown_203B0E4->unk4A2C);
|
||||
gFormatArgs[0] = unkFriendAreaStruct.unk2;
|
||||
gFormatArgs[1] = unkFriendAreaStruct.numPokemon;
|
||||
PrintFormattedStringOnWindow(12, r4, gUnknown_80D4124, 0, '\0');
|
||||
|
||||
Reference in New Issue
Block a user