diff options
author | Mateusz Naściszewski <matin1111@wp.pl> | 2020-12-28 04:23:40 +0100 |
---|---|---|
committer | Seth Barberee <seth.barberee@gmail.com> | 2020-12-28 20:13:22 -0600 |
commit | 1d43c0efebf166781b264467980e09d0333ab851 (patch) | |
tree | 1cf226d88d46639c6fa7982a9db3e2c733a576f8 /src/code_2.c | |
parent | fb2fc3a2bad1605c32b49b5402c1efe56b0792b0 (diff) |
Decompile GameLoop and lots of renames
Diffstat (limited to 'src/code_2.c')
-rw-r--r-- | src/code_2.c | 195 |
1 files changed, 195 insertions, 0 deletions
diff --git a/src/code_2.c b/src/code_2.c new file mode 100644 index 0000000..d53ab29 --- /dev/null +++ b/src/code_2.c @@ -0,0 +1,195 @@ +#include "global.h" +#include "file_system.h" +#include "input.h" + +extern void InitHeap(void); +extern void NDS_DebugInit(void); +extern void sub_801180C(void); +extern void NDS_LoadOverlay_GroundMain(void); +extern void sub_8014144(void); +extern void LoadMonsterParameters(void); +extern void sub_8097670(void); +extern void sub_8094F88(void); +extern void sub_8094980(void); +extern void sub_8094C14(void); +extern void sub_8097F5C(void); +extern void sub_80923A0(void); +extern void sub_8090998(void); +extern void sub_809207C(void); +extern void LoadWazaParameters(void); +extern void sub_80950BC(void); +extern void sub_80958E8(void); +extern void sub_800CD64(u32, u32); +extern void sub_8012284(void); +extern void sub_8094998(u32); +extern void SetWindowTitle(char *); +extern void sub_800DAAC(void); +extern void SetSavingIconCoords(u32); +extern u32 sub_8011DAC(u32 *); +extern void sub_800135C(void); +extern void xxx_script_related_8001334(u32); +extern void sub_80015C0(u32, u32); +extern u32 sub_8001658(u32, u32); +extern void sub_800A8F8(u32); +extern void ResetSprites(u32); +extern void xxx_update_some_bg_tiles(u32); +extern void sub_80097B0(void); +extern void sub_800CDA8(u32); +extern void sub_800641C(u32, u32, u32); +extern void LoadTitleScreen(void); +extern void sub_800CCA0(u32, u32); +extern void sub_800CCAC(u32, u32); +extern void SetBGPaletteBufferColorRGB(s32, u8 *, s32, u8 *); +extern void xxx_update_stuff(u32); +extern void sub_800BDFC(u32); +extern void sub_80095CC(u32, u32); +extern void InitMainMenu(void); + +extern void sub_8012468(void); +extern u32 sub_8012484(void); +extern void sub_8012558(void); +extern u8 sub_80363E0(void); +extern void SetBGOBJEnableFlags(u32); +extern void SetUpMenu(void); +extern u32 UpdateMenu(void); +extern void CleanUpMenu(void); +extern void sub_80357D0(void); +extern s32 sub_80953D4(u32); +extern void sub_8095240(u8); +extern void sub_80122A8(void); +extern void nullsub_33(void); +extern u32 sub_80009D0(u32); + +extern u32 gUnknown_203B03C; +extern u16 gUnknown_2026E4E; +extern s32 gUnknown_2000A80; +extern struct OpenedFile *gTitlePaletteFile; +extern struct Inputs gRealInputs; + +extern char gUnknown_80B69BC[]; + +void GameLoop(void) +{ + u32 tmp; + u8 tmp3 = 1; + u32 tmp4; + u32 flag; + + InitHeap(); + NDS_DebugInit(); + sub_801180C(); + NDS_LoadOverlay_GroundMain(); + sub_8014144(); + LoadMonsterParameters(); + sub_8097670(); + sub_8094F88(); + sub_8094980(); + sub_8094C14(); + sub_8097F5C(); + sub_80923A0(); + sub_8090998(); + sub_809207C(); + LoadWazaParameters(); + sub_80950BC(); + sub_80958E8(); + sub_800CD64(0x8000, 0); + sub_8012284(); + sub_8094998(1); + SetWindowTitle(gUnknown_80B69BC); + sub_800DAAC(); + SetSavingIconCoords(0); + tmp = 0; + if (sub_8011DAC(&tmp)) + sub_800135C(); + xxx_script_related_8001334(14); + xxx_script_related_8001334(15); + sub_80015C0(0, 57); + xxx_script_related_8001334(16); + if (sub_8001658(0, 57) == 0) + xxx_script_related_8001334(17); + + while (1) { + gUnknown_203B03C = 0; // ??? + sub_800A8F8(2); + ResetSprites(1); + xxx_update_some_bg_tiles(0); + sub_80097B0(); + sub_800CDA8(2); + sub_800641C(0, 1, 1); + gUnknown_2026E4E = 0x1000; + LoadTitleScreen(); + sub_800CCA0(0, 0); + sub_800CCAC(0, 0); + gUnknown_2000A80 = 0; + while (gUnknown_2000A80 < 32) { + s32 i; + gUnknown_2000A80++; + for (i = 0; i < 240; i++) + SetBGPaletteBufferColorRGB(i, &gTitlePaletteFile->data[i * 4], gUnknown_2000A80, 0); + xxx_update_stuff(0); + } + if (tmp3) { + sub_8012468(); + while ((u8)(tmp3 = sub_8012484())) + xxx_update_stuff(0); + sub_8012558(); + } + tmp3 = 1; + sub_800BDFC(8); + flag = TRUE; + sub_80095CC(0, 20); + InitMainMenu(); + while (1) { + if ((u8)sub_80363E0()) { + if (gRealInputs.pressed & L_BUTTON) { + flag = FALSE; + SetBGOBJEnableFlags(19); + } else if (!flag && (gRealInputs.held & L_BUTTON) == 0) { + flag = TRUE; + SetBGOBJEnableFlags(0); + } + if (!flag) { + xxx_update_stuff(0); + continue; + } + } + SetUpMenu(); + xxx_update_stuff(0); + tmp4 = UpdateMenu(); + CleanUpMenu(); + if (tmp4 == 2) break; + if (tmp4 == 4) break; + if (tmp4 == 3) break; + } + sub_80357D0(); + while (gUnknown_2000A80 > 0) { + s32 i; + gUnknown_2000A80--; + for (i = 0; i < 240; i++) + SetBGPaletteBufferColorRGB(i, &gTitlePaletteFile->data[i * 4], gUnknown_2000A80, 0); + xxx_update_stuff(0); + } + CloseFile(gTitlePaletteFile); + switch (tmp4) { + case 2: { + s32 tmp5 = sub_80953D4(7); + if (tmp5 != -1) { + sub_8095240(tmp5); + tmp3 = sub_80009D0(2); + } else { + tmp3 = sub_80009D0(1); + } + break; + } + case 4: + tmp3 = sub_80009D0(3); + break; + case 3: + sub_80122A8(); + nullsub_33(); + tmp3 = sub_80009D0(0); + break; + } + + } +} |