summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPikalaxALT <PikalaxALT@gmail.com>2019-12-11 20:30:09 -0500
committerPikalaxALT <PikalaxALT@gmail.com>2019-12-11 20:30:09 -0500
commite2a4da3a0117e1cb02bd082d82330c9c3d696005 (patch)
tree3f677d39a64a33937855ec9e97ab79d5ef3b9161 /src
parentaf1c24b751a12b5c5d283e13326df3a997ef27dd (diff)
through sub_81042EC
Diffstat (limited to 'src')
-rw-r--r--src/pokedex_screen.c164
1 files changed, 163 insertions, 1 deletions
diff --git a/src/pokedex_screen.c b/src/pokedex_screen.c
index 220d0c9ff..0fa958463 100644
--- a/src/pokedex_screen.c
+++ b/src/pokedex_screen.c
@@ -92,9 +92,10 @@ void sub_8103924(const struct ListMenuTemplate * a0, u8 a1);
u8 sub_81039F0(void);
void sub_8103988(u8 a0);
void sub_8103AC8(u8 taskId);
-int sub_8104284(void);
u8 sub_8104234(void);
+int sub_8104284(void);
void sub_81042EC(u8 taskId);
+bool32 sub_8104664(u8 a0);
void sub_81047B0(u8 *a0);
void sub_81047C8(u8 a0, u8 a1, const u8 *a2, u8 a3, u8 a4, u8 a5);
void sub_810491C(u8 a0, u8 a1, u16 a2, u8 a3, u8 a4, u8 a5);
@@ -143,6 +144,7 @@ extern const struct ScrollArrowsTemplate gUnknown_84520E4;
extern const struct PokedexScreenWindowGfx gUnknown_84520F4[];
extern const struct ListMenuWindowRect gUnknown_845218C;
extern const struct ScrollArrowsTemplate gUnknown_84521B4;
+extern const struct ScrollArrowsTemplate gUnknown_84524B4;
extern const struct CursorStruct gUnknown_84524C4;
void sub_81024C0(void)
@@ -1163,3 +1165,163 @@ void sub_8103AC8(u8 taskId)
break;
}
}
+
+u8 sub_8104234(void)
+{
+ struct ScrollArrowsTemplate template = gUnknown_84524B4;
+ template.fullyUpThreshold = gUnknown_203ACF0->field_29;
+ template.fullyDownThreshold = gUnknown_203ACF0->field_2A - 1;
+ gUnknown_203ACF0->field_62 = gUnknown_203ACF0->field_2B;
+ return AddScrollIndicatorArrowPair(&template, &gUnknown_203ACF0->field_62);
+}
+
+int sub_8104284(void)
+{
+ switch (gSaveBlock2Ptr->optionsButtonMode)
+ {
+ case OPTIONS_BUTTON_MODE_L_EQUALS_A:
+ // Using the JOY_HELD and JOY_NEW macros here does not match!
+ if ((gMain.heldKeys & R_BUTTON) && (gMain.newKeys & DPAD_LEFT))
+ return 1;
+ else if ((gMain.heldKeys & R_BUTTON) && (gMain.newKeys & DPAD_RIGHT))
+ return 2;
+ else
+ return 0;
+ case OPTIONS_BUTTON_MODE_LR:
+ if (gMain.newKeys & L_BUTTON)
+ return 1;
+ else if (gMain.newKeys & R_BUTTON)
+ return 2;
+ else
+ return 0;
+ default:
+ case OPTIONS_BUTTON_MODE_HELP:
+ return 0;
+ }
+}
+
+void sub_81042EC(u8 taskId)
+{
+ switch (gUnknown_203ACF0->field_01)
+ {
+ case 0:
+ HideBg(3);
+ HideBg(2);
+ HideBg(1);
+ gUnknown_203ACF0->field_01 = 2;
+ break;
+ case 1:
+ HideBg(2);
+ HideBg(1);
+ gTasks[taskId].func = sub_8102F80;
+ gUnknown_203ACF0->field_01 = 0;
+ break;
+ case 2:
+ gUnknown_203ACF0->field_2C = 1;
+ sub_8105E1C(0);
+ gUnknown_203ACF0->field_01 = 3;
+ break;
+ case 3:
+ CopyBgTilemapBufferToVram(3);
+ CopyBgTilemapBufferToVram(2);
+ CopyBgTilemapBufferToVram(1);
+ CopyBgTilemapBufferToVram(0);
+ PlayCry2(gUnknown_203ACF0->field_5A, 0, 125, 10);
+ gUnknown_203ACF0->field_01 = 4;
+ break;
+ case 4:
+ BeginNormalPaletteFade(0xFFFF7FFF, 0, 16, 0, RGB_WHITEALPHA);
+ ShowBg(3);
+ ShowBg(2);
+ ShowBg(1);
+ gUnknown_203ACF0->field_01 = 5;
+ break;
+ case 5:
+ if (JOY_NEW(A_BUTTON))
+ {
+ sub_8106014();
+ FillBgTilemapBufferRect_Palette0(1, 0x000, 0, 2, 30, 16);
+ CopyBgTilemapBufferToVram(1);
+ gUnknown_203ACF0->field_01 = 7;
+ }
+ else if (JOY_NEW(B_BUTTON))
+ {
+ sub_8106014();
+ BeginNormalPaletteFade(0xFFFF7FFF, 0, 0, 16, RGB_WHITEALPHA);
+ gUnknown_203ACF0->field_01 = 1;
+ }
+ else if (JOY_NEW(DPAD_UP) && sub_8104664(1))
+ {
+ sub_8106014();
+ BeginNormalPaletteFade(0xFFFF7FFF, 0, 0, 16, RGB_WHITEALPHA);
+ gUnknown_203ACF0->field_01 = 6;
+ }
+ else if (JOY_NEW(DPAD_DOWN) && sub_8104664(0))
+ {
+ sub_8106014();
+ BeginNormalPaletteFade(0xFFFF7FFF, 0, 0, 16, RGB_WHITEALPHA);
+ gUnknown_203ACF0->field_01 = 6;
+ }
+ else
+ {
+ sub_8106B34();
+ }
+ break;
+ case 6:
+ HideBg(2);
+ HideBg(1);
+ gUnknown_203ACF0->field_5A = gUnknown_203ACF0->field_30;
+ gUnknown_203ACF0->field_01 = 2;
+ break;
+ case 7:
+ sub_810603C();
+ gUnknown_203ACF0->field_01 = 8;
+ break;
+ case 8:
+ CopyBgTilemapBufferToVram(3);
+ CopyBgTilemapBufferToVram(2);
+ CopyBgTilemapBufferToVram(1);
+ CopyBgTilemapBufferToVram(0);
+ gUnknown_203ACF0->field_01 = 9;
+ break;
+ case 9:
+ if (JOY_NEW(A_BUTTON))
+ {
+ BeginNormalPaletteFade(0xFFFF7FFF, 0, 0, 16, RGB_WHITEALPHA);
+ gUnknown_203ACF0->field_01 = 12;
+ }
+ else if (JOY_NEW(B_BUTTON))
+ {
+ FillBgTilemapBufferRect_Palette0(2, 0x000, 0, 2, 30, 16);
+ FillBgTilemapBufferRect_Palette0(1, 0x000, 0, 2, 30, 16);
+ FillBgTilemapBufferRect_Palette0(0, 0x000, 0, 2, 30, 16);
+ CopyBgTilemapBufferToVram(2);
+ CopyBgTilemapBufferToVram(1);
+ CopyBgTilemapBufferToVram(0);
+ gUnknown_203ACF0->field_01 = 10;
+ }
+ else
+ {
+ sub_8106B34();
+ }
+ break;
+ case 10:
+ sub_81067C0();
+ gUnknown_203ACF0->field_01 = 11;
+ break;
+ case 11:
+ sub_8105E1C(0);
+ CopyBgTilemapBufferToVram(3);
+ CopyBgTilemapBufferToVram(2);
+ CopyBgTilemapBufferToVram(1);
+ CopyBgTilemapBufferToVram(0);
+ gUnknown_203ACF0->field_01 = 5;
+ break;
+ case 12:
+ sub_81067C0();
+ FillBgTilemapBufferRect_Palette0(0, 0x000, 0, 2, 30, 16);
+ CopyBgTilemapBufferToVram(0);
+ gUnknown_203ACF0->field_01 = 1;
+ break;
+ }
+}