mirror of
https://github.com/pret/pmd-red.git
synced 2026-10-05 08:56:58 -04:00
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:
+43
-59
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user