diff options
| author | theo3 <arisstephenson2@gmail.com> | 2020-11-23 22:18:34 -0800 |
|---|---|---|
| committer | theo3 <arisstephenson2@gmail.com> | 2020-11-23 22:18:34 -0800 |
| commit | edbf03101a64b05e9d20cdf53ec2ca4888a2effa (patch) | |
| tree | db67f687b238abf2961b819dd0f121fffbb341c2 /src/screenDebug.c | |
| parent | 0b52f80e4d01ce7c9104eeb9b474bc1cf77b94ed (diff) | |
done
Diffstat (limited to 'src/screenDebug.c')
| -rw-r--r-- | src/screenDebug.c | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/src/screenDebug.c b/src/screenDebug.c new file mode 100644 index 00000000..e8c3a506 --- /dev/null +++ b/src/screenDebug.c @@ -0,0 +1,103 @@ +#include "global.h" +#include "functions.h" +#include "main.h" +#include "menu.h" +#include "screen.h" +#include "structures.h" +#include "textbox.h" + +typedef struct { + u16 unk0; + u16 unk2; + u16 unk4; +} VStruct; + +extern VStruct gUnk_03000FF0; +extern u8 gBG3Buffer[]; + +extern void (*const gUnk_08109A30[])(); + +void HandleDebugTextScreen() { + gUnk_08109A30[gUnk_03001000.funcIndex](); +} + +void sub_0805FA04(void) { + sub_0801DA90(1); + _DmaZero((void*)&gBG0Buffer, sizeof(BGBuffer)); + _DmaZero((void*)&gBG3Buffer, 0x1000); + gScreen.lcd.displayControl = 0x940; + gScreen.bg.bg1Control = 0; + gScreen.bg.bg2Control = 0; + gScreen.affine.bg3xOffset = 0; + gScreen.affine.bg3yOffset = 0; + gScreen.affine.bg3Control = 0x1e0f; + gScreen.affine.unk4 = 1; + sub_08056418(); + _DmaZero((void*)&gUnk_02032EC0, sizeof(UI)); + _DmaZero((void*)&gMenu, sizeof(Menu)); + gMenu.unk16 = gUnk_02000000->gameLanguage; + sub_08053320(); + sub_0801D79C(0, 0x1144); + gUnk_03001000.funcIndex = 1; + sub_080A3210(); + sub_08050008(); +} + +void sub_0805FA98(void) { + int iVar1; + + switch (gUnk_03000FF0.unk2) { + case 0x40: + gMenu.focusCoords[1] -= 1; + break; + case 0x80: + gMenu.focusCoords[1] += 1; + break; + case 0x200: + gMenu.focusCoords[0] ^= 1; + if (gMenu.focusCoords[0] == 0) { + gScreen.bg.bg0Control = 0x1f0c; + gScreen.affine.bg3Control = 0x1e0f; + } else { + gScreen.bg.bg0Control = 0x1f0f; + gScreen.affine.bg3Control = 0x1e0c; + } + break; + case 0x100: + gUnk_02000000->gameLanguage = gMenu.unk16; + TextboxNoOverlapFollow(gMenu.unk14 * 0x100 + gMenu.unk15); + break; + case 0x2: + sub_08056418(); + break; + default: + switch (gUnk_03000FF0.unk4) { + case 0x20: + iVar1 = -1; + break; + case 0x10: + iVar1 = 1; + break; + default: + iVar1 = 0; + break; + } + switch (gMenu.focusCoords[1]) { + case 0: + gMenu.unk14 = (gMenu.unk14 + iVar1 + 0x50) % 0x50; + break; + case 1: + gMenu.unk15 += iVar1; + break; + case 2: + gMenu.unk16 = (gMenu.unk16 + iVar1 + 7) % 7; + break; + } + } + gMenu.focusCoords[1] = (gMenu.focusCoords[1] + 3) % 3; + gScreen.affine.unk4 = 1; +} + +void sub_0805FBC4() { + InitScreen(0); +} |
