summaryrefslogtreecommitdiff
path: root/src/pokedex_screen.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/pokedex_screen.c')
-rw-r--r--src/pokedex_screen.c518
1 files changed, 170 insertions, 348 deletions
diff --git a/src/pokedex_screen.c b/src/pokedex_screen.c
index 8b13e5dc8..a36108425 100644
--- a/src/pokedex_screen.c
+++ b/src/pokedex_screen.c
@@ -22,9 +22,7 @@ struct PokedexScreenData
{
u8 field_00;
u8 field_01;
- u8 field_02;
- u8 field_03;
- u8 field_04;
+ u8 field_02[4];
u32 field_08;
u32 field_0C;
u16 field_10;
@@ -33,9 +31,9 @@ struct PokedexScreenData
u8 field_15;
u8 field_16;
u8 field_17;
- u16 field_18[0x4];
- u8 field_20[0x4];
- u8 field_24[0x4];
+ u16 field_18[4];
+ u8 field_20[4];
+ u8 field_24[4];
u8 field_28;
u8 field_29;
u8 field_2A;
@@ -77,32 +75,32 @@ struct PokedexScreenWindowGfx
EWRAM_DATA struct PokedexScreenData * gUnknown_203ACF0 = NULL;
-void sub_810287C(u8 taskId);
-void sub_8102C28(void);
-void sub_8102F80(u8 taskId);
-void sub_810317C(void);
-void sub_8103238(u8 taskId);
-void sub_810345C(void);
-u16 sub_8103518(u8 a0);
-void sub_8103924(const struct ListMenuTemplate * a0, u8 a1);
-u8 sub_81039F0(void);
-void sub_8103988(u8 a0);
-void sub_8103AC8(u8 taskId);
-u8 sub_8104234(void);
-int sub_8104284(void);
-void sub_81042EC(u8 taskId);
-bool32 sub_8104664(u8 a0);
+static void sub_810287C(u8 taskId);
+static void sub_8102C28(void);
+static void sub_8102F80(u8 taskId);
+static void sub_810317C(void);
+static void sub_8103238(u8 taskId);
+static void sub_810345C(void);
+static u16 sub_8103518(u8 a0);
+static void sub_8103924(const struct ListMenuTemplate * a0, u8 a1);
+static u8 sub_81039F0(void);
+static void sub_8103988(u8 a0);
+static void sub_8103AC8(u8 taskId);
+static u8 sub_8104234(void);
+static int sub_8104284(void);
+static void sub_81042EC(u8 taskId);
+static bool32 sub_8104664(u8 a0);
void sub_81047B0(u8 *windowId_p);
void sub_81047C8(u8 windowId, u8 fontId, const u8 *str, u8 x, u8 y, u8 colorIdx);
-void sub_810491C(u8 windowId, u8 fontId, u16 num, u8 x, u8 y, u8 colorIdx);
+static void sub_810491C(u8 windowId, u8 fontId, u16 num, u8 x, u8 y, u8 colorIdx);
void sub_8104A34(u8 windowId, u8 fontId, u16 species, u8 x, u8 y);
-u16 sub_8104BBC(u8 caseId, bool8 whichDex);
+static u16 sub_8104BBC(u8 caseId, bool8 whichDex);
void sub_8104C2C(const u8 *src);
void sub_8104E90(void);
bool8 sub_8104F0C(bool8 a0);
void sub_8105058(u8 a0);
void sub_8105178(u8 a0, u8 a1, u8 a2);
-bool8 sub_81052D0(u8 a0);
+static bool8 sub_81052D0(u8 a0);
void sub_8105594(u8 a0, u8 a1);
void sub_8105E1C(u8 a0);
void sub_8106014(void);
@@ -119,9 +117,9 @@ void sub_8106E78(const u8 *a0, s32 a1);
#include "data/pokemon_graphics/footprint_table.h"
-const u32 gUnknown_8440124[] = INCBIN_U32("graphics/pokedex/unk_8440124.bin.lz");
-const u32 gUnknown_8440274[] = INCBIN_U32("graphics/pokedex/unk_8440274.4bpp.lz");
-const u32 gUnknown_84403AC[] = INCBIN_U32("graphics/pokedex/unk_84403AC.4bpp.lz");
+const u8 gUnknown_8440124[] = INCBIN_U8("graphics/pokedex/unk_8440124.bin.lz");
+const u8 gUnknown_8440274[] = INCBIN_U8("graphics/pokedex/unk_8440274.4bpp.lz");
+const u8 gUnknown_84403AC[] = INCBIN_U8("graphics/pokedex/unk_84403AC.4bpp.lz");
const u16 gUnknown_84404C8[] = INCBIN_U16("graphics/pokedex/unk_84404C8.gbapal");
const u16 gUnknown_84406C8[] = {
@@ -242,21 +240,21 @@ void sub_810250C(void)
ScanlineEffect_Stop();
ResetBgsAndClearDma3BusyFlags(TRUE);
InitBgsFromTemplates(0, gUnknown_8451EBC, NELEMS(gUnknown_8451EBC));
- SetBgTilemapBuffer(3, Alloc(BG_SCREEN_SIZE));
- SetBgTilemapBuffer(2, Alloc(BG_SCREEN_SIZE));
- SetBgTilemapBuffer(1, Alloc(BG_SCREEN_SIZE));
- SetBgTilemapBuffer(0, Alloc(BG_SCREEN_SIZE));
+ SetBgTilemapBuffer(3, (u16*)Alloc(BG_SCREEN_SIZE));
+ SetBgTilemapBuffer(2, (u16*)Alloc(BG_SCREEN_SIZE));
+ SetBgTilemapBuffer(1, (u16*)Alloc(BG_SCREEN_SIZE));
+ SetBgTilemapBuffer(0, (u16*)Alloc(BG_SCREEN_SIZE));
if (natDex)
- DecompressAndLoadBgGfxUsingHeap(3, gUnknown_84403AC, BG_SCREEN_SIZE, 0, 0);
+ DecompressAndLoadBgGfxUsingHeap(3, (void*)gUnknown_84403AC, BG_SCREEN_SIZE, 0, 0);
else
- DecompressAndLoadBgGfxUsingHeap(3, gUnknown_8440274, BG_SCREEN_SIZE, 0, 0);
+ DecompressAndLoadBgGfxUsingHeap(3, (void*)gUnknown_8440274, BG_SCREEN_SIZE, 0, 0);
InitWindows(gUnknown_8451ECC);
DeactivateAllTextPrinters();
m4aSoundVSyncOn();
SetVBlankCallback(sub_81024C0);
EnableInterrupts(INTR_FLAG_VBLANK);
taskId = CreateTask(sub_810287C, 0);
- gUnknown_203ACF0 = Alloc(sizeof(*gUnknown_203ACF0));
+ gUnknown_203ACF0 = Alloc(sizeof(struct PokedexScreenData));
*gUnknown_203ACF0 = gUnknown_8451EE4;
gUnknown_203ACF0->field_00 = taskId;
gUnknown_203ACF0->field_44 = Alloc(NATIONAL_DEX_COUNT * sizeof(struct ListMenuItem));
@@ -336,7 +334,7 @@ void sub_8102858(void)
}
}
-void sub_810287C(u8 taskId)
+static void sub_810287C(u8 taskId)
{
int i;
switch (gUnknown_203ACF0->field_01)
@@ -474,7 +472,7 @@ void sub_810287C(u8 taskId)
}
}
-void sub_8102C28(void)
+static void sub_8102C28(void)
{
struct ListMenuTemplate listMenuTemplate;
FillBgTilemapBufferRect(3, 0x00E, 0, 0, 30, 20, 0x00);
@@ -541,15 +539,15 @@ void sub_8102EC0(s32 itemIndex, bool8 onInit, struct ListMenu *list)
CopyWindowToVram(gUnknown_203ACF0->field_15, COPYWIN_GFX);
}
-void sub_8102F48(u8 windowId, s32 itemId, u8 y)
+void sub_8102F48(u8 windowId, u32 itemId, u8 y)
{
- if (itemId < 0 || itemId > 8 || gUnknown_203ACF0->field_08 & (1 << itemId))
+ if (itemId > 8 || gUnknown_203ACF0->field_08 & (1 << itemId))
ListMenuOverrideSetColors(1, 0, 3);
else
ListMenuOverrideSetColors(10, 0, 11);
}
-void sub_8102F80(u8 taskId)
+static void sub_8102F80(u8 taskId)
{
switch (gUnknown_203ACF0->field_01)
{
@@ -616,7 +614,7 @@ void sub_8102F80(u8 taskId)
}
}
-void sub_810317C(void)
+static void sub_810317C(void)
{
struct ListMenuTemplate template;
FillBgTilemapBufferRect(3, 0x00E, 0, 0, 30, 20, 0x00);
@@ -635,7 +633,7 @@ void sub_810317C(void)
CopyWindowToVram(1, COPYWIN_GFX);
}
-void sub_8103238(u8 taskId)
+static void sub_8103238(u8 taskId)
{
switch (gUnknown_203ACF0->field_01)
{
@@ -702,7 +700,7 @@ void sub_8103238(u8 taskId)
}
}
-void sub_810345C(void)
+static void sub_810345C(void)
{
struct ListMenuTemplate template;
FillBgTilemapBufferRect(3, 0x00E, 0, 0, 30, 20, 0x00);
@@ -721,7 +719,7 @@ void sub_810345C(void)
CopyWindowToVram(1, COPYWIN_GFX);
}
-u16 sub_8103518(u8 a0)
+static u16 sub_8103518(u8 a0)
{
s32 max_n = IsNationalPokedexEnabled() ? NATIONAL_DEX_COUNT : KANTO_DEX_COUNT;
u16 ndex_num;
@@ -841,7 +839,7 @@ u16 sub_8103518(u8 a0)
return ret;
}
-void sub_8103924(const struct ListMenuTemplate * template, u8 a1)
+static void sub_8103924(const struct ListMenuTemplate * template, u8 a1)
{
switch (a1)
{
@@ -861,7 +859,7 @@ void sub_8103924(const struct ListMenuTemplate * template, u8 a1)
}
}
-void sub_8103988(u8 a0)
+static void sub_8103988(u8 a0)
{
switch (a0)
{
@@ -881,7 +879,7 @@ void sub_8103988(u8 a0)
}
}
-u8 sub_81039F0(void)
+static u8 sub_81039F0(void)
{
struct ScrollArrowsTemplate template = gUnknown_84521B4;
if (gUnknown_203ACF0->field_48 > gUnknown_8452174.maxShowed)
@@ -916,7 +914,7 @@ void sub_8103A40(u8 windowId, s32 itemId, u8 y)
}
}
-void sub_8103AC8(u8 taskId)
+static void sub_8103AC8(u8 taskId)
{
int r4;
u8 *ptr;
@@ -977,68 +975,66 @@ void sub_8103AC8(u8 taskId)
RemoveScrollIndicatorArrowPair(gUnknown_203ACF0->field_60);
ListMenuRemoveCursorObject(gUnknown_203ACF0->field_61, 0);
gUnknown_203ACF0->field_01 = 12;
+ break;
}
- else
+ if (!JOY_HELD(R_BUTTON) && JOY_REPT(DPAD_LEFT))
{
- if (!JOY_HELD(R_BUTTON) && JOY_REPT(DPAD_LEFT))
+ if (gUnknown_203ACF0->field_2D != 0)
{
- if (gUnknown_203ACF0->field_2D != 0)
- {
- gUnknown_203ACF0->field_2D--;
- PlaySE(SE_SELECT);
- break;
- }
- else
- r4 = 1;
+ gUnknown_203ACF0->field_2D--;
+ PlaySE(SE_SELECT);
+ break;
}
- if (!JOY_HELD(R_BUTTON) && JOY_REPT(DPAD_RIGHT))
+ else
+ r4 = 1;
+ }
+ if (!JOY_HELD(R_BUTTON) && JOY_REPT(DPAD_RIGHT))
+ {
+ if (gUnknown_203ACF0->field_2D < gUnknown_203ACF0->field_2C - 1)
+ {
+ gUnknown_203ACF0->field_2D++;
+ PlaySE(SE_SELECT);
+ break;
+ }
+ else
+ r4 = 2;
+ }
+ if (r4 == 0)
+ r4 = sub_8104284();
+ switch (r4)
+ {
+ case 0:
+ break;
+ case 1:
+ while (gUnknown_203ACF0->field_2B > gUnknown_203ACF0->field_29)
{
- if (gUnknown_203ACF0->field_2D < gUnknown_203ACF0->field_2C - 1)
+ gUnknown_203ACF0->field_2B--;
+ if (sub_8106838(gUnknown_203ACF0->field_28, gUnknown_203ACF0->field_2B))
{
- gUnknown_203ACF0->field_2D++;
- PlaySE(SE_SELECT);
+ gUnknown_203ACF0->field_01 = 8;
break;
}
- else
- r4 = 2;
}
- if (r4 == 0)
- r4 = sub_8104284();
- switch (r4)
+ if (gUnknown_203ACF0->field_01 != 8)
+ gUnknown_203ACF0->field_01 = 6;
+ break;
+ case 2:
+ while (gUnknown_203ACF0->field_2B < gUnknown_203ACF0->field_2A - 1)
{
- case 0:
- break;
- case 1:
- while (gUnknown_203ACF0->field_2B > gUnknown_203ACF0->field_29)
+ gUnknown_203ACF0->field_2B++;
+ if (sub_8106838(gUnknown_203ACF0->field_28, gUnknown_203ACF0->field_2B))
{
- gUnknown_203ACF0->field_2B--;
- if (sub_8106838(gUnknown_203ACF0->field_28, gUnknown_203ACF0->field_2B))
- {
- gUnknown_203ACF0->field_01 = 8;
- break;
- }
- }
- if (gUnknown_203ACF0->field_01 != 8)
- gUnknown_203ACF0->field_01 = 6;
- break;
- case 2:
- while (gUnknown_203ACF0->field_2B < gUnknown_203ACF0->field_2A - 1)
- {
- gUnknown_203ACF0->field_2B++;
- if (sub_8106838(gUnknown_203ACF0->field_28, gUnknown_203ACF0->field_2B))
- {
- gUnknown_203ACF0->field_01 = 10;
- break;
- }
+ gUnknown_203ACF0->field_01 = 10;
+ break;
}
- if (gUnknown_203ACF0->field_01 != 10)
- gUnknown_203ACF0->field_01 = 6;
- break;
}
- if (JOY_NEW(B_BUTTON))
- {
+ if (gUnknown_203ACF0->field_01 != 10)
gUnknown_203ACF0->field_01 = 6;
- }
+ break;
+ }
+ if (JOY_NEW(B_BUTTON))
+ {
+ gUnknown_203ACF0->field_01 = 6;
}
break;
case 6:
@@ -1054,7 +1050,7 @@ void sub_8103AC8(u8 taskId)
sub_8105058(0xFF);
ListMenuUpdateCursorObject(gUnknown_203ACF0->field_61, 0, 0xA0, 0);
gUnknown_203ACF0->field_2E = 0;
- gUnknown_203ACF0->field_02 = 0;
+ gUnknown_203ACF0->field_02[0] = 0;
gUnknown_203ACF0->field_01++;
break;
case 9:
@@ -1085,23 +1081,23 @@ void sub_8103AC8(u8 taskId)
gUnknown_203ACF0->field_01 = 15;
break;
case 15:
- gUnknown_203ACF0->field_02 = 0;
- gUnknown_203ACF0->field_03 = 0;
+ gUnknown_203ACF0->field_02[0] = 0;
+ gUnknown_203ACF0->field_02[1] = 0;
gUnknown_203ACF0->field_01++;
// fallthrough
case 16:
- if (gUnknown_203ACF0->field_03 < 6)
+ if (gUnknown_203ACF0->field_02[1] < 6)
{
- if (!gUnknown_203ACF0->field_02)
+ if (gUnknown_203ACF0->field_02[0])
{
- gUnknown_203ACF0->field_02--;
+ sub_8105594(0, gUnknown_203ACF0->field_02[1]);
+ CopyBgTilemapBufferToVram(0);
+ gUnknown_203ACF0->field_02[0] = 4;
+ gUnknown_203ACF0->field_02[1]++;
}
else
{
- sub_8105594(0, gUnknown_203ACF0->field_03);
- CopyBgTilemapBufferToVram(0);
- gUnknown_203ACF0->field_02 = 4;
- gUnknown_203ACF0->field_03++;
+ gUnknown_203ACF0->field_02[0]--;
}
}
else
@@ -1112,7 +1108,7 @@ void sub_8103AC8(u8 taskId)
CopyBgTilemapBufferToVram(1);
CopyBgTilemapBufferToVram(0);
PlayCry2(gUnknown_203ACF0->field_5A, 0, 125, 10);
- gUnknown_203ACF0->field_02 = 0;
+ gUnknown_203ACF0->field_02[0] = 0;
gUnknown_203ACF0->field_01 = 17;
}
break;
@@ -1143,23 +1139,23 @@ void sub_8103AC8(u8 taskId)
gUnknown_203ACF0->field_01 = 19;
break;
case 19:
- gUnknown_203ACF0->field_02 = 0;
- gUnknown_203ACF0->field_03 = 6;
+ gUnknown_203ACF0->field_02[0] = 0;
+ gUnknown_203ACF0->field_02[1] = 6;
gUnknown_203ACF0->field_01++;
// fallthrough
case 20:
- if (gUnknown_203ACF0->field_03)
+ if (gUnknown_203ACF0->field_02[1])
{
- if (gUnknown_203ACF0->field_02)
+ if (gUnknown_203ACF0->field_02[0])
{
- gUnknown_203ACF0->field_03--;
+ gUnknown_203ACF0->field_02[1]--;
FillBgTilemapBufferRect_Palette0(0, 0x000, 0, 2, 30, 16);
- sub_8105594(0, gUnknown_203ACF0->field_03);
+ sub_8105594(0, gUnknown_203ACF0->field_02[1]);
CopyBgTilemapBufferToVram(0);
- gUnknown_203ACF0->field_02 = 1;
+ gUnknown_203ACF0->field_02[0] = 1;
}
else
- gUnknown_203ACF0->field_02--;
+ gUnknown_203ACF0->field_02[0]--;
}
else
{
@@ -1224,7 +1220,7 @@ void sub_8103AC8(u8 taskId)
}
}
-u8 sub_8104234(void)
+static u8 sub_8104234(void)
{
struct ScrollArrowsTemplate template = gUnknown_84524B4;
template.fullyUpThreshold = gUnknown_203ACF0->field_29;
@@ -1233,7 +1229,7 @@ u8 sub_8104234(void)
return AddScrollIndicatorArrowPair(&template, &gUnknown_203ACF0->field_62);
}
-int sub_8104284(void)
+static int sub_8104284(void)
{
switch (gSaveBlock2Ptr->optionsButtonMode)
{
@@ -1252,13 +1248,13 @@ int sub_8104284(void)
return 2;
else
return 0;
- default:
case OPTIONS_BUTTON_MODE_HELP:
+ default:
return 0;
}
}
-void sub_81042EC(u8 taskId)
+static void sub_81042EC(u8 taskId)
{
switch (gUnknown_203ACF0->field_01)
{
@@ -1384,18 +1380,15 @@ void sub_81042EC(u8 taskId)
}
}
-#ifdef NONMATCHING
-// HOLY HECK THIS FUNCTION NotLikeThis
-bool32 sub_8104664(u8 a0)
+static bool32 sub_8104664(u8 a0)
{
- u16 *r12;
- u16 *r6;
int r3;
+ u16 *r6, *r12;
switch (gUnknown_203ACF0->field_42)
{
- case 0:
default:
+ case 0:
r12 = &gUnknown_203ACF0->field_36;
r6 = &gUnknown_203ACF0->field_34;
break;
@@ -1411,32 +1404,49 @@ bool32 sub_8104664(u8 a0)
r6 = &gUnknown_203ACF0->field_3C;
break;
}
+
r3 = *r12 + *r6;
if (a0)
{
if (r3 == 0)
return FALSE;
- while (--r3 >= 0)
+
+ r3--;
+ while (r3 >= 0) //Should be while (--r3 >= 0) without the r3-- in the body or before the while at all, but this is needed to match.
{
- if ((((u32)gUnknown_203ACF0->field_44[r3].index) >> 16) & 1)
+ if ((gUnknown_203ACF0->field_44[r3].index >> 16) & 1)
+ {
break;
+ }
+ r3--;
}
+
if (r3 < 0)
+ {
return FALSE;
+ }
}
else
{
if (r3 == gUnknown_203ACF0->field_48 - 1)
+ {
return FALSE;
- while (++r3 < gUnknown_203ACF0->field_48)
+ }
+
+ r3++;
+ while (r3 < gUnknown_203ACF0->field_48) //Should be while (++r3 < gUnknown_203ACF0->field_48) without the r3++ in the body or before the while at all, but this is needed to match.
{
- if ((((u32)gUnknown_203ACF0->field_44[r3].index) >> 16) & 1)
+ if ((gUnknown_203ACF0->field_44[r3].index >> 16) & 1)
break;
+ r3++;
}
if (r3 >= gUnknown_203ACF0->field_48)
+ {
return FALSE;
+ }
}
gUnknown_203ACF0->field_30 = gUnknown_203ACF0->field_44[r3].index;
+
if (gUnknown_203ACF0->field_48 > 9)
{
if (r3 < 4)
@@ -1444,10 +1454,10 @@ bool32 sub_8104664(u8 a0)
*r12 = 0;
*r6 = r3;
}
- else if (r3 >= gUnknown_203ACF0->field_48 - 4)
+ else if (r3 >= (gUnknown_203ACF0->field_48 - 4))
{
- *r12 = gUnknown_203ACF0->field_48 - 9;
- *r6 = r3 + 9 - gUnknown_203ACF0->field_48;
+ *r12 = (gUnknown_203ACF0->field_48 - 9);
+ *r6 = r3 + 9 - (gUnknown_203ACF0->field_48);
}
else
{
@@ -1457,201 +1467,11 @@ bool32 sub_8104664(u8 a0)
}
else
{
- *r12 = 0;
- *r6 = r3;
- }
- return TRUE;
+ *r12 = 0;
+ *r6 = r3;
+ }
+ return TRUE;
}
-#else
-NAKED
-bool32 sub_8104664(u8 a0)
-{
- asm_unified("\tpush {r4-r7,lr}\n"
- "\tmov r7, r8\n"
- "\tpush {r7}\n"
- "\tlsls r0, 24\n"
- "\tlsrs r4, r0, 24\n"
- "\tldr r0, _08104684 @ =gUnknown_203ACF0\n"
- "\tldr r3, [r0]\n"
- "\tadds r2, r3, 0\n"
- "\tadds r2, 0x42\n"
- "\tldrb r2, [r2]\n"
- "\tmov r8, r0\n"
- "\tcmp r2, 0x4\n"
- "\tbgt _08104688\n"
- "\tcmp r2, 0x1\n"
- "\tbge _0810469C\n"
- "\tb _0810468C\n"
- "\t.align 2, 0\n"
- "_08104684: .4byte gUnknown_203ACF0\n"
- "_08104688:\n"
- "\tcmp r2, 0x5\n"
- "\tbeq _081046A8\n"
- "_0810468C:\n"
- "\tmov r1, r8\n"
- "\tldr r0, [r1]\n"
- "\tmovs r2, 0x36\n"
- "\tadds r2, r0\n"
- "\tmov r12, r2\n"
- "\tadds r6, r0, 0\n"
- "\tadds r6, 0x34\n"
- "\tb _081046B2\n"
- "_0810469C:\n"
- "\tmovs r0, 0x3A\n"
- "\tadds r0, r3\n"
- "\tmov r12, r0\n"
- "\tadds r6, r3, 0\n"
- "\tadds r6, 0x38\n"
- "\tb _081046B2\n"
- "_081046A8:\n"
- "\tmovs r1, 0x3E\n"
- "\tadds r1, r3\n"
- "\tmov r12, r1\n"
- "\tadds r6, r3, 0\n"
- "\tadds r6, 0x3C\n"
- "_081046B2:\n"
- "\tmov r2, r12\n"
- "\tldrh r1, [r2]\n"
- "\tldrh r0, [r6]\n"
- "\tadds r3, r1, r0\n"
- "\tcmp r4, 0\n"
- "\tbeq _08104700\n"
- "\tcmp r3, 0\n"
- "\tbeq _0810474C\n"
- "\tsubs r3, 0x1\n"
- "\tcmp r3, 0\n"
- "\tblt _0810474C\n"
- "\tmov r1, r8\n"
- "\tldr r0, [r1]\n"
- "\tldr r0, [r0, 0x44]\n"
- "\tlsls r2, r3, 3\n"
- "\tadds r0, r2, r0\n"
- "\tldrh r0, [r0, 0x6]\n"
- "\tmovs r1, 0x1\n"
- "\tands r0, r1\n"
- "\tcmp r0, 0\n"
- "\tbne _081046FA\n"
- "\tmov r5, r8\n"
- "\tmovs r4, 0x1\n"
- "\tadds r1, r2, 0\n"
- "_081046E2:\n"
- "\tsubs r1, 0x8\n"
- "\tsubs r3, 0x1\n"
- "\tcmp r3, 0\n"
- "\tblt _0810474C\n"
- "\tldr r0, [r5]\n"
- "\tldr r0, [r0, 0x44]\n"
- "\tadds r0, r1, r0\n"
- "\tldrh r0, [r0, 0x6]\n"
- "\tands r0, r4\n"
- "\tadds r2, r1, 0\n"
- "\tcmp r0, 0\n"
- "\tbeq _081046E2\n"
- "_081046FA:\n"
- "\tcmp r3, 0\n"
- "\tbge _08104750\n"
- "\tb _0810474C\n"
- "_08104700:\n"
- "\tmov r2, r8\n"
- "\tldr r5, [r2]\n"
- "\tadds r0, r5, 0\n"
- "\tadds r0, 0x48\n"
- "\tldrh r4, [r0]\n"
- "\tsubs r0, r4, 0x1\n"
- "\tcmp r3, r0\n"
- "\tbeq _0810474C\n"
- "\tadds r3, 0x1\n"
- "\tcmp r3, r4\n"
- "\tbge _0810474C\n"
- "\tldr r0, [r5, 0x44]\n"
- "\tlsls r2, r3, 3\n"
- "\tadds r0, r2, r0\n"
- "\tldrh r0, [r0, 0x6]\n"
- "\tmovs r1, 0x1\n"
- "\tands r0, r1\n"
- "\tcmp r0, 0\n"
- "\tbne _08104740\n"
- "\tadds r1, r2, 0\n"
- "\tmovs r7, 0x1\n"
- "_0810472A:\n"
- "\tadds r1, 0x8\n"
- "\tadds r3, 0x1\n"
- "\tcmp r3, r4\n"
- "\tbge _0810474C\n"
- "\tldr r0, [r5, 0x44]\n"
- "\tadds r0, r1, r0\n"
- "\tldrh r0, [r0, 0x6]\n"
- "\tands r0, r7\n"
- "\tadds r2, r1, 0\n"
- "\tcmp r0, 0\n"
- "\tbeq _0810472A\n"
- "_08104740:\n"
- "\tmov r1, r8\n"
- "\tldr r0, [r1]\n"
- "\tadds r0, 0x48\n"
- "\tldrh r0, [r0]\n"
- "\tcmp r3, r0\n"
- "\tblt _08104750\n"
- "_0810474C:\n"
- "\tmovs r0, 0\n"
- "\tb _081047A6\n"
- "_08104750:\n"
- "\tmov r0, r8\n"
- "\tldr r1, [r0]\n"
- "\tldr r0, [r1, 0x44]\n"
- "\tadds r0, r2, r0\n"
- "\tldr r0, [r0, 0x4]\n"
- "\tstr r0, [r1, 0x30]\n"
- "\tadds r1, 0x48\n"
- "\tldrh r0, [r1]\n"
- "\tcmp r0, 0x9\n"
- "\tbls _0810479C\n"
- "\tcmp r3, 0x3\n"
- "\tbgt _08104770\n"
- "\tmovs r0, 0\n"
- "\tmov r1, r12\n"
- "\tstrh r0, [r1]\n"
- "\tb _081047A2\n"
- "_08104770:\n"
- "\tldrh r1, [r1]\n"
- "\tsubs r0, r1, 0x4\n"
- "\tcmp r3, r0\n"
- "\tblt _08104790\n"
- "\tsubs r0, 0x5\n"
- "\tmov r2, r12\n"
- "\tstrh r0, [r2]\n"
- "\tadds r1, r3, 0\n"
- "\tadds r1, 0x9\n"
- "\tmov r2, r8\n"
- "\tldr r0, [r2]\n"
- "\tadds r0, 0x48\n"
- "\tldrh r0, [r0]\n"
- "\tsubs r1, r0\n"
- "\tstrh r1, [r6]\n"
- "\tb _081047A4\n"
- "_08104790:\n"
- "\tsubs r0, r3, 0x4\n"
- "\tmov r1, r12\n"
- "\tstrh r0, [r1]\n"
- "\tmovs r0, 0x4\n"
- "\tstrh r0, [r6]\n"
- "\tb _081047A4\n"
- "_0810479C:\n"
- "\tmovs r0, 0\n"
- "\tmov r2, r12\n"
- "\tstrh r0, [r2]\n"
- "_081047A2:\n"
- "\tstrh r3, [r6]\n"
- "_081047A4:\n"
- "\tmovs r0, 0x1\n"
- "_081047A6:\n"
- "\tpop {r3}\n"
- "\tmov r8, r3\n"
- "\tpop {r4-r7}\n"
- "\tpop {r1}\n"
- "\tbx r1");
-}
-#endif //NONMATCHING
void sub_81047B0(u8 *windowId_p)
{
@@ -1706,7 +1526,7 @@ void sub_8104880(u8 windowId, u8 fontId, u16 num, u8 x, u8 y, u8 colorIdx)
sub_81047C8(windowId, fontId, buff, x, y, colorIdx);
}
-void sub_810491C(u8 windowId, u8 fontId, u16 num, u8 x, u8 y, u8 colorIdx)
+static void sub_810491C(u8 windowId, u8 fontId, u16 num, u8 x, u8 y, u8 colorIdx)
{
u8 buff[4];
int i;
@@ -1794,7 +1614,7 @@ s8 sub_8104AB0(u16 nationalDexNo, u8 caseId, bool8 indexIsSpecies)
return retVal;
}
-u16 sub_8104BBC(u8 caseId, bool8 whichDex)
+static u16 sub_8104BBC(u8 caseId, bool8 whichDex)
{
u16 count = 0;
u16 i;
@@ -2024,28 +1844,28 @@ bool8 sub_81051F0(u8 a0)
return FALSE;
}
-bool8 sub_81052D0(u8 a0)
+static bool8 sub_81052D0(u8 a0)
{
u16 r4;
if (IsNationalPokedexEnabled())
r4 = gUnknown_84406E0[7];
else
r4 = gUnknown_84404C8[7];
- switch (gUnknown_203ACF0->field_02)
+ switch (gUnknown_203ACF0->field_02[0])
{
case 0:
gUnknown_203ACF0->field_5C = Alloc(3 * BG_SCREEN_SIZE);
if (a0)
- gUnknown_203ACF0->field_02 = 6;
+ gUnknown_203ACF0->field_02[0] = 6;
else
- gUnknown_203ACF0->field_02 = 2;
+ gUnknown_203ACF0->field_02[0] = 2;
break;
case 1:
Free(gUnknown_203ACF0->field_5C);
return TRUE;
case 2:
BeginNormalPaletteFade(0x00007FFF, 0, 0, 16, r4);
- gUnknown_203ACF0->field_02++;
+ gUnknown_203ACF0->field_02[0]++;
break;
case 3:
FillBgTilemapBufferRect_Palette0(3, 0x00C, 0, 0, 30, 20);
@@ -2054,7 +1874,7 @@ bool8 sub_81052D0(u8 a0)
CopyBgTilemapBufferToVram(1);
CopyBgTilemapBufferToVram(2);
CopyBgTilemapBufferToVram(3);
- gUnknown_203ACF0->field_02++;
+ gUnknown_203ACF0->field_02[0]++;
break;
case 4:
BeginNormalPaletteFade(0x00007FFF, 0, 0, 0, r4);
@@ -2065,40 +1885,42 @@ bool8 sub_81052D0(u8 a0)
FillBgTilemapBufferRect_Palette0(3, 0x00C, 0, 0, 30, 20);
FillBgTilemapBufferRect_Palette0(2, 0x000, 0, 0, 32, 20);
FillBgTilemapBufferRect_Palette0(1, 0x000, 0, 0, 32, 20);
- gUnknown_203ACF0->field_03 = 0;
- gUnknown_203ACF0->field_02++;
+
+ gUnknown_203ACF0->field_02[1] = 0;
+ gUnknown_203ACF0->field_02[0]++;
PlaySE(SE_BALL_TRAY_ENTER);
break;
case 5:
- if (gUnknown_203ACF0->field_03 < 10)
+ if (gUnknown_203ACF0->field_02[1] < 10)
{
- sub_81051F0(gUnknown_203ACF0->field_03);
- gUnknown_203ACF0->field_03++;
+ sub_81051F0(gUnknown_203ACF0->field_02[1]);
+ gUnknown_203ACF0->field_02[1]++;
}
else
{
- gUnknown_203ACF0->field_02 = 1;
+ gUnknown_203ACF0->field_02[0] = 1;
}
break;
case 6:
CpuFastCopy(GetBgTilemapBuffer(3), &gUnknown_203ACF0->field_5C[0 * BG_SCREEN_SIZE / 2], BG_SCREEN_SIZE);
CpuFastCopy(GetBgTilemapBuffer(2), &gUnknown_203ACF0->field_5C[1 * BG_SCREEN_SIZE / 2], BG_SCREEN_SIZE);
CpuFastCopy(GetBgTilemapBuffer(1), &gUnknown_203ACF0->field_5C[2 * BG_SCREEN_SIZE / 2], BG_SCREEN_SIZE);
- gUnknown_203ACF0->field_03 = 9;
- gUnknown_203ACF0->field_02++;
+
+ gUnknown_203ACF0->field_02[1] = 9;
+ gUnknown_203ACF0->field_02[0]++;
PlaySE(SE_BALL_TRAY_ENTER);
break;
case 7:
- if (gUnknown_203ACF0->field_03 != 0)
+ if (gUnknown_203ACF0->field_02[1] != 0)
{
- sub_81051F0(gUnknown_203ACF0->field_03);
- gUnknown_203ACF0->field_03--;
+ sub_81051F0(gUnknown_203ACF0->field_02[1]);
+ gUnknown_203ACF0->field_02[1]--;
}
else
{
- sub_81051F0(gUnknown_203ACF0->field_02);
+ sub_81051F0(gUnknown_203ACF0->field_02[0]);
BeginNormalPaletteFade(0x00007FFF, 0, 16, 16, r4);
- gUnknown_203ACF0->field_02++;
+ gUnknown_203ACF0->field_02[0]++;
}
break;
case 8:
@@ -2107,12 +1929,12 @@ bool8 sub_81052D0(u8 a0)
CopyBgTilemapBufferToVram(1);
CopyBgTilemapBufferToVram(2);
CopyBgTilemapBufferToVram(3);
- gUnknown_203ACF0->field_02++;
+ gUnknown_203ACF0->field_02[0]++;
break;
case 9:
gPaletteFade.bufferTransferDisabled = FALSE;
BeginNormalPaletteFade(0x00007FFF, 0, 16, 0, r4);
- gUnknown_203ACF0->field_02 = 1;
+ gUnknown_203ACF0->field_02[0] = 1;
break;
}
return FALSE;