summaryrefslogtreecommitdiff
path: root/src/debug_menu_2.c
diff options
context:
space:
mode:
authorSeth Barberee <seth.barberee@gmail.com>2021-06-09 22:54:21 -0500
committerGitHub <noreply@github.com>2021-06-09 22:54:21 -0500
commit377bd14ea67d6177250fb401e12d7dfcf44e2cf6 (patch)
tree5440970e02a7890791b234aa233e91e5c1d65b40 /src/debug_menu_2.c
parenteaa141c612dd1689936a21bd57018a55ff686b69 (diff)
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
Diffstat (limited to 'src/debug_menu_2.c')
-rw-r--r--src/debug_menu_2.c186
1 files changed, 186 insertions, 0 deletions
diff --git a/src/debug_menu_2.c b/src/debug_menu_2.c
new file mode 100644
index 0000000..158f540
--- /dev/null
+++ b/src/debug_menu_2.c
@@ -0,0 +1,186 @@
+#include "global.h"
+#include "memory.h"
+#include "pokemon.h"
+#include "text.h"
+#include "input.h"
+#include "menu.h"
+
+struct unkStruct_203B3F8
+{
+ // size: 0x140
+ u32 state;
+ u32 unk4;
+ struct PokemonStruct *pokemon;
+ u32 unkC;
+ const char *unk10;
+ u8 fill14[0x60 - 0x14];
+ u32 unk60;
+ u32 unk64;
+ u32 unk68;
+ u32 unk6C;
+ u32 unk70;
+ u32 unk74;
+ struct UnkTextStruct2 *unk78;
+ u32 unk7C;
+ u32 unk80;
+ u8 fill84[0x90 - 0x84];
+ struct MenuItem unk90[3];
+ u8 fillA8[0xD0 - 0xA8];
+ u16 unkD0[8];
+ struct UnkTextStruct2 unkE0[4];
+};
+extern struct unkStruct_203B3F8 *gUnknown_203B3F8;
+extern struct UnkTextStruct2 gUnknown_80E7ED4;
+extern struct UnkTextStruct2 gUnknown_80E7EEC;
+extern struct UnkTextStruct2 gUnknown_80E7F04;
+extern u8 gDebug_NumberText2[];
+
+extern void sub_8008C54(u32);
+extern void sub_80073B8(u32);
+extern void sub_8013C68(u32 *);
+extern void sub_80073E0(u32);
+extern void sub_8023DA4(void);
+extern void sub_8012EA4(const char **, u32);
+extern void xxx_call_draw_string(u32, u32, u8 *, u32, u32);
+
+void sub_803ACD0(u32);
+extern void sub_803ACE8();
+extern void sub_803AD88();
+extern void sub_803AF38();
+extern void sub_803AF88();
+extern void sub_803AFE8();
+extern void sub_803B034();
+extern void sub_8023868(u32, u32, u32, u32);
+extern void sub_8023B7C(u32);
+extern void sub_8023DA4();
+extern void sub_8013AA0(u32 *);
+extern void sub_803AE58();
+extern void sub_801602C(u32, u8 *);
+
+extern void sub_803AEB0();
+extern void sub_8012CAC(struct UnkTextStruct2 *, struct MenuItem *);
+extern void sub_8012D60(const char **, struct MenuItem *, u32, u16 *, u32, u32);
+
+u32 sub_803AC24(void)
+{
+ gUnknown_203B3F8 = MemoryAlloc(sizeof(struct unkStruct_203B3F8), 8);
+ sub_803ACD0(0);
+ return 1;
+}
+
+u32 sub_803AC48(void)
+{
+ switch(gUnknown_203B3F8->state)
+ {
+ case 0:
+ sub_803ACD0(1);
+ break;
+ case 1:
+ case 2:
+ sub_803AF38();
+ break;
+ case 3:
+ sub_803AF88();
+ break;
+ case 5:
+ sub_803AFE8();
+ break;
+ case 6:
+ sub_803B034();
+ break;
+ case 4:
+ case 7:
+ default:
+ return 3;
+ }
+ return 0;
+}
+
+void sub_803ACB4(void)
+{
+ if(gUnknown_203B3F8 != NULL)
+ {
+ MemoryFree(gUnknown_203B3F8);
+ gUnknown_203B3F8 = NULL;
+ }
+}
+
+void sub_803ACD0(u32 newState)
+{
+ gUnknown_203B3F8->state = newState;
+ sub_803ACE8();
+ sub_803AD88();
+}
+
+void sub_803ACE8(void)
+{
+ s32 iVar2;
+ sub_8006518(gUnknown_203B3F8->unkE0);
+ switch(gUnknown_203B3F8->state)
+ {
+ case 3:
+ sub_803AEB0();
+ gUnknown_203B3F8->unkE0[2] = gUnknown_80E7EEC;
+ sub_8012CAC(&gUnknown_203B3F8->unkE0[2], gUnknown_203B3F8->unk90);
+ break;
+ case 5:
+ gUnknown_203B3F8->unkE0[3] = gUnknown_80E7F04;
+ break;
+ default:
+ for(iVar2 = 0; iVar2 < 4; iVar2++)
+ {
+ gUnknown_203B3F8->unkE0[iVar2] = gUnknown_80E7ED4;
+ }
+ break;
+ }
+ ResetUnusedInputStruct();
+ sub_800641C(gUnknown_203B3F8->unkE0, 1, 1);
+}
+
+void sub_803AD88(void)
+{
+ switch(gUnknown_203B3F8->state)
+ {
+ case 1:
+ sub_8023868(1, 0, 0, 10);
+ break;
+ case 2:
+ sub_8023B7C(1);
+ break;
+ case 3:
+ sub_8023DA4();
+ sub_8012D60(&gUnknown_203B3F8->unk10, gUnknown_203B3F8->unk90, 0, gUnknown_203B3F8->unkD0, gUnknown_203B3F8->unkC, 2);
+ break;
+ case 5:
+ gUnknown_203B3F8->unk70 = 3;
+ gUnknown_203B3F8->unk68 = 1;
+ gUnknown_203B3F8->unk6C = 0x64;
+ gUnknown_203B3F8->unk64 = gUnknown_203B3F8->pokemon->unk3;
+ gUnknown_203B3F8->unk74 = 3;
+ gUnknown_203B3F8->unk78 = &gUnknown_203B3F8->unkE0[3];
+ gUnknown_203B3F8->unk7C = 0x2C;
+ gUnknown_203B3F8->unk80 = 0x12;
+ sub_8013AA0(&gUnknown_203B3F8->unk60);
+ sub_803AE58();
+ break;
+ case 6:
+ sub_801602C(2, gUnknown_203B3F8->pokemon->name);
+ case 0:
+ case 4:
+ case 7:
+ default:
+ break;
+
+ }
+}
+
+void sub_803AE58(void)
+{
+ sub_8008C54(gUnknown_203B3F8->unk74);
+ sub_80073B8(gUnknown_203B3F8->unk74);
+ xxx_call_draw_string(4, 0, gDebug_NumberText2, gUnknown_203B3F8->unk74, 0);
+ sub_8013C68(&gUnknown_203B3F8->unk60);
+ sub_80073E0(gUnknown_203B3F8->unk74);
+ sub_8023DA4();
+ sub_8012EA4(&gUnknown_203B3F8->unk10, 0);
+}