through sub_815DA3C

This commit is contained in:
scnorton
2019-01-02 09:37:56 -05:00
parent 0216888949
commit 5c794a1d3d
3 changed files with 110 additions and 133 deletions
+89 -2
View File
@@ -3,7 +3,9 @@
#include "constants/vars.h"
#include "malloc.h"
#include "save.h"
#include "string_util.h"
#include "event_data.h"
#include "random.h"
#include "cereader_tool.h"
struct UnkStruct_8479D34
@@ -16,9 +18,49 @@ struct UnkStruct_8479D34
u8 flags3[8];
};
extern const struct UnkStruct_8479D34 gUnknown_8479D34[15];
struct UnkStruct_203F458
{
/* 0x0000 */ u8 filler_0000[0x1F0C];
};
struct UnkStruct_203F45C
{
/* 0x00 */ u8 unk_00[11];
/* 0x0B */ u8 filler_0B[49];
/* 0x3C */ u8 unk_3C;
/* 0x3D */ u8 unk_3D;
};
EWRAM_DATA struct UnkStruct_203F458 * gUnknown_203F458 = NULL;
EWRAM_DATA struct UnkStruct_203F45C * gUnknown_203F45C = NULL;
void sub_815D96C(void);
void sub_815DC8C(void); // setup
void sub_815DD2C(void); // teardown
void sub_815DD44(void);
void sub_815DF54(void);
void sub_815E160(void);
void sub_815E1C0(void);
void sub_815E1F0(void);
void sub_815E218(void);
void sub_815E28C(void);
void sub_815E394(void);
void sub_815E408(void);
void sub_815E4B0(void);
void sub_815E56C(void);
void sub_815E5C4(void);
void sub_815E5F0(void);
void sub_815E658(void);
void sub_815E720(void);
void sub_815E88C(void);
void sub_815E8B4(void);
void sub_815E8CC(void);
void sub_815E908(void);
void sub_815E948(void);
void sub_815E9C8(void);
extern const struct UnkStruct_8479D34 gUnknown_8479D34[15];
extern void (*const gUnknown_847A230[])(void);
bool32 sub_815D7BC(void * dest, void * buffer)
{
@@ -78,7 +120,7 @@ void sub_815D8C8(void)
}
}
void sub_815D8F8(void)
void sub_815D8F8(void) // fakematching
{
u8 i;
register u32 found_map asm("r4") = 0xFF;
@@ -97,3 +139,48 @@ void sub_815D8F8(void)
sub_815D96C();
}
}
void sub_815D96C(void)
{
u8 i, j;
const u8 * flags;
u16 rval;
for (i = 0; i < 15; i++)
{
rval = Random() % 100;
if (rval >= 90)
flags = gUnknown_8479D34[i].flags1;
else if (rval >= 60)
flags = gUnknown_8479D34[i].flags2;
else
flags = gUnknown_8479D34[i].flags3;
for (j = 0; j < 8; j++)
{
if (flags[j] != 0xFF)
FlagClear(FLAG_TRAINER_TOWER_START + flags[j]);
}
}
}
void sub_815D9E8(void)
{
sub_815DC8C();
gUnknown_847A230[gSpecialVar_0x8004]();
sub_815DD2C();
}
u8 sub_815DA10(void)
{
return gFacilityClassToTrainerClass[gUnknown_203F45C->unk_3D];
}
void sub_815DA28(u8 * dest)
{
StringCopyN(dest, gUnknown_203F45C->unk_00, 11);
}
u8 sub_815DA3C(void)
{
return gFacilityClassToPicIndex[gUnknown_203F45C->unk_3D];
}