Dungeon pokemon/Floor ID JSON Part 1 (#39)

* move Thunderwave and Tiny Woods pokemon to json

* rule tweaking to actually build tool before parsing JSON

* delete .inc pokemon for tiny Woods and Thunderwave

* silence git complaining about br_ips and ips_patch

* use defines for species and pass the header file for species

* convert sinister woods

* convert MtThunderPeak

* convert silent chasm

* add trial floor_id w/ tiny woods

* change make rule name to fix compile

* MtSteel converted and bugfix

* convert few floor headers and great canyon pokemon

* code cleanup

* unify unkData into UnkTextStruct2

* more code cleanup and some text decomp

* doc more funcs and decomp/split some stuff

* document more save stuff

* more save work and move some data

* pika sniped UpdateNatureTotal

* decomp a litle and convert a few more dungeons

* better scanning for json files

* mt freeze and peak
This commit is contained in:
Seth Barberee
2021-06-09 22:54:21 -05:00
committed by GitHub
parent eaa141c612
commit 377bd14ea6
152 changed files with 55612 additions and 52652 deletions
+43 -59
View File
@@ -2,26 +2,17 @@
#include "input.h"
#include "gUnknown_203B460.h"
#include "memory.h"
struct unkData
{
u8 unk0[24];
};
#include "menu.h"
#include "text.h"
struct unkStruct_203B3F0
{
// size: 0x138
u32 unk0;
u8 unk4;
u32 state;
u8 itemIndex;
u8 fill5[0x8 - 5];
u32 unk8;
u32 *unkC;
u32 unk10;
u32 unk14;
u32 unk18;
u32 unk1C;
u32 unk20;
struct MenuItem menus[3];
u8 fill24[0x4C - 0x24];
u32 unk4C;
u8 fill50[0x9C - 0x50];
@@ -31,11 +22,11 @@ struct unkStruct_203B3F0
u32 unkA8;
u32 unkAC;
u32 unkB0;
struct unkData *unkB4;
struct UnkTextStruct2 *unkB4;
u32 unkB8;
u32 unkBC;
u8 fill4[0xD8 - 0xC0];
struct unkData unkD8[4];
struct UnkTextStruct2 unkD8[4];
};
extern struct unkStruct_203B3F0 *gUnknown_203B3F0;
@@ -43,20 +34,15 @@ extern struct unkStruct_203B3F0 *gUnknown_203B3F0;
struct unkStruct_203B3F4
{
// size: 0xFC
u32 unk0;
u32 state;
u8 unk4;
u8 fill5[0x8 - 5];
u32 unk8;
u32 *unkC;
u32 unk10;
u32 unk14;
u32 unk18;
u32 unk1C;
u32 unk20;
struct MenuItem menus[3];
u8 fill24[0x4C - 0x24];
u32 unk4C;
u8 fill50[0x9C - 0x50];
struct unkData unk9C[4];
struct UnkTextStruct2 unk9C[4];
};
extern struct unkStruct_203B3F4 *gUnknown_203B3F4;
@@ -67,29 +53,27 @@ extern void sub_801B3C0(u8 *);
extern void sub_8090A8C(u8 *, u8, u32);
extern void sub_8013AA0(u32 *);
extern struct unkData gUnknown_80E7E4C;
extern struct unkData gUnknown_80E7E34;
extern struct unkData gUnknown_80E7E64;
extern struct unkData gUnknown_80E7EA4;
extern struct unkData gUnknown_80E7E8C;
extern struct UnkTextStruct2 gUnknown_80E7E34;
extern struct UnkTextStruct2 gUnknown_80E7E4C;
extern struct UnkTextStruct2 gUnknown_80E7E64;
extern const char gDebug_NumberText;
extern struct UnkTextStruct2 gUnknown_80E7E8C;
extern struct UnkTextStruct2 gUnknown_80E7EA4;
extern u32 gDebug_NumberText;
extern u32 gUnknown_80D4970;
extern const char *gUnknown_80D4970[];
extern void sub_800641C(void *, u32, u32);
extern void sub_8006518(void *);
extern void sub_801C8C4(u32, u32, u32, u32);
extern void sub_801CB5C(u32);
extern void sub_801CCD8();
extern void sub_8012D60(u32 *, u32 **, u32, u32, u32, u32);
extern void sub_8012D60(u32 *, struct MenuItem *, u32, u32, u32, u32);
extern void sub_8008C54(u32);
extern void sub_80073B8(u32);
extern void sub_8012EA4(u32 *, u32);
extern void sub_80073E0(u32);
extern void sub_8013C68(u32 *);
extern void xxx_call_draw_string(s32, u32, u32 *, u32, u32);
extern u8 sub_8091524(u8);
extern void xxx_call_draw_string(s32, u32, const char *, u32, u32);
extern bool8 sub_8091524(u8);
extern u32 sub_801CA08(u32);
extern u8 sub_801CB24();
extern void sub_801CBB8();
@@ -135,7 +119,7 @@ u32 sub_803A45C(void)
u32 sub_803A48C(void)
{
switch(gUnknown_203B3F0->unk0) {
switch(gUnknown_203B3F0->state) {
case 0:
case 1:
sub_803A740();
@@ -166,7 +150,7 @@ void sub_803A4E8(void)
void sub_803A504(u32 newState)
{
gUnknown_203B3F0->unk0 = newState;
gUnknown_203B3F0->state = newState;
sub_803A51C();
sub_803A5A0();
}
@@ -176,7 +160,7 @@ void sub_803A51C(void)
s32 iVar4;
sub_8006518(gUnknown_203B3F0->unkD8);
switch(gUnknown_203B3F0->unk0)
switch(gUnknown_203B3F0->state)
{
case 3:
gUnknown_203B3F0->unkD8[1] = gUnknown_80E7E64;
@@ -199,7 +183,7 @@ void sub_803A5A0(void)
{
u8 auStack8 [4];
switch(gUnknown_203B3F0->unk0) {
switch(gUnknown_203B3F0->state) {
case 0:
sub_801C8C4(2,3,0,10);
break;
@@ -209,13 +193,13 @@ void sub_803A5A0(void)
case 2:
sub_801CCD8();
sub_803A6F0();
sub_8012D60(&gUnknown_203B3F0->unk4C, &gUnknown_203B3F0->unkC, 0, 0, gUnknown_203B3F0->unk8, 2);
sub_8012D60(&gUnknown_203B3F0->unk4C, gUnknown_203B3F0->menus, 0, 0, gUnknown_203B3F0->unk8, 2);
break;
case 3:
gUnknown_203B3F0->unkAC = 3;
gUnknown_203B3F0->unkA4 = 0;
gUnknown_203B3F0->unkA8 = 0x3e7;
gUnknown_203B3F0->unkA0 = gUnknown_203B460->unk50[gUnknown_203B3F0->unk4];
gUnknown_203B3F0->unkA0 = gUnknown_203B460->unk50[gUnknown_203B3F0->itemIndex];
gUnknown_203B3F0->unkB0 = 1;
gUnknown_203B3F0->unkB4 = &gUnknown_203B3F0->unkD8[1];
gUnknown_203B3F0->unkB8 = 0x2C;
@@ -224,7 +208,7 @@ void sub_803A5A0(void)
sub_803A690();
break;
case 4:
sub_8090A8C(auStack8,gUnknown_203B3F0->unk4,0);
sub_8090A8C(auStack8,gUnknown_203B3F0->itemIndex,0);
sub_801B3C0(auStack8);
break;
case 5:
@@ -248,20 +232,20 @@ void sub_803A6F0(void)
s32 temp1;
struct unkStruct_203B3F0 *preload;
gUnknown_203B3F0->unkC = &gDebug_NumberText;
gUnknown_203B3F0->unk10 = 2;
gUnknown_203B3F0->menus[0].text = &gDebug_NumberText;
gUnknown_203B3F0->menus[0].menuAction = 2;
gUnknown_203B3F0->unk8 = 2;
if (sub_8091524(gUnknown_203B3F0->unk4) == 0) {
gUnknown_203B3F0->unk10 = -1;
if (!sub_8091524(gUnknown_203B3F0->itemIndex)) {
gUnknown_203B3F0->menus[0].menuAction = -1;
gUnknown_203B3F0->unk8 = 3;
}
preload = gUnknown_203B3F0;
// this var gets loaded in between the sets... very dumb
temp1 = 1;
preload->unk14 = gUnknown_80D4970;
preload->unk18 = 3;
preload->unk1C = 0;
preload->unk20 = temp1;
preload->menus[1].text = *gUnknown_80D4970;
preload->menus[1].menuAction = 3;
preload->menus[2].text = NULL;
preload->menus[2].menuAction = temp1;
}
void sub_803A740(void)
@@ -271,11 +255,11 @@ void sub_803A740(void)
case 1:
break;
case 3:
gUnknown_203B3F0->unk4 = sub_801CB24();
gUnknown_203B3F0->itemIndex = sub_801CB24();
sub_803A504(2);
break;
case 4:
gUnknown_203B3F0->unk4 = sub_801CB24();
gUnknown_203B3F0->itemIndex = sub_801CB24();
sub_803A504(4);
break;
case 2:
@@ -316,7 +300,7 @@ void sub_803A810(void)
switch(sub_8013BBC(&gUnknown_203B3F0->unk9C))
{
case 3:
gUnknown_203B460->unk50[gUnknown_203B3F0->unk4] = gUnknown_203B3F0->unk9C;
gUnknown_203B460->unk50[gUnknown_203B3F0->itemIndex] = gUnknown_203B3F0->unk9C;
// Fallthrough needed to match
case 2:
sub_803A504(1);
@@ -355,7 +339,7 @@ u32 sub_803A888(void)
u32 sub_803A8B8(void)
{
switch(gUnknown_203B3F4->unk0) {
switch(gUnknown_203B3F4->state) {
case 0:
case 1:
sub_803AAC4();
@@ -383,7 +367,7 @@ void sub_803A908(void)
void sub_803A924(u32 newState)
{
gUnknown_203B3F4->unk0 = newState;
gUnknown_203B3F4->state = newState;
sub_803A93C();
sub_803A9AC();
}
@@ -392,7 +376,7 @@ void sub_803A93C(void)
{
s32 iVar4;
sub_8006518(gUnknown_203B3F4->unk9C);
if(gUnknown_203B3F4->unk0 == 2)
if(gUnknown_203B3F4->state == 2)
{
gUnknown_203B3F4->unk9C[2] = gUnknown_80E7EA4;
}
@@ -409,7 +393,7 @@ void sub_803A93C(void)
void sub_803A9AC(void)
{
switch(gUnknown_203B3F4->unk0) {
switch(gUnknown_203B3F4->state) {
case 0:
sub_80211AC(0,3);
break;
@@ -419,7 +403,7 @@ void sub_803A9AC(void)
case 2:
sub_8021494();
sub_803AA34();
sub_8012D60(&gUnknown_203B3F4->unk4C,&gUnknown_203B3F4->unkC,0,0,gUnknown_203B3F4->unk8,2);
sub_8012D60(&gUnknown_203B3F4->unk4C,gUnknown_203B3F4->menus,0,0,gUnknown_203B3F4->unk8,2);
break;
case 3:
sub_8021774(gUnknown_203B3F4->unk4,1,0);