From 351ee943db92ac091197512921a0e58b286b7bb4 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 24 Nov 2018 12:22:36 -0500 Subject: Fame Checker START --- src/fame_checker.c | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 src/fame_checker.c (limited to 'src') diff --git a/src/fame_checker.c b/src/fame_checker.c new file mode 100644 index 000000000..889b96214 --- /dev/null +++ b/src/fame_checker.c @@ -0,0 +1,51 @@ +#include "global.h" +#include "constants/songs.h" +#include "palette.h" +#include "task.h" +#include "malloc.h" +#include "main.h" +#include "sound.h" + +struct FameCheckerData +{ + u32 unk_00; + u8 filler_04[5]; + u8 unk_09; + u8 unk_0A; + u8 unk_0B; + u8 filler_0C[23]; + u8 unk_23_0:1; + u8 unk_23_1:7; +}; + +EWRAM_DATA struct FameCheckerData * gUnknown_203B0FC = NULL; + +void sub_812C3F8(void); + +void sub_812C380(void) +{ + LoadOam(); + ProcessSpriteCopyRequests(); + TransferPlttBuffer(); +} + +void sub_812C394(void) +{ + RunTasks(); + AnimateSprites(); + BuildOamBuffer(); + UpdatePaletteFade(); +} + +void sub_812C3AC(u32 a0) +{ + SetVBlankCallback(NULL); + gUnknown_203B0FC = AllocZeroed(sizeof(struct FameCheckerData)); + gUnknown_203B0FC->unk_00 = a0; + gUnknown_203B0FC->unk_09 = 0; + gUnknown_203B0FC->unk_0A = 0; + gUnknown_203B0FC->unk_0B = 0; + gUnknown_203B0FC->unk_23_0 = FALSE; + PlaySE(SE_W202); + SetMainCallback2(sub_812C3F8); +} -- cgit v1.2.3 From 5a262eec73614998a87f3466a0c0924c7317be36 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 24 Nov 2018 13:08:18 -0500 Subject: sub_812C3F8 --- src/bg.c | 18 ++++---- src/fame_checker.c | 118 ++++++++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 126 insertions(+), 10 deletions(-) (limited to 'src') diff --git a/src/bg.c b/src/bg.c index df91e9d4a..5cbd7658e 100644 --- a/src/bg.c +++ b/src/bg.c @@ -391,7 +391,7 @@ void InitBgsFromTemplates(u8 bgMode, const struct BgTemplate *templates, u8 numT } } #else -__attribute__((naked)) +NAKED void InitBgsFromTemplates(u8 bgMode, const struct BgTemplate *templates, u8 numTemplates) { asm(".syntax unified\n\ @@ -634,7 +634,7 @@ bool8 IsDma3ManagerBusyWithBgCopy(void) return FALSE; } #else -__attribute__((naked)) +NAKED bool8 IsDma3ManagerBusyWithBgCopy(void) { asm("push {r4-r7,lr}\n\ @@ -1065,7 +1065,7 @@ void CopyBgTilemapBufferToVram(u8 bg) } } -void CopyToBgTilemapBufferRect(u8 bg, void* src, u8 destX, u8 destY, u8 width, u8 height) +void CopyToBgTilemapBufferRect(u8 bg, const void* src, u8 destX, u8 destY, u8 width, u8 height) { u16 destX16; u16 destY16; @@ -1077,7 +1077,7 @@ void CopyToBgTilemapBufferRect(u8 bg, void* src, u8 destX, u8 destY, u8 width, u { case 0: { - u16 * srcCopy = src; + const u16 * srcCopy = src; for (destY16 = destY; destY16 < (destY + height); destY16++) { for (destX16 = destX; destX16 < (destX + width); destX16++) @@ -1089,7 +1089,7 @@ void CopyToBgTilemapBufferRect(u8 bg, void* src, u8 destX, u8 destY, u8 width, u } case 1: { - u8 * srcCopy = src; + const u8 * srcCopy = src; mode = GetBgMetricAffineMode(bg, 0x1); for (destY16 = destY; destY16 < (destY + height); destY16++) { @@ -1104,7 +1104,7 @@ void CopyToBgTilemapBufferRect(u8 bg, void* src, u8 destX, u8 destY, u8 width, u } } -void CopyToBgTilemapBufferRect_ChangePalette(u8 bg, void *src, u8 destX, u8 destY, u8 rectWidth, u8 rectHeight, u8 palette) +void CopyToBgTilemapBufferRect_ChangePalette(u8 bg, const void *src, u8 destX, u8 destY, u8 rectWidth, u8 rectHeight, u8 palette) { CopyRectToBgTilemapBufferRect(bg, src, 0, 0, rectWidth, rectHeight, destX, destY, rectWidth, rectHeight, palette, 0, 0); } @@ -1151,8 +1151,8 @@ void CopyRectToBgTilemapBufferRect(u8 bg, void* src, u8 srcX, u8 srcY, u8 srcWid } } }*/ -__attribute__((naked)) -void CopyRectToBgTilemapBufferRect(u8 bg, void* src, u8 srcX, u8 srcY, u8 srcWidth, u8 srcHeight, u8 destX, u8 destY, u8 rectWidth, u8 rectHeight, u8 palette1, u16 tileOffset, u16 palette2) +NAKED +void CopyRectToBgTilemapBufferRect(u8 bg, const void* src, u8 srcX, u8 srcY, u8 srcWidth, u8 srcHeight, u8 destX, u8 destY, u8 rectWidth, u8 rectHeight, u8 palette1, u16 tileOffset, u16 palette2) { asm("push {r4-r7,lr}\n\ mov r7, r10\n\ @@ -1598,7 +1598,7 @@ void CopyTileMapEntry(u16 *src, u16 *dest, s32 palette1, u32 tileOffset, u32 pal *dest = test; } #else -__attribute__((naked)) +NAKED void CopyTileMapEntry(u16 *src, u16 *dest, s32 palette1, u32 tileOffset, u32 palette2) { asm("push {r4-r6,lr}\n\ diff --git a/src/fame_checker.c b/src/fame_checker.c index 889b96214..d311ecb94 100644 --- a/src/fame_checker.c +++ b/src/fame_checker.c @@ -1,15 +1,21 @@ #include "global.h" #include "constants/songs.h" +#include "bg.h" +#include "gpu_regs.h" #include "palette.h" #include "task.h" #include "malloc.h" #include "main.h" #include "sound.h" +#include "text.h" +#include "window.h" +#include "text_window.h" struct FameCheckerData { u32 unk_00; - u8 filler_04[5]; + u16 unk_04; + u8 filler_06[3]; u8 unk_09; u8 unk_0A; u8 unk_0B; @@ -18,9 +24,40 @@ struct FameCheckerData u8 unk_23_1:7; }; +struct FameCheckerData2 +{ + u8 filler_00[0x88]; +}; + +EWRAM_DATA u16 * gUnknown_203B0F0 = NULL; +EWRAM_DATA u16 * gUnknown_203B0F4 = NULL; +EWRAM_DATA u16 * gUnknown_203B0F8 = NULL; EWRAM_DATA struct FameCheckerData * gUnknown_203B0FC = NULL; +EWRAM_DATA struct FameCheckerData2 * gUnknown_203B100 = NULL; +EWRAM_DATA u32 gUnknown_203B104 = 0; void sub_812C3F8(void); +void sub_812C648(void); +void sub_812C664(u8 taskId); +void sub_812CE9C(void); +void sub_812CEC0(void); +void sub_812D1A8(u8 a0); +void sub_812D420(void); +void sub_812D558(void); +void sub_812D584(void); +void sub_812D594(void); +void sub_812DB28(void); +void sub_812E000(void); +void sub_812E178(u8 a0, s16 a1); + +extern const struct BgTemplate gUnknown_845FBF4[4]; +extern const struct WindowTemplate gUnknown_845FC04[]; +extern const u16 gUnknown_845C600[0x40]; + +extern const u16 gUnknown_8E9F220[0x30]; +extern const u16 gUnknown_8E9F260[0xa50]; +extern const u16 gUnknown_8EA0700[0x400]; +extern const u16 gUnknown_8EA0F00[0x400]; void sub_812C380(void) { @@ -49,3 +86,82 @@ void sub_812C3AC(u32 a0) PlaySE(SE_W202); SetMainCallback2(sub_812C3F8); } + +void sub_812C3F8(void) +{ + switch (gMain.state) + { + case 0: + SetVBlankCallback(NULL); + sub_812D420(); + gMain.state++; + break; + case 1: + sub_812D558(); + gMain.state++; + break; + case 2: + gUnknown_203B0F0 = AllocZeroed(0x800); + gUnknown_203B0F4 = AllocZeroed(0x1000); + gUnknown_203B0F8 = AllocZeroed(0x800); + ResetBgsAndClearDma3BusyFlags(0); + InitBgsFromTemplates(0, gUnknown_845FBF4, ARRAY_COUNT(gUnknown_845FBF4)); + SetBgTilemapBuffer(3, gUnknown_203B0F0); + SetBgTilemapBuffer(2, gUnknown_203B0F8); + SetBgTilemapBuffer(1, gUnknown_203B0F4); + sub_812D594(); + gMain.state++; + break; + case 3: + LoadBgTiles(3, gUnknown_8E9F260, sizeof(gUnknown_8E9F260), 0); + CopyToBgTilemapBufferRect(3, gUnknown_8EA0700, 0, 0, 32, 32); + LoadPalette(gUnknown_8E9F220 + 0x00, 0x00, 0x40); + LoadPalette(gUnknown_8E9F220 + 0x10, 0x10, 0x20); + CopyToBgTilemapBufferRect(2, gUnknown_8EA0F00, 0, 0, 32, 32); + CopyToBgTilemapBufferRect_ChangePalette(1, gUnknown_845C600, 30, 0, 32, 32, 0x11); + LoadPalette(stdpal_get(2), 0xF0, 0x20); + gMain.state++; + break; + case 4: + if (IsDma3ManagerBusyWithBgCopy() != TRUE) + { + ShowBg(0); + ShowBg(1); + ShowBg(2); + ShowBg(3); + CopyBgTilemapBufferToVram(3); + CopyBgTilemapBufferToVram(2); + CopyBgTilemapBufferToVram(1); + gMain.state++; + } + break; + case 5: + InitWindows(gUnknown_845FC04); + DeactivateAllTextPrinters(); + sub_812CEC0(); + gUnknown_203B100 = AllocZeroed(sizeof(struct FameCheckerData2)); + sub_812DB28(); + gMain.state++; + break; + case 6: + sub_812C648(); + sub_812D1A8(0); + sub_812CE9C(); + BeginNormalPaletteFade(0xFFFFFFFF,0, 16, 0, 0); + gMain.state++; + break; + case 7: + sub_812D584(); + SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG0 | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_BG2 | BLDCNT_TGT2_BG3 | BLDCNT_TGT2_OBJ | BLDCNT_TGT2_BD); + SetGpuReg(REG_OFFSET_BLDALPHA, 0x07); + SetGpuReg(REG_OFFSET_BLDY, 0x08); + SetVBlankCallback(sub_812C380); + gUnknown_203B0FC->unk_04 = 0; + sub_812E000(); + sub_812E178(1, 4); + CreateTask(sub_812C664, 0x08); + SetMainCallback2(sub_812C394); + gMain.state = 0; + break; + } +} -- cgit v1.2.3 From 2571ba516cb0f21c19405e943c53eebf5d19ab7a Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 24 Nov 2018 15:51:55 -0500 Subject: through sub_812C694 --- src/fame_checker.c | 136 +++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 126 insertions(+), 10 deletions(-) (limited to 'src') diff --git a/src/fame_checker.c b/src/fame_checker.c index d311ecb94..0f047f612 100644 --- a/src/fame_checker.c +++ b/src/fame_checker.c @@ -1,6 +1,9 @@ #include "global.h" #include "constants/songs.h" #include "bg.h" +#include "graphics.h" +#include "item_menu.h" +#include "list_menu.h" #include "gpu_regs.h" #include "palette.h" #include "task.h" @@ -13,13 +16,18 @@ struct FameCheckerData { - u32 unk_00; + void (*unk_00)(void); u16 unk_04; - u8 filler_06[3]; + u8 filler_06[1]; + u8 unk_07_0:1; + u8 unk_07_1:1; + u8 unk_07_2:6; + u8 filler_08[1]; u8 unk_09; u8 unk_0A; u8 unk_0B; - u8 filler_0C[23]; + u8 unk_0C[17]; + u8 unk_1D[6]; u8 unk_23_0:1; u8 unk_23_1:7; }; @@ -36,28 +44,48 @@ EWRAM_DATA struct FameCheckerData * gUnknown_203B0FC = NULL; EWRAM_DATA struct FameCheckerData2 * gUnknown_203B100 = NULL; EWRAM_DATA u32 gUnknown_203B104 = 0; +struct ListMenuTemplate gUnknown_3005EB0; +u8 gUnknown_3005EC8; + void sub_812C3F8(void); void sub_812C648(void); void sub_812C664(u8 taskId); +void sub_812C694(u8 taskId); +bool8 sub_812C8F8(u8 taskId); +void sub_812C9BC(u8 taskId); +void sub_812CAD8(u8 taskId); +void sub_812CD3C(void); +void sub_812CE04(u8 taskId); void sub_812CE9C(void); void sub_812CEC0(void); +void sub_812CEE0(u8 windowId); +void sub_812CEFC(u8 taskId, u8 a1); +void sub_812CF3C(u8 taskId); +void sub_812D0F4(u8 a0); void sub_812D1A8(u8 a0); void sub_812D420(void); void sub_812D558(void); void sub_812D584(void); void sub_812D594(void); +bool8 sub_812D6B4(void); +u8 sub_812D724(s16 a0); +u8 sub_812D7E4(void); +u8 sub_812D888(u8 a0); +void sub_812DA14(u8 a0); void sub_812DB28(void); void sub_812E000(void); +void sub_812E048(void); +u16 sub_812E064(void); +void sub_812E110(u8 taskId); void sub_812E178(u8 a0, s16 a1); +void sub_812E4A4(u8 a0); + +extern const u16 gUnknown_845C600[]; extern const struct BgTemplate gUnknown_845FBF4[4]; +extern const struct SpriteSheet gUnknown_845FB9C[]; +extern const struct SpritePalette gUnknown_845FBDC[]; extern const struct WindowTemplate gUnknown_845FC04[]; -extern const u16 gUnknown_845C600[0x40]; - -extern const u16 gUnknown_8E9F220[0x30]; -extern const u16 gUnknown_8E9F260[0xa50]; -extern const u16 gUnknown_8EA0700[0x400]; -extern const u16 gUnknown_8EA0F00[0x400]; void sub_812C380(void) { @@ -74,7 +102,7 @@ void sub_812C394(void) UpdatePaletteFade(); } -void sub_812C3AC(u32 a0) +void sub_812C3AC(void (*a0)(void)) { SetVBlankCallback(NULL); gUnknown_203B0FC = AllocZeroed(sizeof(struct FameCheckerData)); @@ -165,3 +193,91 @@ void sub_812C3F8(void) break; } } + +void sub_812C648(void) +{ + LoadSpriteSheets(gUnknown_845FB9C); + LoadSpritePalettes(gUnknown_845FBDC); +} + +void sub_812C664(u8 taskId) +{ + if (!gPaletteFade.active) + gTasks[taskId].func = sub_812C694; +} + +void sub_812C694(u8 taskId) +{ + u16 r4; + u8 r4_2; + struct Task *task = &gTasks[taskId]; + s16 * data = gTasks[taskId].data; + if (FindTaskIdByFunc(sub_812E110) == 0xFF) + { + RunTextPrinters(); + if ((gMain.newKeys & SELECT_BUTTON) && !gUnknown_203B0FC->unk_07_1 && gUnknown_203B0FC->unk_00 != sub_8107EB8) + task->func = sub_812CF3C; + else if (gMain.newKeys & START_BUTTON) + { + r4 = sub_812E064(); + if (sub_812C8F8(taskId) == TRUE) + { + PlaySE(SE_W100); + } + else if (r4 != gUnknown_203B0FC->unk_07_2 - 1) + { + PlaySE(SE_W100); + FillWindowPixelRect(3, 0x00, 0, 0, 88, 32); + sub_812CEE0(3); + sub_812E178(2, 4); + sub_812E178(1, 5); + sub_812D0F4(1); + task->data[2] = sub_812D888(gUnknown_203B0FC->unk_0C[r4]); + gSprites[task->data[2]].pos2.x = 0xF0; + gSprites[task->data[2]].data[0] = 1; + task->data[3] = sub_812D7E4(); + gSprites[task->data[3]].pos2.x = 0xF0; + gSprites[task->data[3]].data[0] = 1; + task->func = sub_812C9BC; + } + } + else if (gMain.newKeys & A_BUTTON) + { + r4 = ListMenuHandleInput(0); + if (r4 == gUnknown_203B0FC->unk_07_2 - 1) + task->func = sub_812CF3C; + else if (gUnknown_203B0FC->unk_07_1) + { + if (!IsTextPrinterActive(2) && sub_812D6B4() == TRUE) + sub_812CD3C(); + } + else if (gUnknown_203B0FC->unk_07_0) + { + PlaySE(SE_SELECT); + task->data[0] = sub_812D724(task->data[1]); + for (r4_2 = 0; r4_2 < 6; r4_2++) + { + if (r4_2 != task->data[1]) + sub_812CEFC(gUnknown_203B0FC->unk_1D[r4_2], 1); + } + gUnknown_3005EC8 = 0xFF; + sub_812E4A4(0); + sub_812D0F4(2); + if (gSprites[gUnknown_203B0FC->unk_1D[task->data[1]]].data[1] != 0xFF) + { + sub_812CE04(taskId); + sub_812DA14(data[1]); + } + sub_812E048(); + task->func = sub_812CAD8; + } + } + else if (gMain.newKeys & B_BUTTON) + { + if (sub_812C8F8(taskId) != TRUE) + task->func = sub_812CF3C; + } + else + ListMenuHandleInput(0); + } +} -- cgit v1.2.3 From 8ef1594d204e0b933fcfc048e17471191dfae720 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 24 Nov 2018 16:28:05 -0500 Subject: through sub_812CA1C --- src/fame_checker.c | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 64 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/fame_checker.c b/src/fame_checker.c index 0f047f612..81aeb7aee 100644 --- a/src/fame_checker.c +++ b/src/fame_checker.c @@ -2,6 +2,7 @@ #include "constants/songs.h" #include "bg.h" #include "graphics.h" +#include "new_menu_helpers.h" #include "item_menu.h" #include "list_menu.h" #include "gpu_regs.h" @@ -29,7 +30,8 @@ struct FameCheckerData u8 unk_0C[17]; u8 unk_1D[6]; u8 unk_23_0:1; - u8 unk_23_1:7; + u8 unk_23_1:1; + u8 unk_23_2:1; }; struct FameCheckerData2 @@ -52,7 +54,9 @@ void sub_812C648(void); void sub_812C664(u8 taskId); void sub_812C694(u8 taskId); bool8 sub_812C8F8(u8 taskId); +void sub_812C990(void); void sub_812C9BC(u8 taskId); +void sub_812CA1C(u8 taskId); void sub_812CAD8(u8 taskId); void sub_812CD3C(void); void sub_812CE04(u8 taskId); @@ -70,7 +74,9 @@ void sub_812D594(void); bool8 sub_812D6B4(void); u8 sub_812D724(s16 a0); u8 sub_812D7E4(void); +void sub_812D800(struct Sprite *sprite); u8 sub_812D888(u8 a0); +void sub_812D9A8(u8 a0, u16 a1); void sub_812DA14(u8 a0); void sub_812DB28(void); void sub_812E000(void); @@ -80,6 +86,7 @@ void sub_812E110(u8 taskId); void sub_812E178(u8 a0, s16 a1); void sub_812E4A4(u8 a0); +extern const u8 gUnknown_84181E4[]; extern const u16 gUnknown_845C600[]; extern const struct BgTemplate gUnknown_845FBF4[4]; @@ -281,3 +288,59 @@ void sub_812C694(u8 taskId) ListMenuHandleInput(0); } } + +bool8 sub_812C8F8(u8 taskId) +{ + struct Task *task = &gTasks[taskId]; + if (gUnknown_203B0FC->unk_07_1) + { + gSprites[task->data[2]].data[0] = 2; + gSprites[task->data[2]].pos2.x += 10; + gSprites[task->data[3]].data[0] = 2; + gSprites[task->data[3]].pos2.x += 10; + sub_812CE9C(); + task->func = sub_812CA1C; + sub_812C990(); + gUnknown_203B0FC->unk_23_2 = FALSE; + return TRUE; + } + return FALSE; +} + +void sub_812C990(void) +{ + AddTextPrinterParametrized(2, 2, gUnknown_84181E4, 0, NULL, 2, 1, 3); +} + +void sub_812C9BC(u8 taskId) +{ + struct Task *task = &gTasks[taskId]; + if (gSprites[task->data[2]].data[0] == 0) + { + sub_812CD3C(); + gUnknown_203B0FC->unk_07_1 = TRUE; + task->func = sub_812C694; + } + else + ChangeBgX(1, 0xA00, 1); +} + +void sub_812CA1C(u8 taskId) +{ + struct Task *task = &gTasks[taskId]; + if (GetBgX(1) != 0) + ChangeBgX(1, 0xA00, 2); + else + ChangeBgX(1, 0x000, 0); + if (gSprites[task->data[2]].data[0] == 0) + { + if (gUnknown_203B0FC->unk_07_0) + sub_812D0F4(0); + sub_812E178(1, 4); + sub_812E178(2, 2); + gUnknown_203B0FC->unk_07_1 = FALSE; + sub_812D9A8(taskId, sub_812E064()); + task->func = sub_812C694; + gSprites[task->data[3]].callback = sub_812D800; + } +} -- cgit v1.2.3 From 93f67f9557109d85e191283b171f7f5e8028b7bf Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 24 Nov 2018 20:04:50 -0500 Subject: sub_812CAD8 New macro `PRESSED(x)` tests `gMain.newKeys & (x)`. The macro itself is inoptimal. However, its use is required to match this function. We suspect this macro may have been implemented globally, hence we put it in `global.h`. Propagating its use through the remainder of this project, as well as [Ruby](/pret/pokeruby) and [Emerald](/pret/pokeemerald), has been left as a to-do item. --- src/fame_checker.c | 81 +++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 77 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/fame_checker.c b/src/fame_checker.c index 81aeb7aee..e83eaa301 100644 --- a/src/fame_checker.c +++ b/src/fame_checker.c @@ -1,5 +1,6 @@ #include "global.h" #include "constants/songs.h" +#include "sprite.h" #include "bg.h" #include "graphics.h" #include "new_menu_helpers.h" @@ -58,6 +59,7 @@ void sub_812C990(void); void sub_812C9BC(u8 taskId); void sub_812CA1C(u8 taskId); void sub_812CAD8(u8 taskId); +void sub_812CC68(u8 taskId, s8 dx, s8 dy); void sub_812CD3C(void); void sub_812CE04(u8 taskId); void sub_812CE9C(void); @@ -73,11 +75,13 @@ void sub_812D584(void); void sub_812D594(void); bool8 sub_812D6B4(void); u8 sub_812D724(s16 a0); +void sub_812D764(struct Sprite *sprite); u8 sub_812D7E4(void); void sub_812D800(struct Sprite *sprite); u8 sub_812D888(u8 a0); void sub_812D9A8(u8 a0, u16 a1); void sub_812DA14(u8 a0); +void sub_812DB10(void); void sub_812DB28(void); void sub_812E000(void); void sub_812E048(void); @@ -222,9 +226,9 @@ void sub_812C694(u8 taskId) if (FindTaskIdByFunc(sub_812E110) == 0xFF) { RunTextPrinters(); - if ((gMain.newKeys & SELECT_BUTTON) && !gUnknown_203B0FC->unk_07_1 && gUnknown_203B0FC->unk_00 != sub_8107EB8) + if ((PRESSED(SELECT_BUTTON)) && !gUnknown_203B0FC->unk_07_1 && gUnknown_203B0FC->unk_00 != sub_8107EB8) task->func = sub_812CF3C; - else if (gMain.newKeys & START_BUTTON) + else if (PRESSED(START_BUTTON)) { r4 = sub_812E064(); if (sub_812C8F8(taskId) == TRUE) @@ -248,7 +252,7 @@ void sub_812C694(u8 taskId) task->func = sub_812C9BC; } } - else if (gMain.newKeys & A_BUTTON) + else if (PRESSED(A_BUTTON)) { r4 = ListMenuHandleInput(0); if (r4 == gUnknown_203B0FC->unk_07_2 - 1) @@ -279,7 +283,7 @@ void sub_812C694(u8 taskId) task->func = sub_812CAD8; } } - else if (gMain.newKeys & B_BUTTON) + else if (PRESSED(B_BUTTON)) { if (sub_812C8F8(taskId) != TRUE) task->func = sub_812CF3C; @@ -344,3 +348,72 @@ void sub_812CA1C(u8 taskId) gSprites[task->data[3]].callback = sub_812D800; } } + +void sub_812CAD8(u8 taskId) +{ + struct Task *task = &gTasks[taskId]; + s16 *data = gTasks[taskId].data; + + RunTextPrinters(); + if (PRESSED(A_BUTTON) && !IsTextPrinterActive(2)) + { + u8 spriteId = gUnknown_203B0FC->unk_1D[data[1]]; + if (gSprites[spriteId].data[1] != 0xFF) + sub_812CE04(taskId); + } + if (PRESSED(B_BUTTON)) + { + u8 r4; + PlaySE(SE_SELECT); + for (r4 = 0; r4 < 6; r4++) + sub_812CEFC(gUnknown_203B0FC->unk_1D[r4], 0); + sub_812CE9C(); + gSprites[task->data[0]].callback = sub_812D764; + if (gUnknown_3005EC8 != 0xFF) + sub_812DB10(); + sub_812E4A4(1); + sub_812D0F4(0); + sub_812E000(); + sub_812C990(); + task->func = sub_812C694; + } + else if (PRESSED(DPAD_UP) || PRESSED(DPAD_DOWN)) + { + if (task->data[1] >= 3) + { + task->data[1] -= 3; + sub_812CC68(taskId, 0, -0x1b); + } + else + { + task->data[1] += 3; + sub_812CC68(taskId, 0, +0x1b); + } + } + else if (PRESSED(DPAD_LEFT)) + { + if (task->data[1] == 0 || task->data[1] % 3 == 0) + { + task->data[1] += 2; + sub_812CC68(taskId, +0x5e, 0); + } + else + { + task->data[1]--; + sub_812CC68(taskId, -0x2f, 0); + } + } + else if (PRESSED(DPAD_RIGHT)) + { + if ((task->data[1] + 1) % 3 == 0) + { + task->data[1] -= 2; + sub_812CC68(taskId, -0x5e, 0); + } + else + { + task->data[1]++; + sub_812CC68(taskId, +0x2f, 0); + } + } +} -- cgit v1.2.3 From c60b28011871abaf987a46a6da6823ce451fa66d Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 24 Nov 2018 21:41:18 -0500 Subject: through sub_812CD3C --- src/fame_checker.c | 44 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 43 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/fame_checker.c b/src/fame_checker.c index e83eaa301..70fad0094 100644 --- a/src/fame_checker.c +++ b/src/fame_checker.c @@ -14,6 +14,7 @@ #include "sound.h" #include "text.h" #include "window.h" +#include "string_util.h" #include "text_window.h" struct FameCheckerData @@ -65,7 +66,7 @@ void sub_812CE04(u8 taskId); void sub_812CE9C(void); void sub_812CEC0(void); void sub_812CEE0(u8 windowId); -void sub_812CEFC(u8 taskId, u8 a1); +bool8 sub_812CEFC(u8 taskId, u8 a1); void sub_812CF3C(u8 taskId); void sub_812D0F4(u8 a0); void sub_812D1A8(u8 a0); @@ -93,6 +94,7 @@ void sub_812E4A4(u8 a0); extern const u8 gUnknown_84181E4[]; extern const u16 gUnknown_845C600[]; +extern const u8 *const gUnknown_845F63C[]; extern const struct BgTemplate gUnknown_845FBF4[4]; extern const struct SpriteSheet gUnknown_845FB9C[]; extern const struct SpritePalette gUnknown_845FBDC[]; @@ -417,3 +419,43 @@ void sub_812CAD8(u8 taskId) } } } + +void sub_812CC68(u8 taskId, s8 dx, s8 dy) +{ + u8 i; + s16 *data = gTasks[taskId].data; + PlaySE(SE_W155); + gSprites[data[0]].pos1.x += dx; + gSprites[data[0]].pos1.y += dy; + for (i = 0; i < 6; i++) + sub_812CEFC(gUnknown_203B0FC->unk_1D[i], 1); + FillWindowPixelRect(2, 0x11, 0, 0, 0xd0, 0x20); + sub_812C990(); + if (sub_812CEFC(gUnknown_203B0FC->unk_1D[data[1]], 0) == TRUE) + { + sub_812CE04(taskId); + sub_812DA14(data[1]); + } + else if (gUnknown_3005EC8 != 0xFF) + sub_812DB10(); +} + +void sub_812CD3C(void) +{ + u8 r8 = 0; + u16 r6 = sub_812E064(); + if (gSaveBlock1Ptr->fameChecker[gUnknown_203B0FC->unk_0C[r6]].unk_0_0 != 2) + { + sub_812CE9C(); + sub_812C990(); + } + else + { + FillWindowPixelRect(2, 0x11, 0, 0, 0xd0, 0x20); + if (sub_812D6B4() == TRUE) + r8 = 16; + StringExpandPlaceholders(gStringVar4, gUnknown_845F63C[gUnknown_203B0FC->unk_0C[r6] + r8]); + AddTextPrinterParametrized(2, 2, gStringVar4, sub_80F78A8(), 0, 2, 1, 3); + sub_812CEE0(2); + } +} -- cgit v1.2.3 From 3bbaaa4a737193294499176cce4638100c0941f5 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 24 Nov 2018 22:13:10 -0500 Subject: sub_812CE04 --- src/fame_checker.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/fame_checker.c b/src/fame_checker.c index 70fad0094..a7feb0cf8 100644 --- a/src/fame_checker.c +++ b/src/fame_checker.c @@ -95,6 +95,7 @@ extern const u8 gUnknown_84181E4[]; extern const u16 gUnknown_845C600[]; extern const u8 *const gUnknown_845F63C[]; +extern const u8 *const gUnknown_845F6BC[]; extern const struct BgTemplate gUnknown_845FBF4[4]; extern const struct SpriteSheet gUnknown_845FB9C[]; extern const struct SpritePalette gUnknown_845FBDC[]; @@ -455,7 +456,17 @@ void sub_812CD3C(void) if (sub_812D6B4() == TRUE) r8 = 16; StringExpandPlaceholders(gStringVar4, gUnknown_845F63C[gUnknown_203B0FC->unk_0C[r6] + r8]); - AddTextPrinterParametrized(2, 2, gStringVar4, sub_80F78A8(), 0, 2, 1, 3); + AddTextPrinterParametrized(2, 2, gStringVar4, sub_80F78A8(), NULL, 2, 1, 3); sub_812CEE0(2); } } + +void sub_812CE04(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + u16 r5 = sub_812E064(); + FillWindowPixelRect(2, 0x11, 0, 0, 0xd0, 0x20); + StringExpandPlaceholders(gStringVar4, gUnknown_845F6BC[gUnknown_203B0FC->unk_0C[r5] * 6 + data[1]]); + AddTextPrinterParametrized(2, 2, gStringVar4, sub_80F78A8(), NULL, 2, 1, 3); + sub_812CEE0(2); +} -- cgit v1.2.3 From 8f9ec933264a3ecfe204b653c508feacde3c976d Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 24 Nov 2018 23:02:38 -0500 Subject: through sub_812D094 --- src/fame_checker.c | 102 +++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 95 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/fame_checker.c b/src/fame_checker.c index a7feb0cf8..bb2fe29b5 100644 --- a/src/fame_checker.c +++ b/src/fame_checker.c @@ -19,13 +19,13 @@ struct FameCheckerData { - void (*unk_00)(void); + MainCallback unk_00; u16 unk_04; u8 filler_06[1]; u8 unk_07_0:1; u8 unk_07_1:1; u8 unk_07_2:6; - u8 filler_08[1]; + u8 unk_08; u8 unk_09; u8 unk_0A; u8 unk_0B; @@ -66,8 +66,10 @@ void sub_812CE04(u8 taskId); void sub_812CE9C(void); void sub_812CEC0(void); void sub_812CEE0(u8 windowId); -bool8 sub_812CEFC(u8 taskId, u8 a1); +bool8 sub_812CEFC(u8 taskId, u8 objMode); void sub_812CF3C(u8 taskId); +void sub_812CF7C(u8 taskId); +void sub_812D094(u8 windowId); void sub_812D0F4(u8 a0); void sub_812D1A8(u8 a0); void sub_812D420(void); @@ -75,10 +77,14 @@ void sub_812D558(void); void sub_812D584(void); void sub_812D594(void); bool8 sub_812D6B4(void); +void sub_812D70C(void); u8 sub_812D724(s16 a0); void sub_812D764(struct Sprite *sprite); +void sub_812D770(void); +void sub_812D7C8(void); u8 sub_812D7E4(void); void sub_812D800(struct Sprite *sprite); +void sub_812D814(void); u8 sub_812D888(u8 a0); void sub_812D9A8(u8 a0, u16 a1); void sub_812DA14(u8 a0); @@ -272,7 +278,7 @@ void sub_812C694(u8 taskId) for (r4_2 = 0; r4_2 < 6; r4_2++) { if (r4_2 != task->data[1]) - sub_812CEFC(gUnknown_203B0FC->unk_1D[r4_2], 1); + sub_812CEFC(gUnknown_203B0FC->unk_1D[r4_2], ST_OAM_OBJ_BLEND); } gUnknown_3005EC8 = 0xFF; sub_812E4A4(0); @@ -369,7 +375,7 @@ void sub_812CAD8(u8 taskId) u8 r4; PlaySE(SE_SELECT); for (r4 = 0; r4 < 6; r4++) - sub_812CEFC(gUnknown_203B0FC->unk_1D[r4], 0); + sub_812CEFC(gUnknown_203B0FC->unk_1D[r4], ST_OAM_OBJ_NORMAL); sub_812CE9C(); gSprites[task->data[0]].callback = sub_812D764; if (gUnknown_3005EC8 != 0xFF) @@ -429,10 +435,10 @@ void sub_812CC68(u8 taskId, s8 dx, s8 dy) gSprites[data[0]].pos1.x += dx; gSprites[data[0]].pos1.y += dy; for (i = 0; i < 6; i++) - sub_812CEFC(gUnknown_203B0FC->unk_1D[i], 1); + sub_812CEFC(gUnknown_203B0FC->unk_1D[i], ST_OAM_OBJ_BLEND); FillWindowPixelRect(2, 0x11, 0, 0, 0xd0, 0x20); sub_812C990(); - if (sub_812CEFC(gUnknown_203B0FC->unk_1D[data[1]], 0) == TRUE) + if (sub_812CEFC(gUnknown_203B0FC->unk_1D[data[1]], ST_OAM_OBJ_NORMAL) == TRUE) { sub_812CE04(taskId); sub_812DA14(data[1]); @@ -470,3 +476,85 @@ void sub_812CE04(u8 taskId) AddTextPrinterParametrized(2, 2, gStringVar4, sub_80F78A8(), NULL, 2, 1, 3); sub_812CEE0(2); } + +void sub_812CE9C(void) +{ + FillWindowPixelRect(2, 0x11, 0, 0, 0xd0, 0x20); + sub_812CEE0(2); +} + +void sub_812CEC0(void) +{ + sub_80F6E9C(); + sub_80F6EE4(2, 1); + sub_812CEE0(2); + sub_812CEE0(0); +} + +void sub_812CEE0(u8 windowId) +{ + PutWindowTilemap(windowId); + CopyWindowToVram(windowId, 3); +} + +bool8 sub_812CEFC(u8 spriteId, u8 objMode) +{ + if (gSprites[spriteId].data[1] != 0xFF) + { + gSprites[spriteId].oam.objMode = objMode; + return TRUE; + } + return FALSE; +} + +void sub_812CF3C(u8 taskId) +{ + PlaySE(SE_W202); + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0); + gTasks[taskId].func = sub_812CF7C; +} + +void sub_812CF7C(u8 taskId) +{ + u8 r4; + + if (!gPaletteFade.active) + { + if (gUnknown_203B0FC->unk_07_1) + { + sub_812D9A8(taskId, sub_812E064()); + FreeSpriteOamMatrix(&gSprites[gTasks[taskId].data[3]]); + DestroySprite(&gSprites[gTasks[taskId].data[3]]); + } + for (r4 = 0; r4 < 6; r4++) + { + DestroySprite(&gSprites[gUnknown_203B0FC->unk_1D[r4]]); + } + sub_812D814(); + sub_812D7C8(); + sub_812D70C(); + sub_812D770(); + sub_812E048(); + SetMainCallback2(gUnknown_203B0FC->unk_00); + sub_810713C(gUnknown_203B0FC->unk_08, 0, 0); + Free(gUnknown_203B0F0); + Free(gUnknown_203B0F4); + Free(gUnknown_203B0F8); + Free(gUnknown_203B0FC); + Free(gUnknown_203B100); + sub_812D094(0); + sub_812D094(1); + sub_812D094(2); + sub_812D094(3); + FreeAllWindowBuffers(); + DestroyTask(taskId); + } +} + +void sub_812D094(u8 windowId) +{ + FillWindowPixelBuffer(windowId, 0); + ClearWindowTilemap(windowId); + CopyWindowToVram(windowId, 2); + RemoveWindow(windowId); +} -- cgit v1.2.3 From b09bbc65bed4716bc944306f64b89301dcaaffe6 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 24 Nov 2018 23:41:08 -0500 Subject: through sub_812D174 --- src/fame_checker.c | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) (limited to 'src') diff --git a/src/fame_checker.c b/src/fame_checker.c index bb2fe29b5..ed7544d98 100644 --- a/src/fame_checker.c +++ b/src/fame_checker.c @@ -3,6 +3,8 @@ #include "sprite.h" #include "bg.h" #include "graphics.h" +#include "battle_setup.h" +#include "menu.h" #include "new_menu_helpers.h" #include "item_menu.h" #include "list_menu.h" @@ -98,9 +100,13 @@ void sub_812E178(u8 a0, s16 a1); void sub_812E4A4(u8 a0); extern const u8 gUnknown_84181E4[]; +extern const u8 gUnknown_841E5A4[]; +extern const u8 gUnknown_841E5B9[]; +extern const u8 gUnknown_841E5D2[]; extern const u16 gUnknown_845C600[]; extern const u8 *const gUnknown_845F63C[]; +extern const struct TextColor gUnknown_845F5E0; extern const u8 *const gUnknown_845F6BC[]; extern const struct BgTemplate gUnknown_845FBF4[4]; extern const struct SpriteSheet gUnknown_845FB9C[]; @@ -558,3 +564,40 @@ void sub_812D094(u8 windowId) CopyWindowToVram(windowId, 2); RemoveWindow(windowId); } + +u8 sub_812D0C0(u8 a0) +{ + if (HasTrainerAlreadyBeenFought(0x15e) == TRUE) + { + if (a0 == 9) + return 15; + if (a0 > 9) + return a0 - 1; + } + return a0; +} + +void sub_812D0F4(u8 a0) +{ + const u8 * r5 = gUnknown_841E5A4; + s32 width; + if (a0 != 0) + { + r5 = gUnknown_841E5D2; + if (a0 == 1) + r5 = gUnknown_841E5B9; + } + width = GetStringWidth(0, r5, 0); + FillWindowPixelRect(1, 0x00, 0, 0, 0xc0, 0x10); + AddTextPrinterParametrized2(1, 0, 188 - width, 0, 0, 2, &gUnknown_845F5E0, -1, r5); + sub_812CEE0(1); +} + +void sub_812D174(void) +{ + u8 r4; + for (r4 = 0; r4 < 6; r4++) + { + DestroySprite(&gSprites[gUnknown_203B0FC->unk_1D[r4]]); + } +} -- cgit v1.2.3 From 5b30b664bebb2ba890b86cd09f40c7c53da05659 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 25 Nov 2018 08:21:08 -0500 Subject: sub_812D1A8 --- src/fame_checker.c | 47 ++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 46 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/fame_checker.c b/src/fame_checker.c index ed7544d98..e13fc1913 100644 --- a/src/fame_checker.c +++ b/src/fame_checker.c @@ -17,6 +17,7 @@ #include "text.h" #include "window.h" #include "string_util.h" +#include "field_map_obj.h" #include "text_window.h" struct FameCheckerData @@ -73,7 +74,7 @@ void sub_812CF3C(u8 taskId); void sub_812CF7C(u8 taskId); void sub_812D094(u8 windowId); void sub_812D0F4(u8 a0); -void sub_812D1A8(u8 a0); +bool8 sub_812D1A8(u8 a0); void sub_812D420(void); void sub_812D558(void); void sub_812D584(void); @@ -83,6 +84,7 @@ void sub_812D70C(void); u8 sub_812D724(s16 a0); void sub_812D764(struct Sprite *sprite); void sub_812D770(void); +u8 sub_812D780(u8, u8); void sub_812D7C8(void); u8 sub_812D7E4(void); void sub_812D800(struct Sprite *sprite); @@ -108,6 +110,7 @@ extern const u16 gUnknown_845C600[]; extern const u8 *const gUnknown_845F63C[]; extern const struct TextColor gUnknown_845F5E0; extern const u8 *const gUnknown_845F6BC[]; +extern const u8 gUnknown_845F83C[]; extern const struct BgTemplate gUnknown_845FBF4[4]; extern const struct SpriteSheet gUnknown_845FB9C[]; extern const struct SpritePalette gUnknown_845FBDC[]; @@ -601,3 +604,45 @@ void sub_812D174(void) DestroySprite(&gSprites[gUnknown_203B0FC->unk_1D[r4]]); } } + +bool8 sub_812D1A8(u8 a0) +{ + // r8 <- a0 + bool8 r5 = FALSE; + u8 r6; + for (r6 = 0; r6 < 6; r6++) + { + if ((gSaveBlock1Ptr->fameChecker[gUnknown_203B0FC->unk_0C[a0]].unk_0_2 >> r6) & 1) + { + gUnknown_203B0FC->unk_1D[r6] = sub_805EB44( + gUnknown_845F83C[gUnknown_203B0FC->unk_0C[a0] * 6 + r6], + r6, + 47 * (r6 % 3) + 0x72, + 27 * (r6 / 3) + 0x2F + ); + r5 = TRUE; + } + else + { + gUnknown_203B0FC->unk_1D[r6] = sub_812D780( + 47 * (r6 % 3) + 0x72, + 27 * (r6 / 3) + 0x1F + ); + gSprites[gUnknown_203B0FC->unk_1D[r6]].data[1] = 0xFF; + } + } + if (r5 == TRUE) + { + gUnknown_203B0FC->unk_07_0 = TRUE; + if (gUnknown_203B0FC->unk_07_1) + sub_812D0F4(TRUE); + else + sub_812D0F4(FALSE); + } + else + { + gUnknown_203B0FC->unk_07_0 = FALSE; + sub_812D0F4(TRUE); + } + return r5; +} -- cgit v1.2.3 From 83dc744b85346386dea95ba70323917ca1e2a3ed Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 25 Nov 2018 18:32:21 -0500 Subject: through sub_812D388 --- src/fame_checker.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'src') diff --git a/src/fame_checker.c b/src/fame_checker.c index e13fc1913..436e60b3a 100644 --- a/src/fame_checker.c +++ b/src/fame_checker.c @@ -646,3 +646,28 @@ bool8 sub_812D1A8(u8 a0) } return r5; } + +void sub_812D304(void) +{ + u8 r4; + for (r4 = 0; r4 < 16; r4++) + { + gSaveBlock1Ptr->fameChecker[r4].unk_0_0 = 0; + gSaveBlock1Ptr->fameChecker[r4].unk_0_2 = 0; + gSaveBlock1Ptr->fameChecker[r4].unk_0_E = 0; + } + gSaveBlock1Ptr->fameChecker[0].unk_0_0 = 2; +} + +void sub_812D388(void) +{ + u8 r5, r4; + for (r5 = 0; r5 < 16; r5++) + { + gSaveBlock1Ptr->fameChecker[r5].unk_0_0 = 2; + for (r4 = 0; r4 < 6; r4++) + { + gSaveBlock1Ptr->fameChecker[r5].unk_0_2 |= (1 << r4); + } + } +} -- cgit v1.2.3 From 5090c3fab25806fd972fd47360fef30ab095317d Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 25 Nov 2018 18:46:32 -0500 Subject: sub_812D420 --- src/fame_checker.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'src') diff --git a/src/fame_checker.c b/src/fame_checker.c index 436e60b3a..543fd8b87 100644 --- a/src/fame_checker.c +++ b/src/fame_checker.c @@ -671,3 +671,31 @@ void sub_812D388(void) } } } + +void sub_812D420(void) +{ + void * vram = (void *)VRAM; + DmaClearLarge16(3, vram, VRAM_SIZE, 0x1000); + DmaClear32(3, OAM, OAM_SIZE); + DmaClear16(3, PLTT, PLTT_SIZE); + SetGpuReg(REG_OFFSET_DISPCNT, 0); + SetGpuReg(REG_OFFSET_BG0CNT, 0); + SetGpuReg(REG_OFFSET_BG0HOFS, 0); + SetGpuReg(REG_OFFSET_BG0VOFS, 0); + SetGpuReg(REG_OFFSET_BG1CNT, 0); + SetGpuReg(REG_OFFSET_BG1HOFS, 0); + SetGpuReg(REG_OFFSET_BG1VOFS, 0); + SetGpuReg(REG_OFFSET_BG2CNT, 0); + SetGpuReg(REG_OFFSET_BG2HOFS, 0); + SetGpuReg(REG_OFFSET_BG2VOFS, 0); + SetGpuReg(REG_OFFSET_BG3CNT, 0); + SetGpuReg(REG_OFFSET_BG3HOFS, 0); + SetGpuReg(REG_OFFSET_BG3VOFS, 0); + SetGpuReg(REG_OFFSET_WIN0H, 0); + SetGpuReg(REG_OFFSET_WIN0V, 0); + SetGpuReg(REG_OFFSET_WININ, 0); + SetGpuReg(REG_OFFSET_WINOUT, 0); + SetGpuReg(REG_OFFSET_BLDCNT, 0); + SetGpuReg(REG_OFFSET_BLDALPHA, 0); + SetGpuReg(REG_OFFSET_BLDY, 0); +} -- cgit v1.2.3 From f05f41b89a0de0e0c32a06d6477de0d5e2fad243 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 25 Nov 2018 19:21:05 -0500 Subject: through sub_812D5EC --- src/fame_checker.c | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) (limited to 'src') diff --git a/src/fame_checker.c b/src/fame_checker.c index 543fd8b87..d309e59a3 100644 --- a/src/fame_checker.c +++ b/src/fame_checker.c @@ -2,9 +2,12 @@ #include "constants/songs.h" #include "sprite.h" #include "bg.h" +#include "event_data.h" #include "graphics.h" #include "battle_setup.h" #include "menu.h" +#include "battle_dome_cards.h" +#include "scanline_effect.h" #include "new_menu_helpers.h" #include "item_menu.h" #include "list_menu.h" @@ -79,6 +82,7 @@ void sub_812D420(void); void sub_812D558(void); void sub_812D584(void); void sub_812D594(void); +void sub_812D650(void); bool8 sub_812D6B4(void); void sub_812D70C(void); u8 sub_812D724(s16 a0); @@ -699,3 +703,42 @@ void sub_812D420(void) SetGpuReg(REG_OFFSET_BLDALPHA, 0); SetGpuReg(REG_OFFSET_BLDY, 0); } + +void sub_812D558(void) +{ + remove_some_task(); + ResetTasks(); + ResetSpriteData(); + dp13_810BB8C(); + ResetPaletteFade(); + npc_paltag_set_load(0); + gReservedSpritePaletteCount = 7; + +} + +void sub_812D584(void) +{ + SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG_ALL_ON | DISPCNT_OBJ_ON); +} + +void sub_812D594(void) +{ + ChangeBgX(0, 0, 0); + ChangeBgY(0, 0, 0); + ChangeBgX(1, 0, 0); + ChangeBgY(1, 0, 0); + ChangeBgX(2, 0, 0); + ChangeBgY(2, 0, 0); + ChangeBgX(3, 0, 0); + ChangeBgY(3, 0, 0); +} + +void sub_812D5EC(void) +{ + if (gUnknown_20370C0 < 16 && gSpecialVar_0x8005 < 6) + { + gSaveBlock1Ptr->fameChecker[gUnknown_20370C0].unk_0_2 |= (1 << gSpecialVar_0x8005); + gSpecialVar_0x8005 = 1; + sub_812D650(); + } +} -- cgit v1.2.3 From 1f9c58abedd92168b75e2d44abd6521fd82c78b2 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 25 Nov 2018 20:14:34 -0500 Subject: through sub_812D814 --- src/fame_checker.c | 91 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) (limited to 'src') diff --git a/src/fame_checker.c b/src/fame_checker.c index d309e59a3..c5039fa5f 100644 --- a/src/fame_checker.c +++ b/src/fame_checker.c @@ -23,6 +23,14 @@ #include "field_map_obj.h" #include "text_window.h" +#define SPRITETAG_1000 1000 +#define SPRITETAG_1001 1001 +#define SPRITETAG_1002 1002 +#define SPRITETAG_1006 1006 +#define SPRITETAG_1007 1007 +#define SPRITETAG_1008 1008 +#define SPRITETAG_1009 1009 + struct FameCheckerData { MainCallback unk_00; @@ -119,6 +127,9 @@ extern const struct BgTemplate gUnknown_845FBF4[4]; extern const struct SpriteSheet gUnknown_845FB9C[]; extern const struct SpritePalette gUnknown_845FBDC[]; extern const struct WindowTemplate gUnknown_845FC04[]; +extern const struct SpriteTemplate gUnknown_845FC44; +extern const struct SpriteTemplate gUnknown_845FC78; +extern const struct SpriteTemplate gUnknown_845FCB8; void sub_812C380(void) { @@ -742,3 +753,83 @@ void sub_812D5EC(void) sub_812D650(); } } + +void sub_812D650(void) +{ + if (gUnknown_20370C0 < 16 && gSpecialVar_0x8005 < 3) + { + if (gSpecialVar_0x8005 == 0) + return; + if (gSpecialVar_0x8005 == 1 && gSaveBlock1Ptr->fameChecker[gUnknown_20370C0].unk_0_0 == 2) + return; + gSaveBlock1Ptr->fameChecker[gUnknown_20370C0].unk_0_0 = gSpecialVar_0x8005; + } +} + +bool8 sub_812D6B4(void) +{ + u8 r2; + u8 r1 = gUnknown_203B0FC->unk_0C[sub_812E064()]; + for (r2 = 0; r2 < 6; r2++) + { + if (!((gSaveBlock1Ptr->fameChecker[r1].unk_0_2 >> r2) & 1)) + return FALSE; + } + return TRUE; +} + +void sub_812D70C(void) +{ + FreeSpriteTilesByTag(SPRITETAG_1000); + FreeSpritePaletteByTag(SPRITETAG_1000); +} + +u8 sub_812D724(s16 a0) +{ + s16 r4 = a0 >= 3 ? 61 : 34; + s16 r1 = 47 * (a0 % 3) + 0x72; + return CreateSprite(&gUnknown_845FC44, r1, r4, 0); +} + +void sub_812D764(struct Sprite * sprite) +{ + DestroySprite(sprite); +} + +void sub_812D770(void) +{ + FreeSpriteTilesByTag(SPRITETAG_1001); +} + +u8 sub_812D780(u8 x, u8 y) +{ + u8 spriteId = CreateSprite(&gUnknown_845FC78, x, y, 8); + gSprites[spriteId].oam.priority = 2; + gSprites[spriteId].oam.paletteNum = 2; + return spriteId; +} + +void sub_812D7C8(void) +{ + FreeSpriteTilesByTag(SPRITETAG_1002); + FreeSpritePaletteByTag(SPRITETAG_1002); +} + +u8 sub_812D7E4(void) +{ + return CreateSprite(&gUnknown_845FCB8, 0xe2, 0x42, 0); +} + +void sub_812D800(struct Sprite * sprite) +{ + FreeSpriteOamMatrix(sprite); + DestroySprite(sprite); +} + +void sub_812D814(void) +{ + FreeSpriteTilesByTag(SPRITETAG_1006); + FreeSpriteTilesByTag(SPRITETAG_1007); + FreeSpriteTilesByTag(SPRITETAG_1008); + FreeSpriteTilesByTag(SPRITETAG_1009); +} -- cgit v1.2.3 From 5c013a089798efa1819986528de4af8470a9c329 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 25 Nov 2018 21:12:07 -0500 Subject: through sub_812DA14 --- src/fame_checker.c | 108 ++++++++++++++++++++++++++++++++++++++++++++++++++++- src/text.c | 22 +++++------ 2 files changed, 118 insertions(+), 12 deletions(-) (limited to 'src') diff --git a/src/fame_checker.c b/src/fame_checker.c index c5039fa5f..0c7072fb4 100644 --- a/src/fame_checker.c +++ b/src/fame_checker.c @@ -109,6 +109,7 @@ void sub_812DB28(void); void sub_812E000(void); void sub_812E048(void); u16 sub_812E064(void); +void sub_812E094(u8); void sub_812E110(u8 taskId); void sub_812E178(u8 a0, s16 a1); void sub_812E4A4(u8 a0); @@ -119,9 +120,18 @@ extern const u8 gUnknown_841E5B9[]; extern const u8 gUnknown_841E5D2[]; extern const u16 gUnknown_845C600[]; -extern const u8 *const gUnknown_845F63C[]; +extern const u16 gUnknown_845DD20[]; +extern const u16 gUnknown_845E540[]; +extern const u16 gUnknown_845ED60[]; +extern const u16 gUnknown_845F580[]; +extern const u16 gUnknown_845F5C0[]; extern const struct TextColor gUnknown_845F5E0; +extern const struct TextColor gUnknown_845F5E3; +extern const u8 gUnknown_845F61C[]; +extern const u8 *const gUnknown_845F63C[]; extern const u8 *const gUnknown_845F6BC[]; +extern const u8 *const gUnknown_845F89C[]; +extern const u8 *const gUnknown_845FA1C[]; extern const u8 gUnknown_845F83C[]; extern const struct BgTemplate gUnknown_845FBF4[4]; extern const struct SpriteSheet gUnknown_845FB9C[]; @@ -130,6 +140,10 @@ extern const struct WindowTemplate gUnknown_845FC04[]; extern const struct SpriteTemplate gUnknown_845FC44; extern const struct SpriteTemplate gUnknown_845FC78; extern const struct SpriteTemplate gUnknown_845FCB8; +extern const struct SpriteTemplate gUnknown_845FCE4; +extern const struct SpriteTemplate gUnknown_845FCFC; +extern const struct SpriteTemplate gUnknown_845FD14; +extern const struct SpriteTemplate gUnknown_845FD2C; void sub_812C380(void) { @@ -833,3 +847,95 @@ void sub_812D814(void) FreeSpriteTilesByTag(SPRITETAG_1008); FreeSpriteTilesByTag(SPRITETAG_1009); } + +void sub_812D840(struct Sprite * sprite) +{ + if (sprite->data[0] == 1) + { + if (sprite->pos2.x - 10 < 0) + { + sprite->pos2.x = 0; + sprite->data[0] = 0; + } + else + sprite->pos2.x -= 10; + } + else if (sprite->data[0] == 2) + { + if (sprite->pos2.x > 240) + { + sprite->pos2.x = 240; + sprite->data[0] = 0; + } + else + sprite->pos2.x += 10; + } +} + +u8 sub_812D888(u8 a0) +{ + u8 r4; + if (a0 == 1) + { + r4 = CreateSprite(&gUnknown_845FCE4, 0x94, 0x42, 0); + LoadPalette(gUnknown_845ED60, 0x160, 0x20); + gSprites[r4].oam.paletteNum = 6; + } + else if (a0 == 14) + { + r4 = CreateSprite(&gUnknown_845FCFC, 0x94, 0x42, 0); + LoadPalette(gUnknown_845DD20, 0x160, 0x20); + gSprites[r4].oam.paletteNum = 6; + } + else if (a0 == 0) + { + r4 = CreateSprite(&gUnknown_845FD14, 0x94, 0x42, 0); + LoadPalette(gUnknown_845F580, 0x160, 0x20); + gSprites[r4].oam.paletteNum = 6; + } + else if (a0 == 13) + { + r4 = CreateSprite(&gUnknown_845FD2C, 0x94, 0x42, 0); + LoadPalette(gUnknown_845E540, 0x160, 0x20); + gSprites[r4].oam.paletteNum = 6; + } + else + { + r4 = sub_810C2A4(gUnknown_845F61C[a0], 1, 0x94, 0x42, 6, 0xFFFF); + } + gSprites[r4].callback = sub_812D840; + if (gSaveBlock1Ptr->fameChecker[a0].unk_0_0 == 1) + LoadPalette(gUnknown_845F5C0, 0x160, 0x20); + return r4; +} + +void sub_812D9A8(u8 taskId, u16 a1) +{ + s16 * data = gTasks[taskId].data; + u16 r1 = a1; + if (a1 == gUnknown_203B0FC->unk_07_2 - 1) + r1 = a1 - 1; + if ( gUnknown_203B0FC->unk_0C[r1] == 1 + || gUnknown_203B0FC->unk_0C[r1] == 14 + || gUnknown_203B0FC->unk_0C[r1] == 0 + || gUnknown_203B0FC->unk_0C[r1] == 13 + ) + DestroySprite(&gSprites[data[2]]); + else + sub_810C2E8(data[2]); +} + +void sub_812DA14(u8 a0) +{ + s32 width; + u32 r5 = 6 * gUnknown_203B0FC->unk_0C[sub_812E064()] + a0; + sub_812E094(1); + gUnknown_3005EC8 = 1; + FillWindowPixelRect(3, 0x00, 0, 0, 0x58, 0x20); + width = (0x54 - GetStringWidth(0, gUnknown_845F89C[r5], 0)) / 2; + AddTextPrinterParametrized2(3, 0, width, 0, 0, 2, &gUnknown_845F5E3, -1, gUnknown_845F89C[r5]); + StringExpandPlaceholders(gStringVar1, gUnknown_845FA1C[r5]); + width = (0x54 - GetStringWidth(0, gStringVar1, 0)) / 2; + AddTextPrinterParametrized2(3, 0, width, 10, 0, 2, &gUnknown_845F5E3, -1, gStringVar1); + sub_812CEE0(3); +} diff --git a/src/text.c b/src/text.c index d4d25b5aa..874e12fd5 100644 --- a/src/text.c +++ b/src/text.c @@ -17,7 +17,7 @@ extern void BlitBitmapRectToWindow(u8 windowId, const u8 *pixels, u16 srcX, u16 extern u8 GetKeypadIconWidth(u8 keypadIconId); extern void CopyWindowToVram(u8 windowId, u8 mode); extern u16 Font6Func(struct TextPrinter *textPrinter); -extern u32 GetGlyphWidthFont6(u16 glyphId, bool32 isJapanese); +extern s32 GetGlyphWidthFont6(u16 glyphId, bool32 isJapanese); extern void PlaySE(u16 songNum); extern u8* UnkTextUtil_GetPtrI(u8 a1); @@ -1388,7 +1388,7 @@ _08005D6A:\n\ .syntax divided"); } -u32 GetStringWidthFixedWidthFont(const u8 *str, u8 fontId, u8 letterSpacing) +s32 GetStringWidthFixedWidthFont(const u8 *str, u8 fontId, u8 letterSpacing) { int i; u8 width; @@ -1479,7 +1479,7 @@ u32 GetStringWidthFixedWidthFont(const u8 *str, u8 fontId, u8 letterSpacing) return (u8)(GetFontAttribute(fontId, 0) + letterSpacing) * width; } -u32 (*GetFontWidthFunc(u8 glyphId))(u16 _glyphId, bool32 _isJapanese) +s32 (*GetFontWidthFunc(u8 glyphId))(u16 _glyphId, bool32 _isJapanese) { u32 i; @@ -1492,11 +1492,11 @@ u32 (*GetFontWidthFunc(u8 glyphId))(u16 _glyphId, bool32 _isJapanese) return NULL; } -u32 GetStringWidth(u8 fontId, const u8 *str, s16 letterSpacing) +s32 GetStringWidth(u8 fontId, const u8 *str, s16 letterSpacing) { bool8 isJapanese; int minGlyphWidth; - u32 (*func)(u16 glyphId, bool32 isJapanese); + s32 (*func)(u16 glyphId, bool32 isJapanese); int localLetterSpacing; register u32 lineWidth asm("r5"); u8 *bufferPointer; @@ -1863,7 +1863,7 @@ void DecompressGlyphFont0(u16 glyphId, bool32 isJapanese) } } -u32 GetGlyphWidthFont0(u16 glyphId, bool32 isJapanese) +s32 GetGlyphWidthFont0(u16 glyphId, bool32 isJapanese) { if (isJapanese == TRUE) return 8; @@ -1896,7 +1896,7 @@ void DecompressGlyphFont1(u16 glyphId, bool32 isJapanese) } } -u32 GetGlyphWidthFont1(u16 glyphId, bool32 isJapanese) +s32 GetGlyphWidthFont1(u16 glyphId, bool32 isJapanese) { if (isJapanese == TRUE) return 8; @@ -1962,7 +1962,7 @@ void DecompressGlyphFont2(u16 glyphId, bool32 isJapanese) } } -u32 GetGlyphWidthFont2(u16 glyphId, bool32 isJapanese) +s32 GetGlyphWidthFont2(u16 glyphId, bool32 isJapanese) { if (isJapanese == TRUE) { @@ -2012,7 +2012,7 @@ void DecompressGlyphFont3(u16 glyphId, bool32 isJapanese) DecompressGlyphFont2(glyphId, isJapanese); } -u32 GetGlyphWidthFont3(u16 glyphId, bool32 isJapanese) +s32 GetGlyphWidthFont3(u16 glyphId, bool32 isJapanese) { if(isJapanese == TRUE) return 10; @@ -2078,7 +2078,7 @@ void DecompressGlyphFont4(u16 glyphId, bool32 isJapanese) } } -u32 GetGlyphWidthFont4(u16 glyphId, bool32 isJapanese) +s32 GetGlyphWidthFont4(u16 glyphId, bool32 isJapanese) { if(isJapanese == TRUE) { @@ -2149,7 +2149,7 @@ void DecompressGlyphFont5(u16 glyphId, bool32 isJapanese) } } -u32 GetGlyphWidthFont5(u16 glyphId, bool32 isJapanese) +s32 GetGlyphWidthFont5(u16 glyphId, bool32 isJapanese) { if(isJapanese == TRUE) { -- cgit v1.2.3 From 82c7bd49aa07293c840254bccc144836057f2c65 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 25 Nov 2018 21:58:52 -0500 Subject: through sub_812DB64 --- src/fame_checker.c | 49 ++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 42 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/fame_checker.c b/src/fame_checker.c index 0c7072fb4..203d1ca6c 100644 --- a/src/fame_checker.c +++ b/src/fame_checker.c @@ -50,16 +50,11 @@ struct FameCheckerData u8 unk_23_2:1; }; -struct FameCheckerData2 -{ - u8 filler_00[0x88]; -}; - EWRAM_DATA u16 * gUnknown_203B0F0 = NULL; EWRAM_DATA u16 * gUnknown_203B0F4 = NULL; EWRAM_DATA u16 * gUnknown_203B0F8 = NULL; EWRAM_DATA struct FameCheckerData * gUnknown_203B0FC = NULL; -EWRAM_DATA struct FameCheckerData2 * gUnknown_203B100 = NULL; +EWRAM_DATA struct ListMenuItem * gUnknown_203B100 = NULL; EWRAM_DATA u32 gUnknown_203B104 = 0; struct ListMenuTemplate gUnknown_3005EB0; @@ -106,6 +101,10 @@ void sub_812D9A8(u8 a0, u16 a1); void sub_812DA14(u8 a0); void sub_812DB10(void); void sub_812DB28(void); +void sub_812DB64(void); +void sub_812DBC0(s32, bool8, struct ListMenu *); +u8 sub_812DEF0(void); +void sub_812DFE4(u8); void sub_812E000(void); void sub_812E048(void); u16 sub_812E064(void); @@ -225,7 +224,7 @@ void sub_812C3F8(void) InitWindows(gUnknown_845FC04); DeactivateAllTextPrinters(); sub_812CEC0(); - gUnknown_203B100 = AllocZeroed(sizeof(struct FameCheckerData2)); + gUnknown_203B100 = AllocZeroed(17 * sizeof(struct ListMenuItem)); sub_812DB28(); gMain.state++; break; @@ -939,3 +938,39 @@ void sub_812DA14(u8 a0) AddTextPrinterParametrized2(3, 0, width, 10, 0, 2, &gUnknown_845F5E3, -1, gStringVar1); sub_812CEE0(3); } + +void sub_812DB10(void) +{ + sub_812E094(0); + gUnknown_3005EC8 = 0xFF; +} + +void sub_812DB28(void) +{ + sub_812DB64(); + gUnknown_203B0FC->unk_07_2 = sub_812DEF0(); + gUnknown_203B0FC->unk_08 = ListMenuInit(&gUnknown_3005EB0, 0, 0); + sub_812DFE4(0); +} + +void sub_812DB64(void) +{ + gUnknown_3005EB0.items = gUnknown_203B100; + gUnknown_3005EB0.moveCursorFunc = sub_812DBC0; + gUnknown_3005EB0.itemPrintFunc = NULL; + gUnknown_3005EB0.totalItems = 1; + gUnknown_3005EB0.maxShowed = 1; + gUnknown_3005EB0.windowId = 0; + gUnknown_3005EB0.header_X = 0; + gUnknown_3005EB0.item_X = 8; + gUnknown_3005EB0.cursor_X = 0; + gUnknown_3005EB0.upText_Y = 4; + gUnknown_3005EB0.cursorPal = 2; + gUnknown_3005EB0.fillValue = 0; + gUnknown_3005EB0.cursorShadowPal = 3; + gUnknown_3005EB0.lettersSpacing = 0; + gUnknown_3005EB0.itemVerticalPadding = 0; + gUnknown_3005EB0.scrollMultiple = 0; + gUnknown_3005EB0.fontId = 2; + gUnknown_3005EB0.cursorKind = 0; +} -- cgit v1.2.3 From 03af56b30e397e432f8815ba66de173a5be6501b Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 26 Nov 2018 08:48:14 -0500 Subject: nonmatching sub_812DBC0 --- src/fame_checker.c | 270 ++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 269 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/fame_checker.c b/src/fame_checker.c index 203d1ca6c..02afdc937 100644 --- a/src/fame_checker.c +++ b/src/fame_checker.c @@ -55,7 +55,7 @@ EWRAM_DATA u16 * gUnknown_203B0F4 = NULL; EWRAM_DATA u16 * gUnknown_203B0F8 = NULL; EWRAM_DATA struct FameCheckerData * gUnknown_203B0FC = NULL; EWRAM_DATA struct ListMenuItem * gUnknown_203B100 = NULL; -EWRAM_DATA u32 gUnknown_203B104 = 0; +EWRAM_DATA s32 gUnknown_203B104 = 0; struct ListMenuTemplate gUnknown_3005EB0; u8 gUnknown_3005EC8; @@ -103,6 +103,9 @@ void sub_812DB10(void); void sub_812DB28(void); void sub_812DB64(void); void sub_812DBC0(s32, bool8, struct ListMenu *); +void sub_812DD50(u8 taskId); +void sub_812DDAC(void); +void sub_812DDF0(s32 itemIndex, bool8 onInit); u8 sub_812DEF0(void); void sub_812DFE4(u8); void sub_812E000(void); @@ -974,3 +977,268 @@ void sub_812DB64(void) gUnknown_3005EB0.fontId = 2; gUnknown_3005EB0.cursorKind = 0; } + +#ifdef NONMATCHING +void sub_812DBC0(s32 itemIndex, bool8 onInit, struct ListMenu *list) +{ + u16 sp8[2]; + u8 taskId; + s32 r9; + gUnknown_203B104 = 0; + r9 = gUnknown_203B0FC->unk_0A + gUnknown_203B0FC->unk_0B; + sub_812DDF0(itemIndex, onInit); + taskId = FindTaskIdByFunc(sub_812C694); + if (taskId != 0xFF) + { + struct Task *task = &gTasks[taskId]; + PlaySE(SE_SELECT); + task->data[1] = 0; + get_coro_args_x18_x1A(gUnknown_203B0FC->unk_08, sp8, NULL); + gUnknown_203B0FC->unk_04 = sp8[0]; + if (itemIndex != gUnknown_203B0FC->unk_07_2 - 1) + { + sub_812D174(); + sub_812D1A8(itemIndex); + if (gUnknown_203B0FC->unk_07_1) + { + if (!gUnknown_203B0FC->unk_23_2) + { + /* + * The following two instructions compile in the wrong order: + * adds r0, r4, 0 + * mov r1, r9 + */ + sub_812D9A8(taskId, r9); + gUnknown_203B104 = itemIndex; + task->func = sub_812DD50; + } + else + { + gSprites[task->data[2]].invisible = FALSE; + gUnknown_203B0FC->unk_23_2 = FALSE; + gSprites[task->data[2]].data[0] = 0; + sub_812CD3C(); + } + } + else + { + FillWindowPixelRect(2, 0x11, 0, 0, 0xd0, 0x20); + sub_812CEE0(2); + } + } + else + { + sub_812DDAC(); + if (gUnknown_203B0FC->unk_07_1) + { + gSprites[task->data[2]].invisible = TRUE; + gUnknown_203B0FC->unk_23_2 = TRUE; + } + else + { + u8 r2; + for (r2 = 0; r2 < 6; r2++) + { + gSprites[gUnknown_203B0FC->unk_1D[r2]].invisible = TRUE; + } + } + } + } +} +#else +NAKED +void sub_812DBC0(s32 itemIndex, bool8 onInit, struct ListMenu * list) +{ + asm_unified( "push {r4-r7,lr}\n" + "\tmov r7, r10\n" + "\tmov r6, r9\n" + "\tmov r5, r8\n" + "\tpush {r5-r7}\n" + "\tsub sp, 0xC\n" + "\tadds r7, r0, 0\n" + "\tlsls r1, 24\n" + "\tlsrs r1, 24\n" + "\tldr r0, _0812DC68 @ =gUnknown_203B104\n" + "\tmov r10, r0\n" + "\tmovs r2, 0\n" + "\tmov r8, r2\n" + "\tstr r2, [r0]\n" + "\tldr r6, _0812DC6C @ =gUnknown_203B0FC\n" + "\tldr r0, [r6]\n" + "\tldrb r2, [r0, 0xA]\n" + "\tldrb r0, [r0, 0xB]\n" + "\tadds r2, r0\n" + "\tmov r9, r2\n" + "\tadds r0, r7, 0\n" + "\tbl sub_812DDF0\n" + "\tldr r0, _0812DC70 @ =sub_812C694\n" + "\tbl FindTaskIdByFunc\n" + "\tlsls r0, 24\n" + "\tlsrs r4, r0, 24\n" + "\tcmp r4, 0xFF\n" + "\tbne _0812DBFE\n" + "\tb _0812DD3A\n" + "_0812DBFE:\n" + "\tlsls r0, r4, 2\n" + "\tadds r0, r4\n" + "\tlsls r0, 3\n" + "\tldr r1, _0812DC74 @ =gTasks\n" + "\tadds r5, r0, r1\n" + "\tmovs r0, 0x5\n" + "\tbl PlaySE\n" + "\tmov r0, r8\n" + "\tstrh r0, [r5, 0xA]\n" + "\tldr r0, [r6]\n" + "\tldrb r0, [r0, 0x8]\n" + "\tadd r1, sp, 0x8\n" + "\tmovs r2, 0\n" + "\tbl get_coro_args_x18_x1A\n" + "\tldr r1, [r6]\n" + "\tadd r0, sp, 0x8\n" + "\tldrh r0, [r0]\n" + "\tstrh r0, [r1, 0x4]\n" + "\tldrb r0, [r1, 0x7]\n" + "\tlsrs r0, 2\n" + "\tsubs r0, 0x1\n" + "\tcmp r7, r0\n" + "\tbeq _0812DCD8\n" + "\tbl sub_812D174\n" + "\tlsls r0, r7, 24\n" + "\tlsrs r0, 24\n" + "\tbl sub_812D1A8\n" + "\tldr r2, [r6]\n" + "\tldrb r1, [r2, 0x7]\n" + "\tmovs r0, 0x2\n" + "\tands r0, r1\n" + "\tcmp r0, 0\n" + "\tbeq _0812DCBC\n" + "\tadds r0, r2, 0\n" + "\tadds r0, 0x23\n" + "\tldrb r1, [r0]\n" + "\tmovs r0, 0x4\n" + "\tands r0, r1\n" + "\tcmp r0, 0\n" + "\tbne _0812DC7C\n" + "\tadds r0, r4, 0\n" + "\tmov r1, r9\n" + "\tbl sub_812D9A8\n" + "\tmov r1, r10\n" + "\tstr r7, [r1]\n" + "\tldr r0, _0812DC78 @ =sub_812DD50\n" + "\tstr r0, [r5]\n" + "\tb _0812DD3A\n" + "\t.align 2, 0\n" + "_0812DC68: .4byte gUnknown_203B104\n" + "_0812DC6C: .4byte gUnknown_203B0FC\n" + "_0812DC70: .4byte sub_812C694\n" + "_0812DC74: .4byte gTasks\n" + "_0812DC78: .4byte sub_812DD50\n" + "_0812DC7C:\n" + "\tldr r4, _0812DCB8 @ =gSprites\n" + "\tmovs r2, 0xC\n" + "\tldrsh r0, [r5, r2]\n" + "\tlsls r1, r0, 4\n" + "\tadds r1, r0\n" + "\tlsls r1, 2\n" + "\tadds r1, r4\n" + "\tadds r1, 0x3E\n" + "\tldrb r3, [r1]\n" + "\tmovs r2, 0x5\n" + "\tnegs r2, r2\n" + "\tadds r0, r2, 0\n" + "\tands r0, r3\n" + "\tstrb r0, [r1]\n" + "\tldr r0, [r6]\n" + "\tadds r0, 0x23\n" + "\tldrb r1, [r0]\n" + "\tands r2, r1\n" + "\tstrb r2, [r0]\n" + "\tmovs r0, 0xC\n" + "\tldrsh r1, [r5, r0]\n" + "\tlsls r0, r1, 4\n" + "\tadds r0, r1\n" + "\tlsls r0, 2\n" + "\tadds r0, r4\n" + "\tmov r1, r8\n" + "\tstrh r1, [r0, 0x2E]\n" + "\tbl sub_812CD3C\n" + "\tb _0812DD3A\n" + "\t.align 2, 0\n" + "_0812DCB8: .4byte gSprites\n" + "_0812DCBC:\n" + "\tmovs r0, 0xD0\n" + "\tstr r0, [sp]\n" + "\tmovs r0, 0x20\n" + "\tstr r0, [sp, 0x4]\n" + "\tmovs r0, 0x2\n" + "\tmovs r1, 0x11\n" + "\tmovs r2, 0\n" + "\tmovs r3, 0\n" + "\tbl FillWindowPixelRect\n" + "\tmovs r0, 0x2\n" + "\tbl sub_812CEE0\n" + "\tb _0812DD3A\n" + "_0812DCD8:\n" + "\tbl sub_812DDAC\n" + "\tldr r0, [r6]\n" + "\tldrb r1, [r0, 0x7]\n" + "\tmovs r0, 0x2\n" + "\tands r0, r1\n" + "\tcmp r0, 0\n" + "\tbeq _0812DD10\n" + "\tldr r2, _0812DD0C @ =gSprites\n" + "\tmovs r0, 0xC\n" + "\tldrsh r1, [r5, r0]\n" + "\tlsls r0, r1, 4\n" + "\tadds r0, r1\n" + "\tlsls r0, 2\n" + "\tadds r0, r2\n" + "\tadds r0, 0x3E\n" + "\tldrb r1, [r0]\n" + "\tmovs r2, 0x4\n" + "\torrs r1, r2\n" + "\tstrb r1, [r0]\n" + "\tldr r1, [r6]\n" + "\tadds r1, 0x23\n" + "\tldrb r0, [r1]\n" + "\torrs r0, r2\n" + "\tstrb r0, [r1]\n" + "\tb _0812DD3A\n" + "\t.align 2, 0\n" + "_0812DD0C: .4byte gSprites\n" + "_0812DD10:\n" + "\tmovs r2, 0\n" + "\tldr r5, _0812DD4C @ =gSprites\n" + "\tadds r4, r6, 0\n" + "\tmovs r3, 0x4\n" + "_0812DD18:\n" + "\tldr r0, [r4]\n" + "\tadds r0, 0x1D\n" + "\tadds r0, r2\n" + "\tldrb r1, [r0]\n" + "\tlsls r0, r1, 4\n" + "\tadds r0, r1\n" + "\tlsls r0, 2\n" + "\tadds r0, r5\n" + "\tadds r0, 0x3E\n" + "\tldrb r1, [r0]\n" + "\torrs r1, r3\n" + "\tstrb r1, [r0]\n" + "\tadds r0, r2, 0x1\n" + "\tlsls r0, 24\n" + "\tlsrs r2, r0, 24\n" + "\tcmp r2, 0x5\n" + "\tbls _0812DD18\n" + "_0812DD3A:\n" + "\tadd sp, 0xC\n" + "\tpop {r3-r5}\n" + "\tmov r8, r3\n" + "\tmov r9, r4\n" + "\tmov r10, r5\n" + "\tpop {r4-r7}\n" + "\tpop {r0}\n" + "\tbx r0\n" + "\t.align 2, 0\n" + "_0812DD4C: .4byte gSprites"); +} +#endif // NONMATCHING -- cgit v1.2.3 From 840f8037e77885b664470910b072ee8dc4cd140d Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 26 Nov 2018 09:28:23 -0500 Subject: through sub_812DDAC; match sub_812DBC0 --- src/fame_checker.c | 218 ++++------------------------------------------------- 1 file changed, 16 insertions(+), 202 deletions(-) (limited to 'src') diff --git a/src/fame_checker.c b/src/fame_checker.c index 02afdc937..8637f6e86 100644 --- a/src/fame_checker.c +++ b/src/fame_checker.c @@ -116,6 +116,7 @@ void sub_812E110(u8 taskId); void sub_812E178(u8 a0, s16 a1); void sub_812E4A4(u8 a0); +extern const u8 gUnknown_84181C3[]; extern const u8 gUnknown_84181E4[]; extern const u8 gUnknown_841E5A4[]; extern const u8 gUnknown_841E5B9[]; @@ -978,12 +979,11 @@ void sub_812DB64(void) gUnknown_3005EB0.cursorKind = 0; } -#ifdef NONMATCHING void sub_812DBC0(s32 itemIndex, bool8 onInit, struct ListMenu *list) { u16 sp8[2]; u8 taskId; - s32 r9; + u16 r9; gUnknown_203B104 = 0; r9 = gUnknown_203B0FC->unk_0A + gUnknown_203B0FC->unk_0B; sub_812DDF0(itemIndex, onInit); @@ -1003,11 +1003,6 @@ void sub_812DBC0(s32 itemIndex, bool8 onInit, struct ListMenu *list) { if (!gUnknown_203B0FC->unk_23_2) { - /* - * The following two instructions compile in the wrong order: - * adds r0, r4, 0 - * mov r1, r9 - */ sub_812D9A8(taskId, r9); gUnknown_203B104 = itemIndex; task->func = sub_812DD50; @@ -1045,200 +1040,19 @@ void sub_812DBC0(s32 itemIndex, bool8 onInit, struct ListMenu *list) } } } -#else -NAKED -void sub_812DBC0(s32 itemIndex, bool8 onInit, struct ListMenu * list) + +void sub_812DD50(u8 taskId) +{ + struct Task * task = &gTasks[taskId]; + task->data[2] = sub_812D888(gUnknown_203B0FC->unk_0C[gUnknown_203B104]); + gSprites[task->data[2]].data[0] = 0; + sub_812CD3C(); + task->func = sub_812C694; +} + +void sub_812DDAC(void) { - asm_unified( "push {r4-r7,lr}\n" - "\tmov r7, r10\n" - "\tmov r6, r9\n" - "\tmov r5, r8\n" - "\tpush {r5-r7}\n" - "\tsub sp, 0xC\n" - "\tadds r7, r0, 0\n" - "\tlsls r1, 24\n" - "\tlsrs r1, 24\n" - "\tldr r0, _0812DC68 @ =gUnknown_203B104\n" - "\tmov r10, r0\n" - "\tmovs r2, 0\n" - "\tmov r8, r2\n" - "\tstr r2, [r0]\n" - "\tldr r6, _0812DC6C @ =gUnknown_203B0FC\n" - "\tldr r0, [r6]\n" - "\tldrb r2, [r0, 0xA]\n" - "\tldrb r0, [r0, 0xB]\n" - "\tadds r2, r0\n" - "\tmov r9, r2\n" - "\tadds r0, r7, 0\n" - "\tbl sub_812DDF0\n" - "\tldr r0, _0812DC70 @ =sub_812C694\n" - "\tbl FindTaskIdByFunc\n" - "\tlsls r0, 24\n" - "\tlsrs r4, r0, 24\n" - "\tcmp r4, 0xFF\n" - "\tbne _0812DBFE\n" - "\tb _0812DD3A\n" - "_0812DBFE:\n" - "\tlsls r0, r4, 2\n" - "\tadds r0, r4\n" - "\tlsls r0, 3\n" - "\tldr r1, _0812DC74 @ =gTasks\n" - "\tadds r5, r0, r1\n" - "\tmovs r0, 0x5\n" - "\tbl PlaySE\n" - "\tmov r0, r8\n" - "\tstrh r0, [r5, 0xA]\n" - "\tldr r0, [r6]\n" - "\tldrb r0, [r0, 0x8]\n" - "\tadd r1, sp, 0x8\n" - "\tmovs r2, 0\n" - "\tbl get_coro_args_x18_x1A\n" - "\tldr r1, [r6]\n" - "\tadd r0, sp, 0x8\n" - "\tldrh r0, [r0]\n" - "\tstrh r0, [r1, 0x4]\n" - "\tldrb r0, [r1, 0x7]\n" - "\tlsrs r0, 2\n" - "\tsubs r0, 0x1\n" - "\tcmp r7, r0\n" - "\tbeq _0812DCD8\n" - "\tbl sub_812D174\n" - "\tlsls r0, r7, 24\n" - "\tlsrs r0, 24\n" - "\tbl sub_812D1A8\n" - "\tldr r2, [r6]\n" - "\tldrb r1, [r2, 0x7]\n" - "\tmovs r0, 0x2\n" - "\tands r0, r1\n" - "\tcmp r0, 0\n" - "\tbeq _0812DCBC\n" - "\tadds r0, r2, 0\n" - "\tadds r0, 0x23\n" - "\tldrb r1, [r0]\n" - "\tmovs r0, 0x4\n" - "\tands r0, r1\n" - "\tcmp r0, 0\n" - "\tbne _0812DC7C\n" - "\tadds r0, r4, 0\n" - "\tmov r1, r9\n" - "\tbl sub_812D9A8\n" - "\tmov r1, r10\n" - "\tstr r7, [r1]\n" - "\tldr r0, _0812DC78 @ =sub_812DD50\n" - "\tstr r0, [r5]\n" - "\tb _0812DD3A\n" - "\t.align 2, 0\n" - "_0812DC68: .4byte gUnknown_203B104\n" - "_0812DC6C: .4byte gUnknown_203B0FC\n" - "_0812DC70: .4byte sub_812C694\n" - "_0812DC74: .4byte gTasks\n" - "_0812DC78: .4byte sub_812DD50\n" - "_0812DC7C:\n" - "\tldr r4, _0812DCB8 @ =gSprites\n" - "\tmovs r2, 0xC\n" - "\tldrsh r0, [r5, r2]\n" - "\tlsls r1, r0, 4\n" - "\tadds r1, r0\n" - "\tlsls r1, 2\n" - "\tadds r1, r4\n" - "\tadds r1, 0x3E\n" - "\tldrb r3, [r1]\n" - "\tmovs r2, 0x5\n" - "\tnegs r2, r2\n" - "\tadds r0, r2, 0\n" - "\tands r0, r3\n" - "\tstrb r0, [r1]\n" - "\tldr r0, [r6]\n" - "\tadds r0, 0x23\n" - "\tldrb r1, [r0]\n" - "\tands r2, r1\n" - "\tstrb r2, [r0]\n" - "\tmovs r0, 0xC\n" - "\tldrsh r1, [r5, r0]\n" - "\tlsls r0, r1, 4\n" - "\tadds r0, r1\n" - "\tlsls r0, 2\n" - "\tadds r0, r4\n" - "\tmov r1, r8\n" - "\tstrh r1, [r0, 0x2E]\n" - "\tbl sub_812CD3C\n" - "\tb _0812DD3A\n" - "\t.align 2, 0\n" - "_0812DCB8: .4byte gSprites\n" - "_0812DCBC:\n" - "\tmovs r0, 0xD0\n" - "\tstr r0, [sp]\n" - "\tmovs r0, 0x20\n" - "\tstr r0, [sp, 0x4]\n" - "\tmovs r0, 0x2\n" - "\tmovs r1, 0x11\n" - "\tmovs r2, 0\n" - "\tmovs r3, 0\n" - "\tbl FillWindowPixelRect\n" - "\tmovs r0, 0x2\n" - "\tbl sub_812CEE0\n" - "\tb _0812DD3A\n" - "_0812DCD8:\n" - "\tbl sub_812DDAC\n" - "\tldr r0, [r6]\n" - "\tldrb r1, [r0, 0x7]\n" - "\tmovs r0, 0x2\n" - "\tands r0, r1\n" - "\tcmp r0, 0\n" - "\tbeq _0812DD10\n" - "\tldr r2, _0812DD0C @ =gSprites\n" - "\tmovs r0, 0xC\n" - "\tldrsh r1, [r5, r0]\n" - "\tlsls r0, r1, 4\n" - "\tadds r0, r1\n" - "\tlsls r0, 2\n" - "\tadds r0, r2\n" - "\tadds r0, 0x3E\n" - "\tldrb r1, [r0]\n" - "\tmovs r2, 0x4\n" - "\torrs r1, r2\n" - "\tstrb r1, [r0]\n" - "\tldr r1, [r6]\n" - "\tadds r1, 0x23\n" - "\tldrb r0, [r1]\n" - "\torrs r0, r2\n" - "\tstrb r0, [r1]\n" - "\tb _0812DD3A\n" - "\t.align 2, 0\n" - "_0812DD0C: .4byte gSprites\n" - "_0812DD10:\n" - "\tmovs r2, 0\n" - "\tldr r5, _0812DD4C @ =gSprites\n" - "\tadds r4, r6, 0\n" - "\tmovs r3, 0x4\n" - "_0812DD18:\n" - "\tldr r0, [r4]\n" - "\tadds r0, 0x1D\n" - "\tadds r0, r2\n" - "\tldrb r1, [r0]\n" - "\tlsls r0, r1, 4\n" - "\tadds r0, r1\n" - "\tlsls r0, 2\n" - "\tadds r0, r5\n" - "\tadds r0, 0x3E\n" - "\tldrb r1, [r0]\n" - "\torrs r1, r3\n" - "\tstrb r1, [r0]\n" - "\tadds r0, r2, 0x1\n" - "\tlsls r0, 24\n" - "\tlsrs r2, r0, 24\n" - "\tcmp r2, 0x5\n" - "\tbls _0812DD18\n" - "_0812DD3A:\n" - "\tadd sp, 0xC\n" - "\tpop {r3-r5}\n" - "\tmov r8, r3\n" - "\tmov r9, r4\n" - "\tmov r10, r5\n" - "\tpop {r4-r7}\n" - "\tpop {r0}\n" - "\tbx r0\n" - "\t.align 2, 0\n" - "_0812DD4C: .4byte gSprites"); + FillWindowPixelRect(2, 0x11, 0, 0, 0xd0, 0x20); + AddTextPrinterParametrized(2, 2, gUnknown_84181C3, 0, NULL, 2, 1, 3); + sub_812CEE0(2); } -#endif // NONMATCHING -- cgit v1.2.3 From eb8dface178fed90656ea7a7726b6835ee5a1229 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 26 Nov 2018 10:26:12 -0500 Subject: through sub_812E064 --- src/fame_checker.c | 103 ++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 99 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/fame_checker.c b/src/fame_checker.c index 8637f6e86..9535b6556 100644 --- a/src/fame_checker.c +++ b/src/fame_checker.c @@ -4,6 +4,7 @@ #include "bg.h" #include "event_data.h" #include "graphics.h" +#include "battle.h" #include "battle_setup.h" #include "menu.h" #include "battle_dome_cards.h" @@ -21,6 +22,7 @@ #include "window.h" #include "string_util.h" #include "field_map_obj.h" +#include "menu_indicators.h" #include "text_window.h" #define SPRITETAG_1000 1000 @@ -35,7 +37,7 @@ struct FameCheckerData { MainCallback unk_00; u16 unk_04; - u8 filler_06[1]; + u8 unk_06; u8 unk_07_0:1; u8 unk_07_1:1; u8 unk_07_2:6; @@ -121,6 +123,7 @@ extern const u8 gUnknown_84181E4[]; extern const u8 gUnknown_841E5A4[]; extern const u8 gUnknown_841E5B9[]; extern const u8 gUnknown_841E5D2[]; +extern const u8 gUnknown_84161C1[]; extern const u16 gUnknown_845C600[]; extern const u16 gUnknown_845DD20[]; @@ -130,7 +133,10 @@ extern const u16 gUnknown_845F580[]; extern const u16 gUnknown_845F5C0[]; extern const struct TextColor gUnknown_845F5E0; extern const struct TextColor gUnknown_845F5E3; +extern const struct TextColor gUnknown_845F5E6; +extern const u16 gUnknown_845F5EA[]; extern const u8 gUnknown_845F61C[]; +extern const u8 *const gUnknown_845F60C[]; extern const u8 *const gUnknown_845F63C[]; extern const u8 *const gUnknown_845F6BC[]; extern const u8 *const gUnknown_845F89C[]; @@ -147,6 +153,7 @@ extern const struct SpriteTemplate gUnknown_845FCE4; extern const struct SpriteTemplate gUnknown_845FCFC; extern const struct SpriteTemplate gUnknown_845FD14; extern const struct SpriteTemplate gUnknown_845FD2C; +extern const struct ScrollIndicatorArrowPairTemplate gUnknown_845FD44; void sub_812C380(void) { @@ -981,7 +988,7 @@ void sub_812DB64(void) void sub_812DBC0(s32 itemIndex, bool8 onInit, struct ListMenu *list) { - u16 sp8[2]; + u16 sp8; u8 taskId; u16 r9; gUnknown_203B104 = 0; @@ -993,8 +1000,8 @@ void sub_812DBC0(s32 itemIndex, bool8 onInit, struct ListMenu *list) struct Task *task = &gTasks[taskId]; PlaySE(SE_SELECT); task->data[1] = 0; - get_coro_args_x18_x1A(gUnknown_203B0FC->unk_08, sp8, NULL); - gUnknown_203B0FC->unk_04 = sp8[0]; + get_coro_args_x18_x1A(gUnknown_203B0FC->unk_08, &sp8, NULL); + gUnknown_203B0FC->unk_04 = sp8; if (itemIndex != gUnknown_203B0FC->unk_07_2 - 1) { sub_812D174(); @@ -1056,3 +1063,91 @@ void sub_812DDAC(void) AddTextPrinterParametrized(2, 2, gUnknown_84181C3, 0, NULL, 2, 1, 3); sub_812CEE0(2); } + +void sub_812DDF0(s32 itemIndex, bool8 onInit) +{ + u16 sp14; + u16 sp16; + u16 r6; + get_coro_args_x18_x1A(gUnknown_203B0FC->unk_08, &sp14, &sp16); + r6 = sp14 + sp16; + AddTextPrinterParametrized2(0, 2, 8, 14 * sp16 + 4, 0, 0, &gUnknown_845F5E6, 0, gUnknown_203B100[itemIndex].unk_00); + if (!onInit) + { + if (sp14 < gUnknown_203B0FC->unk_0A) + gUnknown_203B0FC->unk_0B++; + else if (sp14 > gUnknown_203B0FC->unk_0A && r6 != gUnknown_203B0FC->unk_07_2 - 1) + gUnknown_203B0FC->unk_0B--; + AddTextPrinterParametrized2(0, 2, 8, 14 * gUnknown_203B0FC->unk_0B + 4, 0, 0, &gUnknown_845F5E3, 0, gUnknown_203B100[gUnknown_203B0FC->unk_09].unk_00); + + } + gUnknown_203B0FC->unk_09 = itemIndex; + gUnknown_203B0FC->unk_0B = sp16; + gUnknown_203B0FC->unk_0A = sp14; +} + +u8 sub_812DEF0(void) +{ + u8 r4 = 0; + u8 r6; + + for (r6 = 0; r6 < 16; r6++) + { + u8 r5 = sub_812D0C0(r6); + if (gSaveBlock1Ptr->fameChecker[r5].unk_0_0 != 0) + { + if (gUnknown_845F5EA[r5] < 0xFE00) + { + gUnknown_203B100[r4].unk_00 = gTrainers[gUnknown_845F5EA[r5]].trainerName; + gUnknown_203B100[r4].unk_04 = r4; + } + else + { + gUnknown_203B100[r4].unk_00 = gUnknown_845F60C[gUnknown_845F5EA[r5] - 0xFE00]; + gUnknown_203B100[r4].unk_04 = r4; + } + gUnknown_203B0FC->unk_0C[r4] = r5; + r4++; + } + } + gUnknown_203B100[r4].unk_00 = gUnknown_84161C1; + gUnknown_203B100[r4].unk_04 = r4; + gUnknown_203B0FC->unk_0C[r4] = 0xFF; + r4++; + gUnknown_3005EB0.totalItems = r4; + if (r4 < 5) + gUnknown_3005EB0.maxShowed = r4; + else + gUnknown_3005EB0.maxShowed = 5; + return r4; +} + +void sub_812DFE4(u8 windowId) +{ + PutWindowTilemap(windowId); + CopyWindowToVram(windowId, 3); +} + +void sub_812E000(void) +{ + struct ScrollIndicatorArrowPairTemplate sp0 = gUnknown_845FD44; + if (gUnknown_203B0FC->unk_07_2 > 5) + { + sp0.unk_06 = 0; + sp0.unk_08 = gUnknown_203B0FC->unk_07_2 - 5; + gUnknown_203B0FC->unk_06 = AddScrollIndicatorArrowPair(&sp0, &gUnknown_203B0FC->unk_04); + } +} + +void sub_812E048(void) +{ + if (gUnknown_203B0FC->unk_07_2 > 5) + RemoveScrollIndicatorArrowPair(gUnknown_203B0FC->unk_06); +} + +u16 sub_812E064(void) +{ + u16 sp0, sp2; + get_coro_args_x18_x1A(gUnknown_203B0FC->unk_08, &sp0, &sp2); + return sp0 + sp2; +} -- cgit v1.2.3 From f75453388c6f9e1123915707f6d69c3373f761f6 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 26 Nov 2018 10:54:41 -0500 Subject: Finish decomp of fame_checker(.text) --- src/fame_checker.c | 119 ++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 118 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/fame_checker.c b/src/fame_checker.c index 9535b6556..2f455c462 100644 --- a/src/fame_checker.c +++ b/src/fame_checker.c @@ -118,12 +118,13 @@ void sub_812E110(u8 taskId); void sub_812E178(u8 a0, s16 a1); void sub_812E4A4(u8 a0); +extern const u8 gUnknown_84161C1[]; +extern const u8 gUnknown_841623B[]; extern const u8 gUnknown_84181C3[]; extern const u8 gUnknown_84181E4[]; extern const u8 gUnknown_841E5A4[]; extern const u8 gUnknown_841E5B9[]; extern const u8 gUnknown_841E5D2[]; -extern const u8 gUnknown_84161C1[]; extern const u16 gUnknown_845C600[]; extern const u16 gUnknown_845DD20[]; @@ -1151,3 +1152,119 @@ u16 sub_812E064(void) get_coro_args_x18_x1A(gUnknown_203B0FC->unk_08, &sp0, &sp2); return sp0 + sp2; } + +void sub_812E094(u8 a0) +{ + if (gUnknown_203B0FC->unk_23_0 != a0) + { + u8 taskId = FindTaskIdByFunc(sub_812E110); + if (taskId == 0xFF) + taskId = CreateTask(sub_812E110, 8); + gTasks[taskId].data[0] = 0; + gTasks[taskId].data[1] = 4; + if (a0 == TRUE) + { + gTasks[taskId].data[2] = 1; + gUnknown_203B0FC->unk_23_0 = TRUE; + } + else + { + gTasks[taskId].data[2] = 4; + gUnknown_203B0FC->unk_23_0 = FALSE; + } + } +} + +void sub_812E110(u8 taskId) +{ + struct Task * task = &gTasks[taskId]; + switch (task->data[0]) + { + case 0: + if (--task->data[1] == 0) + { + sub_812E178(1, 0); + task->data[1] = 4; + task->data[0]++; + } + break; + case 1: + if (--task->data[1] == 0) + { + sub_812E178(1, task->data[2]); + DestroyTask(taskId); + } + break; + } +} + +void sub_812E178(u8 bg, s16 a1) +{ + if (a1 == 0 || a1 == 3) + { + FillBgTilemapBufferRect(bg, 0x8C, 14, 10, 1, 1, 1); + FillBgTilemapBufferRect(bg, 0xA1, 15, 10, 10, 1, 1); + FillBgTilemapBufferRect(bg, 0x8D, 25, 10, 1, 1, 1); + FillBgTilemapBufferRect(bg, 0x8E, 26, 10, 1, 1, 1); + FillBgTilemapBufferRect(bg, 0x8F, 14, 11, 1, 1, 1); + FillBgTilemapBufferRect(bg, 0x00, 15, 11, 11, 1, 1); + FillBgTilemapBufferRect(bg, 0x90, 26, 11, 1, 1, 1); + FillBgTilemapBufferRect(bg, 0x91, 14, 12, 1, 1, 1); + FillBgTilemapBufferRect(bg, 0xA3, 15, 12, 10, 1, 1); + FillBgTilemapBufferRect(bg, 0x92, 25, 12, 1, 1, 1); + FillBgTilemapBufferRect(bg, 0x93, 26, 12, 1, 1, 1); + } + else if (a1 == 1) + { + FillBgTilemapBufferRect(bg, 0x9B, 14, 10, 1, 1, 1); + FillBgTilemapBufferRect(bg, 0x9C, 15, 10, 11, 1, 1); + FillBgTilemapBufferRect(bg, 0x96, 26, 10, 1, 1, 1); + FillBgTilemapBufferRect(bg, 0x9D, 14, 11, 1, 1, 1); + FillBgTilemapBufferRect(bg, 0x00, 15, 11, 11, 1, 1); + FillBgTilemapBufferRect(bg, 0x90, 26, 11, 1, 1, 1); + FillBgTilemapBufferRect(bg, 0x9E, 14, 12, 1, 1, 1); + FillBgTilemapBufferRect(bg, 0x9F, 15, 12, 11, 1, 1); + FillBgTilemapBufferRect(bg, 0x99, 26, 12, 1, 1, 1); + } + else if (a1 == 2) + { + FillBgTilemapBufferRect(bg, 0x94, 14, 10, 1, 1, 1); + FillBgTilemapBufferRect(bg, 0x95, 15, 10, 11, 1, 1); + FillBgTilemapBufferRect(bg, 0x96, 26, 10, 1, 1, 1); + FillBgTilemapBufferRect(bg, 0x8F, 14, 11, 1, 1, 1); + FillBgTilemapBufferRect(bg, 0x9A, 15, 11, 11, 1, 1); + FillBgTilemapBufferRect(bg, 0x90, 26, 11, 1, 1, 1); + FillBgTilemapBufferRect(bg, 0x97, 14, 12, 1, 1, 1); + FillBgTilemapBufferRect(bg, 0x98, 15, 12, 11, 1, 1); + FillBgTilemapBufferRect(bg, 0x99, 26, 12, 1, 1, 1); + } + else if (a1 == 4) + { + FillBgTilemapBufferRect(bg, 0x83, 14, 10, 1, 1, 1); + FillBgTilemapBufferRect(bg, 0xA0, 15, 10, 10, 1, 1); + FillBgTilemapBufferRect(bg, 0x84, 25, 10, 1, 1, 1); + FillBgTilemapBufferRect(bg, 0x85, 26, 10, 1, 1, 1); + FillBgTilemapBufferRect(bg, 0x86, 14, 11, 1, 1, 1); + FillBgTilemapBufferRect(bg, 0xA2, 15, 11, 10, 1, 1); + FillBgTilemapBufferRect(bg, 0x87, 25, 11, 1, 1, 1); + FillBgTilemapBufferRect(bg, 0x88, 26, 11, 1, 1, 1); + FillBgTilemapBufferRect(bg, 0x83, 14, 12, 1, 1, 1); + FillBgTilemapBufferRect(bg, 0xA0, 15, 12, 10, 1, 1); + FillBgTilemapBufferRect(bg, 0x84, 25, 12, 1, 1, 1); + FillBgTilemapBufferRect(bg, 0x85, 26, 12, 1, 1, 1); + } + else if (a1 == 5) + { + FillBgTilemapBufferRect(bg, 0x00, 14, 10, 13, 3, 1); + } + CopyBgTilemapBufferToVram(bg); +} + +void sub_812E4A4(u8 a0) +{ + u16 cursorY = ListMenuGetYCoordForPrintingArrowCursor(gUnknown_203B0FC->unk_08); + if (a0 == 1) + AddTextPrinterParametrized2(0, 2, 0, cursorY, 0, 0, &gUnknown_845F5E3, 0, gUnknown_841623B); + else + AddTextPrinterParametrized2(0, 2, 0, cursorY, 0, 0, &gUnknown_845F5E0, 0, gUnknown_841623B); +} -- cgit v1.2.3 From ae8b4043c1690d6b3cb62f89372c7f7e6d45348b Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 26 Nov 2018 12:34:22 -0500 Subject: More data decomp --- src/fame_checker.c | 229 +++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 215 insertions(+), 14 deletions(-) (limited to 'src') diff --git a/src/fame_checker.c b/src/fame_checker.c index 2f455c462..11bb637b7 100644 --- a/src/fame_checker.c +++ b/src/fame_checker.c @@ -3,6 +3,7 @@ #include "sprite.h" #include "bg.h" #include "event_data.h" +#include "event_scripts.h" #include "graphics.h" #include "battle.h" #include "battle_setup.h" @@ -125,21 +126,221 @@ extern const u8 gUnknown_84181E4[]; extern const u8 gUnknown_841E5A4[]; extern const u8 gUnknown_841E5B9[]; extern const u8 gUnknown_841E5D2[]; +extern const u8 gUnknown_841E5E9[]; +extern const u8 gUnknown_841E5ED[]; +extern const u8 gUnknown_841E5F3[]; +extern const u8 gUnknown_841E5F8[]; + +const u16 gUnknown_845C600[] = INCBIN_U16("data/fame_checker/tilemap_845c600.bin"); +const u16 gUnknown_845DD20[] = INCBIN_U16("data/fame_checker/pal_845dd20.gbapal"); +const u16 gUnknown_845DD40[] = INCBIN_U16("data/fame_checker/img_845dd40.4bpp"); +const u16 gUnknown_845E540[] = INCBIN_U16("data/fame_checker/pal_845e540.gbapal"); +const u16 gUnknown_845E560[] = INCBIN_U16("data/fame_checker/img_845e560.4bpp"); +const u16 gUnknown_845ED60[] = INCBIN_U16("data/fame_checker/pal_845ed60.gbapal"); +const u16 gUnknown_845ED80[] = INCBIN_U16("data/fame_checker/img_845ed80.4bpp"); +const u16 gUnknown_845F580[] = INCBIN_U16("data/fame_checker/pal_845f580.gbapal"); +const u16 gUnknown_845F5A0[] = INCBIN_U16("data/fame_checker/pal_845f5a0.gbapal"); +const u16 gUnknown_845F5C0[] = INCBIN_U16("data/fame_checker/pal_845f5c0.gbapal"); + +const struct TextColor gUnknown_845F5E0 = {0x00, 0x01, 0x02}; +const struct TextColor gUnknown_845F5E3 = {0x00, 0x02, 0x03}; +const struct TextColor gUnknown_845F5E6 = {0x00, 0x06, 0x07}; + +const u16 gUnknown_845F5EA[] = { + 0xfe00, + 0xfe01, + 0x019e, + 0x019f, + 0x01a0, + 0x01a1, + 0x01a2, + 0x01a4, + 0x01a3, + 0x019a, + 0x019b, + 0x019c, + 0x019d, + 0xfe02, + 0xfe03, + 0x015c +}; + +const u8 *const gUnknown_845F60C[] = { + gUnknown_841E5E9, + gUnknown_841E5ED, + gUnknown_841E5F3, + gUnknown_841E5F8 +}; + +const u8 gUnknown_845F61C[] = { + 0x56, + 0x54, + 0x74, + 0x75, + 0x76, + 0x77, + 0x78, + 0x7a, + 0x79, + 0x70, + 0x71, + 0x72, + 0x73, + 0x64, + 0x7b, + 0x6c, + 0x00, + 0x01, + 0x00, + 0x01, + 0x00, + 0x01, + 0x00, + 0x01, + 0x00, + 0x01, + 0x00, + 0x01, + 0x00, + 0x00, + 0x00, + 0x00 +}; + +const u8 *const gUnknown_845F63C[] = { + gUnknown_81B0188, + gUnknown_81B0251, + gUnknown_81B030F, + gUnknown_81B03B3, + gUnknown_81B0446, + gUnknown_81B0504, + gUnknown_81B05C2, + gUnknown_81B0667, + gUnknown_81B06FB, + gUnknown_81B079F, + gUnknown_81B0845, + gUnknown_81B08EE, + gUnknown_81B097F, + gUnknown_81B0A45, + gUnknown_81B0AFF, + gUnknown_81B0BA6, + gUnknown_81B0198, + gUnknown_81B025D, + gUnknown_81B031B, + gUnknown_81B03BF, + gUnknown_81B0456, + gUnknown_81B0510, + gUnknown_81B05CD, + gUnknown_81B0675, + gUnknown_81B0708, + gUnknown_81B07AD, + gUnknown_81B0851, + gUnknown_81B08FB, + gUnknown_81B098B, + gUnknown_81B0A50, + gUnknown_81B0B0E, + gUnknown_81B0BB5 +}; + +const u8 *const gUnknown_845F6BC[] = { + gUnknown_81AD106, + gUnknown_81AD145, + gUnknown_81AD1BB, + gUnknown_81AD258, + gUnknown_81AD2B9, + gUnknown_81AD377, + gUnknown_81AD40C, + gUnknown_81AD4AE, + gUnknown_81AD516, + gUnknown_81AD5A7, + gUnknown_81AD608, + gUnknown_81AD69F, + gUnknown_81AD705, + gUnknown_81AD771, + gUnknown_81AD840, + gUnknown_81AD908, + gUnknown_81AD99A, + gUnknown_81ADA27, + gUnknown_81ADA91, + gUnknown_81ADAF6, + gUnknown_81ADB5A, + gUnknown_81ADBD9, + gUnknown_81ADC72, + gUnknown_81ADCEB, + gUnknown_81ADD3C, + gUnknown_81ADDA7, + gUnknown_81ADE0B, + gUnknown_81ADE82, + gUnknown_81ADEEC, + gUnknown_81ADF6A, + gUnknown_81AE009, + gUnknown_81AE072, + gUnknown_81AE0F3, + gUnknown_81AE15B, + gUnknown_81AE1E5, + gUnknown_81AE247, + gUnknown_81AE2B6, + gUnknown_81AE31D, + gUnknown_81AE37D, + gUnknown_81AE407, + gUnknown_81AE48D, + gUnknown_81AE51B, + gUnknown_81AE5E8, + gUnknown_81AE656, + gUnknown_81AE6D7, + gUnknown_81AE762, + gUnknown_81AE7CB, + gUnknown_81AE841, + gUnknown_81AE89E, + gUnknown_81AE90A, + gUnknown_81AE990, + gUnknown_81AEA59, + gUnknown_81AEAEE, + gUnknown_81AEB69, + gUnknown_81AEBDF, + gUnknown_81AEC28, + gUnknown_81AEC82, + gUnknown_81AED27, + gUnknown_81AEDAA, + gUnknown_81AEE51, + gUnknown_81AEF25, + gUnknown_81AEF6C, + gUnknown_81AEFC6, + gUnknown_81AF04C, + gUnknown_81AF0F0, + gUnknown_81AF19A, + gUnknown_81AF200, + gUnknown_81AF248, + gUnknown_81AF2B7, + gUnknown_81AF34E, + gUnknown_81AF3BE, + gUnknown_81AF47C, + gUnknown_81AF4FD, + gUnknown_81AF567, + gUnknown_81AF641, + gUnknown_81AF6BA, + gUnknown_81AF758, + gUnknown_81AF7CB, + gUnknown_81AF83E, + gUnknown_81AF8CA, + gUnknown_81AF929, + gUnknown_81AF998, + gUnknown_81AFA20, + gUnknown_81AFAB9, + gUnknown_81AFB0C, + gUnknown_81AFB76, + gUnknown_81AFC38, + gUnknown_81AFCE9, + gUnknown_81AFD49, + gUnknown_81AFDC4, + gUnknown_81AFE68, + gUnknown_81AFF23, + gUnknown_81AFFA8, + gUnknown_81B0022, + gUnknown_81B00A6, + gUnknown_81B0106 +}; -extern const u16 gUnknown_845C600[]; -extern const u16 gUnknown_845DD20[]; -extern const u16 gUnknown_845E540[]; -extern const u16 gUnknown_845ED60[]; -extern const u16 gUnknown_845F580[]; -extern const u16 gUnknown_845F5C0[]; -extern const struct TextColor gUnknown_845F5E0; -extern const struct TextColor gUnknown_845F5E3; -extern const struct TextColor gUnknown_845F5E6; -extern const u16 gUnknown_845F5EA[]; -extern const u8 gUnknown_845F61C[]; -extern const u8 *const gUnknown_845F60C[]; -extern const u8 *const gUnknown_845F63C[]; -extern const u8 *const gUnknown_845F6BC[]; extern const u8 *const gUnknown_845F89C[]; extern const u8 *const gUnknown_845FA1C[]; extern const u8 gUnknown_845F83C[]; -- cgit v1.2.3 From 6fb78b0885d4dacf83df09eb48bb97d3c75b6680 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 26 Nov 2018 12:51:56 -0500 Subject: more text dism --- src/fame_checker.c | 152 +++++++++++++++++++---------------------------------- 1 file changed, 54 insertions(+), 98 deletions(-) (limited to 'src') diff --git a/src/fame_checker.c b/src/fame_checker.c index 11bb637b7..985492d6b 100644 --- a/src/fame_checker.c +++ b/src/fame_checker.c @@ -243,107 +243,63 @@ const u8 *const gUnknown_845F63C[] = { }; const u8 *const gUnknown_845F6BC[] = { - gUnknown_81AD106, - gUnknown_81AD145, - gUnknown_81AD1BB, - gUnknown_81AD258, - gUnknown_81AD2B9, - gUnknown_81AD377, - gUnknown_81AD40C, - gUnknown_81AD4AE, - gUnknown_81AD516, - gUnknown_81AD5A7, - gUnknown_81AD608, - gUnknown_81AD69F, - gUnknown_81AD705, - gUnknown_81AD771, - gUnknown_81AD840, - gUnknown_81AD908, - gUnknown_81AD99A, - gUnknown_81ADA27, - gUnknown_81ADA91, - gUnknown_81ADAF6, - gUnknown_81ADB5A, - gUnknown_81ADBD9, - gUnknown_81ADC72, - gUnknown_81ADCEB, - gUnknown_81ADD3C, - gUnknown_81ADDA7, - gUnknown_81ADE0B, - gUnknown_81ADE82, - gUnknown_81ADEEC, - gUnknown_81ADF6A, - gUnknown_81AE009, - gUnknown_81AE072, - gUnknown_81AE0F3, - gUnknown_81AE15B, - gUnknown_81AE1E5, - gUnknown_81AE247, - gUnknown_81AE2B6, - gUnknown_81AE31D, - gUnknown_81AE37D, - gUnknown_81AE407, - gUnknown_81AE48D, - gUnknown_81AE51B, - gUnknown_81AE5E8, - gUnknown_81AE656, - gUnknown_81AE6D7, - gUnknown_81AE762, - gUnknown_81AE7CB, - gUnknown_81AE841, - gUnknown_81AE89E, - gUnknown_81AE90A, - gUnknown_81AE990, - gUnknown_81AEA59, - gUnknown_81AEAEE, - gUnknown_81AEB69, - gUnknown_81AEBDF, - gUnknown_81AEC28, - gUnknown_81AEC82, - gUnknown_81AED27, - gUnknown_81AEDAA, - gUnknown_81AEE51, - gUnknown_81AEF25, - gUnknown_81AEF6C, - gUnknown_81AEFC6, - gUnknown_81AF04C, - gUnknown_81AF0F0, - gUnknown_81AF19A, - gUnknown_81AF200, - gUnknown_81AF248, - gUnknown_81AF2B7, - gUnknown_81AF34E, - gUnknown_81AF3BE, - gUnknown_81AF47C, - gUnknown_81AF4FD, - gUnknown_81AF567, - gUnknown_81AF641, - gUnknown_81AF6BA, - gUnknown_81AF758, - gUnknown_81AF7CB, - gUnknown_81AF83E, - gUnknown_81AF8CA, - gUnknown_81AF929, - gUnknown_81AF998, - gUnknown_81AFA20, - gUnknown_81AFAB9, - gUnknown_81AFB0C, - gUnknown_81AFB76, - gUnknown_81AFC38, - gUnknown_81AFCE9, - gUnknown_81AFD49, - gUnknown_81AFDC4, - gUnknown_81AFE68, - gUnknown_81AFF23, - gUnknown_81AFFA8, - gUnknown_81B0022, - gUnknown_81B00A6, - gUnknown_81B0106 + gUnknown_81AD106, gUnknown_81AD145, gUnknown_81AD1BB, gUnknown_81AD258, gUnknown_81AD2B9, gUnknown_81AD377, + gUnknown_81AD40C, gUnknown_81AD4AE, gUnknown_81AD516, gUnknown_81AD5A7, gUnknown_81AD608, gUnknown_81AD69F, + gUnknown_81AD705, gUnknown_81AD771, gUnknown_81AD840, gUnknown_81AD908, gUnknown_81AD99A, gUnknown_81ADA27, + gUnknown_81ADA91, gUnknown_81ADAF6, gUnknown_81ADB5A, gUnknown_81ADBD9, gUnknown_81ADC72, gUnknown_81ADCEB, + gUnknown_81ADD3C, gUnknown_81ADDA7, gUnknown_81ADE0B, gUnknown_81ADE82, gUnknown_81ADEEC, gUnknown_81ADF6A, + gUnknown_81AE009, gUnknown_81AE072, gUnknown_81AE0F3, gUnknown_81AE15B, gUnknown_81AE1E5, gUnknown_81AE247, + gUnknown_81AE2B6, gUnknown_81AE31D, gUnknown_81AE37D, gUnknown_81AE407, gUnknown_81AE48D, gUnknown_81AE51B, + gUnknown_81AE5E8, gUnknown_81AE656, gUnknown_81AE6D7, gUnknown_81AE762, gUnknown_81AE7CB, gUnknown_81AE841, + gUnknown_81AE89E, gUnknown_81AE90A, gUnknown_81AE990, gUnknown_81AEA59, gUnknown_81AEAEE, gUnknown_81AEB69, + gUnknown_81AEBDF, gUnknown_81AEC28, gUnknown_81AEC82, gUnknown_81AED27, gUnknown_81AEDAA, gUnknown_81AEE51, + gUnknown_81AEF25, gUnknown_81AEF6C, gUnknown_81AEFC6, gUnknown_81AF04C, gUnknown_81AF0F0, gUnknown_81AF19A, + gUnknown_81AF200, gUnknown_81AF248, gUnknown_81AF2B7, gUnknown_81AF34E, gUnknown_81AF3BE, gUnknown_81AF47C, + gUnknown_81AF4FD, gUnknown_81AF567, gUnknown_81AF641, gUnknown_81AF6BA, gUnknown_81AF758, gUnknown_81AF7CB, + gUnknown_81AF83E, gUnknown_81AF8CA, gUnknown_81AF929, gUnknown_81AF998, gUnknown_81AFA20, gUnknown_81AFAB9, + gUnknown_81AFB0C, gUnknown_81AFB76, gUnknown_81AFC38, gUnknown_81AFCE9, gUnknown_81AFD49, gUnknown_81AFDC4, + gUnknown_81AFE68, gUnknown_81AFF23, gUnknown_81AFFA8, gUnknown_81B0022, gUnknown_81B00A6, gUnknown_81B0106 +}; + +const u8 gUnknown_845F83C[] = { + 0x67, 0x47, 0x30, 0x69, 0x4b, 0x37, + 0x37, 0x30, 0x3d, 0x69, 0x23, 0x69, + 0x66, 0x50, 0x1b, 0x13, 0x1e, 0x69, + 0x66, 0x51, 0x2b, 0x27, 0x1d, 0x69, + 0x66, 0x52, 0x3d, 0x3d, 0x3e, 0x69, + 0x66, 0x53, 0x16, 0x1d, 0x53, 0x69, + 0x66, 0x54, 0x1a, 0x16, 0x69, 0x1e, + 0x66, 0x19, 0x55, 0x55, 0x69, 0x29, + 0x66, 0x56, 0x37, 0x1c, 0x69, 0x69, + 0x4d, 0x4d, 0x20, 0x69, 0x11, 0x23, + 0x4f, 0x4f, 0x69, 0x36, 0x1d, 0x36, + 0x4b, 0x36, 0x36, 0x69, 0x4b, 0x23, + 0x4a, 0x4a, 0x18, 0x17, 0x69, 0x29, + 0x48, 0x12, 0x20, 0x59, 0x59, 0x59, + 0x11, 0x31, 0x69, 0x1e, 0x69, 0x69, + 0x57, 0x37, 0x37, 0x57, 0x5b, 0x37 +}; + +const u8 *const gUnknown_845F89C[] = { + gUnknown_81B0C45, gUnknown_81B0C51, gUnknown_81B0C5E, gUnknown_81B0C6B, gUnknown_81B0C79, gUnknown_81B0C88, + gUnknown_81B0C95, gUnknown_81B0CA2, gUnknown_81B0CB1, gUnknown_81B0CC1, gUnknown_81B0CCF, gUnknown_81B0CDF, + gUnknown_81B0CEB, gUnknown_81B0CF7, gUnknown_81B0D02, gUnknown_81B0D0E, gUnknown_81B0D16, gUnknown_81B0D1F, + gUnknown_81B0D2D, gUnknown_81B0D3B, gUnknown_81B0D48, gUnknown_81B0D55, gUnknown_81B0D65, gUnknown_81B0D73, + gUnknown_81B0D81, gUnknown_81B0D90, gUnknown_81B0D9E, gUnknown_81B0DAC, gUnknown_81B0DBA, gUnknown_81B0DC8, + gUnknown_81B0DD7, gUnknown_81B0DE4, gUnknown_81B0DF0, gUnknown_81B0DFC, gUnknown_81B0E08, gUnknown_81B0E14, + gUnknown_81B0E24, gUnknown_81B0E31, gUnknown_81B0E3D, gUnknown_81B0E49, gUnknown_81B0E56, gUnknown_81B0E63, + gUnknown_81B0E6F, gUnknown_81B0E7C, gUnknown_81B0E89, gUnknown_81B0E95, gUnknown_81B0EA1, gUnknown_81B0EAE, + gUnknown_81B0EBA, gUnknown_81B0ECA, gUnknown_81B0ED7, gUnknown_81B0EE4, gUnknown_81B0EF4, gUnknown_81B0F01, + gUnknown_81B0F11, gUnknown_81B0F20, gUnknown_81B0F2F, gUnknown_81B0F3B, gUnknown_81B0F47, gUnknown_81B0F53, + gUnknown_81B0F5F, gUnknown_81B0F6E, gUnknown_81B0F7D, gUnknown_81B0F8A, gUnknown_81B0F94, gUnknown_81B0F9F, + gUnknown_81B0FAE, gUnknown_81B0FBD, gUnknown_81B0FCC, gUnknown_81B0FDB, gUnknown_81B0FE8, gUnknown_81B0FF7, + gUnknown_81B1002, gUnknown_81B1011, gUnknown_81B1020, gUnknown_81B102D, gUnknown_81B103B, gUnknown_81B104A, + gUnknown_81B1059, gUnknown_81B1067, gUnknown_81B1075, gUnknown_81B1082, gUnknown_81B108D, gUnknown_81B1098, + gUnknown_81B10A3, gUnknown_81B10B1, gUnknown_81B10BF, gUnknown_81B10CD, gUnknown_81B10DB, gUnknown_81B10E8, + gUnknown_81B10F8, gUnknown_81B1107, gUnknown_81B1111, gUnknown_81B111B, gUnknown_81B1128, gUnknown_81B1135 }; -extern const u8 *const gUnknown_845F89C[]; extern const u8 *const gUnknown_845FA1C[]; -extern const u8 gUnknown_845F83C[]; extern const struct BgTemplate gUnknown_845FBF4[4]; extern const struct SpriteSheet gUnknown_845FB9C[]; extern const struct SpritePalette gUnknown_845FBDC[]; -- cgit v1.2.3 From e85ce728372d4c03deef73e41d883b04062a415a Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 26 Nov 2018 12:57:24 -0500 Subject: Another text pointer table decomped --- src/fame_checker.c | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/fame_checker.c b/src/fame_checker.c index 985492d6b..40c406c18 100644 --- a/src/fame_checker.c +++ b/src/fame_checker.c @@ -299,7 +299,25 @@ const u8 *const gUnknown_845F89C[] = { gUnknown_81B10F8, gUnknown_81B1107, gUnknown_81B1111, gUnknown_81B111B, gUnknown_81B1128, gUnknown_81B1135 }; -extern const u8 *const gUnknown_845FA1C[]; +const u8 *const gUnknown_845FA1C[] = { + gUnknown_81B1146, gUnknown_81B114B, gUnknown_81B1155, gUnknown_81B115A, gUnknown_81B116A, gUnknown_81B1171, + gUnknown_81B1176, gUnknown_81B117B, gUnknown_81B1181, gUnknown_81B1185, gUnknown_81B1195, gUnknown_81B119E, + gUnknown_81B11AE, gUnknown_81B11B3, gUnknown_81B11B9, gUnknown_81B11C3, gUnknown_81B11C7, gUnknown_81B11CB, + gUnknown_81B11DB, gUnknown_81B11E0, gUnknown_81B11E6, gUnknown_81B11EB, gUnknown_81B11F5, gUnknown_81B11FA, + gUnknown_81B120A, gUnknown_81B120F, gUnknown_81B1219, gUnknown_81B1220, gUnknown_81B1227, gUnknown_81B122E, + gUnknown_81B123E, gUnknown_81B1243, gUnknown_81B1249, gUnknown_81B124E, gUnknown_81B1254, gUnknown_81B125A, + gUnknown_81B126A, gUnknown_81B126F, gUnknown_81B1274, gUnknown_81B1279, gUnknown_81B1281, gUnknown_81B1291, + gUnknown_81B1295, gUnknown_81B129A, gUnknown_81B12A4, gUnknown_81B12AC, gUnknown_81B12B4, gUnknown_81B12C4, + gUnknown_81B12CA, gUnknown_81B12CF, gUnknown_81B12D6, gUnknown_81B12DC, gUnknown_81B12E2, gUnknown_81B12E8, + gUnknown_81B12F8, gUnknown_81B1300, gUnknown_81B1308, gUnknown_81B1310, gUnknown_81B1320, gUnknown_81B132C, + gUnknown_81B1335, gUnknown_81B133B, gUnknown_81B1341, gUnknown_81B1351, gUnknown_81B1359, gUnknown_81B135F, + gUnknown_81B1367, gUnknown_81B136E, gUnknown_81B1376, gUnknown_81B137E, gUnknown_81B138E, gUnknown_81B1395, + gUnknown_81B139E, gUnknown_81B13A4, gUnknown_81B13AA, gUnknown_81B13B0, gUnknown_81B13BC, gUnknown_81B13CC, + gUnknown_81B13D6, gUnknown_81B13D9, gUnknown_81B13E4, gUnknown_81B13EC, gUnknown_81B13F2, gUnknown_81B13F8, + gUnknown_81B13FE, gUnknown_81B140A, gUnknown_81B1416, gUnknown_81B141F, gUnknown_81B1423, gUnknown_81B1429, + gUnknown_81B1439, gUnknown_81B1442, gUnknown_81B144C, gUnknown_81B1456, gUnknown_81B145F, gUnknown_81B1463 +}; + extern const struct BgTemplate gUnknown_845FBF4[4]; extern const struct SpriteSheet gUnknown_845FB9C[]; extern const struct SpritePalette gUnknown_845FBDC[]; -- cgit v1.2.3 From 031baf97af3da3a23719a9089dfaa088aa6b66a1 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 26 Nov 2018 14:39:26 -0500 Subject: Decomp sprite sheets and additional graphics --- src/fame_checker.c | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/fame_checker.c b/src/fame_checker.c index 40c406c18..82cb25812 100644 --- a/src/fame_checker.c +++ b/src/fame_checker.c @@ -132,12 +132,18 @@ extern const u8 gUnknown_841E5F3[]; extern const u8 gUnknown_841E5F8[]; const u16 gUnknown_845C600[] = INCBIN_U16("data/fame_checker/tilemap_845c600.bin"); +const u8 gUnknown_845CE00[] = INCBIN_U8("data/fame_checker/img_845ce00.4bpp"); +const u8 gUnknown_845CF00[] = INCBIN_U8("data/fame_checker/img_845cf00.4bpp"); +const u16 gUnknown_845D0E0[] = INCBIN_U16("data/fame_checker/pal_845d0e0.gbapal"); +const u8 gUnknown_845D100[] = INCBIN_U8("data/fame_checker/img_845d100.4bpp"); +const u16 gUnknown_845D500[] = INCBIN_U16("data/fame_checker/pal_845d500.gbapal"); +const u8 gUnknown_845D520[] = INCBIN_U8("data/fame_checker/img_845d520.4bpp"); const u16 gUnknown_845DD20[] = INCBIN_U16("data/fame_checker/pal_845dd20.gbapal"); -const u16 gUnknown_845DD40[] = INCBIN_U16("data/fame_checker/img_845dd40.4bpp"); +const u8 gUnknown_845DD40[] = INCBIN_U8("data/fame_checker/img_845dd40.4bpp"); const u16 gUnknown_845E540[] = INCBIN_U16("data/fame_checker/pal_845e540.gbapal"); -const u16 gUnknown_845E560[] = INCBIN_U16("data/fame_checker/img_845e560.4bpp"); +const u8 gUnknown_845E560[] = INCBIN_U8("data/fame_checker/img_845e560.4bpp"); const u16 gUnknown_845ED60[] = INCBIN_U16("data/fame_checker/pal_845ed60.gbapal"); -const u16 gUnknown_845ED80[] = INCBIN_U16("data/fame_checker/img_845ed80.4bpp"); +const u8 gUnknown_845ED80[] = INCBIN_U8("data/fame_checker/img_845ed80.4bpp"); const u16 gUnknown_845F580[] = INCBIN_U16("data/fame_checker/pal_845f580.gbapal"); const u16 gUnknown_845F5A0[] = INCBIN_U16("data/fame_checker/pal_845f5a0.gbapal"); const u16 gUnknown_845F5C0[] = INCBIN_U16("data/fame_checker/pal_845f5c0.gbapal"); @@ -318,9 +324,19 @@ const u8 *const gUnknown_845FA1C[] = { gUnknown_81B1439, gUnknown_81B1442, gUnknown_81B144C, gUnknown_81B1456, gUnknown_81B145F, gUnknown_81B1463 }; -extern const struct BgTemplate gUnknown_845FBF4[4]; -extern const struct SpriteSheet gUnknown_845FB9C[]; +const struct SpriteSheet gUnknown_845FB9C[] = { + {gUnknown_845D100, 0x400, SPRITETAG_1000}, + {gUnknown_845CE00, 0x100, SPRITETAG_1001}, + {gUnknown_845CF00, 0x1e0, SPRITETAG_1002}, + {gUnknown_845E560, 0x800, SPRITETAG_1006}, + {gUnknown_845D520, 0x800, SPRITETAG_1007}, + {gUnknown_845ED80, 0x800, SPRITETAG_1008}, + {gUnknown_845DD40, 0x800, SPRITETAG_1009}, + {} +}; + extern const struct SpritePalette gUnknown_845FBDC[]; +extern const struct BgTemplate gUnknown_845FBF4[4]; extern const struct WindowTemplate gUnknown_845FC04[]; extern const struct SpriteTemplate gUnknown_845FC44; extern const struct SpriteTemplate gUnknown_845FC78; -- cgit v1.2.3 From 2e1ce30d8b72348d818287215ee1a55d89524a16 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 26 Nov 2018 15:22:21 -0500 Subject: First pass disassembly of fame_checker sprite templates --- src/fame_checker.c | 52 +++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 49 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/fame_checker.c b/src/fame_checker.c index 82cb25812..ac01f172f 100644 --- a/src/fame_checker.c +++ b/src/fame_checker.c @@ -335,9 +335,55 @@ const struct SpriteSheet gUnknown_845FB9C[] = { {} }; -extern const struct SpritePalette gUnknown_845FBDC[]; -extern const struct BgTemplate gUnknown_845FBF4[4]; -extern const struct WindowTemplate gUnknown_845FC04[]; +const struct SpritePalette gUnknown_845FBDC[] = { + {gUnknown_845D500, SPRITETAG_1000}, + {gUnknown_845D0E0, SPRITETAG_1002}, + {} +}; + +const struct BgTemplate gUnknown_845FBF4[4] = { + { + .bg = 3, + .charBaseIndex = 0x03, + .mapBaseIndex = 0x1e, + .screenSize = 0, + .paletteMode = FALSE, + .priority = 3, + .baseTile = 0x000}, + { + .bg = 2, + .charBaseIndex = 0x03, + .mapBaseIndex = 0x1b, + .screenSize = 0, + .paletteMode = FALSE, + .priority = 2, + .baseTile = 0x000}, + { + .bg = 1, + .charBaseIndex = 0x03, + .mapBaseIndex = 0x1c, + .screenSize = 1, + .paletteMode = FALSE, + .priority = 0, + .baseTile = 0x000}, + { + .bg = 0, + .charBaseIndex = 0x00, + .mapBaseIndex = 0x1f, + .screenSize = 0, + .paletteMode = FALSE, + .priority = 2, + .baseTile = 0x000}, +}; + +const struct WindowTemplate gUnknown_845FC04[] = { + {0x00, 0x01, 0x03, 0x08, 0x0a, 0x0f, 0x0014}, + {0x00, 0x06, 0x00, 0x18, 0x02, 0x0f, 0x0064}, + {0x00, 0x02, 0x0f, 0x1a, 0x04, 0x0f, 0x0094}, + {0x00, 0x0f, 0x0a, 0x0b, 0x04, 0x0f, 0x00fc}, + DUMMY_WIN_TEMPLATE +}; + extern const struct SpriteTemplate gUnknown_845FC44; extern const struct SpriteTemplate gUnknown_845FC78; extern const struct SpriteTemplate gUnknown_845FCB8; -- cgit v1.2.3 From e88def5ab1f84d5aad5485d47975ea0d01e878c5 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 26 Nov 2018 15:39:30 -0500 Subject: Decompile remaining sprite templates --- src/fame_checker.c | 104 +++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 97 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/fame_checker.c b/src/fame_checker.c index ac01f172f..0efd60057 100644 --- a/src/fame_checker.c +++ b/src/fame_checker.c @@ -104,6 +104,7 @@ void sub_812D9A8(u8 a0, u16 a1); void sub_812DA14(u8 a0); void sub_812DB10(void); void sub_812DB28(void); +void sub_812D840(struct Sprite * sprite); void sub_812DB64(void); void sub_812DBC0(s32, bool8, struct ListMenu *); void sub_812DD50(u8 taskId); @@ -384,13 +385,102 @@ const struct WindowTemplate gUnknown_845FC04[] = { DUMMY_WIN_TEMPLATE }; -extern const struct SpriteTemplate gUnknown_845FC44; -extern const struct SpriteTemplate gUnknown_845FC78; -extern const struct SpriteTemplate gUnknown_845FCB8; -extern const struct SpriteTemplate gUnknown_845FCE4; -extern const struct SpriteTemplate gUnknown_845FCFC; -extern const struct SpriteTemplate gUnknown_845FD14; -extern const struct SpriteTemplate gUnknown_845FD2C; +const union AnimCmd gUnknown_845FC2C[] = { + ANIMCMD_FRAME( 0, 15), + ANIMCMD_FRAME(16, 15), + ANIMCMD_JUMP(0) +}; + +const union AnimCmd *const gUnknown_845FC38[] = { + gUnknown_845FC2C +}; + +const struct OamData gOamData_845FC3C = { + .size = 2, + .priority = 2 +}; + +const struct SpriteTemplate gUnknown_845FC44 = { + SPRITETAG_1000, SPRITETAG_1000, &gOamData_845FC3C, gUnknown_845FC38, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy +}; + +const u8 filler_845FC5C[8] = {}; + +const struct OamData gOamData_845FC64 = { + .shape = ST_OAM_V_RECTANGLE, + .size = 2, + .priority = 2 +}; + +const union AnimCmd gUnknown_845FC6C[] = { + ANIMCMD_FRAME( 0, 10), + ANIMCMD_END +}; + +const union AnimCmd *const gUnknown_845FC74[] = { + gUnknown_845FC6C +}; + +const struct SpriteTemplate gUnknown_845FC78 = { + SPRITETAG_1001, 0xffff, &gOamData_845FC64, gUnknown_845FC74, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy +}; + +const union AnimCmd gUnknown_845FC90[] = { + ANIMCMD_FRAME( 0, 10), + ANIMCMD_END +}; + +const union AnimCmd *const gUnknown_845FC98[] = { + gUnknown_845FC90 +}; + +const struct OamData gOamData_845FC9C = { + .affineMode = ST_OAM_AFFINE_NORMAL, + .size = 2 +}; + +const union AffineAnimCmd gUnknown_845FCA4[] = { + AFFINEANIMCMD_FRAME(0, 0, 4, 20), + AFFINEANIMCMD_JUMP(0) +}; + +const union AffineAnimCmd *const gUnknown_845FCB4[] = { + gUnknown_845FCA4 +}; + +const struct SpriteTemplate gUnknown_845FCB8 = { + SPRITETAG_1002, SPRITETAG_1002, &gOamData_845FC9C, gUnknown_845FC98, NULL, gUnknown_845FCB4, sub_812D840 +}; + +const union AnimCmd gUnknown_845FCD0[] = { + ANIMCMD_FRAME( 0, 15), + ANIMCMD_END +}; + +const union AnimCmd *const gUnknown_845FCD8[] = { + gUnknown_845FCD0 +}; + +const struct OamData gOamData_845FCDC = { + .size = 3 +}; + +const struct SpriteTemplate gUnknown_845FCE4 = { + SPRITETAG_1006, 0xffff, &gOamData_845FCDC, gUnknown_845FCD8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy +}; + +const struct SpriteTemplate gUnknown_845FCFC = { + SPRITETAG_1007, 0xffff, &gOamData_845FCDC, gUnknown_845FCD8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy +}; + +const struct SpriteTemplate gUnknown_845FD14 = { + SPRITETAG_1008, 0xffff, &gOamData_845FCDC, gUnknown_845FCD8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy +}; + +const struct SpriteTemplate gUnknown_845FD2C = { + SPRITETAG_1009, 0xffff, &gOamData_845FCDC, gUnknown_845FCD8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy +}; + extern const struct ScrollIndicatorArrowPairTemplate gUnknown_845FD44; void sub_812C380(void) -- cgit v1.2.3 From a2b7b3ebf2f5460c4f5ab076e5dcb06935f61d25 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 26 Nov 2018 15:47:50 -0500 Subject: Finish data decomp --- src/fame_checker.c | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/fame_checker.c b/src/fame_checker.c index 0efd60057..dfece6720 100644 --- a/src/fame_checker.c +++ b/src/fame_checker.c @@ -481,8 +481,6 @@ const struct SpriteTemplate gUnknown_845FD2C = { SPRITETAG_1009, 0xffff, &gOamData_845FCDC, gUnknown_845FCD8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy }; -extern const struct ScrollIndicatorArrowPairTemplate gUnknown_845FD44; - void sub_812C380(void) { LoadOam(); @@ -1458,7 +1456,21 @@ void sub_812DFE4(u8 windowId) void sub_812E000(void) { - struct ScrollIndicatorArrowPairTemplate sp0 = gUnknown_845FD44; + struct ScrollIndicatorArrowPairTemplate sp0 = { + 2, + 40, + 26, + 3, + 40, + 100, + 0, + 0, + 1004, + 0xFFFF, + 1, + 0 + }; + if (gUnknown_203B0FC->unk_07_2 > 5) { sp0.unk_06 = 0; -- cgit v1.2.3 From 69106536eb68653a47f31c7bd9f8755087ce7b43 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 26 Nov 2018 18:12:17 -0500 Subject: Start documenting stuff; make objects static where possible --- src/fame_checker.c | 430 ++++++++++++++++++++++++++--------------------------- 1 file changed, 215 insertions(+), 215 deletions(-) (limited to 'src') diff --git a/src/fame_checker.c b/src/fame_checker.c index dfece6720..b2fe20c9b 100644 --- a/src/fame_checker.c +++ b/src/fame_checker.c @@ -36,18 +36,18 @@ struct FameCheckerData { - MainCallback unk_00; + MainCallback savedCallback; u16 unk_04; u8 unk_06; u8 unk_07_0:1; u8 unk_07_1:1; u8 unk_07_2:6; - u8 unk_08; + u8 scrollIndicatorArrowObjectTaskId; u8 unk_09; u8 unk_0A; u8 unk_0B; - u8 unk_0C[17]; - u8 unk_1D[6]; + u8 unlockedPersons[17]; + u8 spriteIds[6]; u8 unk_23_0:1; u8 unk_23_1:1; u8 unk_23_2:1; @@ -63,62 +63,62 @@ EWRAM_DATA s32 gUnknown_203B104 = 0; struct ListMenuTemplate gUnknown_3005EB0; u8 gUnknown_3005EC8; -void sub_812C3F8(void); -void sub_812C648(void); -void sub_812C664(u8 taskId); -void sub_812C694(u8 taskId); -bool8 sub_812C8F8(u8 taskId); -void sub_812C990(void); -void sub_812C9BC(u8 taskId); -void sub_812CA1C(u8 taskId); -void sub_812CAD8(u8 taskId); -void sub_812CC68(u8 taskId, s8 dx, s8 dy); -void sub_812CD3C(void); -void sub_812CE04(u8 taskId); -void sub_812CE9C(void); -void sub_812CEC0(void); -void sub_812CEE0(u8 windowId); -bool8 sub_812CEFC(u8 taskId, u8 objMode); -void sub_812CF3C(u8 taskId); -void sub_812CF7C(u8 taskId); -void sub_812D094(u8 windowId); -void sub_812D0F4(u8 a0); -bool8 sub_812D1A8(u8 a0); -void sub_812D420(void); -void sub_812D558(void); -void sub_812D584(void); -void sub_812D594(void); -void sub_812D650(void); -bool8 sub_812D6B4(void); -void sub_812D70C(void); -u8 sub_812D724(s16 a0); -void sub_812D764(struct Sprite *sprite); -void sub_812D770(void); -u8 sub_812D780(u8, u8); -void sub_812D7C8(void); -u8 sub_812D7E4(void); -void sub_812D800(struct Sprite *sprite); -void sub_812D814(void); -u8 sub_812D888(u8 a0); -void sub_812D9A8(u8 a0, u16 a1); -void sub_812DA14(u8 a0); -void sub_812DB10(void); -void sub_812DB28(void); -void sub_812D840(struct Sprite * sprite); -void sub_812DB64(void); -void sub_812DBC0(s32, bool8, struct ListMenu *); -void sub_812DD50(u8 taskId); -void sub_812DDAC(void); -void sub_812DDF0(s32 itemIndex, bool8 onInit); -u8 sub_812DEF0(void); -void sub_812DFE4(u8); -void sub_812E000(void); -void sub_812E048(void); -u16 sub_812E064(void); -void sub_812E094(u8); -void sub_812E110(u8 taskId); -void sub_812E178(u8 a0, s16 a1); -void sub_812E4A4(u8 a0); +static void sub_812C3F8(void); +static void sub_812C648(void); +static void sub_812C664(u8 taskId); +static void sub_812C694(u8 taskId); +static bool8 sub_812C8F8(u8 taskId); +static void sub_812C990(void); +static void sub_812C9BC(u8 taskId); +static void sub_812CA1C(u8 taskId); +static void sub_812CAD8(u8 taskId); +static void sub_812CC68(u8 taskId, s8 dx, s8 dy); +static void sub_812CD3C(void); +static void sub_812CE04(u8 taskId); +static void sub_812CE9C(void); +static void sub_812CEC0(void); +static void sub_812CEE0(u8 windowId); +static bool8 sub_812CEFC(u8 taskId, u8 objMode); +static void sub_812CF3C(u8 taskId); +static void sub_812CF7C(u8 taskId); +static void sub_812D094(u8 windowId); +static void sub_812D0F4(u8 a0); +static bool8 sub_812D1A8(u8 a0); +static void sub_812D420(void); +static void sub_812D558(void); +static void sub_812D584(void); +static void sub_812D594(void); +static void sub_812D650(void); +static bool8 sub_812D6B4(void); +static void sub_812D70C(void); +static u8 sub_812D724(s16 a0); +static void sub_812D764(struct Sprite *sprite); +static void sub_812D770(void); +static u8 sub_812D780(u8, u8); +static void sub_812D7C8(void); +static u8 sub_812D7E4(void); +static void sub_812D800(struct Sprite *sprite); +static void sub_812D814(void); +static u8 sub_812D888(u8 a0); +static void sub_812D9A8(u8 a0, u16 a1); +static void sub_812DA14(u8 a0); +static void sub_812DB10(void); +static void sub_812DB28(void); +static void sub_812D840(struct Sprite * sprite); +static void sub_812DB64(void); +static void sub_812DBC0(s32, bool8, struct ListMenu *); +static void sub_812DD50(u8 taskId); +static void sub_812DDAC(void); +static void sub_812DDF0(s32 itemIndex, bool8 onInit); +static u8 sub_812DEF0(void); +static void sub_812DFE4(u8); +static void sub_812E000(void); +static void sub_812E048(void); +static u16 sub_812E064(void); +static void sub_812E094(u8); +static void sub_812E110(u8 taskId); +static void sub_812E178(u8 a0, s16 a1); +static void sub_812E4A4(u8 a0); extern const u8 gUnknown_84161C1[]; extern const u8 gUnknown_841623B[]; @@ -132,28 +132,28 @@ extern const u8 gUnknown_841E5ED[]; extern const u8 gUnknown_841E5F3[]; extern const u8 gUnknown_841E5F8[]; -const u16 gUnknown_845C600[] = INCBIN_U16("data/fame_checker/tilemap_845c600.bin"); -const u8 gUnknown_845CE00[] = INCBIN_U8("data/fame_checker/img_845ce00.4bpp"); -const u8 gUnknown_845CF00[] = INCBIN_U8("data/fame_checker/img_845cf00.4bpp"); -const u16 gUnknown_845D0E0[] = INCBIN_U16("data/fame_checker/pal_845d0e0.gbapal"); -const u8 gUnknown_845D100[] = INCBIN_U8("data/fame_checker/img_845d100.4bpp"); -const u16 gUnknown_845D500[] = INCBIN_U16("data/fame_checker/pal_845d500.gbapal"); -const u8 gUnknown_845D520[] = INCBIN_U8("data/fame_checker/img_845d520.4bpp"); -const u16 gUnknown_845DD20[] = INCBIN_U16("data/fame_checker/pal_845dd20.gbapal"); -const u8 gUnknown_845DD40[] = INCBIN_U8("data/fame_checker/img_845dd40.4bpp"); -const u16 gUnknown_845E540[] = INCBIN_U16("data/fame_checker/pal_845e540.gbapal"); -const u8 gUnknown_845E560[] = INCBIN_U8("data/fame_checker/img_845e560.4bpp"); -const u16 gUnknown_845ED60[] = INCBIN_U16("data/fame_checker/pal_845ed60.gbapal"); -const u8 gUnknown_845ED80[] = INCBIN_U8("data/fame_checker/img_845ed80.4bpp"); -const u16 gUnknown_845F580[] = INCBIN_U16("data/fame_checker/pal_845f580.gbapal"); -const u16 gUnknown_845F5A0[] = INCBIN_U16("data/fame_checker/pal_845f5a0.gbapal"); -const u16 gUnknown_845F5C0[] = INCBIN_U16("data/fame_checker/pal_845f5c0.gbapal"); - -const struct TextColor gUnknown_845F5E0 = {0x00, 0x01, 0x02}; -const struct TextColor gUnknown_845F5E3 = {0x00, 0x02, 0x03}; -const struct TextColor gUnknown_845F5E6 = {0x00, 0x06, 0x07}; - -const u16 gUnknown_845F5EA[] = { +static const u16 gUnknown_845C600[] = INCBIN_U16("data/fame_checker/tilemap_845c600.bin"); +static const u8 gUnknown_845CE00[] = INCBIN_U8("data/fame_checker/img_845ce00.4bpp"); +static const u8 gUnknown_845CF00[] = INCBIN_U8("data/fame_checker/img_845cf00.4bpp"); +static const u16 gUnknown_845D0E0[] = INCBIN_U16("data/fame_checker/pal_845d0e0.gbapal"); +static const u8 gUnknown_845D100[] = INCBIN_U8("data/fame_checker/img_845d100.4bpp"); +static const u16 gUnknown_845D500[] = INCBIN_U16("data/fame_checker/pal_845d500.gbapal"); +static const u8 gUnknown_845D520[] = INCBIN_U8("data/fame_checker/img_845d520.4bpp"); +static const u16 gUnknown_845DD20[] = INCBIN_U16("data/fame_checker/pal_845dd20.gbapal"); +static const u8 gUnknown_845DD40[] = INCBIN_U8("data/fame_checker/img_845dd40.4bpp"); +static const u16 gUnknown_845E540[] = INCBIN_U16("data/fame_checker/pal_845e540.gbapal"); +static const u8 gUnknown_845E560[] = INCBIN_U8("data/fame_checker/img_845e560.4bpp"); +static const u16 gUnknown_845ED60[] = INCBIN_U16("data/fame_checker/pal_845ed60.gbapal"); +static const u8 gUnknown_845ED80[] = INCBIN_U8("data/fame_checker/img_845ed80.4bpp"); +static const u16 gUnknown_845F580[] = INCBIN_U16("data/fame_checker/pal_845f580.gbapal"); +static const u16 gUnknown_845F5A0[] = INCBIN_U16("data/fame_checker/pal_845f5a0.gbapal"); +static const u16 gUnknown_845F5C0[] = INCBIN_U16("data/fame_checker/pal_845f5c0.gbapal"); + +static const struct TextColor gUnknown_845F5E0 = {0x00, 0x01, 0x02}; +static const struct TextColor gUnknown_845F5E3 = {0x00, 0x02, 0x03}; +static const struct TextColor gUnknown_845F5E6 = {0x00, 0x06, 0x07}; + +static const u16 gUnknown_845F5EA[] = { 0xfe00, 0xfe01, 0x019e, @@ -172,14 +172,14 @@ const u16 gUnknown_845F5EA[] = { 0x015c }; -const u8 *const gUnknown_845F60C[] = { +static const u8 *const gUnknown_845F60C[] = { gUnknown_841E5E9, gUnknown_841E5ED, gUnknown_841E5F3, gUnknown_841E5F8 }; -const u8 gUnknown_845F61C[] = { +static const u8 gUnknown_845F61C[] = { 0x56, 0x54, 0x74, @@ -214,7 +214,7 @@ const u8 gUnknown_845F61C[] = { 0x00 }; -const u8 *const gUnknown_845F63C[] = { +static const u8 *const gUnknown_845F63C[] = { gUnknown_81B0188, gUnknown_81B0251, gUnknown_81B030F, @@ -249,7 +249,7 @@ const u8 *const gUnknown_845F63C[] = { gUnknown_81B0BB5 }; -const u8 *const gUnknown_845F6BC[] = { +static const u8 *const gUnknown_845F6BC[] = { gUnknown_81AD106, gUnknown_81AD145, gUnknown_81AD1BB, gUnknown_81AD258, gUnknown_81AD2B9, gUnknown_81AD377, gUnknown_81AD40C, gUnknown_81AD4AE, gUnknown_81AD516, gUnknown_81AD5A7, gUnknown_81AD608, gUnknown_81AD69F, gUnknown_81AD705, gUnknown_81AD771, gUnknown_81AD840, gUnknown_81AD908, gUnknown_81AD99A, gUnknown_81ADA27, @@ -268,7 +268,7 @@ const u8 *const gUnknown_845F6BC[] = { gUnknown_81AFE68, gUnknown_81AFF23, gUnknown_81AFFA8, gUnknown_81B0022, gUnknown_81B00A6, gUnknown_81B0106 }; -const u8 gUnknown_845F83C[] = { +static const u8 gUnknown_845F83C[] = { 0x67, 0x47, 0x30, 0x69, 0x4b, 0x37, 0x37, 0x30, 0x3d, 0x69, 0x23, 0x69, 0x66, 0x50, 0x1b, 0x13, 0x1e, 0x69, @@ -287,7 +287,7 @@ const u8 gUnknown_845F83C[] = { 0x57, 0x37, 0x37, 0x57, 0x5b, 0x37 }; -const u8 *const gUnknown_845F89C[] = { +static const u8 *const gUnknown_845F89C[] = { gUnknown_81B0C45, gUnknown_81B0C51, gUnknown_81B0C5E, gUnknown_81B0C6B, gUnknown_81B0C79, gUnknown_81B0C88, gUnknown_81B0C95, gUnknown_81B0CA2, gUnknown_81B0CB1, gUnknown_81B0CC1, gUnknown_81B0CCF, gUnknown_81B0CDF, gUnknown_81B0CEB, gUnknown_81B0CF7, gUnknown_81B0D02, gUnknown_81B0D0E, gUnknown_81B0D16, gUnknown_81B0D1F, @@ -306,7 +306,7 @@ const u8 *const gUnknown_845F89C[] = { gUnknown_81B10F8, gUnknown_81B1107, gUnknown_81B1111, gUnknown_81B111B, gUnknown_81B1128, gUnknown_81B1135 }; -const u8 *const gUnknown_845FA1C[] = { +static const u8 *const gUnknown_845FA1C[] = { gUnknown_81B1146, gUnknown_81B114B, gUnknown_81B1155, gUnknown_81B115A, gUnknown_81B116A, gUnknown_81B1171, gUnknown_81B1176, gUnknown_81B117B, gUnknown_81B1181, gUnknown_81B1185, gUnknown_81B1195, gUnknown_81B119E, gUnknown_81B11AE, gUnknown_81B11B3, gUnknown_81B11B9, gUnknown_81B11C3, gUnknown_81B11C7, gUnknown_81B11CB, @@ -325,7 +325,7 @@ const u8 *const gUnknown_845FA1C[] = { gUnknown_81B1439, gUnknown_81B1442, gUnknown_81B144C, gUnknown_81B1456, gUnknown_81B145F, gUnknown_81B1463 }; -const struct SpriteSheet gUnknown_845FB9C[] = { +static const struct SpriteSheet gUnknown_845FB9C[] = { {gUnknown_845D100, 0x400, SPRITETAG_1000}, {gUnknown_845CE00, 0x100, SPRITETAG_1001}, {gUnknown_845CF00, 0x1e0, SPRITETAG_1002}, @@ -336,13 +336,13 @@ const struct SpriteSheet gUnknown_845FB9C[] = { {} }; -const struct SpritePalette gUnknown_845FBDC[] = { +static const struct SpritePalette gUnknown_845FBDC[] = { {gUnknown_845D500, SPRITETAG_1000}, {gUnknown_845D0E0, SPRITETAG_1002}, {} }; -const struct BgTemplate gUnknown_845FBF4[4] = { +static const struct BgTemplate gUnknown_845FBF4[4] = { { .bg = 3, .charBaseIndex = 0x03, @@ -377,7 +377,7 @@ const struct BgTemplate gUnknown_845FBF4[4] = { .baseTile = 0x000}, }; -const struct WindowTemplate gUnknown_845FC04[] = { +static const struct WindowTemplate gUnknown_845FC04[] = { {0x00, 0x01, 0x03, 0x08, 0x0a, 0x0f, 0x0014}, {0x00, 0x06, 0x00, 0x18, 0x02, 0x0f, 0x0064}, {0x00, 0x02, 0x0f, 0x1a, 0x04, 0x0f, 0x0094}, @@ -385,110 +385,110 @@ const struct WindowTemplate gUnknown_845FC04[] = { DUMMY_WIN_TEMPLATE }; -const union AnimCmd gUnknown_845FC2C[] = { +static const union AnimCmd gUnknown_845FC2C[] = { ANIMCMD_FRAME( 0, 15), ANIMCMD_FRAME(16, 15), ANIMCMD_JUMP(0) }; -const union AnimCmd *const gUnknown_845FC38[] = { +static const union AnimCmd *const gUnknown_845FC38[] = { gUnknown_845FC2C }; -const struct OamData gOamData_845FC3C = { +static const struct OamData gOamData_845FC3C = { .size = 2, .priority = 2 }; -const struct SpriteTemplate gUnknown_845FC44 = { +static const struct SpriteTemplate gUnknown_845FC44 = { SPRITETAG_1000, SPRITETAG_1000, &gOamData_845FC3C, gUnknown_845FC38, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy }; -const u8 filler_845FC5C[8] = {}; +static const u8 filler_845FC5C[8] = {}; -const struct OamData gOamData_845FC64 = { +static const struct OamData gOamData_845FC64 = { .shape = ST_OAM_V_RECTANGLE, .size = 2, .priority = 2 }; -const union AnimCmd gUnknown_845FC6C[] = { +static const union AnimCmd gUnknown_845FC6C[] = { ANIMCMD_FRAME( 0, 10), ANIMCMD_END }; -const union AnimCmd *const gUnknown_845FC74[] = { +static const union AnimCmd *const gUnknown_845FC74[] = { gUnknown_845FC6C }; -const struct SpriteTemplate gUnknown_845FC78 = { +static const struct SpriteTemplate gUnknown_845FC78 = { SPRITETAG_1001, 0xffff, &gOamData_845FC64, gUnknown_845FC74, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy }; -const union AnimCmd gUnknown_845FC90[] = { +static const union AnimCmd gUnknown_845FC90[] = { ANIMCMD_FRAME( 0, 10), ANIMCMD_END }; -const union AnimCmd *const gUnknown_845FC98[] = { +static const union AnimCmd *const gUnknown_845FC98[] = { gUnknown_845FC90 }; -const struct OamData gOamData_845FC9C = { +static const struct OamData gOamData_845FC9C = { .affineMode = ST_OAM_AFFINE_NORMAL, .size = 2 }; -const union AffineAnimCmd gUnknown_845FCA4[] = { +static const union AffineAnimCmd gUnknown_845FCA4[] = { AFFINEANIMCMD_FRAME(0, 0, 4, 20), AFFINEANIMCMD_JUMP(0) }; -const union AffineAnimCmd *const gUnknown_845FCB4[] = { +static const union AffineAnimCmd *const gUnknown_845FCB4[] = { gUnknown_845FCA4 }; -const struct SpriteTemplate gUnknown_845FCB8 = { +static const struct SpriteTemplate gUnknown_845FCB8 = { SPRITETAG_1002, SPRITETAG_1002, &gOamData_845FC9C, gUnknown_845FC98, NULL, gUnknown_845FCB4, sub_812D840 }; -const union AnimCmd gUnknown_845FCD0[] = { +static const union AnimCmd gUnknown_845FCD0[] = { ANIMCMD_FRAME( 0, 15), ANIMCMD_END }; -const union AnimCmd *const gUnknown_845FCD8[] = { +static const union AnimCmd *const gUnknown_845FCD8[] = { gUnknown_845FCD0 }; -const struct OamData gOamData_845FCDC = { +static const struct OamData gOamData_845FCDC = { .size = 3 }; -const struct SpriteTemplate gUnknown_845FCE4 = { +static const struct SpriteTemplate gUnknown_845FCE4 = { SPRITETAG_1006, 0xffff, &gOamData_845FCDC, gUnknown_845FCD8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy }; -const struct SpriteTemplate gUnknown_845FCFC = { +static const struct SpriteTemplate gUnknown_845FCFC = { SPRITETAG_1007, 0xffff, &gOamData_845FCDC, gUnknown_845FCD8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy }; -const struct SpriteTemplate gUnknown_845FD14 = { +static const struct SpriteTemplate gUnknown_845FD14 = { SPRITETAG_1008, 0xffff, &gOamData_845FCDC, gUnknown_845FCD8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy }; -const struct SpriteTemplate gUnknown_845FD2C = { +static const struct SpriteTemplate gUnknown_845FD2C = { SPRITETAG_1009, 0xffff, &gOamData_845FCDC, gUnknown_845FCD8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy }; -void sub_812C380(void) +static void sub_812C380(void) { LoadOam(); ProcessSpriteCopyRequests(); TransferPlttBuffer(); } -void sub_812C394(void) +static void sub_812C394(void) { RunTasks(); AnimateSprites(); @@ -496,11 +496,11 @@ void sub_812C394(void) UpdatePaletteFade(); } -void sub_812C3AC(void (*a0)(void)) +void UseFameChecker(MainCallback savedCallback) { SetVBlankCallback(NULL); gUnknown_203B0FC = AllocZeroed(sizeof(struct FameCheckerData)); - gUnknown_203B0FC->unk_00 = a0; + gUnknown_203B0FC->savedCallback = savedCallback; gUnknown_203B0FC->unk_09 = 0; gUnknown_203B0FC->unk_0A = 0; gUnknown_203B0FC->unk_0B = 0; @@ -509,7 +509,7 @@ void sub_812C3AC(void (*a0)(void)) SetMainCallback2(sub_812C3F8); } -void sub_812C3F8(void) +static void sub_812C3F8(void) { switch (gMain.state) { @@ -588,19 +588,19 @@ void sub_812C3F8(void) } } -void sub_812C648(void) +static void sub_812C648(void) { LoadSpriteSheets(gUnknown_845FB9C); LoadSpritePalettes(gUnknown_845FBDC); } -void sub_812C664(u8 taskId) +static void sub_812C664(u8 taskId) { if (!gPaletteFade.active) gTasks[taskId].func = sub_812C694; } -void sub_812C694(u8 taskId) +static void sub_812C694(u8 taskId) { u16 r4; u8 r4_2; @@ -609,7 +609,7 @@ void sub_812C694(u8 taskId) if (FindTaskIdByFunc(sub_812E110) == 0xFF) { RunTextPrinters(); - if ((PRESSED(SELECT_BUTTON)) && !gUnknown_203B0FC->unk_07_1 && gUnknown_203B0FC->unk_00 != sub_8107EB8) + if ((PRESSED(SELECT_BUTTON)) && !gUnknown_203B0FC->unk_07_1 && gUnknown_203B0FC->savedCallback != sub_8107EB8) task->func = sub_812CF3C; else if (PRESSED(START_BUTTON)) { @@ -626,7 +626,7 @@ void sub_812C694(u8 taskId) sub_812E178(2, 4); sub_812E178(1, 5); sub_812D0F4(1); - task->data[2] = sub_812D888(gUnknown_203B0FC->unk_0C[r4]); + task->data[2] = sub_812D888(gUnknown_203B0FC->unlockedPersons[r4]); gSprites[task->data[2]].pos2.x = 0xF0; gSprites[task->data[2]].data[0] = 1; task->data[3] = sub_812D7E4(); @@ -652,12 +652,12 @@ void sub_812C694(u8 taskId) for (r4_2 = 0; r4_2 < 6; r4_2++) { if (r4_2 != task->data[1]) - sub_812CEFC(gUnknown_203B0FC->unk_1D[r4_2], ST_OAM_OBJ_BLEND); + sub_812CEFC(gUnknown_203B0FC->spriteIds[r4_2], ST_OAM_OBJ_BLEND); } gUnknown_3005EC8 = 0xFF; sub_812E4A4(0); sub_812D0F4(2); - if (gSprites[gUnknown_203B0FC->unk_1D[task->data[1]]].data[1] != 0xFF) + if (gSprites[gUnknown_203B0FC->spriteIds[task->data[1]]].data[1] != 0xFF) { sub_812CE04(taskId); sub_812DA14(data[1]); @@ -676,7 +676,7 @@ void sub_812C694(u8 taskId) } } -bool8 sub_812C8F8(u8 taskId) +static bool8 sub_812C8F8(u8 taskId) { struct Task *task = &gTasks[taskId]; if (gUnknown_203B0FC->unk_07_1) @@ -694,12 +694,12 @@ bool8 sub_812C8F8(u8 taskId) return FALSE; } -void sub_812C990(void) +static void sub_812C990(void) { AddTextPrinterParametrized(2, 2, gUnknown_84181E4, 0, NULL, 2, 1, 3); } -void sub_812C9BC(u8 taskId) +static void sub_812C9BC(u8 taskId) { struct Task *task = &gTasks[taskId]; if (gSprites[task->data[2]].data[0] == 0) @@ -712,7 +712,7 @@ void sub_812C9BC(u8 taskId) ChangeBgX(1, 0xA00, 1); } -void sub_812CA1C(u8 taskId) +static void sub_812CA1C(u8 taskId) { struct Task *task = &gTasks[taskId]; if (GetBgX(1) != 0) @@ -732,7 +732,7 @@ void sub_812CA1C(u8 taskId) } } -void sub_812CAD8(u8 taskId) +static void sub_812CAD8(u8 taskId) { struct Task *task = &gTasks[taskId]; s16 *data = gTasks[taskId].data; @@ -740,7 +740,7 @@ void sub_812CAD8(u8 taskId) RunTextPrinters(); if (PRESSED(A_BUTTON) && !IsTextPrinterActive(2)) { - u8 spriteId = gUnknown_203B0FC->unk_1D[data[1]]; + u8 spriteId = gUnknown_203B0FC->spriteIds[data[1]]; if (gSprites[spriteId].data[1] != 0xFF) sub_812CE04(taskId); } @@ -749,7 +749,7 @@ void sub_812CAD8(u8 taskId) u8 r4; PlaySE(SE_SELECT); for (r4 = 0; r4 < 6; r4++) - sub_812CEFC(gUnknown_203B0FC->unk_1D[r4], ST_OAM_OBJ_NORMAL); + sub_812CEFC(gUnknown_203B0FC->spriteIds[r4], ST_OAM_OBJ_NORMAL); sub_812CE9C(); gSprites[task->data[0]].callback = sub_812D764; if (gUnknown_3005EC8 != 0xFF) @@ -801,7 +801,7 @@ void sub_812CAD8(u8 taskId) } } -void sub_812CC68(u8 taskId, s8 dx, s8 dy) +static void sub_812CC68(u8 taskId, s8 dx, s8 dy) { u8 i; s16 *data = gTasks[taskId].data; @@ -809,10 +809,10 @@ void sub_812CC68(u8 taskId, s8 dx, s8 dy) gSprites[data[0]].pos1.x += dx; gSprites[data[0]].pos1.y += dy; for (i = 0; i < 6; i++) - sub_812CEFC(gUnknown_203B0FC->unk_1D[i], ST_OAM_OBJ_BLEND); + sub_812CEFC(gUnknown_203B0FC->spriteIds[i], ST_OAM_OBJ_BLEND); FillWindowPixelRect(2, 0x11, 0, 0, 0xd0, 0x20); sub_812C990(); - if (sub_812CEFC(gUnknown_203B0FC->unk_1D[data[1]], ST_OAM_OBJ_NORMAL) == TRUE) + if (sub_812CEFC(gUnknown_203B0FC->spriteIds[data[1]], ST_OAM_OBJ_NORMAL) == TRUE) { sub_812CE04(taskId); sub_812DA14(data[1]); @@ -821,11 +821,11 @@ void sub_812CC68(u8 taskId, s8 dx, s8 dy) sub_812DB10(); } -void sub_812CD3C(void) +static void sub_812CD3C(void) { u8 r8 = 0; u16 r6 = sub_812E064(); - if (gSaveBlock1Ptr->fameChecker[gUnknown_203B0FC->unk_0C[r6]].unk_0_0 != 2) + if (gSaveBlock1Ptr->fameChecker[gUnknown_203B0FC->unlockedPersons[r6]].unk_0_0 != 2) { sub_812CE9C(); sub_812C990(); @@ -835,29 +835,29 @@ void sub_812CD3C(void) FillWindowPixelRect(2, 0x11, 0, 0, 0xd0, 0x20); if (sub_812D6B4() == TRUE) r8 = 16; - StringExpandPlaceholders(gStringVar4, gUnknown_845F63C[gUnknown_203B0FC->unk_0C[r6] + r8]); + StringExpandPlaceholders(gStringVar4, gUnknown_845F63C[gUnknown_203B0FC->unlockedPersons[r6] + r8]); AddTextPrinterParametrized(2, 2, gStringVar4, sub_80F78A8(), NULL, 2, 1, 3); sub_812CEE0(2); } } -void sub_812CE04(u8 taskId) +static void sub_812CE04(u8 taskId) { s16 *data = gTasks[taskId].data; u16 r5 = sub_812E064(); FillWindowPixelRect(2, 0x11, 0, 0, 0xd0, 0x20); - StringExpandPlaceholders(gStringVar4, gUnknown_845F6BC[gUnknown_203B0FC->unk_0C[r5] * 6 + data[1]]); + StringExpandPlaceholders(gStringVar4, gUnknown_845F6BC[gUnknown_203B0FC->unlockedPersons[r5] * 6 + data[1]]); AddTextPrinterParametrized(2, 2, gStringVar4, sub_80F78A8(), NULL, 2, 1, 3); sub_812CEE0(2); } -void sub_812CE9C(void) +static void sub_812CE9C(void) { FillWindowPixelRect(2, 0x11, 0, 0, 0xd0, 0x20); sub_812CEE0(2); } -void sub_812CEC0(void) +static void sub_812CEC0(void) { sub_80F6E9C(); sub_80F6EE4(2, 1); @@ -865,13 +865,13 @@ void sub_812CEC0(void) sub_812CEE0(0); } -void sub_812CEE0(u8 windowId) +static void sub_812CEE0(u8 windowId) { PutWindowTilemap(windowId); CopyWindowToVram(windowId, 3); } -bool8 sub_812CEFC(u8 spriteId, u8 objMode) +static bool8 sub_812CEFC(u8 spriteId, u8 objMode) { if (gSprites[spriteId].data[1] != 0xFF) { @@ -881,14 +881,14 @@ bool8 sub_812CEFC(u8 spriteId, u8 objMode) return FALSE; } -void sub_812CF3C(u8 taskId) +static void sub_812CF3C(u8 taskId) { PlaySE(SE_W202); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0); gTasks[taskId].func = sub_812CF7C; } -void sub_812CF7C(u8 taskId) +static void sub_812CF7C(u8 taskId) { u8 r4; @@ -902,15 +902,15 @@ void sub_812CF7C(u8 taskId) } for (r4 = 0; r4 < 6; r4++) { - DestroySprite(&gSprites[gUnknown_203B0FC->unk_1D[r4]]); + DestroySprite(&gSprites[gUnknown_203B0FC->spriteIds[r4]]); } sub_812D814(); sub_812D7C8(); sub_812D70C(); sub_812D770(); sub_812E048(); - SetMainCallback2(gUnknown_203B0FC->unk_00); - sub_810713C(gUnknown_203B0FC->unk_08, 0, 0); + SetMainCallback2(gUnknown_203B0FC->savedCallback); + sub_810713C(gUnknown_203B0FC->scrollIndicatorArrowObjectTaskId, 0, 0); Free(gUnknown_203B0F0); Free(gUnknown_203B0F4); Free(gUnknown_203B0F8); @@ -925,7 +925,7 @@ void sub_812CF7C(u8 taskId) } } -void sub_812D094(u8 windowId) +static void sub_812D094(u8 windowId) { FillWindowPixelBuffer(windowId, 0); ClearWindowTilemap(windowId); @@ -933,7 +933,7 @@ void sub_812D094(u8 windowId) RemoveWindow(windowId); } -u8 sub_812D0C0(u8 a0) +static u8 sub_812D0C0(u8 a0) { if (HasTrainerAlreadyBeenFought(0x15e) == TRUE) { @@ -945,7 +945,7 @@ u8 sub_812D0C0(u8 a0) return a0; } -void sub_812D0F4(u8 a0) +static void sub_812D0F4(u8 a0) { const u8 * r5 = gUnknown_841E5A4; s32 width; @@ -961,26 +961,26 @@ void sub_812D0F4(u8 a0) sub_812CEE0(1); } -void sub_812D174(void) +static void sub_812D174(void) { u8 r4; for (r4 = 0; r4 < 6; r4++) { - DestroySprite(&gSprites[gUnknown_203B0FC->unk_1D[r4]]); + DestroySprite(&gSprites[gUnknown_203B0FC->spriteIds[r4]]); } } -bool8 sub_812D1A8(u8 a0) +static bool8 sub_812D1A8(u8 a0) { // r8 <- a0 bool8 r5 = FALSE; u8 r6; for (r6 = 0; r6 < 6; r6++) { - if ((gSaveBlock1Ptr->fameChecker[gUnknown_203B0FC->unk_0C[a0]].unk_0_2 >> r6) & 1) + if ((gSaveBlock1Ptr->fameChecker[gUnknown_203B0FC->unlockedPersons[a0]].unk_0_2 >> r6) & 1) { - gUnknown_203B0FC->unk_1D[r6] = sub_805EB44( - gUnknown_845F83C[gUnknown_203B0FC->unk_0C[a0] * 6 + r6], + gUnknown_203B0FC->spriteIds[r6] = sub_805EB44( + gUnknown_845F83C[gUnknown_203B0FC->unlockedPersons[a0] * 6 + r6], r6, 47 * (r6 % 3) + 0x72, 27 * (r6 / 3) + 0x2F @@ -989,11 +989,11 @@ bool8 sub_812D1A8(u8 a0) } else { - gUnknown_203B0FC->unk_1D[r6] = sub_812D780( + gUnknown_203B0FC->spriteIds[r6] = sub_812D780( 47 * (r6 % 3) + 0x72, 27 * (r6 / 3) + 0x1F ); - gSprites[gUnknown_203B0FC->unk_1D[r6]].data[1] = 0xFF; + gSprites[gUnknown_203B0FC->spriteIds[r6]].data[1] = 0xFF; } } if (r5 == TRUE) @@ -1012,7 +1012,7 @@ bool8 sub_812D1A8(u8 a0) return r5; } -void sub_812D304(void) +void ResetFameChecker(void) { u8 r4; for (r4 = 0; r4 < 16; r4++) @@ -1024,7 +1024,7 @@ void sub_812D304(void) gSaveBlock1Ptr->fameChecker[0].unk_0_0 = 2; } -void sub_812D388(void) +static void sub_812D388(void) { u8 r5, r4; for (r5 = 0; r5 < 16; r5++) @@ -1037,7 +1037,7 @@ void sub_812D388(void) } } -void sub_812D420(void) +static void sub_812D420(void) { void * vram = (void *)VRAM; DmaClearLarge16(3, vram, VRAM_SIZE, 0x1000); @@ -1065,7 +1065,7 @@ void sub_812D420(void) SetGpuReg(REG_OFFSET_BLDY, 0); } -void sub_812D558(void) +static void sub_812D558(void) { remove_some_task(); ResetTasks(); @@ -1077,12 +1077,12 @@ void sub_812D558(void) } -void sub_812D584(void) +static void sub_812D584(void) { SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG_ALL_ON | DISPCNT_OBJ_ON); } -void sub_812D594(void) +static void sub_812D594(void) { ChangeBgX(0, 0, 0); ChangeBgY(0, 0, 0); @@ -1094,7 +1094,7 @@ void sub_812D594(void) ChangeBgY(3, 0, 0); } -void sub_812D5EC(void) +static void sub_812D5EC(void) { if (gUnknown_20370C0 < 16 && gSpecialVar_0x8005 < 6) { @@ -1104,7 +1104,7 @@ void sub_812D5EC(void) } } -void sub_812D650(void) +static void sub_812D650(void) { if (gUnknown_20370C0 < 16 && gSpecialVar_0x8005 < 3) { @@ -1116,10 +1116,10 @@ void sub_812D650(void) } } -bool8 sub_812D6B4(void) +static bool8 sub_812D6B4(void) { u8 r2; - u8 r1 = gUnknown_203B0FC->unk_0C[sub_812E064()]; + u8 r1 = gUnknown_203B0FC->unlockedPersons[sub_812E064()]; for (r2 = 0; r2 < 6; r2++) { if (!((gSaveBlock1Ptr->fameChecker[r1].unk_0_2 >> r2) & 1)) @@ -1128,30 +1128,30 @@ bool8 sub_812D6B4(void) return TRUE; } -void sub_812D70C(void) +static void sub_812D70C(void) { FreeSpriteTilesByTag(SPRITETAG_1000); FreeSpritePaletteByTag(SPRITETAG_1000); } -u8 sub_812D724(s16 a0) +static u8 sub_812D724(s16 a0) { s16 r4 = a0 >= 3 ? 61 : 34; s16 r1 = 47 * (a0 % 3) + 0x72; return CreateSprite(&gUnknown_845FC44, r1, r4, 0); } -void sub_812D764(struct Sprite * sprite) +static void sub_812D764(struct Sprite * sprite) { DestroySprite(sprite); } -void sub_812D770(void) +static void sub_812D770(void) { FreeSpriteTilesByTag(SPRITETAG_1001); } -u8 sub_812D780(u8 x, u8 y) +static u8 sub_812D780(u8 x, u8 y) { u8 spriteId = CreateSprite(&gUnknown_845FC78, x, y, 8); gSprites[spriteId].oam.priority = 2; @@ -1159,24 +1159,24 @@ u8 sub_812D780(u8 x, u8 y) return spriteId; } -void sub_812D7C8(void) +static void sub_812D7C8(void) { FreeSpriteTilesByTag(SPRITETAG_1002); FreeSpritePaletteByTag(SPRITETAG_1002); } -u8 sub_812D7E4(void) +static u8 sub_812D7E4(void) { return CreateSprite(&gUnknown_845FCB8, 0xe2, 0x42, 0); } -void sub_812D800(struct Sprite * sprite) +static void sub_812D800(struct Sprite * sprite) { FreeSpriteOamMatrix(sprite); DestroySprite(sprite); } -void sub_812D814(void) +static void sub_812D814(void) { FreeSpriteTilesByTag(SPRITETAG_1006); FreeSpriteTilesByTag(SPRITETAG_1007); @@ -1184,7 +1184,7 @@ void sub_812D814(void) FreeSpriteTilesByTag(SPRITETAG_1009); } -void sub_812D840(struct Sprite * sprite) +static void sub_812D840(struct Sprite * sprite) { if (sprite->data[0] == 1) { @@ -1208,7 +1208,7 @@ void sub_812D840(struct Sprite * sprite) } } -u8 sub_812D888(u8 a0) +static u8 sub_812D888(u8 a0) { u8 r4; if (a0 == 1) @@ -1245,26 +1245,26 @@ u8 sub_812D888(u8 a0) return r4; } -void sub_812D9A8(u8 taskId, u16 a1) +static void sub_812D9A8(u8 taskId, u16 a1) { s16 * data = gTasks[taskId].data; u16 r1 = a1; if (a1 == gUnknown_203B0FC->unk_07_2 - 1) r1 = a1 - 1; - if ( gUnknown_203B0FC->unk_0C[r1] == 1 - || gUnknown_203B0FC->unk_0C[r1] == 14 - || gUnknown_203B0FC->unk_0C[r1] == 0 - || gUnknown_203B0FC->unk_0C[r1] == 13 + if ( gUnknown_203B0FC->unlockedPersons[r1] == 1 + || gUnknown_203B0FC->unlockedPersons[r1] == 14 + || gUnknown_203B0FC->unlockedPersons[r1] == 0 + || gUnknown_203B0FC->unlockedPersons[r1] == 13 ) DestroySprite(&gSprites[data[2]]); else sub_810C2E8(data[2]); } -void sub_812DA14(u8 a0) +static void sub_812DA14(u8 a0) { s32 width; - u32 r5 = 6 * gUnknown_203B0FC->unk_0C[sub_812E064()] + a0; + u32 r5 = 6 * gUnknown_203B0FC->unlockedPersons[sub_812E064()] + a0; sub_812E094(1); gUnknown_3005EC8 = 1; FillWindowPixelRect(3, 0x00, 0, 0, 0x58, 0x20); @@ -1276,21 +1276,21 @@ void sub_812DA14(u8 a0) sub_812CEE0(3); } -void sub_812DB10(void) +static void sub_812DB10(void) { sub_812E094(0); gUnknown_3005EC8 = 0xFF; } -void sub_812DB28(void) +static void sub_812DB28(void) { sub_812DB64(); gUnknown_203B0FC->unk_07_2 = sub_812DEF0(); - gUnknown_203B0FC->unk_08 = ListMenuInit(&gUnknown_3005EB0, 0, 0); + gUnknown_203B0FC->scrollIndicatorArrowObjectTaskId = ListMenuInit(&gUnknown_3005EB0, 0, 0); sub_812DFE4(0); } -void sub_812DB64(void) +static void sub_812DB64(void) { gUnknown_3005EB0.items = gUnknown_203B100; gUnknown_3005EB0.moveCursorFunc = sub_812DBC0; @@ -1312,7 +1312,7 @@ void sub_812DB64(void) gUnknown_3005EB0.cursorKind = 0; } -void sub_812DBC0(s32 itemIndex, bool8 onInit, struct ListMenu *list) +static void sub_812DBC0(s32 itemIndex, bool8 onInit, struct ListMenu *list) { u16 sp8; u8 taskId; @@ -1326,7 +1326,7 @@ void sub_812DBC0(s32 itemIndex, bool8 onInit, struct ListMenu *list) struct Task *task = &gTasks[taskId]; PlaySE(SE_SELECT); task->data[1] = 0; - get_coro_args_x18_x1A(gUnknown_203B0FC->unk_08, &sp8, NULL); + get_coro_args_x18_x1A(gUnknown_203B0FC->scrollIndicatorArrowObjectTaskId, &sp8, NULL); gUnknown_203B0FC->unk_04 = sp8; if (itemIndex != gUnknown_203B0FC->unk_07_2 - 1) { @@ -1367,35 +1367,35 @@ void sub_812DBC0(s32 itemIndex, bool8 onInit, struct ListMenu *list) u8 r2; for (r2 = 0; r2 < 6; r2++) { - gSprites[gUnknown_203B0FC->unk_1D[r2]].invisible = TRUE; + gSprites[gUnknown_203B0FC->spriteIds[r2]].invisible = TRUE; } } } } } -void sub_812DD50(u8 taskId) +static void sub_812DD50(u8 taskId) { struct Task * task = &gTasks[taskId]; - task->data[2] = sub_812D888(gUnknown_203B0FC->unk_0C[gUnknown_203B104]); + task->data[2] = sub_812D888(gUnknown_203B0FC->unlockedPersons[gUnknown_203B104]); gSprites[task->data[2]].data[0] = 0; sub_812CD3C(); task->func = sub_812C694; } -void sub_812DDAC(void) +static void sub_812DDAC(void) { FillWindowPixelRect(2, 0x11, 0, 0, 0xd0, 0x20); AddTextPrinterParametrized(2, 2, gUnknown_84181C3, 0, NULL, 2, 1, 3); sub_812CEE0(2); } -void sub_812DDF0(s32 itemIndex, bool8 onInit) +static void sub_812DDF0(s32 itemIndex, bool8 onInit) { u16 sp14; u16 sp16; u16 r6; - get_coro_args_x18_x1A(gUnknown_203B0FC->unk_08, &sp14, &sp16); + get_coro_args_x18_x1A(gUnknown_203B0FC->scrollIndicatorArrowObjectTaskId, &sp14, &sp16); r6 = sp14 + sp16; AddTextPrinterParametrized2(0, 2, 8, 14 * sp16 + 4, 0, 0, &gUnknown_845F5E6, 0, gUnknown_203B100[itemIndex].unk_00); if (!onInit) @@ -1412,7 +1412,7 @@ void sub_812DDF0(s32 itemIndex, bool8 onInit) gUnknown_203B0FC->unk_0A = sp14; } -u8 sub_812DEF0(void) +static u8 sub_812DEF0(void) { u8 r4 = 0; u8 r6; @@ -1432,13 +1432,13 @@ u8 sub_812DEF0(void) gUnknown_203B100[r4].unk_00 = gUnknown_845F60C[gUnknown_845F5EA[r5] - 0xFE00]; gUnknown_203B100[r4].unk_04 = r4; } - gUnknown_203B0FC->unk_0C[r4] = r5; + gUnknown_203B0FC->unlockedPersons[r4] = r5; r4++; } } gUnknown_203B100[r4].unk_00 = gUnknown_84161C1; gUnknown_203B100[r4].unk_04 = r4; - gUnknown_203B0FC->unk_0C[r4] = 0xFF; + gUnknown_203B0FC->unlockedPersons[r4] = 0xFF; r4++; gUnknown_3005EB0.totalItems = r4; if (r4 < 5) @@ -1448,13 +1448,13 @@ u8 sub_812DEF0(void) return r4; } -void sub_812DFE4(u8 windowId) +static void sub_812DFE4(u8 windowId) { PutWindowTilemap(windowId); CopyWindowToVram(windowId, 3); } -void sub_812E000(void) +static void sub_812E000(void) { struct ScrollIndicatorArrowPairTemplate sp0 = { 2, @@ -1479,20 +1479,20 @@ void sub_812E000(void) } } -void sub_812E048(void) +static void sub_812E048(void) { if (gUnknown_203B0FC->unk_07_2 > 5) RemoveScrollIndicatorArrowPair(gUnknown_203B0FC->unk_06); } -u16 sub_812E064(void) +static u16 sub_812E064(void) { u16 sp0, sp2; - get_coro_args_x18_x1A(gUnknown_203B0FC->unk_08, &sp0, &sp2); + get_coro_args_x18_x1A(gUnknown_203B0FC->scrollIndicatorArrowObjectTaskId, &sp0, &sp2); return sp0 + sp2; } -void sub_812E094(u8 a0) +static void sub_812E094(u8 a0) { if (gUnknown_203B0FC->unk_23_0 != a0) { @@ -1514,7 +1514,7 @@ void sub_812E094(u8 a0) } } -void sub_812E110(u8 taskId) +static void sub_812E110(u8 taskId) { struct Task * task = &gTasks[taskId]; switch (task->data[0]) @@ -1537,7 +1537,7 @@ void sub_812E110(u8 taskId) } } -void sub_812E178(u8 bg, s16 a1) +static void sub_812E178(u8 bg, s16 a1) { if (a1 == 0 || a1 == 3) { @@ -1599,9 +1599,9 @@ void sub_812E178(u8 bg, s16 a1) CopyBgTilemapBufferToVram(bg); } -void sub_812E4A4(u8 a0) +static void sub_812E4A4(u8 a0) { - u16 cursorY = ListMenuGetYCoordForPrintingArrowCursor(gUnknown_203B0FC->unk_08); + u16 cursorY = ListMenuGetYCoordForPrintingArrowCursor(gUnknown_203B0FC->scrollIndicatorArrowObjectTaskId); if (a0 == 1) AddTextPrinterParametrized2(0, 2, 0, cursorY, 0, 0, &gUnknown_845F5E3, 0, gUnknown_841623B); else -- cgit v1.2.3 From 3c409e3cd2a9da797a8b5ecb06e40cb003ce21e3 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 26 Nov 2018 18:20:29 -0500 Subject: Make ewram symbols static too --- src/fame_checker.c | 262 ++++++++++++++++++++++++++--------------------------- 1 file changed, 131 insertions(+), 131 deletions(-) (limited to 'src') diff --git a/src/fame_checker.c b/src/fame_checker.c index b2fe20c9b..e15768e4b 100644 --- a/src/fame_checker.c +++ b/src/fame_checker.c @@ -53,14 +53,14 @@ struct FameCheckerData u8 unk_23_2:1; }; -EWRAM_DATA u16 * gUnknown_203B0F0 = NULL; -EWRAM_DATA u16 * gUnknown_203B0F4 = NULL; -EWRAM_DATA u16 * gUnknown_203B0F8 = NULL; -EWRAM_DATA struct FameCheckerData * gUnknown_203B0FC = NULL; -EWRAM_DATA struct ListMenuItem * gUnknown_203B100 = NULL; -EWRAM_DATA s32 gUnknown_203B104 = 0; - -struct ListMenuTemplate gUnknown_3005EB0; +static EWRAM_DATA u16 * sBg3TilemapBuffer = NULL; +static EWRAM_DATA u16 * sBg1TilemapBuffer = NULL; +static EWRAM_DATA u16 * sBg2TilemapBuffer = NULL; +static EWRAM_DATA struct FameCheckerData * sFameCheckerData = NULL; +static EWRAM_DATA struct ListMenuItem * sListMenuItems = NULL; +static EWRAM_DATA s32 sLastMenuIdx = 0; + +struct ListMenuTemplate gFameChecker_ListMenuTemplate; u8 gUnknown_3005EC8; static void sub_812C3F8(void); @@ -499,12 +499,12 @@ static void sub_812C394(void) void UseFameChecker(MainCallback savedCallback) { SetVBlankCallback(NULL); - gUnknown_203B0FC = AllocZeroed(sizeof(struct FameCheckerData)); - gUnknown_203B0FC->savedCallback = savedCallback; - gUnknown_203B0FC->unk_09 = 0; - gUnknown_203B0FC->unk_0A = 0; - gUnknown_203B0FC->unk_0B = 0; - gUnknown_203B0FC->unk_23_0 = FALSE; + sFameCheckerData = AllocZeroed(sizeof(struct FameCheckerData)); + sFameCheckerData->savedCallback = savedCallback; + sFameCheckerData->unk_09 = 0; + sFameCheckerData->unk_0A = 0; + sFameCheckerData->unk_0B = 0; + sFameCheckerData->unk_23_0 = FALSE; PlaySE(SE_W202); SetMainCallback2(sub_812C3F8); } @@ -523,14 +523,14 @@ static void sub_812C3F8(void) gMain.state++; break; case 2: - gUnknown_203B0F0 = AllocZeroed(0x800); - gUnknown_203B0F4 = AllocZeroed(0x1000); - gUnknown_203B0F8 = AllocZeroed(0x800); + sBg3TilemapBuffer = AllocZeroed(0x800); + sBg1TilemapBuffer = AllocZeroed(0x1000); + sBg2TilemapBuffer = AllocZeroed(0x800); ResetBgsAndClearDma3BusyFlags(0); InitBgsFromTemplates(0, gUnknown_845FBF4, ARRAY_COUNT(gUnknown_845FBF4)); - SetBgTilemapBuffer(3, gUnknown_203B0F0); - SetBgTilemapBuffer(2, gUnknown_203B0F8); - SetBgTilemapBuffer(1, gUnknown_203B0F4); + SetBgTilemapBuffer(3, sBg3TilemapBuffer); + SetBgTilemapBuffer(2, sBg2TilemapBuffer); + SetBgTilemapBuffer(1, sBg1TilemapBuffer); sub_812D594(); gMain.state++; break; @@ -561,7 +561,7 @@ static void sub_812C3F8(void) InitWindows(gUnknown_845FC04); DeactivateAllTextPrinters(); sub_812CEC0(); - gUnknown_203B100 = AllocZeroed(17 * sizeof(struct ListMenuItem)); + sListMenuItems = AllocZeroed(17 * sizeof(struct ListMenuItem)); sub_812DB28(); gMain.state++; break; @@ -578,7 +578,7 @@ static void sub_812C3F8(void) SetGpuReg(REG_OFFSET_BLDALPHA, 0x07); SetGpuReg(REG_OFFSET_BLDY, 0x08); SetVBlankCallback(sub_812C380); - gUnknown_203B0FC->unk_04 = 0; + sFameCheckerData->unk_04 = 0; sub_812E000(); sub_812E178(1, 4); CreateTask(sub_812C664, 0x08); @@ -609,7 +609,7 @@ static void sub_812C694(u8 taskId) if (FindTaskIdByFunc(sub_812E110) == 0xFF) { RunTextPrinters(); - if ((PRESSED(SELECT_BUTTON)) && !gUnknown_203B0FC->unk_07_1 && gUnknown_203B0FC->savedCallback != sub_8107EB8) + if ((PRESSED(SELECT_BUTTON)) && !sFameCheckerData->unk_07_1 && sFameCheckerData->savedCallback != sub_8107EB8) task->func = sub_812CF3C; else if (PRESSED(START_BUTTON)) { @@ -618,7 +618,7 @@ static void sub_812C694(u8 taskId) { PlaySE(SE_W100); } - else if (r4 != gUnknown_203B0FC->unk_07_2 - 1) + else if (r4 != sFameCheckerData->unk_07_2 - 1) { PlaySE(SE_W100); FillWindowPixelRect(3, 0x00, 0, 0, 88, 32); @@ -626,7 +626,7 @@ static void sub_812C694(u8 taskId) sub_812E178(2, 4); sub_812E178(1, 5); sub_812D0F4(1); - task->data[2] = sub_812D888(gUnknown_203B0FC->unlockedPersons[r4]); + task->data[2] = sub_812D888(sFameCheckerData->unlockedPersons[r4]); gSprites[task->data[2]].pos2.x = 0xF0; gSprites[task->data[2]].data[0] = 1; task->data[3] = sub_812D7E4(); @@ -638,26 +638,26 @@ static void sub_812C694(u8 taskId) else if (PRESSED(A_BUTTON)) { r4 = ListMenuHandleInput(0); - if (r4 == gUnknown_203B0FC->unk_07_2 - 1) + if (r4 == sFameCheckerData->unk_07_2 - 1) task->func = sub_812CF3C; - else if (gUnknown_203B0FC->unk_07_1) + else if (sFameCheckerData->unk_07_1) { if (!IsTextPrinterActive(2) && sub_812D6B4() == TRUE) sub_812CD3C(); } - else if (gUnknown_203B0FC->unk_07_0) + else if (sFameCheckerData->unk_07_0) { PlaySE(SE_SELECT); task->data[0] = sub_812D724(task->data[1]); for (r4_2 = 0; r4_2 < 6; r4_2++) { if (r4_2 != task->data[1]) - sub_812CEFC(gUnknown_203B0FC->spriteIds[r4_2], ST_OAM_OBJ_BLEND); + sub_812CEFC(sFameCheckerData->spriteIds[r4_2], ST_OAM_OBJ_BLEND); } gUnknown_3005EC8 = 0xFF; sub_812E4A4(0); sub_812D0F4(2); - if (gSprites[gUnknown_203B0FC->spriteIds[task->data[1]]].data[1] != 0xFF) + if (gSprites[sFameCheckerData->spriteIds[task->data[1]]].data[1] != 0xFF) { sub_812CE04(taskId); sub_812DA14(data[1]); @@ -679,7 +679,7 @@ static void sub_812C694(u8 taskId) static bool8 sub_812C8F8(u8 taskId) { struct Task *task = &gTasks[taskId]; - if (gUnknown_203B0FC->unk_07_1) + if (sFameCheckerData->unk_07_1) { gSprites[task->data[2]].data[0] = 2; gSprites[task->data[2]].pos2.x += 10; @@ -688,7 +688,7 @@ static bool8 sub_812C8F8(u8 taskId) sub_812CE9C(); task->func = sub_812CA1C; sub_812C990(); - gUnknown_203B0FC->unk_23_2 = FALSE; + sFameCheckerData->unk_23_2 = FALSE; return TRUE; } return FALSE; @@ -705,7 +705,7 @@ static void sub_812C9BC(u8 taskId) if (gSprites[task->data[2]].data[0] == 0) { sub_812CD3C(); - gUnknown_203B0FC->unk_07_1 = TRUE; + sFameCheckerData->unk_07_1 = TRUE; task->func = sub_812C694; } else @@ -721,11 +721,11 @@ static void sub_812CA1C(u8 taskId) ChangeBgX(1, 0x000, 0); if (gSprites[task->data[2]].data[0] == 0) { - if (gUnknown_203B0FC->unk_07_0) + if (sFameCheckerData->unk_07_0) sub_812D0F4(0); sub_812E178(1, 4); sub_812E178(2, 2); - gUnknown_203B0FC->unk_07_1 = FALSE; + sFameCheckerData->unk_07_1 = FALSE; sub_812D9A8(taskId, sub_812E064()); task->func = sub_812C694; gSprites[task->data[3]].callback = sub_812D800; @@ -740,7 +740,7 @@ static void sub_812CAD8(u8 taskId) RunTextPrinters(); if (PRESSED(A_BUTTON) && !IsTextPrinterActive(2)) { - u8 spriteId = gUnknown_203B0FC->spriteIds[data[1]]; + u8 spriteId = sFameCheckerData->spriteIds[data[1]]; if (gSprites[spriteId].data[1] != 0xFF) sub_812CE04(taskId); } @@ -749,7 +749,7 @@ static void sub_812CAD8(u8 taskId) u8 r4; PlaySE(SE_SELECT); for (r4 = 0; r4 < 6; r4++) - sub_812CEFC(gUnknown_203B0FC->spriteIds[r4], ST_OAM_OBJ_NORMAL); + sub_812CEFC(sFameCheckerData->spriteIds[r4], ST_OAM_OBJ_NORMAL); sub_812CE9C(); gSprites[task->data[0]].callback = sub_812D764; if (gUnknown_3005EC8 != 0xFF) @@ -809,10 +809,10 @@ static void sub_812CC68(u8 taskId, s8 dx, s8 dy) gSprites[data[0]].pos1.x += dx; gSprites[data[0]].pos1.y += dy; for (i = 0; i < 6; i++) - sub_812CEFC(gUnknown_203B0FC->spriteIds[i], ST_OAM_OBJ_BLEND); + sub_812CEFC(sFameCheckerData->spriteIds[i], ST_OAM_OBJ_BLEND); FillWindowPixelRect(2, 0x11, 0, 0, 0xd0, 0x20); sub_812C990(); - if (sub_812CEFC(gUnknown_203B0FC->spriteIds[data[1]], ST_OAM_OBJ_NORMAL) == TRUE) + if (sub_812CEFC(sFameCheckerData->spriteIds[data[1]], ST_OAM_OBJ_NORMAL) == TRUE) { sub_812CE04(taskId); sub_812DA14(data[1]); @@ -825,7 +825,7 @@ static void sub_812CD3C(void) { u8 r8 = 0; u16 r6 = sub_812E064(); - if (gSaveBlock1Ptr->fameChecker[gUnknown_203B0FC->unlockedPersons[r6]].unk_0_0 != 2) + if (gSaveBlock1Ptr->fameChecker[sFameCheckerData->unlockedPersons[r6]].unk_0_0 != 2) { sub_812CE9C(); sub_812C990(); @@ -835,7 +835,7 @@ static void sub_812CD3C(void) FillWindowPixelRect(2, 0x11, 0, 0, 0xd0, 0x20); if (sub_812D6B4() == TRUE) r8 = 16; - StringExpandPlaceholders(gStringVar4, gUnknown_845F63C[gUnknown_203B0FC->unlockedPersons[r6] + r8]); + StringExpandPlaceholders(gStringVar4, gUnknown_845F63C[sFameCheckerData->unlockedPersons[r6] + r8]); AddTextPrinterParametrized(2, 2, gStringVar4, sub_80F78A8(), NULL, 2, 1, 3); sub_812CEE0(2); } @@ -846,7 +846,7 @@ static void sub_812CE04(u8 taskId) s16 *data = gTasks[taskId].data; u16 r5 = sub_812E064(); FillWindowPixelRect(2, 0x11, 0, 0, 0xd0, 0x20); - StringExpandPlaceholders(gStringVar4, gUnknown_845F6BC[gUnknown_203B0FC->unlockedPersons[r5] * 6 + data[1]]); + StringExpandPlaceholders(gStringVar4, gUnknown_845F6BC[sFameCheckerData->unlockedPersons[r5] * 6 + data[1]]); AddTextPrinterParametrized(2, 2, gStringVar4, sub_80F78A8(), NULL, 2, 1, 3); sub_812CEE0(2); } @@ -894,7 +894,7 @@ static void sub_812CF7C(u8 taskId) if (!gPaletteFade.active) { - if (gUnknown_203B0FC->unk_07_1) + if (sFameCheckerData->unk_07_1) { sub_812D9A8(taskId, sub_812E064()); FreeSpriteOamMatrix(&gSprites[gTasks[taskId].data[3]]); @@ -902,20 +902,20 @@ static void sub_812CF7C(u8 taskId) } for (r4 = 0; r4 < 6; r4++) { - DestroySprite(&gSprites[gUnknown_203B0FC->spriteIds[r4]]); + DestroySprite(&gSprites[sFameCheckerData->spriteIds[r4]]); } sub_812D814(); sub_812D7C8(); sub_812D70C(); sub_812D770(); sub_812E048(); - SetMainCallback2(gUnknown_203B0FC->savedCallback); - sub_810713C(gUnknown_203B0FC->scrollIndicatorArrowObjectTaskId, 0, 0); - Free(gUnknown_203B0F0); - Free(gUnknown_203B0F4); - Free(gUnknown_203B0F8); - Free(gUnknown_203B0FC); - Free(gUnknown_203B100); + SetMainCallback2(sFameCheckerData->savedCallback); + sub_810713C(sFameCheckerData->scrollIndicatorArrowObjectTaskId, 0, 0); + Free(sBg3TilemapBuffer); + Free(sBg1TilemapBuffer); + Free(sBg2TilemapBuffer); + Free(sFameCheckerData); + Free(sListMenuItems); sub_812D094(0); sub_812D094(1); sub_812D094(2); @@ -966,7 +966,7 @@ static void sub_812D174(void) u8 r4; for (r4 = 0; r4 < 6; r4++) { - DestroySprite(&gSprites[gUnknown_203B0FC->spriteIds[r4]]); + DestroySprite(&gSprites[sFameCheckerData->spriteIds[r4]]); } } @@ -977,10 +977,10 @@ static bool8 sub_812D1A8(u8 a0) u8 r6; for (r6 = 0; r6 < 6; r6++) { - if ((gSaveBlock1Ptr->fameChecker[gUnknown_203B0FC->unlockedPersons[a0]].unk_0_2 >> r6) & 1) + if ((gSaveBlock1Ptr->fameChecker[sFameCheckerData->unlockedPersons[a0]].unk_0_2 >> r6) & 1) { - gUnknown_203B0FC->spriteIds[r6] = sub_805EB44( - gUnknown_845F83C[gUnknown_203B0FC->unlockedPersons[a0] * 6 + r6], + sFameCheckerData->spriteIds[r6] = sub_805EB44( + gUnknown_845F83C[sFameCheckerData->unlockedPersons[a0] * 6 + r6], r6, 47 * (r6 % 3) + 0x72, 27 * (r6 / 3) + 0x2F @@ -989,24 +989,24 @@ static bool8 sub_812D1A8(u8 a0) } else { - gUnknown_203B0FC->spriteIds[r6] = sub_812D780( + sFameCheckerData->spriteIds[r6] = sub_812D780( 47 * (r6 % 3) + 0x72, 27 * (r6 / 3) + 0x1F ); - gSprites[gUnknown_203B0FC->spriteIds[r6]].data[1] = 0xFF; + gSprites[sFameCheckerData->spriteIds[r6]].data[1] = 0xFF; } } if (r5 == TRUE) { - gUnknown_203B0FC->unk_07_0 = TRUE; - if (gUnknown_203B0FC->unk_07_1) + sFameCheckerData->unk_07_0 = TRUE; + if (sFameCheckerData->unk_07_1) sub_812D0F4(TRUE); else sub_812D0F4(FALSE); } else { - gUnknown_203B0FC->unk_07_0 = FALSE; + sFameCheckerData->unk_07_0 = FALSE; sub_812D0F4(TRUE); } return r5; @@ -1119,7 +1119,7 @@ static void sub_812D650(void) static bool8 sub_812D6B4(void) { u8 r2; - u8 r1 = gUnknown_203B0FC->unlockedPersons[sub_812E064()]; + u8 r1 = sFameCheckerData->unlockedPersons[sub_812E064()]; for (r2 = 0; r2 < 6; r2++) { if (!((gSaveBlock1Ptr->fameChecker[r1].unk_0_2 >> r2) & 1)) @@ -1249,12 +1249,12 @@ static void sub_812D9A8(u8 taskId, u16 a1) { s16 * data = gTasks[taskId].data; u16 r1 = a1; - if (a1 == gUnknown_203B0FC->unk_07_2 - 1) + if (a1 == sFameCheckerData->unk_07_2 - 1) r1 = a1 - 1; - if ( gUnknown_203B0FC->unlockedPersons[r1] == 1 - || gUnknown_203B0FC->unlockedPersons[r1] == 14 - || gUnknown_203B0FC->unlockedPersons[r1] == 0 - || gUnknown_203B0FC->unlockedPersons[r1] == 13 + if ( sFameCheckerData->unlockedPersons[r1] == 1 + || sFameCheckerData->unlockedPersons[r1] == 14 + || sFameCheckerData->unlockedPersons[r1] == 0 + || sFameCheckerData->unlockedPersons[r1] == 13 ) DestroySprite(&gSprites[data[2]]); else @@ -1264,7 +1264,7 @@ static void sub_812D9A8(u8 taskId, u16 a1) static void sub_812DA14(u8 a0) { s32 width; - u32 r5 = 6 * gUnknown_203B0FC->unlockedPersons[sub_812E064()] + a0; + u32 r5 = 6 * sFameCheckerData->unlockedPersons[sub_812E064()] + a0; sub_812E094(1); gUnknown_3005EC8 = 1; FillWindowPixelRect(3, 0x00, 0, 0, 0x58, 0x20); @@ -1285,31 +1285,31 @@ static void sub_812DB10(void) static void sub_812DB28(void) { sub_812DB64(); - gUnknown_203B0FC->unk_07_2 = sub_812DEF0(); - gUnknown_203B0FC->scrollIndicatorArrowObjectTaskId = ListMenuInit(&gUnknown_3005EB0, 0, 0); + sFameCheckerData->unk_07_2 = sub_812DEF0(); + sFameCheckerData->scrollIndicatorArrowObjectTaskId = ListMenuInit(&gFameChecker_ListMenuTemplate, 0, 0); sub_812DFE4(0); } static void sub_812DB64(void) { - gUnknown_3005EB0.items = gUnknown_203B100; - gUnknown_3005EB0.moveCursorFunc = sub_812DBC0; - gUnknown_3005EB0.itemPrintFunc = NULL; - gUnknown_3005EB0.totalItems = 1; - gUnknown_3005EB0.maxShowed = 1; - gUnknown_3005EB0.windowId = 0; - gUnknown_3005EB0.header_X = 0; - gUnknown_3005EB0.item_X = 8; - gUnknown_3005EB0.cursor_X = 0; - gUnknown_3005EB0.upText_Y = 4; - gUnknown_3005EB0.cursorPal = 2; - gUnknown_3005EB0.fillValue = 0; - gUnknown_3005EB0.cursorShadowPal = 3; - gUnknown_3005EB0.lettersSpacing = 0; - gUnknown_3005EB0.itemVerticalPadding = 0; - gUnknown_3005EB0.scrollMultiple = 0; - gUnknown_3005EB0.fontId = 2; - gUnknown_3005EB0.cursorKind = 0; + gFameChecker_ListMenuTemplate.items = sListMenuItems; + gFameChecker_ListMenuTemplate.moveCursorFunc = sub_812DBC0; + gFameChecker_ListMenuTemplate.itemPrintFunc = NULL; + gFameChecker_ListMenuTemplate.totalItems = 1; + gFameChecker_ListMenuTemplate.maxShowed = 1; + gFameChecker_ListMenuTemplate.windowId = 0; + gFameChecker_ListMenuTemplate.header_X = 0; + gFameChecker_ListMenuTemplate.item_X = 8; + gFameChecker_ListMenuTemplate.cursor_X = 0; + gFameChecker_ListMenuTemplate.upText_Y = 4; + gFameChecker_ListMenuTemplate.cursorPal = 2; + gFameChecker_ListMenuTemplate.fillValue = 0; + gFameChecker_ListMenuTemplate.cursorShadowPal = 3; + gFameChecker_ListMenuTemplate.lettersSpacing = 0; + gFameChecker_ListMenuTemplate.itemVerticalPadding = 0; + gFameChecker_ListMenuTemplate.scrollMultiple = 0; + gFameChecker_ListMenuTemplate.fontId = 2; + gFameChecker_ListMenuTemplate.cursorKind = 0; } static void sub_812DBC0(s32 itemIndex, bool8 onInit, struct ListMenu *list) @@ -1317,8 +1317,8 @@ static void sub_812DBC0(s32 itemIndex, bool8 onInit, struct ListMenu *list) u16 sp8; u8 taskId; u16 r9; - gUnknown_203B104 = 0; - r9 = gUnknown_203B0FC->unk_0A + gUnknown_203B0FC->unk_0B; + sLastMenuIdx = 0; + r9 = sFameCheckerData->unk_0A + sFameCheckerData->unk_0B; sub_812DDF0(itemIndex, onInit); taskId = FindTaskIdByFunc(sub_812C694); if (taskId != 0xFF) @@ -1326,24 +1326,24 @@ static void sub_812DBC0(s32 itemIndex, bool8 onInit, struct ListMenu *list) struct Task *task = &gTasks[taskId]; PlaySE(SE_SELECT); task->data[1] = 0; - get_coro_args_x18_x1A(gUnknown_203B0FC->scrollIndicatorArrowObjectTaskId, &sp8, NULL); - gUnknown_203B0FC->unk_04 = sp8; - if (itemIndex != gUnknown_203B0FC->unk_07_2 - 1) + get_coro_args_x18_x1A(sFameCheckerData->scrollIndicatorArrowObjectTaskId, &sp8, NULL); + sFameCheckerData->unk_04 = sp8; + if (itemIndex != sFameCheckerData->unk_07_2 - 1) { sub_812D174(); sub_812D1A8(itemIndex); - if (gUnknown_203B0FC->unk_07_1) + if (sFameCheckerData->unk_07_1) { - if (!gUnknown_203B0FC->unk_23_2) + if (!sFameCheckerData->unk_23_2) { sub_812D9A8(taskId, r9); - gUnknown_203B104 = itemIndex; + sLastMenuIdx = itemIndex; task->func = sub_812DD50; } else { gSprites[task->data[2]].invisible = FALSE; - gUnknown_203B0FC->unk_23_2 = FALSE; + sFameCheckerData->unk_23_2 = FALSE; gSprites[task->data[2]].data[0] = 0; sub_812CD3C(); } @@ -1357,17 +1357,17 @@ static void sub_812DBC0(s32 itemIndex, bool8 onInit, struct ListMenu *list) else { sub_812DDAC(); - if (gUnknown_203B0FC->unk_07_1) + if (sFameCheckerData->unk_07_1) { gSprites[task->data[2]].invisible = TRUE; - gUnknown_203B0FC->unk_23_2 = TRUE; + sFameCheckerData->unk_23_2 = TRUE; } else { u8 r2; for (r2 = 0; r2 < 6; r2++) { - gSprites[gUnknown_203B0FC->spriteIds[r2]].invisible = TRUE; + gSprites[sFameCheckerData->spriteIds[r2]].invisible = TRUE; } } } @@ -1377,7 +1377,7 @@ static void sub_812DBC0(s32 itemIndex, bool8 onInit, struct ListMenu *list) static void sub_812DD50(u8 taskId) { struct Task * task = &gTasks[taskId]; - task->data[2] = sub_812D888(gUnknown_203B0FC->unlockedPersons[gUnknown_203B104]); + task->data[2] = sub_812D888(sFameCheckerData->unlockedPersons[sLastMenuIdx]); gSprites[task->data[2]].data[0] = 0; sub_812CD3C(); task->func = sub_812C694; @@ -1395,21 +1395,21 @@ static void sub_812DDF0(s32 itemIndex, bool8 onInit) u16 sp14; u16 sp16; u16 r6; - get_coro_args_x18_x1A(gUnknown_203B0FC->scrollIndicatorArrowObjectTaskId, &sp14, &sp16); + get_coro_args_x18_x1A(sFameCheckerData->scrollIndicatorArrowObjectTaskId, &sp14, &sp16); r6 = sp14 + sp16; - AddTextPrinterParametrized2(0, 2, 8, 14 * sp16 + 4, 0, 0, &gUnknown_845F5E6, 0, gUnknown_203B100[itemIndex].unk_00); + AddTextPrinterParametrized2(0, 2, 8, 14 * sp16 + 4, 0, 0, &gUnknown_845F5E6, 0, sListMenuItems[itemIndex].unk_00); if (!onInit) { - if (sp14 < gUnknown_203B0FC->unk_0A) - gUnknown_203B0FC->unk_0B++; - else if (sp14 > gUnknown_203B0FC->unk_0A && r6 != gUnknown_203B0FC->unk_07_2 - 1) - gUnknown_203B0FC->unk_0B--; - AddTextPrinterParametrized2(0, 2, 8, 14 * gUnknown_203B0FC->unk_0B + 4, 0, 0, &gUnknown_845F5E3, 0, gUnknown_203B100[gUnknown_203B0FC->unk_09].unk_00); + if (sp14 < sFameCheckerData->unk_0A) + sFameCheckerData->unk_0B++; + else if (sp14 > sFameCheckerData->unk_0A && r6 != sFameCheckerData->unk_07_2 - 1) + sFameCheckerData->unk_0B--; + AddTextPrinterParametrized2(0, 2, 8, 14 * sFameCheckerData->unk_0B + 4, 0, 0, &gUnknown_845F5E3, 0, sListMenuItems[sFameCheckerData->unk_09].unk_00); } - gUnknown_203B0FC->unk_09 = itemIndex; - gUnknown_203B0FC->unk_0B = sp16; - gUnknown_203B0FC->unk_0A = sp14; + sFameCheckerData->unk_09 = itemIndex; + sFameCheckerData->unk_0B = sp16; + sFameCheckerData->unk_0A = sp14; } static u8 sub_812DEF0(void) @@ -1424,27 +1424,27 @@ static u8 sub_812DEF0(void) { if (gUnknown_845F5EA[r5] < 0xFE00) { - gUnknown_203B100[r4].unk_00 = gTrainers[gUnknown_845F5EA[r5]].trainerName; - gUnknown_203B100[r4].unk_04 = r4; + sListMenuItems[r4].unk_00 = gTrainers[gUnknown_845F5EA[r5]].trainerName; + sListMenuItems[r4].unk_04 = r4; } else { - gUnknown_203B100[r4].unk_00 = gUnknown_845F60C[gUnknown_845F5EA[r5] - 0xFE00]; - gUnknown_203B100[r4].unk_04 = r4; + sListMenuItems[r4].unk_00 = gUnknown_845F60C[gUnknown_845F5EA[r5] - 0xFE00]; + sListMenuItems[r4].unk_04 = r4; } - gUnknown_203B0FC->unlockedPersons[r4] = r5; + sFameCheckerData->unlockedPersons[r4] = r5; r4++; } } - gUnknown_203B100[r4].unk_00 = gUnknown_84161C1; - gUnknown_203B100[r4].unk_04 = r4; - gUnknown_203B0FC->unlockedPersons[r4] = 0xFF; + sListMenuItems[r4].unk_00 = gUnknown_84161C1; + sListMenuItems[r4].unk_04 = r4; + sFameCheckerData->unlockedPersons[r4] = 0xFF; r4++; - gUnknown_3005EB0.totalItems = r4; + gFameChecker_ListMenuTemplate.totalItems = r4; if (r4 < 5) - gUnknown_3005EB0.maxShowed = r4; + gFameChecker_ListMenuTemplate.maxShowed = r4; else - gUnknown_3005EB0.maxShowed = 5; + gFameChecker_ListMenuTemplate.maxShowed = 5; return r4; } @@ -1471,30 +1471,30 @@ static void sub_812E000(void) 0 }; - if (gUnknown_203B0FC->unk_07_2 > 5) + if (sFameCheckerData->unk_07_2 > 5) { sp0.unk_06 = 0; - sp0.unk_08 = gUnknown_203B0FC->unk_07_2 - 5; - gUnknown_203B0FC->unk_06 = AddScrollIndicatorArrowPair(&sp0, &gUnknown_203B0FC->unk_04); + sp0.unk_08 = sFameCheckerData->unk_07_2 - 5; + sFameCheckerData->unk_06 = AddScrollIndicatorArrowPair(&sp0, &sFameCheckerData->unk_04); } } static void sub_812E048(void) { - if (gUnknown_203B0FC->unk_07_2 > 5) - RemoveScrollIndicatorArrowPair(gUnknown_203B0FC->unk_06); + if (sFameCheckerData->unk_07_2 > 5) + RemoveScrollIndicatorArrowPair(sFameCheckerData->unk_06); } static u16 sub_812E064(void) { u16 sp0, sp2; - get_coro_args_x18_x1A(gUnknown_203B0FC->scrollIndicatorArrowObjectTaskId, &sp0, &sp2); + get_coro_args_x18_x1A(sFameCheckerData->scrollIndicatorArrowObjectTaskId, &sp0, &sp2); return sp0 + sp2; } static void sub_812E094(u8 a0) { - if (gUnknown_203B0FC->unk_23_0 != a0) + if (sFameCheckerData->unk_23_0 != a0) { u8 taskId = FindTaskIdByFunc(sub_812E110); if (taskId == 0xFF) @@ -1504,12 +1504,12 @@ static void sub_812E094(u8 a0) if (a0 == TRUE) { gTasks[taskId].data[2] = 1; - gUnknown_203B0FC->unk_23_0 = TRUE; + sFameCheckerData->unk_23_0 = TRUE; } else { gTasks[taskId].data[2] = 4; - gUnknown_203B0FC->unk_23_0 = FALSE; + sFameCheckerData->unk_23_0 = FALSE; } } } @@ -1601,7 +1601,7 @@ static void sub_812E178(u8 bg, s16 a1) static void sub_812E4A4(u8 a0) { - u16 cursorY = ListMenuGetYCoordForPrintingArrowCursor(gUnknown_203B0FC->scrollIndicatorArrowObjectTaskId); + u16 cursorY = ListMenuGetYCoordForPrintingArrowCursor(sFameCheckerData->scrollIndicatorArrowObjectTaskId); if (a0 == 1) AddTextPrinterParametrized2(0, 2, 0, cursorY, 0, 0, &gUnknown_845F5E3, 0, gUnknown_841623B); else -- cgit v1.2.3 From de72615a5428c5996b5c92d368cfb350816ed51e Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 26 Nov 2018 18:22:57 -0500 Subject: This is a sprite tag right here --- src/fame_checker.c | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) (limited to 'src') diff --git a/src/fame_checker.c b/src/fame_checker.c index e15768e4b..3b5576923 100644 --- a/src/fame_checker.c +++ b/src/fame_checker.c @@ -29,6 +29,7 @@ #define SPRITETAG_1000 1000 #define SPRITETAG_1001 1001 #define SPRITETAG_1002 1002 +#define SPRITETAG_1004 1004 #define SPRITETAG_1006 1006 #define SPRITETAG_1007 1007 #define SPRITETAG_1008 1008 @@ -1457,18 +1458,18 @@ static void sub_812DFE4(u8 windowId) static void sub_812E000(void) { struct ScrollIndicatorArrowPairTemplate sp0 = { - 2, - 40, - 26, - 3, - 40, - 100, - 0, - 0, - 1004, - 0xFFFF, - 1, - 0 + 2, + 40, + 26, + 3, + 40, + 100, + 0, + 0, + SPRITETAG_1004, + 0xFFFF, + 1, + 0 }; if (sFameCheckerData->unk_07_2 > 5) -- cgit v1.2.3 From b21c50675b8b143608b39b26b53788e4807bbc9e Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 26 Nov 2018 18:24:17 -0500 Subject: PRESSED-->JOY_NEW, PUSHED-->JOY_HELD --- src/fame_checker.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) (limited to 'src') diff --git a/src/fame_checker.c b/src/fame_checker.c index 3b5576923..8150c58ef 100644 --- a/src/fame_checker.c +++ b/src/fame_checker.c @@ -610,9 +610,9 @@ static void sub_812C694(u8 taskId) if (FindTaskIdByFunc(sub_812E110) == 0xFF) { RunTextPrinters(); - if ((PRESSED(SELECT_BUTTON)) && !sFameCheckerData->unk_07_1 && sFameCheckerData->savedCallback != sub_8107EB8) + if ((JOY_NEW(SELECT_BUTTON)) && !sFameCheckerData->unk_07_1 && sFameCheckerData->savedCallback != sub_8107EB8) task->func = sub_812CF3C; - else if (PRESSED(START_BUTTON)) + else if (JOY_NEW(START_BUTTON)) { r4 = sub_812E064(); if (sub_812C8F8(taskId) == TRUE) @@ -636,7 +636,7 @@ static void sub_812C694(u8 taskId) task->func = sub_812C9BC; } } - else if (PRESSED(A_BUTTON)) + else if (JOY_NEW(A_BUTTON)) { r4 = ListMenuHandleInput(0); if (r4 == sFameCheckerData->unk_07_2 - 1) @@ -667,7 +667,7 @@ static void sub_812C694(u8 taskId) task->func = sub_812CAD8; } } - else if (PRESSED(B_BUTTON)) + else if (JOY_NEW(B_BUTTON)) { if (sub_812C8F8(taskId) != TRUE) task->func = sub_812CF3C; @@ -739,13 +739,13 @@ static void sub_812CAD8(u8 taskId) s16 *data = gTasks[taskId].data; RunTextPrinters(); - if (PRESSED(A_BUTTON) && !IsTextPrinterActive(2)) + if (JOY_NEW(A_BUTTON) && !IsTextPrinterActive(2)) { u8 spriteId = sFameCheckerData->spriteIds[data[1]]; if (gSprites[spriteId].data[1] != 0xFF) sub_812CE04(taskId); } - if (PRESSED(B_BUTTON)) + if (JOY_NEW(B_BUTTON)) { u8 r4; PlaySE(SE_SELECT); @@ -761,7 +761,7 @@ static void sub_812CAD8(u8 taskId) sub_812C990(); task->func = sub_812C694; } - else if (PRESSED(DPAD_UP) || PRESSED(DPAD_DOWN)) + else if (JOY_NEW(DPAD_UP) || JOY_NEW(DPAD_DOWN)) { if (task->data[1] >= 3) { @@ -774,7 +774,7 @@ static void sub_812CAD8(u8 taskId) sub_812CC68(taskId, 0, +0x1b); } } - else if (PRESSED(DPAD_LEFT)) + else if (JOY_NEW(DPAD_LEFT)) { if (task->data[1] == 0 || task->data[1] % 3 == 0) { @@ -787,7 +787,7 @@ static void sub_812CAD8(u8 taskId) sub_812CC68(taskId, -0x2f, 0); } } - else if (PRESSED(DPAD_RIGHT)) + else if (JOY_NEW(DPAD_RIGHT)) { if ((task->data[1] + 1) % 3 == 0) { -- cgit v1.2.3 From 7e684b32f108bc484f3f8ba66b209d3f633e8acd Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 26 Nov 2018 22:27:19 -0500 Subject: More documentation of fame checker --- src/fame_checker.c | 211 +++++++++++++++++++++++------------------------------ 1 file changed, 91 insertions(+), 120 deletions(-) (limited to 'src') diff --git a/src/fame_checker.c b/src/fame_checker.c index 8150c58ef..2bff79146 100644 --- a/src/fame_checker.c +++ b/src/fame_checker.c @@ -25,6 +25,7 @@ #include "field_map_obj.h" #include "menu_indicators.h" #include "text_window.h" +#include "fame_checker.h" #define SPRITETAG_1000 1000 #define SPRITETAG_1001 1001 @@ -41,8 +42,8 @@ struct FameCheckerData u16 unk_04; u8 unk_06; u8 unk_07_0:1; - u8 unk_07_1:1; - u8 unk_07_2:6; + u8 inPickMode:1; + u8 numUnlockedPersons:6; u8 scrollIndicatorArrowObjectTaskId; u8 unk_09; u8 unk_0A; @@ -95,7 +96,7 @@ static void sub_812D70C(void); static u8 sub_812D724(s16 a0); static void sub_812D764(struct Sprite *sprite); static void sub_812D770(void); -static u8 sub_812D780(u8, u8); +static u8 PlaceQuestionMarkTile(u8, u8); static void sub_812D7C8(void); static u8 sub_812D7E4(void); static void sub_812D800(struct Sprite *sprite); @@ -115,7 +116,7 @@ static u8 sub_812DEF0(void); static void sub_812DFE4(u8); static void sub_812E000(void); static void sub_812E048(void); -static u16 sub_812E064(void); +static u16 FameCheckerGetCursorY(void); static void sub_812E094(u8); static void sub_812E110(u8 taskId); static void sub_812E178(u8 a0, s16 a1); @@ -125,28 +126,28 @@ extern const u8 gUnknown_84161C1[]; extern const u8 gUnknown_841623B[]; extern const u8 gUnknown_84181C3[]; extern const u8 gUnknown_84181E4[]; -extern const u8 gUnknown_841E5A4[]; -extern const u8 gUnknown_841E5B9[]; -extern const u8 gUnknown_841E5D2[]; -extern const u8 gUnknown_841E5E9[]; -extern const u8 gUnknown_841E5ED[]; -extern const u8 gUnknown_841E5F3[]; -extern const u8 gUnknown_841E5F8[]; - -static const u16 gUnknown_845C600[] = INCBIN_U16("data/fame_checker/tilemap_845c600.bin"); -static const u8 gUnknown_845CE00[] = INCBIN_U8("data/fame_checker/img_845ce00.4bpp"); -static const u8 gUnknown_845CF00[] = INCBIN_U8("data/fame_checker/img_845cf00.4bpp"); -static const u16 gUnknown_845D0E0[] = INCBIN_U16("data/fame_checker/pal_845d0e0.gbapal"); -static const u8 gUnknown_845D100[] = INCBIN_U8("data/fame_checker/img_845d100.4bpp"); -static const u16 gUnknown_845D500[] = INCBIN_U16("data/fame_checker/pal_845d500.gbapal"); -static const u8 gUnknown_845D520[] = INCBIN_U8("data/fame_checker/img_845d520.4bpp"); -static const u16 gUnknown_845DD20[] = INCBIN_U16("data/fame_checker/pal_845dd20.gbapal"); -static const u8 gUnknown_845DD40[] = INCBIN_U8("data/fame_checker/img_845dd40.4bpp"); -static const u16 gUnknown_845E540[] = INCBIN_U16("data/fame_checker/pal_845e540.gbapal"); -static const u8 gUnknown_845E560[] = INCBIN_U8("data/fame_checker/img_845e560.4bpp"); -static const u16 gUnknown_845ED60[] = INCBIN_U16("data/fame_checker/pal_845ed60.gbapal"); -static const u8 gUnknown_845ED80[] = INCBIN_U8("data/fame_checker/img_845ed80.4bpp"); -static const u16 gUnknown_845F580[] = INCBIN_U16("data/fame_checker/pal_845f580.gbapal"); +extern const u8 gUnknown_841E5A4[]; // "{KEYGFX_START_BUTTON}PICK {KEYGFX_DPAD_UP_DOWN}SELECT {KEYGFX_A_BUTTON}OK$" +extern const u8 gUnknown_841E5B9[]; // "{KEYGFX_START_BUTTON}PICK {KEYGFX_DPAD_UP_DOWN}SELECT {KEYGFX_B_BUTTON}CANCEL$" +extern const u8 gUnknown_841E5D2[]; // "{KEYGFX_DPAD_ANY}PICK {KEYGFX_A_BUTTON}READ {UNKNOWN_F8 0x01}CANCEL$" +extern const u8 gUnknown_841E5E9[]; // "OAK$" +extern const u8 gUnknown_841E5ED[]; // "DAISY$" +extern const u8 gUnknown_841E5F3[]; // "BILL$" +extern const u8 gUnknown_841E5F8[]; // "FUJI$" + +static const u16 sFameCheckerTilemap[] = INCBIN_U16("data/fame_checker/tilemap_845c600.bin"); +static const u8 sQuestionMarkSpriteGfx[] = INCBIN_U8("data/fame_checker/img_845ce00.4bpp"); +static const u8 sSpinningPokeballSpriteGfx[] = INCBIN_U8("data/fame_checker/img_845cf00.4bpp"); +static const u16 sSpinningPokeballSpritePalette[] = INCBIN_U16("data/fame_checker/pal_845d0e0.gbapal"); +static const u8 sSelectorCursorSpriteGfx[] = INCBIN_U8("data/fame_checker/img_845d100.4bpp"); +static const u16 sSelectorCursorSpritePalette[] = INCBIN_U16("data/fame_checker/pal_845d500.gbapal"); +static const u8 sFujiSpriteGfx[] = INCBIN_U8("data/fame_checker/img_845d520.4bpp"); +static const u16 sFujiSpritePalette[] = INCBIN_U16("data/fame_checker/pal_845dd20.gbapal"); +static const u8 sBillSpriteGfx[] = INCBIN_U8("data/fame_checker/img_845dd40.4bpp"); +static const u16 sBillSpritePalette[] = INCBIN_U16("data/fame_checker/pal_845e540.gbapal"); +static const u8 sDaisySpriteGfx[] = INCBIN_U8("data/fame_checker/img_845e560.4bpp"); +static const u16 sDaisySpritePalette[] = INCBIN_U16("data/fame_checker/pal_845ed60.gbapal"); +static const u8 sOakSpriteGfx[] = INCBIN_U8("data/fame_checker/img_845ed80.4bpp"); +static const u16 sOakSpritePalette[] = INCBIN_U16("data/fame_checker/pal_845f580.gbapal"); static const u16 gUnknown_845F5A0[] = INCBIN_U16("data/fame_checker/pal_845f5a0.gbapal"); static const u16 gUnknown_845F5C0[] = INCBIN_U16("data/fame_checker/pal_845f5c0.gbapal"); @@ -181,38 +182,8 @@ static const u8 *const gUnknown_845F60C[] = { }; static const u8 gUnknown_845F61C[] = { - 0x56, - 0x54, - 0x74, - 0x75, - 0x76, - 0x77, - 0x78, - 0x7a, - 0x79, - 0x70, - 0x71, - 0x72, - 0x73, - 0x64, - 0x7b, - 0x6c, - 0x00, - 0x01, - 0x00, - 0x01, - 0x00, - 0x01, - 0x00, - 0x01, - 0x00, - 0x01, - 0x00, - 0x01, - 0x00, - 0x00, - 0x00, - 0x00 + 0x56, 0x54, 0x74, 0x75, 0x76, 0x77, 0x78, 0x7a, 0x79, 0x70, 0x71, 0x72, 0x73, 0x64, 0x7b, 0x6c, + 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00 }; static const u8 *const gUnknown_845F63C[] = { @@ -269,7 +240,7 @@ static const u8 *const gUnknown_845F6BC[] = { gUnknown_81AFE68, gUnknown_81AFF23, gUnknown_81AFFA8, gUnknown_81B0022, gUnknown_81B00A6, gUnknown_81B0106 }; -static const u8 gUnknown_845F83C[] = { +static const u8 sFameCheckerArrayNpcGraphicsIds[] = { 0x67, 0x47, 0x30, 0x69, 0x4b, 0x37, 0x37, 0x30, 0x3d, 0x69, 0x23, 0x69, 0x66, 0x50, 0x1b, 0x13, 0x1e, 0x69, @@ -327,19 +298,19 @@ static const u8 *const gUnknown_845FA1C[] = { }; static const struct SpriteSheet gUnknown_845FB9C[] = { - {gUnknown_845D100, 0x400, SPRITETAG_1000}, - {gUnknown_845CE00, 0x100, SPRITETAG_1001}, - {gUnknown_845CF00, 0x1e0, SPRITETAG_1002}, - {gUnknown_845E560, 0x800, SPRITETAG_1006}, - {gUnknown_845D520, 0x800, SPRITETAG_1007}, - {gUnknown_845ED80, 0x800, SPRITETAG_1008}, - {gUnknown_845DD40, 0x800, SPRITETAG_1009}, + {sSelectorCursorSpriteGfx, 0x400, SPRITETAG_1000}, + {sQuestionMarkSpriteGfx, 0x100, SPRITETAG_1001}, + {sSpinningPokeballSpriteGfx, 0x1e0, SPRITETAG_1002}, + {sDaisySpriteGfx, 0x800, SPRITETAG_1006}, + {sFujiSpriteGfx, 0x800, SPRITETAG_1007}, + {sOakSpriteGfx, 0x800, SPRITETAG_1008}, + {sBillSpriteGfx, 0x800, SPRITETAG_1009}, {} }; static const struct SpritePalette gUnknown_845FBDC[] = { - {gUnknown_845D500, SPRITETAG_1000}, - {gUnknown_845D0E0, SPRITETAG_1002}, + {sSelectorCursorSpritePalette, SPRITETAG_1000}, + {sSpinningPokeballSpritePalette, SPRITETAG_1002}, {} }; @@ -449,7 +420,7 @@ static const union AffineAnimCmd *const gUnknown_845FCB4[] = { gUnknown_845FCA4 }; -static const struct SpriteTemplate gUnknown_845FCB8 = { +static const struct SpriteTemplate sSpinningPokeballSpriteTemplate = { SPRITETAG_1002, SPRITETAG_1002, &gOamData_845FC9C, gUnknown_845FC98, NULL, gUnknown_845FCB4, sub_812D840 }; @@ -466,19 +437,19 @@ static const struct OamData gOamData_845FCDC = { .size = 3 }; -static const struct SpriteTemplate gUnknown_845FCE4 = { +static const struct SpriteTemplate sDaisySpriteTemplate = { SPRITETAG_1006, 0xffff, &gOamData_845FCDC, gUnknown_845FCD8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy }; -static const struct SpriteTemplate gUnknown_845FCFC = { +static const struct SpriteTemplate sFujiSpriteTemplate = { SPRITETAG_1007, 0xffff, &gOamData_845FCDC, gUnknown_845FCD8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy }; -static const struct SpriteTemplate gUnknown_845FD14 = { +static const struct SpriteTemplate sOakSpriteTemplate = { SPRITETAG_1008, 0xffff, &gOamData_845FCDC, gUnknown_845FCD8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy }; -static const struct SpriteTemplate gUnknown_845FD2C = { +static const struct SpriteTemplate sBillSpriteTemplate = { SPRITETAG_1009, 0xffff, &gOamData_845FCDC, gUnknown_845FCD8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy }; @@ -541,7 +512,7 @@ static void sub_812C3F8(void) LoadPalette(gUnknown_8E9F220 + 0x00, 0x00, 0x40); LoadPalette(gUnknown_8E9F220 + 0x10, 0x10, 0x20); CopyToBgTilemapBufferRect(2, gUnknown_8EA0F00, 0, 0, 32, 32); - CopyToBgTilemapBufferRect_ChangePalette(1, gUnknown_845C600, 30, 0, 32, 32, 0x11); + CopyToBgTilemapBufferRect_ChangePalette(1, sFameCheckerTilemap, 30, 0, 32, 32, 0x11); LoadPalette(stdpal_get(2), 0xF0, 0x20); gMain.state++; break; @@ -610,16 +581,16 @@ static void sub_812C694(u8 taskId) if (FindTaskIdByFunc(sub_812E110) == 0xFF) { RunTextPrinters(); - if ((JOY_NEW(SELECT_BUTTON)) && !sFameCheckerData->unk_07_1 && sFameCheckerData->savedCallback != sub_8107EB8) + if ((JOY_NEW(SELECT_BUTTON)) && !sFameCheckerData->inPickMode && sFameCheckerData->savedCallback != UseFameCheckerFromMenu) task->func = sub_812CF3C; else if (JOY_NEW(START_BUTTON)) { - r4 = sub_812E064(); + r4 = FameCheckerGetCursorY(); if (sub_812C8F8(taskId) == TRUE) { PlaySE(SE_W100); } - else if (r4 != sFameCheckerData->unk_07_2 - 1) + else if (r4 != sFameCheckerData->numUnlockedPersons - 1) { PlaySE(SE_W100); FillWindowPixelRect(3, 0x00, 0, 0, 88, 32); @@ -639,9 +610,9 @@ static void sub_812C694(u8 taskId) else if (JOY_NEW(A_BUTTON)) { r4 = ListMenuHandleInput(0); - if (r4 == sFameCheckerData->unk_07_2 - 1) + if (r4 == sFameCheckerData->numUnlockedPersons - 1) task->func = sub_812CF3C; - else if (sFameCheckerData->unk_07_1) + else if (sFameCheckerData->inPickMode) { if (!IsTextPrinterActive(2) && sub_812D6B4() == TRUE) sub_812CD3C(); @@ -680,7 +651,7 @@ static void sub_812C694(u8 taskId) static bool8 sub_812C8F8(u8 taskId) { struct Task *task = &gTasks[taskId]; - if (sFameCheckerData->unk_07_1) + if (sFameCheckerData->inPickMode) { gSprites[task->data[2]].data[0] = 2; gSprites[task->data[2]].pos2.x += 10; @@ -706,7 +677,7 @@ static void sub_812C9BC(u8 taskId) if (gSprites[task->data[2]].data[0] == 0) { sub_812CD3C(); - sFameCheckerData->unk_07_1 = TRUE; + sFameCheckerData->inPickMode = TRUE; task->func = sub_812C694; } else @@ -726,8 +697,8 @@ static void sub_812CA1C(u8 taskId) sub_812D0F4(0); sub_812E178(1, 4); sub_812E178(2, 2); - sFameCheckerData->unk_07_1 = FALSE; - sub_812D9A8(taskId, sub_812E064()); + sFameCheckerData->inPickMode = FALSE; + sub_812D9A8(taskId, FameCheckerGetCursorY()); task->func = sub_812C694; gSprites[task->data[3]].callback = sub_812D800; } @@ -825,7 +796,7 @@ static void sub_812CC68(u8 taskId, s8 dx, s8 dy) static void sub_812CD3C(void) { u8 r8 = 0; - u16 r6 = sub_812E064(); + u16 r6 = FameCheckerGetCursorY(); if (gSaveBlock1Ptr->fameChecker[sFameCheckerData->unlockedPersons[r6]].unk_0_0 != 2) { sub_812CE9C(); @@ -845,7 +816,7 @@ static void sub_812CD3C(void) static void sub_812CE04(u8 taskId) { s16 *data = gTasks[taskId].data; - u16 r5 = sub_812E064(); + u16 r5 = FameCheckerGetCursorY(); FillWindowPixelRect(2, 0x11, 0, 0, 0xd0, 0x20); StringExpandPlaceholders(gStringVar4, gUnknown_845F6BC[sFameCheckerData->unlockedPersons[r5] * 6 + data[1]]); AddTextPrinterParametrized(2, 2, gStringVar4, sub_80F78A8(), NULL, 2, 1, 3); @@ -895,9 +866,9 @@ static void sub_812CF7C(u8 taskId) if (!gPaletteFade.active) { - if (sFameCheckerData->unk_07_1) + if (sFameCheckerData->inPickMode) { - sub_812D9A8(taskId, sub_812E064()); + sub_812D9A8(taskId, FameCheckerGetCursorY()); FreeSpriteOamMatrix(&gSprites[gTasks[taskId].data[3]]); DestroySprite(&gSprites[gTasks[taskId].data[3]]); } @@ -981,7 +952,7 @@ static bool8 sub_812D1A8(u8 a0) if ((gSaveBlock1Ptr->fameChecker[sFameCheckerData->unlockedPersons[a0]].unk_0_2 >> r6) & 1) { sFameCheckerData->spriteIds[r6] = sub_805EB44( - gUnknown_845F83C[sFameCheckerData->unlockedPersons[a0] * 6 + r6], + sFameCheckerArrayNpcGraphicsIds[sFameCheckerData->unlockedPersons[a0] * 6 + r6], r6, 47 * (r6 % 3) + 0x72, 27 * (r6 / 3) + 0x2F @@ -990,7 +961,7 @@ static bool8 sub_812D1A8(u8 a0) } else { - sFameCheckerData->spriteIds[r6] = sub_812D780( + sFameCheckerData->spriteIds[r6] = PlaceQuestionMarkTile( 47 * (r6 % 3) + 0x72, 27 * (r6 / 3) + 0x1F ); @@ -1000,7 +971,7 @@ static bool8 sub_812D1A8(u8 a0) if (r5 == TRUE) { sFameCheckerData->unk_07_0 = TRUE; - if (sFameCheckerData->unk_07_1) + if (sFameCheckerData->inPickMode) sub_812D0F4(TRUE); else sub_812D0F4(FALSE); @@ -1120,7 +1091,7 @@ static void sub_812D650(void) static bool8 sub_812D6B4(void) { u8 r2; - u8 r1 = sFameCheckerData->unlockedPersons[sub_812E064()]; + u8 r1 = sFameCheckerData->unlockedPersons[FameCheckerGetCursorY()]; for (r2 = 0; r2 < 6; r2++) { if (!((gSaveBlock1Ptr->fameChecker[r1].unk_0_2 >> r2) & 1)) @@ -1152,7 +1123,7 @@ static void sub_812D770(void) FreeSpriteTilesByTag(SPRITETAG_1001); } -static u8 sub_812D780(u8 x, u8 y) +static u8 PlaceQuestionMarkTile(u8 x, u8 y) { u8 spriteId = CreateSprite(&gUnknown_845FC78, x, y, 8); gSprites[spriteId].oam.priority = 2; @@ -1168,7 +1139,7 @@ static void sub_812D7C8(void) static u8 sub_812D7E4(void) { - return CreateSprite(&gUnknown_845FCB8, 0xe2, 0x42, 0); + return CreateSprite(&sSpinningPokeballSpriteTemplate, 0xe2, 0x42, 0); } static void sub_812D800(struct Sprite * sprite) @@ -1212,28 +1183,28 @@ static void sub_812D840(struct Sprite * sprite) static u8 sub_812D888(u8 a0) { u8 r4; - if (a0 == 1) + if (a0 == FAMECHECKER_DAISY) { - r4 = CreateSprite(&gUnknown_845FCE4, 0x94, 0x42, 0); - LoadPalette(gUnknown_845ED60, 0x160, 0x20); + r4 = CreateSprite(&sDaisySpriteTemplate, 0x94, 0x42, 0); + LoadPalette(sDaisySpritePalette, 0x160, 0x20); gSprites[r4].oam.paletteNum = 6; } - else if (a0 == 14) + else if (a0 == FAMECHECKER_MRFUJI) { - r4 = CreateSprite(&gUnknown_845FCFC, 0x94, 0x42, 0); - LoadPalette(gUnknown_845DD20, 0x160, 0x20); + r4 = CreateSprite(&sFujiSpriteTemplate, 0x94, 0x42, 0); + LoadPalette(sFujiSpritePalette, 0x160, 0x20); gSprites[r4].oam.paletteNum = 6; } - else if (a0 == 0) + else if (a0 == FAMECHECKER_OAK) { - r4 = CreateSprite(&gUnknown_845FD14, 0x94, 0x42, 0); - LoadPalette(gUnknown_845F580, 0x160, 0x20); + r4 = CreateSprite(&sOakSpriteTemplate, 0x94, 0x42, 0); + LoadPalette(sOakSpritePalette, 0x160, 0x20); gSprites[r4].oam.paletteNum = 6; } - else if (a0 == 13) + else if (a0 == FAMECHECKER_BILL) { - r4 = CreateSprite(&gUnknown_845FD2C, 0x94, 0x42, 0); - LoadPalette(gUnknown_845E540, 0x160, 0x20); + r4 = CreateSprite(&sBillSpriteTemplate, 0x94, 0x42, 0); + LoadPalette(sBillSpritePalette, 0x160, 0x20); gSprites[r4].oam.paletteNum = 6; } else @@ -1250,12 +1221,12 @@ static void sub_812D9A8(u8 taskId, u16 a1) { s16 * data = gTasks[taskId].data; u16 r1 = a1; - if (a1 == sFameCheckerData->unk_07_2 - 1) + if (a1 == sFameCheckerData->numUnlockedPersons - 1) r1 = a1 - 1; - if ( sFameCheckerData->unlockedPersons[r1] == 1 - || sFameCheckerData->unlockedPersons[r1] == 14 - || sFameCheckerData->unlockedPersons[r1] == 0 - || sFameCheckerData->unlockedPersons[r1] == 13 + if ( sFameCheckerData->unlockedPersons[r1] == FAMECHECKER_DAISY + || sFameCheckerData->unlockedPersons[r1] == FAMECHECKER_MRFUJI + || sFameCheckerData->unlockedPersons[r1] == FAMECHECKER_OAK + || sFameCheckerData->unlockedPersons[r1] == FAMECHECKER_BILL ) DestroySprite(&gSprites[data[2]]); else @@ -1265,7 +1236,7 @@ static void sub_812D9A8(u8 taskId, u16 a1) static void sub_812DA14(u8 a0) { s32 width; - u32 r5 = 6 * sFameCheckerData->unlockedPersons[sub_812E064()] + a0; + u32 r5 = 6 * sFameCheckerData->unlockedPersons[FameCheckerGetCursorY()] + a0; sub_812E094(1); gUnknown_3005EC8 = 1; FillWindowPixelRect(3, 0x00, 0, 0, 0x58, 0x20); @@ -1286,7 +1257,7 @@ static void sub_812DB10(void) static void sub_812DB28(void) { sub_812DB64(); - sFameCheckerData->unk_07_2 = sub_812DEF0(); + sFameCheckerData->numUnlockedPersons = sub_812DEF0(); sFameCheckerData->scrollIndicatorArrowObjectTaskId = ListMenuInit(&gFameChecker_ListMenuTemplate, 0, 0); sub_812DFE4(0); } @@ -1329,11 +1300,11 @@ static void sub_812DBC0(s32 itemIndex, bool8 onInit, struct ListMenu *list) task->data[1] = 0; get_coro_args_x18_x1A(sFameCheckerData->scrollIndicatorArrowObjectTaskId, &sp8, NULL); sFameCheckerData->unk_04 = sp8; - if (itemIndex != sFameCheckerData->unk_07_2 - 1) + if (itemIndex != sFameCheckerData->numUnlockedPersons - 1) { sub_812D174(); sub_812D1A8(itemIndex); - if (sFameCheckerData->unk_07_1) + if (sFameCheckerData->inPickMode) { if (!sFameCheckerData->unk_23_2) { @@ -1358,7 +1329,7 @@ static void sub_812DBC0(s32 itemIndex, bool8 onInit, struct ListMenu *list) else { sub_812DDAC(); - if (sFameCheckerData->unk_07_1) + if (sFameCheckerData->inPickMode) { gSprites[task->data[2]].invisible = TRUE; sFameCheckerData->unk_23_2 = TRUE; @@ -1403,7 +1374,7 @@ static void sub_812DDF0(s32 itemIndex, bool8 onInit) { if (sp14 < sFameCheckerData->unk_0A) sFameCheckerData->unk_0B++; - else if (sp14 > sFameCheckerData->unk_0A && r6 != sFameCheckerData->unk_07_2 - 1) + else if (sp14 > sFameCheckerData->unk_0A && r6 != sFameCheckerData->numUnlockedPersons - 1) sFameCheckerData->unk_0B--; AddTextPrinterParametrized2(0, 2, 8, 14 * sFameCheckerData->unk_0B + 4, 0, 0, &gUnknown_845F5E3, 0, sListMenuItems[sFameCheckerData->unk_09].unk_00); @@ -1472,21 +1443,21 @@ static void sub_812E000(void) 0 }; - if (sFameCheckerData->unk_07_2 > 5) + if (sFameCheckerData->numUnlockedPersons > 5) { sp0.unk_06 = 0; - sp0.unk_08 = sFameCheckerData->unk_07_2 - 5; + sp0.unk_08 = sFameCheckerData->numUnlockedPersons - 5; sFameCheckerData->unk_06 = AddScrollIndicatorArrowPair(&sp0, &sFameCheckerData->unk_04); } } static void sub_812E048(void) { - if (sFameCheckerData->unk_07_2 > 5) + if (sFameCheckerData->numUnlockedPersons > 5) RemoveScrollIndicatorArrowPair(sFameCheckerData->unk_06); } -static u16 sub_812E064(void) +static u16 FameCheckerGetCursorY(void) { u16 sp0, sp2; get_coro_args_x18_x1A(sFameCheckerData->scrollIndicatorArrowObjectTaskId, &sp0, &sp2); -- cgit v1.2.3 From a738e3dca5563355df0b31323a95e017ce9205d6 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 27 Nov 2018 08:44:24 -0500 Subject: More documentation and enums --- src/fame_checker.c | 74 +++++++++++++++++++++++++++--------------------------- 1 file changed, 37 insertions(+), 37 deletions(-) (limited to 'src') diff --git a/src/fame_checker.c b/src/fame_checker.c index 2bff79146..723fffefe 100644 --- a/src/fame_checker.c +++ b/src/fame_checker.c @@ -39,15 +39,15 @@ struct FameCheckerData { MainCallback savedCallback; - u16 unk_04; + u16 listMenuTopIdx; u8 unk_06; - u8 unk_07_0:1; + u8 personHasUnlockedPanels:1; u8 inPickMode:1; u8 numUnlockedPersons:6; u8 scrollIndicatorArrowObjectTaskId; - u8 unk_09; - u8 unk_0A; - u8 unk_0B; + u8 listMenuCurIdx; + u8 listMenuTopIdx2; + u8 listMenuDrawnSelIdx; u8 unlockedPersons[17]; u8 spriteIds[6]; u8 unk_23_0:1; @@ -473,9 +473,9 @@ void UseFameChecker(MainCallback savedCallback) SetVBlankCallback(NULL); sFameCheckerData = AllocZeroed(sizeof(struct FameCheckerData)); sFameCheckerData->savedCallback = savedCallback; - sFameCheckerData->unk_09 = 0; - sFameCheckerData->unk_0A = 0; - sFameCheckerData->unk_0B = 0; + sFameCheckerData->listMenuCurIdx = 0; + sFameCheckerData->listMenuTopIdx2 = 0; + sFameCheckerData->listMenuDrawnSelIdx = 0; sFameCheckerData->unk_23_0 = FALSE; PlaySE(SE_W202); SetMainCallback2(sub_812C3F8); @@ -550,7 +550,7 @@ static void sub_812C3F8(void) SetGpuReg(REG_OFFSET_BLDALPHA, 0x07); SetGpuReg(REG_OFFSET_BLDY, 0x08); SetVBlankCallback(sub_812C380); - sFameCheckerData->unk_04 = 0; + sFameCheckerData->listMenuTopIdx = 0; sub_812E000(); sub_812E178(1, 4); CreateTask(sub_812C664, 0x08); @@ -617,7 +617,7 @@ static void sub_812C694(u8 taskId) if (!IsTextPrinterActive(2) && sub_812D6B4() == TRUE) sub_812CD3C(); } - else if (sFameCheckerData->unk_07_0) + else if (sFameCheckerData->personHasUnlockedPanels) { PlaySE(SE_SELECT); task->data[0] = sub_812D724(task->data[1]); @@ -693,7 +693,7 @@ static void sub_812CA1C(u8 taskId) ChangeBgX(1, 0x000, 0); if (gSprites[task->data[2]].data[0] == 0) { - if (sFameCheckerData->unk_07_0) + if (sFameCheckerData->personHasUnlockedPanels) sub_812D0F4(0); sub_812E178(1, 4); sub_812E178(2, 2); @@ -797,7 +797,7 @@ static void sub_812CD3C(void) { u8 r8 = 0; u16 r6 = FameCheckerGetCursorY(); - if (gSaveBlock1Ptr->fameChecker[sFameCheckerData->unlockedPersons[r6]].unk_0_0 != 2) + if (gSaveBlock1Ptr->fameChecker[sFameCheckerData->unlockedPersons[r6]].pickState != FCPICKSTATE_COLORED) { sub_812CE9C(); sub_812C990(); @@ -949,7 +949,7 @@ static bool8 sub_812D1A8(u8 a0) u8 r6; for (r6 = 0; r6 < 6; r6++) { - if ((gSaveBlock1Ptr->fameChecker[sFameCheckerData->unlockedPersons[a0]].unk_0_2 >> r6) & 1) + if ((gSaveBlock1Ptr->fameChecker[sFameCheckerData->unlockedPersons[a0]].flavorTextFlags >> r6) & 1) { sFameCheckerData->spriteIds[r6] = sub_805EB44( sFameCheckerArrayNpcGraphicsIds[sFameCheckerData->unlockedPersons[a0] * 6 + r6], @@ -970,7 +970,7 @@ static bool8 sub_812D1A8(u8 a0) } if (r5 == TRUE) { - sFameCheckerData->unk_07_0 = TRUE; + sFameCheckerData->personHasUnlockedPanels = TRUE; if (sFameCheckerData->inPickMode) sub_812D0F4(TRUE); else @@ -978,7 +978,7 @@ static bool8 sub_812D1A8(u8 a0) } else { - sFameCheckerData->unk_07_0 = FALSE; + sFameCheckerData->personHasUnlockedPanels = FALSE; sub_812D0F4(TRUE); } return r5; @@ -989,11 +989,11 @@ void ResetFameChecker(void) u8 r4; for (r4 = 0; r4 < 16; r4++) { - gSaveBlock1Ptr->fameChecker[r4].unk_0_0 = 0; - gSaveBlock1Ptr->fameChecker[r4].unk_0_2 = 0; + gSaveBlock1Ptr->fameChecker[r4].pickState = FCPICKSTATE_NO_DRAW; + gSaveBlock1Ptr->fameChecker[r4].flavorTextFlags = 0; gSaveBlock1Ptr->fameChecker[r4].unk_0_E = 0; } - gSaveBlock1Ptr->fameChecker[0].unk_0_0 = 2; + gSaveBlock1Ptr->fameChecker[0].pickState = FCPICKSTATE_COLORED; } static void sub_812D388(void) @@ -1001,10 +1001,10 @@ static void sub_812D388(void) u8 r5, r4; for (r5 = 0; r5 < 16; r5++) { - gSaveBlock1Ptr->fameChecker[r5].unk_0_0 = 2; + gSaveBlock1Ptr->fameChecker[r5].pickState = FCPICKSTATE_COLORED; for (r4 = 0; r4 < 6; r4++) { - gSaveBlock1Ptr->fameChecker[r5].unk_0_2 |= (1 << r4); + gSaveBlock1Ptr->fameChecker[r5].flavorTextFlags |= (1 << r4); } } } @@ -1070,7 +1070,7 @@ static void sub_812D5EC(void) { if (gUnknown_20370C0 < 16 && gSpecialVar_0x8005 < 6) { - gSaveBlock1Ptr->fameChecker[gUnknown_20370C0].unk_0_2 |= (1 << gSpecialVar_0x8005); + gSaveBlock1Ptr->fameChecker[gUnknown_20370C0].flavorTextFlags |= (1 << gSpecialVar_0x8005); gSpecialVar_0x8005 = 1; sub_812D650(); } @@ -1082,9 +1082,9 @@ static void sub_812D650(void) { if (gSpecialVar_0x8005 == 0) return; - if (gSpecialVar_0x8005 == 1 && gSaveBlock1Ptr->fameChecker[gUnknown_20370C0].unk_0_0 == 2) + if (gSpecialVar_0x8005 == 1 && gSaveBlock1Ptr->fameChecker[gUnknown_20370C0].pickState == FCPICKSTATE_COLORED) return; - gSaveBlock1Ptr->fameChecker[gUnknown_20370C0].unk_0_0 = gSpecialVar_0x8005; + gSaveBlock1Ptr->fameChecker[gUnknown_20370C0].pickState = gSpecialVar_0x8005; } } @@ -1094,7 +1094,7 @@ static bool8 sub_812D6B4(void) u8 r1 = sFameCheckerData->unlockedPersons[FameCheckerGetCursorY()]; for (r2 = 0; r2 < 6; r2++) { - if (!((gSaveBlock1Ptr->fameChecker[r1].unk_0_2 >> r2) & 1)) + if (!((gSaveBlock1Ptr->fameChecker[r1].flavorTextFlags >> r2) & 1)) return FALSE; } return TRUE; @@ -1212,7 +1212,7 @@ static u8 sub_812D888(u8 a0) r4 = sub_810C2A4(gUnknown_845F61C[a0], 1, 0x94, 0x42, 6, 0xFFFF); } gSprites[r4].callback = sub_812D840; - if (gSaveBlock1Ptr->fameChecker[a0].unk_0_0 == 1) + if (gSaveBlock1Ptr->fameChecker[a0].pickState == FCPICKSTATE_SILHOUETTE) LoadPalette(gUnknown_845F5C0, 0x160, 0x20); return r4; } @@ -1290,7 +1290,7 @@ static void sub_812DBC0(s32 itemIndex, bool8 onInit, struct ListMenu *list) u8 taskId; u16 r9; sLastMenuIdx = 0; - r9 = sFameCheckerData->unk_0A + sFameCheckerData->unk_0B; + r9 = sFameCheckerData->listMenuTopIdx2 + sFameCheckerData->listMenuDrawnSelIdx; sub_812DDF0(itemIndex, onInit); taskId = FindTaskIdByFunc(sub_812C694); if (taskId != 0xFF) @@ -1299,7 +1299,7 @@ static void sub_812DBC0(s32 itemIndex, bool8 onInit, struct ListMenu *list) PlaySE(SE_SELECT); task->data[1] = 0; get_coro_args_x18_x1A(sFameCheckerData->scrollIndicatorArrowObjectTaskId, &sp8, NULL); - sFameCheckerData->unk_04 = sp8; + sFameCheckerData->listMenuTopIdx = sp8; if (itemIndex != sFameCheckerData->numUnlockedPersons - 1) { sub_812D174(); @@ -1372,16 +1372,16 @@ static void sub_812DDF0(s32 itemIndex, bool8 onInit) AddTextPrinterParametrized2(0, 2, 8, 14 * sp16 + 4, 0, 0, &gUnknown_845F5E6, 0, sListMenuItems[itemIndex].unk_00); if (!onInit) { - if (sp14 < sFameCheckerData->unk_0A) - sFameCheckerData->unk_0B++; - else if (sp14 > sFameCheckerData->unk_0A && r6 != sFameCheckerData->numUnlockedPersons - 1) - sFameCheckerData->unk_0B--; - AddTextPrinterParametrized2(0, 2, 8, 14 * sFameCheckerData->unk_0B + 4, 0, 0, &gUnknown_845F5E3, 0, sListMenuItems[sFameCheckerData->unk_09].unk_00); + if (sp14 < sFameCheckerData->listMenuTopIdx2) + sFameCheckerData->listMenuDrawnSelIdx++; + else if (sp14 > sFameCheckerData->listMenuTopIdx2 && r6 != sFameCheckerData->numUnlockedPersons - 1) + sFameCheckerData->listMenuDrawnSelIdx--; + AddTextPrinterParametrized2(0, 2, 8, 14 * sFameCheckerData->listMenuDrawnSelIdx + 4, 0, 0, &gUnknown_845F5E3, 0, sListMenuItems[sFameCheckerData->listMenuCurIdx].unk_00); } - sFameCheckerData->unk_09 = itemIndex; - sFameCheckerData->unk_0B = sp16; - sFameCheckerData->unk_0A = sp14; + sFameCheckerData->listMenuCurIdx = itemIndex; + sFameCheckerData->listMenuDrawnSelIdx = sp16; + sFameCheckerData->listMenuTopIdx2 = sp14; } static u8 sub_812DEF0(void) @@ -1392,7 +1392,7 @@ static u8 sub_812DEF0(void) for (r6 = 0; r6 < 16; r6++) { u8 r5 = sub_812D0C0(r6); - if (gSaveBlock1Ptr->fameChecker[r5].unk_0_0 != 0) + if (gSaveBlock1Ptr->fameChecker[r5].pickState != FCPICKSTATE_NO_DRAW) { if (gUnknown_845F5EA[r5] < 0xFE00) { @@ -1447,7 +1447,7 @@ static void sub_812E000(void) { sp0.unk_06 = 0; sp0.unk_08 = sFameCheckerData->numUnlockedPersons - 5; - sFameCheckerData->unk_06 = AddScrollIndicatorArrowPair(&sp0, &sFameCheckerData->unk_04); + sFameCheckerData->unk_06 = AddScrollIndicatorArrowPair(&sp0, &sFameCheckerData->listMenuTopIdx); } } -- cgit v1.2.3 From d2bd51c49f0654a7cb37a6aeb0f50b8b2d2470b1 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 27 Nov 2018 16:50:10 -0500 Subject: Rename most assets and functions in fame_checker --- src/fame_checker.c | 1095 +++++++++++++++++++++++++--------------------------- 1 file changed, 534 insertions(+), 561 deletions(-) (limited to 'src') diff --git a/src/fame_checker.c b/src/fame_checker.c index 723fffefe..46c13c387 100644 --- a/src/fame_checker.c +++ b/src/fame_checker.c @@ -27,14 +27,16 @@ #include "text_window.h" #include "fame_checker.h" -#define SPRITETAG_1000 1000 -#define SPRITETAG_1001 1001 -#define SPRITETAG_1002 1002 -#define SPRITETAG_1004 1004 -#define SPRITETAG_1006 1006 -#define SPRITETAG_1007 1007 -#define SPRITETAG_1008 1008 -#define SPRITETAG_1009 1009 +#define SPRITETAG_SELECTOR_CURSOR 1000 +#define SPRITETAG_QUESTION_MARK 1001 +#define SPRITETAG_SPINNING_POKEBALL 1002 +#define SPRITETAG_SCROLL_INDICATORS 1004 +#define SPRITETAG_DAISY 1006 +#define SPRITETAG_FUJI 1007 +#define SPRITETAG_OAK 1008 +#define SPRITETAG_BILL 1009 + +#define FC_NONTRAINER_START 0xFE00 struct FameCheckerData { @@ -44,11 +46,11 @@ struct FameCheckerData u8 personHasUnlockedPanels:1; u8 inPickMode:1; u8 numUnlockedPersons:6; - u8 scrollIndicatorArrowObjectTaskId; + u8 listMenuTaskId; u8 listMenuCurIdx; u8 listMenuTopIdx2; u8 listMenuDrawnSelIdx; - u8 unlockedPersons[17]; + u8 unlockedPersons[NUM_FAMECHECKER_PERSONS + 1]; u8 spriteIds[6]; u8 unk_23_0:1; u8 unk_23_1:1; @@ -65,74 +67,73 @@ static EWRAM_DATA s32 sLastMenuIdx = 0; struct ListMenuTemplate gFameChecker_ListMenuTemplate; u8 gUnknown_3005EC8; -static void sub_812C3F8(void); -static void sub_812C648(void); -static void sub_812C664(u8 taskId); -static void sub_812C694(u8 taskId); -static bool8 sub_812C8F8(u8 taskId); -static void sub_812C990(void); -static void sub_812C9BC(u8 taskId); -static void sub_812CA1C(u8 taskId); -static void sub_812CAD8(u8 taskId); -static void sub_812CC68(u8 taskId, s8 dx, s8 dy); -static void sub_812CD3C(void); -static void sub_812CE04(u8 taskId); -static void sub_812CE9C(void); -static void sub_812CEC0(void); -static void sub_812CEE0(u8 windowId); -static bool8 sub_812CEFC(u8 taskId, u8 objMode); -static void sub_812CF3C(u8 taskId); -static void sub_812CF7C(u8 taskId); -static void sub_812D094(u8 windowId); -static void sub_812D0F4(u8 a0); -static bool8 sub_812D1A8(u8 a0); -static void sub_812D420(void); -static void sub_812D558(void); -static void sub_812D584(void); -static void sub_812D594(void); -static void sub_812D650(void); -static bool8 sub_812D6B4(void); -static void sub_812D70C(void); -static u8 sub_812D724(s16 a0); -static void sub_812D764(struct Sprite *sprite); -static void sub_812D770(void); +static void MainCB2_LoadFameChecker(void); +static void LoadUISpriteSheetsAndPalettes(void); +static void Task_WaitFadeOnInit(u8 taskId); +static void Task_TopMenuHandleInput(u8 taskId); +static bool8 TryExitPickMode(u8 taskId); +static void MessageBoxPrintEmptyText(void); +static void Task_EnterPickMode(u8 taskId); +static void Task_ExitPickMode(u8 taskId); +static void Task_FlavorTextDisplayHandleInput(u8 taskId); +static void FC_MoveSelectorCursor(u8 taskId, s8 dx, s8 dy); +static void GetPickModeText(void); +static void PrintSelectedNameInBrightGreen(u8 taskId); +static void WipeMsgBoxAndTransfer(void); +static void Setup_DrawMsgAndListBoxes(void); +static void FC_PutWindowTilemapAndCopyWindowToVramMode3(u8 windowId); +static bool8 SetMessageSelectorIconObjMode(u8 taskId, u8 objMode); +static void Task_StartToCloseFameChecker(u8 taskId); +static void Task_DestroyAssetsAndCloseFameChecker(u8 taskId); +static void FC_DestroyWindow(u8 windowId); +static void PrintUIHelp(u8 a0); +static bool8 CreateAllFlavorTextIcons(u8 a0); +static void FCSetup_ClearVideoRegisters(void); +static void FCSetup_ResetTasksAndSpriteResources(void); +static void FCSetup_TurnOnDisplay(void); +static void FCSetup_ResetBGCoords(void); +static bool8 HasUnlockedAllFlavorTextsForCurrentPerson(void); +static void FreeSelectionCursorSpriteResources(void); +static u8 CreateFlavorTextIconSelectorCursorSprite(s16 a0); +static void SpriteCB_DestroyFlavorTextIconSelectorCursor(struct Sprite *sprite); +static void FreeQuestionMarkSpriteResources(void); static u8 PlaceQuestionMarkTile(u8, u8); -static void sub_812D7C8(void); -static u8 sub_812D7E4(void); -static void sub_812D800(struct Sprite *sprite); -static void sub_812D814(void); -static u8 sub_812D888(u8 a0); -static void sub_812D9A8(u8 a0, u16 a1); -static void sub_812DA14(u8 a0); +static void FreeSpinningPokeballSpriteResources(void); +static u8 CreateSpinningPokeballSprite(void); +static void SpriteCB_DestroySpinningPokeball(struct Sprite *sprite); +static void FreeNonTrainerPicTiles(void); +static u8 CreatePersonPicSprite(u8 a0); +static void DestroyPersonPicSprite(u8 a0, u16 a1); +static void UpdateIconDescriptionBox(u8 a0); static void sub_812DB10(void); -static void sub_812DB28(void); -static void sub_812D840(struct Sprite * sprite); -static void sub_812DB64(void); -static void sub_812DBC0(s32, bool8, struct ListMenu *); +static void FC_CreateListMenu(void); +static void SpriteCB_FCSpinningPokeball(struct Sprite * sprite); +static void InitListMenuTemplate(void); +static void FC_MoveCursorFunc(s32, bool8, struct ListMenu *); static void sub_812DD50(u8 taskId); -static void sub_812DDAC(void); -static void sub_812DDF0(s32 itemIndex, bool8 onInit); -static u8 sub_812DEF0(void); -static void sub_812DFE4(u8); -static void sub_812E000(void); -static void sub_812E048(void); +static void PrintCancelDescription(void); +static void FC_DoMoveCursor(s32 itemIndex, bool8 onInit); +static u8 FC_PopulateListMenu(void); +static void FC_PutWindowTilemapAndCopyWindowToVramMode3_2(u8 windowId); +static void FC_CreateScrollIndicatorArrowPair(void); +static void FreeListMenuSelectorArrowPairResources(void); static u16 FameCheckerGetCursorY(void); -static void sub_812E094(u8); +static void FlipBitUnk23_0(bool8); static void sub_812E110(u8 taskId); static void sub_812E178(u8 a0, s16 a1); -static void sub_812E4A4(u8 a0); - -extern const u8 gUnknown_84161C1[]; -extern const u8 gUnknown_841623B[]; -extern const u8 gUnknown_84181C3[]; -extern const u8 gUnknown_84181E4[]; -extern const u8 gUnknown_841E5A4[]; // "{KEYGFX_START_BUTTON}PICK {KEYGFX_DPAD_UP_DOWN}SELECT {KEYGFX_A_BUTTON}OK$" -extern const u8 gUnknown_841E5B9[]; // "{KEYGFX_START_BUTTON}PICK {KEYGFX_DPAD_UP_DOWN}SELECT {KEYGFX_B_BUTTON}CANCEL$" -extern const u8 gUnknown_841E5D2[]; // "{KEYGFX_DPAD_ANY}PICK {KEYGFX_A_BUTTON}READ {UNKNOWN_F8 0x01}CANCEL$" -extern const u8 gUnknown_841E5E9[]; // "OAK$" -extern const u8 gUnknown_841E5ED[]; // "DAISY$" -extern const u8 gUnknown_841E5F3[]; // "BILL$" -extern const u8 gUnknown_841E5F8[]; // "FUJI$" +static void PlaceListMenuCursor(bool8 a0); + +extern const u8 gFameCheckerText_Cancel[]; +extern const u8 gFameCheckerText_ListMenuCursor[]; +extern const u8 gFameCheckerText_FameCheckerWillBeClosed[]; +extern const u8 gFameCheckerText_ClearTextbox[]; +extern const u8 gFameCheckerText_MainScreenUI[]; // "{KEYGFX_START_BUTTON}PICK {KEYGFX_DPAD_UP_DOWN}SELECT {KEYGFX_A_BUTTON}OK$" +extern const u8 gFameCheckerText_PickScreenUI[]; // "{KEYGFX_START_BUTTON}PICK {KEYGFX_DPAD_UP_DOWN}SELECT {KEYGFX_B_BUTTON}CANCEL$" +extern const u8 gFameCheckerText_FlavorTextUI[]; // "{KEYGFX_DPAD_ANY}PICK {KEYGFX_A_BUTTON}READ {UNKNOWN_F8 0x01}CANCEL$" +extern const u8 gFameCheckerOakName[]; // "OAK$" +extern const u8 gFameCheckerDaisyName[]; // "DAISY$" +extern const u8 gFameCheckerBillName[]; // "BILL$" +extern const u8 gFameCheckerMrFujiName[]; // "FUJI$" static const u16 sFameCheckerTilemap[] = INCBIN_U16("data/fame_checker/tilemap_845c600.bin"); static const u8 sQuestionMarkSpriteGfx[] = INCBIN_U8("data/fame_checker/img_845ce00.4bpp"); @@ -149,95 +150,65 @@ static const u16 sDaisySpritePalette[] = INCBIN_U16("data/fame_checker/pal_845ed static const u8 sOakSpriteGfx[] = INCBIN_U8("data/fame_checker/img_845ed80.4bpp"); static const u16 sOakSpritePalette[] = INCBIN_U16("data/fame_checker/pal_845f580.gbapal"); static const u16 gUnknown_845F5A0[] = INCBIN_U16("data/fame_checker/pal_845f5a0.gbapal"); -static const u16 gUnknown_845F5C0[] = INCBIN_U16("data/fame_checker/pal_845f5c0.gbapal"); - -static const struct TextColor gUnknown_845F5E0 = {0x00, 0x01, 0x02}; -static const struct TextColor gUnknown_845F5E3 = {0x00, 0x02, 0x03}; -static const struct TextColor gUnknown_845F5E6 = {0x00, 0x06, 0x07}; - -static const u16 gUnknown_845F5EA[] = { - 0xfe00, - 0xfe01, - 0x019e, - 0x019f, - 0x01a0, - 0x01a1, - 0x01a2, - 0x01a4, - 0x01a3, - 0x019a, - 0x019b, - 0x019c, - 0x019d, - 0xfe02, - 0xfe03, - 0x015c +static const u16 sSilhouettePalette[] = INCBIN_U16("data/fame_checker/pal_845f5c0.gbapal"); + +static const struct TextColor gUnknown_845F5E0 = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY}; +static const struct TextColor gUnknown_845F5E3 = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GREY, 0x03}; +static const struct TextColor gUnknown_845F5E6 = {TEXT_COLOR_TRANSPARENT, 0x06, 0x07}; + +static const u16 sTrainerIdxs[] = { + FC_NONTRAINER_START + 0, // OAK + FC_NONTRAINER_START + 1, // DAISY + 0x019e, // BROCK + 0x019f, // MISTY + 0x01a0, // LTSURGE + 0x01a1, // ERIKA + 0x01a2, // KOGA + 0x01a4, // SABRINA + 0x01a3, // BLAINE + 0x019a, // LORELEI + 0x019b, // BRUNO + 0x019c, // AGATHA + 0x019d, // LANCE + FC_NONTRAINER_START + 2, // BILL + FC_NONTRAINER_START + 3, // MRFUJI + 0x015c // GIOVANNI }; -static const u8 *const gUnknown_845F60C[] = { - gUnknown_841E5E9, - gUnknown_841E5ED, - gUnknown_841E5F3, - gUnknown_841E5F8 +static const u8 *const sNonTrainerNamePointers[] = { + gFameCheckerOakName, + gFameCheckerDaisyName, + gFameCheckerBillName, + gFameCheckerMrFujiName }; -static const u8 gUnknown_845F61C[] = { +static const u8 sFameCheckerTrainerPicIdxs[] = { 0x56, 0x54, 0x74, 0x75, 0x76, 0x77, 0x78, 0x7a, 0x79, 0x70, 0x71, 0x72, 0x73, 0x64, 0x7b, 0x6c, - 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00 + 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00 // these values are unused }; -static const u8 *const gUnknown_845F63C[] = { - gUnknown_81B0188, - gUnknown_81B0251, - gUnknown_81B030F, - gUnknown_81B03B3, - gUnknown_81B0446, - gUnknown_81B0504, - gUnknown_81B05C2, - gUnknown_81B0667, - gUnknown_81B06FB, - gUnknown_81B079F, - gUnknown_81B0845, - gUnknown_81B08EE, - gUnknown_81B097F, - gUnknown_81B0A45, - gUnknown_81B0AFF, - gUnknown_81B0BA6, - gUnknown_81B0198, - gUnknown_81B025D, - gUnknown_81B031B, - gUnknown_81B03BF, - gUnknown_81B0456, - gUnknown_81B0510, - gUnknown_81B05CD, - gUnknown_81B0675, - gUnknown_81B0708, - gUnknown_81B07AD, - gUnknown_81B0851, - gUnknown_81B08FB, - gUnknown_81B098B, - gUnknown_81B0A50, - gUnknown_81B0B0E, - gUnknown_81B0BB5 +static const u8 *const sFameCheckerNameAndQuotesPointers[] = { + gFameCheckerPersonName_ProfOak, gFameCheckerPersonName_Daisy, gFameCheckerPersonName_Brock, gFameCheckerPersonName_Misty, gFameCheckerPersonName_LtSurge, gFameCheckerPersonName_Erika, gFameCheckerPersonName_Koga, gFameCheckerPersonName_Sabrina, gFameCheckerPersonName_Blaine, gFameCheckerPersonName_Lorelei, gFameCheckerPersonName_Bruno, gFameCheckerPersonName_Agatha, gFameCheckerPersonName_Lance, gFameCheckerPersonName_Bill, gFameCheckerPersonName_MrFuji, gFameCheckerPersonName_Giovanni, + gFameCheckerPersonQuote_ProfOak, gFameCheckerPersonQuote_Daisy, gFameCheckerPersonQuote_Brock, gFameCheckerPersonQuote_Misty, gFameCheckerPersonQuote_LtSurge, gFameCheckerPersonQuote_Erika, gFameCheckerPersonQuote_Koga, gFameCheckerPersonQuote_Sabrina, gFameCheckerPersonQuote_Blaine, gFameCheckerPersonQuote_Lorelei, gFameCheckerPersonQuote_Bruno, gFameCheckerPersonQuote_Agatha, gFameCheckerPersonQuote_Lance, gFameCheckerPersonQuote_Bill, gFameCheckerPersonQuote_MrFuji, gFameCheckerPersonQuote_Giovanni }; -static const u8 *const gUnknown_845F6BC[] = { - gUnknown_81AD106, gUnknown_81AD145, gUnknown_81AD1BB, gUnknown_81AD258, gUnknown_81AD2B9, gUnknown_81AD377, - gUnknown_81AD40C, gUnknown_81AD4AE, gUnknown_81AD516, gUnknown_81AD5A7, gUnknown_81AD608, gUnknown_81AD69F, - gUnknown_81AD705, gUnknown_81AD771, gUnknown_81AD840, gUnknown_81AD908, gUnknown_81AD99A, gUnknown_81ADA27, - gUnknown_81ADA91, gUnknown_81ADAF6, gUnknown_81ADB5A, gUnknown_81ADBD9, gUnknown_81ADC72, gUnknown_81ADCEB, - gUnknown_81ADD3C, gUnknown_81ADDA7, gUnknown_81ADE0B, gUnknown_81ADE82, gUnknown_81ADEEC, gUnknown_81ADF6A, - gUnknown_81AE009, gUnknown_81AE072, gUnknown_81AE0F3, gUnknown_81AE15B, gUnknown_81AE1E5, gUnknown_81AE247, - gUnknown_81AE2B6, gUnknown_81AE31D, gUnknown_81AE37D, gUnknown_81AE407, gUnknown_81AE48D, gUnknown_81AE51B, - gUnknown_81AE5E8, gUnknown_81AE656, gUnknown_81AE6D7, gUnknown_81AE762, gUnknown_81AE7CB, gUnknown_81AE841, - gUnknown_81AE89E, gUnknown_81AE90A, gUnknown_81AE990, gUnknown_81AEA59, gUnknown_81AEAEE, gUnknown_81AEB69, - gUnknown_81AEBDF, gUnknown_81AEC28, gUnknown_81AEC82, gUnknown_81AED27, gUnknown_81AEDAA, gUnknown_81AEE51, - gUnknown_81AEF25, gUnknown_81AEF6C, gUnknown_81AEFC6, gUnknown_81AF04C, gUnknown_81AF0F0, gUnknown_81AF19A, - gUnknown_81AF200, gUnknown_81AF248, gUnknown_81AF2B7, gUnknown_81AF34E, gUnknown_81AF3BE, gUnknown_81AF47C, - gUnknown_81AF4FD, gUnknown_81AF567, gUnknown_81AF641, gUnknown_81AF6BA, gUnknown_81AF758, gUnknown_81AF7CB, - gUnknown_81AF83E, gUnknown_81AF8CA, gUnknown_81AF929, gUnknown_81AF998, gUnknown_81AFA20, gUnknown_81AFAB9, - gUnknown_81AFB0C, gUnknown_81AFB76, gUnknown_81AFC38, gUnknown_81AFCE9, gUnknown_81AFD49, gUnknown_81AFDC4, - gUnknown_81AFE68, gUnknown_81AFF23, gUnknown_81AFFA8, gUnknown_81B0022, gUnknown_81B00A6, gUnknown_81B0106 +static const u8 *const sFameCheckerFlavorTextPointers[] = { + gFameCheckerFlavorText_ProfOak0, gFameCheckerFlavorText_ProfOak1, gFameCheckerFlavorText_ProfOak2, gFameCheckerFlavorText_ProfOak3, gFameCheckerFlavorText_ProfOak4, gFameCheckerFlavorText_ProfOak5, + gFameCheckerFlavorText_Daisy0, gFameCheckerFlavorText_Daisy1, gFameCheckerFlavorText_Daisy2, gFameCheckerFlavorText_Daisy3, gFameCheckerFlavorText_Daisy4, gFameCheckerFlavorText_Daisy5, + gFameCheckerFlavorText_Brock0, gFameCheckerFlavorText_Brock1, gFameCheckerFlavorText_Brock2, gFameCheckerFlavorText_Brock3, gFameCheckerFlavorText_Brock4, gFameCheckerFlavorText_Brock5, + gFameCheckerFlavorText_Misty0, gFameCheckerFlavorText_Misty1, gFameCheckerFlavorText_Misty2, gFameCheckerFlavorText_Misty3, gFameCheckerFlavorText_Misty4, gFameCheckerFlavorText_Misty5, + gFameCheckerFlavorText_LtSurge0, gFameCheckerFlavorText_LtSurge1, gFameCheckerFlavorText_LtSurge2, gFameCheckerFlavorText_LtSurge3, gFameCheckerFlavorText_LtSurge4, gFameCheckerFlavorText_LtSurge5, + gFameCheckerFlavorText_Erika0, gFameCheckerFlavorText_Erika1, gFameCheckerFlavorText_Erika2, gFameCheckerFlavorText_Erika3, gFameCheckerFlavorText_Erika4, gFameCheckerFlavorText_Erika5, + gFameCheckerFlavorText_Koga0, gFameCheckerFlavorText_Koga1, gFameCheckerFlavorText_Koga2, gFameCheckerFlavorText_Koga3, gFameCheckerFlavorText_Koga4, gFameCheckerFlavorText_Koga5, + gFameCheckerFlavorText_Sabrina0, gFameCheckerFlavorText_Sabrina1, gFameCheckerFlavorText_Sabrina2, gFameCheckerFlavorText_Sabrina3, gFameCheckerFlavorText_Sabrina4, gFameCheckerFlavorText_Sabrina5, + gFameCheckerFlavorText_Blaine0, gFameCheckerFlavorText_Blaine1, gFameCheckerFlavorText_Blaine2, gFameCheckerFlavorText_Blaine3, gFameCheckerFlavorText_Blaine4, gFameCheckerFlavorText_Blaine5, + gFameCheckerFlavorText_Lorelei0, gFameCheckerFlavorText_Lorelei1, gFameCheckerFlavorText_Lorelei2, gFameCheckerFlavorText_Lorelei3, gFameCheckerFlavorText_Lorelei4, gFameCheckerFlavorText_Lorelei5, + gFameCheckerFlavorText_Bruno0, gFameCheckerFlavorText_Bruno1, gFameCheckerFlavorText_Bruno2, gFameCheckerFlavorText_Bruno3, gFameCheckerFlavorText_Bruno4, gFameCheckerFlavorText_Bruno5, + gFameCheckerFlavorText_Agatha0, gFameCheckerFlavorText_Agatha1, gFameCheckerFlavorText_Agatha2, gFameCheckerFlavorText_Agatha3, gFameCheckerFlavorText_Agatha4, gFameCheckerFlavorText_Agatha5, + gFameCheckerFlavorText_Lance0, gFameCheckerFlavorText_Lance1, gFameCheckerFlavorText_Lance2, gFameCheckerFlavorText_Lance3, gFameCheckerFlavorText_Lance4, gFameCheckerFlavorText_Lance5, + gFameCheckerFlavorText_Bill0, gFameCheckerFlavorText_Bill1, gFameCheckerFlavorText_Bill2, gFameCheckerFlavorText_Bill3, gFameCheckerFlavorText_Bill4, gFameCheckerFlavorText_Bill5, + gFameCheckerFlavorText_MrFuji0, gFameCheckerFlavorText_MrFuji1, gFameCheckerFlavorText_MrFuji2, gFameCheckerFlavorText_MrFuji3, gFameCheckerFlavorText_MrFuji4, gFameCheckerFlavorText_MrFuji5, + gFameCheckerFlavorText_Giovanni0, gFameCheckerFlavorText_Giovanni1, gFameCheckerFlavorText_Giovanni2, gFameCheckerFlavorText_Giovanni3, gFameCheckerFlavorText_Giovanni4, gFameCheckerFlavorText_Giovanni5 }; static const u8 sFameCheckerArrayNpcGraphicsIds[] = { @@ -259,62 +230,62 @@ static const u8 sFameCheckerArrayNpcGraphicsIds[] = { 0x57, 0x37, 0x37, 0x57, 0x5b, 0x37 }; -static const u8 *const gUnknown_845F89C[] = { - gUnknown_81B0C45, gUnknown_81B0C51, gUnknown_81B0C5E, gUnknown_81B0C6B, gUnknown_81B0C79, gUnknown_81B0C88, - gUnknown_81B0C95, gUnknown_81B0CA2, gUnknown_81B0CB1, gUnknown_81B0CC1, gUnknown_81B0CCF, gUnknown_81B0CDF, - gUnknown_81B0CEB, gUnknown_81B0CF7, gUnknown_81B0D02, gUnknown_81B0D0E, gUnknown_81B0D16, gUnknown_81B0D1F, - gUnknown_81B0D2D, gUnknown_81B0D3B, gUnknown_81B0D48, gUnknown_81B0D55, gUnknown_81B0D65, gUnknown_81B0D73, - gUnknown_81B0D81, gUnknown_81B0D90, gUnknown_81B0D9E, gUnknown_81B0DAC, gUnknown_81B0DBA, gUnknown_81B0DC8, - gUnknown_81B0DD7, gUnknown_81B0DE4, gUnknown_81B0DF0, gUnknown_81B0DFC, gUnknown_81B0E08, gUnknown_81B0E14, - gUnknown_81B0E24, gUnknown_81B0E31, gUnknown_81B0E3D, gUnknown_81B0E49, gUnknown_81B0E56, gUnknown_81B0E63, - gUnknown_81B0E6F, gUnknown_81B0E7C, gUnknown_81B0E89, gUnknown_81B0E95, gUnknown_81B0EA1, gUnknown_81B0EAE, - gUnknown_81B0EBA, gUnknown_81B0ECA, gUnknown_81B0ED7, gUnknown_81B0EE4, gUnknown_81B0EF4, gUnknown_81B0F01, - gUnknown_81B0F11, gUnknown_81B0F20, gUnknown_81B0F2F, gUnknown_81B0F3B, gUnknown_81B0F47, gUnknown_81B0F53, - gUnknown_81B0F5F, gUnknown_81B0F6E, gUnknown_81B0F7D, gUnknown_81B0F8A, gUnknown_81B0F94, gUnknown_81B0F9F, - gUnknown_81B0FAE, gUnknown_81B0FBD, gUnknown_81B0FCC, gUnknown_81B0FDB, gUnknown_81B0FE8, gUnknown_81B0FF7, - gUnknown_81B1002, gUnknown_81B1011, gUnknown_81B1020, gUnknown_81B102D, gUnknown_81B103B, gUnknown_81B104A, - gUnknown_81B1059, gUnknown_81B1067, gUnknown_81B1075, gUnknown_81B1082, gUnknown_81B108D, gUnknown_81B1098, - gUnknown_81B10A3, gUnknown_81B10B1, gUnknown_81B10BF, gUnknown_81B10CD, gUnknown_81B10DB, gUnknown_81B10E8, - gUnknown_81B10F8, gUnknown_81B1107, gUnknown_81B1111, gUnknown_81B111B, gUnknown_81B1128, gUnknown_81B1135 +static const u8 *const sFlavorTextOriginLocationTexts[] = { + gFameCheckerFlavorTextOriginLocation_ProfOak0, gFameCheckerFlavorTextOriginLocation_ProfOak1, gFameCheckerFlavorTextOriginLocation_ProfOak2, gFameCheckerFlavorTextOriginLocation_ProfOak3, gFameCheckerFlavorTextOriginLocation_ProfOak4, gFameCheckerFlavorTextOriginLocation_ProfOak5, + gFameCheckerFlavorTextOriginLocation_Daisy0, gFameCheckerFlavorTextOriginLocation_Daisy1, gFameCheckerFlavorTextOriginLocation_Daisy2, gFameCheckerFlavorTextOriginLocation_Daisy3, gFameCheckerFlavorTextOriginLocation_Daisy4, gFameCheckerFlavorTextOriginLocation_Daisy5, + gFameCheckerFlavorTextOriginLocation_Brock0, gFameCheckerFlavorTextOriginLocation_Brock1, gFameCheckerFlavorTextOriginLocation_Brock2, gFameCheckerFlavorTextOriginLocation_Brock3, gFameCheckerFlavorTextOriginLocation_Brock4, gFameCheckerFlavorTextOriginLocation_Brock5, + gFameCheckerFlavorTextOriginLocation_Misty0, gFameCheckerFlavorTextOriginLocation_Misty1, gFameCheckerFlavorTextOriginLocation_Misty2, gFameCheckerFlavorTextOriginLocation_Misty3, gFameCheckerFlavorTextOriginLocation_Misty4, gFameCheckerFlavorTextOriginLocation_Misty5, + gFameCheckerFlavorTextOriginLocation_LtSurge0, gFameCheckerFlavorTextOriginLocation_LtSurge1, gFameCheckerFlavorTextOriginLocation_LtSurge2, gFameCheckerFlavorTextOriginLocation_LtSurge3, gFameCheckerFlavorTextOriginLocation_LtSurge4, gFameCheckerFlavorTextOriginLocation_LtSurge5, + gFameCheckerFlavorTextOriginLocation_Erika0, gFameCheckerFlavorTextOriginLocation_Erika1, gFameCheckerFlavorTextOriginLocation_Erika2, gFameCheckerFlavorTextOriginLocation_Erika3, gFameCheckerFlavorTextOriginLocation_Erika4, gFameCheckerFlavorTextOriginLocation_Erika5, + gFameCheckerFlavorTextOriginLocation_Koga0, gFameCheckerFlavorTextOriginLocation_Koga1, gFameCheckerFlavorTextOriginLocation_Koga2, gFameCheckerFlavorTextOriginLocation_Koga3, gFameCheckerFlavorTextOriginLocation_Koga4, gFameCheckerFlavorTextOriginLocation_Koga5, + gFameCheckerFlavorTextOriginLocation_Sabrina0, gFameCheckerFlavorTextOriginLocation_Sabrina1, gFameCheckerFlavorTextOriginLocation_Sabrina2, gFameCheckerFlavorTextOriginLocation_Sabrina3, gFameCheckerFlavorTextOriginLocation_Sabrina4, gFameCheckerFlavorTextOriginLocation_Sabrina5, + gFameCheckerFlavorTextOriginLocation_Blaine0, gFameCheckerFlavorTextOriginLocation_Blaine1, gFameCheckerFlavorTextOriginLocation_Blaine2, gFameCheckerFlavorTextOriginLocation_Blaine3, gFameCheckerFlavorTextOriginLocation_Blaine4, gFameCheckerFlavorTextOriginLocation_Blaine5, + gFameCheckerFlavorTextOriginLocation_Lorelei0, gFameCheckerFlavorTextOriginLocation_Lorelei1, gFameCheckerFlavorTextOriginLocation_Lorelei2, gFameCheckerFlavorTextOriginLocation_Lorelei3, gFameCheckerFlavorTextOriginLocation_Lorelei4, gFameCheckerFlavorTextOriginLocation_Lorelei5, + gFameCheckerFlavorTextOriginLocation_Bruno0, gFameCheckerFlavorTextOriginLocation_Bruno1, gFameCheckerFlavorTextOriginLocation_Bruno2, gFameCheckerFlavorTextOriginLocation_Bruno3, gFameCheckerFlavorTextOriginLocation_Bruno4, gFameCheckerFlavorTextOriginLocation_Bruno5, + gFameCheckerFlavorTextOriginLocation_Agatha0, gFameCheckerFlavorTextOriginLocation_Agatha1, gFameCheckerFlavorTextOriginLocation_Agatha2, gFameCheckerFlavorTextOriginLocation_Agatha3, gFameCheckerFlavorTextOriginLocation_Agatha4, gFameCheckerFlavorTextOriginLocation_Agatha5, + gFameCheckerFlavorTextOriginLocation_Lance0, gFameCheckerFlavorTextOriginLocation_Lance1, gFameCheckerFlavorTextOriginLocation_Lance2, gFameCheckerFlavorTextOriginLocation_Lance3, gFameCheckerFlavorTextOriginLocation_Lance4, gFameCheckerFlavorTextOriginLocation_Lance5, + gFameCheckerFlavorTextOriginLocation_Bill0, gFameCheckerFlavorTextOriginLocation_Bill1, gFameCheckerFlavorTextOriginLocation_Bill2, gFameCheckerFlavorTextOriginLocation_Bill3, gFameCheckerFlavorTextOriginLocation_Bill4, gFameCheckerFlavorTextOriginLocation_Bill5, + gFameCheckerFlavorTextOriginLocation_MrFuji0, gFameCheckerFlavorTextOriginLocation_MrFuji1, gFameCheckerFlavorTextOriginLocation_MrFuji2, gFameCheckerFlavorTextOriginLocation_MrFuji3, gFameCheckerFlavorTextOriginLocation_MrFuji4, gFameCheckerFlavorTextOriginLocation_MrFuji5, + gFameCheckerFlavorTextOriginLocation_Giovanni0, gFameCheckerFlavorTextOriginLocation_Giovanni1, gFameCheckerFlavorTextOriginLocation_Giovanni2, gFameCheckerFlavorTextOriginLocation_Giovanni3, gFameCheckerFlavorTextOriginLocation_Giovanni4, gFameCheckerFlavorTextOriginLocation_Giovanni5 }; -static const u8 *const gUnknown_845FA1C[] = { - gUnknown_81B1146, gUnknown_81B114B, gUnknown_81B1155, gUnknown_81B115A, gUnknown_81B116A, gUnknown_81B1171, - gUnknown_81B1176, gUnknown_81B117B, gUnknown_81B1181, gUnknown_81B1185, gUnknown_81B1195, gUnknown_81B119E, - gUnknown_81B11AE, gUnknown_81B11B3, gUnknown_81B11B9, gUnknown_81B11C3, gUnknown_81B11C7, gUnknown_81B11CB, - gUnknown_81B11DB, gUnknown_81B11E0, gUnknown_81B11E6, gUnknown_81B11EB, gUnknown_81B11F5, gUnknown_81B11FA, - gUnknown_81B120A, gUnknown_81B120F, gUnknown_81B1219, gUnknown_81B1220, gUnknown_81B1227, gUnknown_81B122E, - gUnknown_81B123E, gUnknown_81B1243, gUnknown_81B1249, gUnknown_81B124E, gUnknown_81B1254, gUnknown_81B125A, - gUnknown_81B126A, gUnknown_81B126F, gUnknown_81B1274, gUnknown_81B1279, gUnknown_81B1281, gUnknown_81B1291, - gUnknown_81B1295, gUnknown_81B129A, gUnknown_81B12A4, gUnknown_81B12AC, gUnknown_81B12B4, gUnknown_81B12C4, - gUnknown_81B12CA, gUnknown_81B12CF, gUnknown_81B12D6, gUnknown_81B12DC, gUnknown_81B12E2, gUnknown_81B12E8, - gUnknown_81B12F8, gUnknown_81B1300, gUnknown_81B1308, gUnknown_81B1310, gUnknown_81B1320, gUnknown_81B132C, - gUnknown_81B1335, gUnknown_81B133B, gUnknown_81B1341, gUnknown_81B1351, gUnknown_81B1359, gUnknown_81B135F, - gUnknown_81B1367, gUnknown_81B136E, gUnknown_81B1376, gUnknown_81B137E, gUnknown_81B138E, gUnknown_81B1395, - gUnknown_81B139E, gUnknown_81B13A4, gUnknown_81B13AA, gUnknown_81B13B0, gUnknown_81B13BC, gUnknown_81B13CC, - gUnknown_81B13D6, gUnknown_81B13D9, gUnknown_81B13E4, gUnknown_81B13EC, gUnknown_81B13F2, gUnknown_81B13F8, - gUnknown_81B13FE, gUnknown_81B140A, gUnknown_81B1416, gUnknown_81B141F, gUnknown_81B1423, gUnknown_81B1429, - gUnknown_81B1439, gUnknown_81B1442, gUnknown_81B144C, gUnknown_81B1456, gUnknown_81B145F, gUnknown_81B1463 +static const u8 *const sFlavorTextOriginObjectNameTexts[] = { + gFameCheckerFlavorTextOriginObjectName_ProfOak0, gFameCheckerFlavorTextOriginObjectName_ProfOak1, gFameCheckerFlavorTextOriginObjectName_ProfOak2, gFameCheckerFlavorTextOriginObjectName_ProfOak3, gFameCheckerFlavorTextOriginObjectName_ProfOak4, gFameCheckerFlavorTextOriginObjectName_ProfOak5, + gFameCheckerFlavorTextOriginObjectName_Daisy0, gFameCheckerFlavorTextOriginObjectName_Daisy1, gFameCheckerFlavorTextOriginObjectName_Daisy2, gFameCheckerFlavorTextOriginObjectName_Daisy3, gFameCheckerFlavorTextOriginObjectName_Daisy4, gFameCheckerFlavorTextOriginObjectName_Daisy5, + gFameCheckerFlavorTextOriginObjectName_Brock0, gFameCheckerFlavorTextOriginObjectName_Brock1, gFameCheckerFlavorTextOriginObjectName_Brock2, gFameCheckerFlavorTextOriginObjectName_Brock3, gFameCheckerFlavorTextOriginObjectName_Brock4, gFameCheckerFlavorTextOriginObjectName_Brock5, + gFameCheckerFlavorTextOriginObjectName_Misty0, gFameCheckerFlavorTextOriginObjectName_Misty1, gFameCheckerFlavorTextOriginObjectName_Misty2, gFameCheckerFlavorTextOriginObjectName_Misty3, gFameCheckerFlavorTextOriginObjectName_Misty4, gFameCheckerFlavorTextOriginObjectName_Misty5, + gFameCheckerFlavorTextOriginObjectName_LtSurge0, gFameCheckerFlavorTextOriginObjectName_LtSurge1, gFameCheckerFlavorTextOriginObjectName_LtSurge2, gFameCheckerFlavorTextOriginObjectName_LtSurge3, gFameCheckerFlavorTextOriginObjectName_LtSurge4, gFameCheckerFlavorTextOriginObjectName_LtSurge5, + gFameCheckerFlavorTextOriginObjectName_Erika0, gFameCheckerFlavorTextOriginObjectName_Erika1, gFameCheckerFlavorTextOriginObjectName_Erika2, gFameCheckerFlavorTextOriginObjectName_Erika3, gFameCheckerFlavorTextOriginObjectName_Erika4, gFameCheckerFlavorTextOriginObjectName_Erika5, + gFameCheckerFlavorTextOriginObjectName_Koga0, gFameCheckerFlavorTextOriginObjectName_Koga1, gFameCheckerFlavorTextOriginObjectName_Koga2, gFameCheckerFlavorTextOriginObjectName_Koga3, gFameCheckerFlavorTextOriginObjectName_Koga4, gFameCheckerFlavorTextOriginObjectName_Koga5, + gFameCheckerFlavorTextOriginObjectName_Sabrina0, gFameCheckerFlavorTextOriginObjectName_Sabrina1, gFameCheckerFlavorTextOriginObjectName_Sabrina2, gFameCheckerFlavorTextOriginObjectName_Sabrina3, gFameCheckerFlavorTextOriginObjectName_Sabrina4, gFameCheckerFlavorTextOriginObjectName_Sabrina5, + gFameCheckerFlavorTextOriginObjectName_Blaine0, gFameCheckerFlavorTextOriginObjectName_Blaine1, gFameCheckerFlavorTextOriginObjectName_Blaine2, gFameCheckerFlavorTextOriginObjectName_Blaine3, gFameCheckerFlavorTextOriginObjectName_Blaine4, gFameCheckerFlavorTextOriginObjectName_Blaine5, + gFameCheckerFlavorTextOriginObjectName_Lorelei0, gFameCheckerFlavorTextOriginObjectName_Lorelei1, gFameCheckerFlavorTextOriginObjectName_Lorelei2, gFameCheckerFlavorTextOriginObjectName_Lorelei3, gFameCheckerFlavorTextOriginObjectName_Lorelei4, gFameCheckerFlavorTextOriginObjectName_Lorelei5, + gFameCheckerFlavorTextOriginObjectName_Bruno0, gFameCheckerFlavorTextOriginObjectName_Bruno1, gFameCheckerFlavorTextOriginObjectName_Bruno2, gFameCheckerFlavorTextOriginObjectName_Bruno3, gFameCheckerFlavorTextOriginObjectName_Bruno4, gFameCheckerFlavorTextOriginObjectName_Bruno5, + gFameCheckerFlavorTextOriginObjectName_Agatha0, gFameCheckerFlavorTextOriginObjectName_Agatha1, gFameCheckerFlavorTextOriginObjectName_Agatha2, gFameCheckerFlavorTextOriginObjectName_Agatha3, gFameCheckerFlavorTextOriginObjectName_Agatha4, gFameCheckerFlavorTextOriginObjectName_Agatha5, + gFameCheckerFlavorTextOriginObjectName_Lance0, gFameCheckerFlavorTextOriginObjectName_Lance1, gFameCheckerFlavorTextOriginObjectName_Lance2, gFameCheckerFlavorTextOriginObjectName_Lance3, gFameCheckerFlavorTextOriginObjectName_Lance4, gFameCheckerFlavorTextOriginObjectName_Lance5, + gFameCheckerFlavorTextOriginObjectName_Bill0, gFameCheckerFlavorTextOriginObjectName_Bill1, gFameCheckerFlavorTextOriginObjectName_Bill2, gFameCheckerFlavorTextOriginObjectName_Bill3, gFameCheckerFlavorTextOriginObjectName_Bill4, gFameCheckerFlavorTextOriginObjectName_Bill5, + gFameCheckerFlavorTextOriginObjectName_MrFuji0, gFameCheckerFlavorTextOriginObjectName_MrFuji1, gFameCheckerFlavorTextOriginObjectName_MrFuji2, gFameCheckerFlavorTextOriginObjectName_MrFuji3, gFameCheckerFlavorTextOriginObjectName_MrFuji4, gFameCheckerFlavorTextOriginObjectName_MrFuji5, + gFameCheckerFlavorTextOriginObjectName_Giovanni0, gFameCheckerFlavorTextOriginObjectName_Giovanni1, gFameCheckerFlavorTextOriginObjectName_Giovanni2, gFameCheckerFlavorTextOriginObjectName_Giovanni3, gFameCheckerFlavorTextOriginObjectName_Giovanni4, gFameCheckerFlavorTextOriginObjectName_Giovanni5 }; -static const struct SpriteSheet gUnknown_845FB9C[] = { - {sSelectorCursorSpriteGfx, 0x400, SPRITETAG_1000}, - {sQuestionMarkSpriteGfx, 0x100, SPRITETAG_1001}, - {sSpinningPokeballSpriteGfx, 0x1e0, SPRITETAG_1002}, - {sDaisySpriteGfx, 0x800, SPRITETAG_1006}, - {sFujiSpriteGfx, 0x800, SPRITETAG_1007}, - {sOakSpriteGfx, 0x800, SPRITETAG_1008}, - {sBillSpriteGfx, 0x800, SPRITETAG_1009}, +static const struct SpriteSheet sUISpriteSheets[] = { + {sSelectorCursorSpriteGfx, 0x400, SPRITETAG_SELECTOR_CURSOR}, + {sQuestionMarkSpriteGfx, 0x100, SPRITETAG_QUESTION_MARK}, + {sSpinningPokeballSpriteGfx, 0x1e0, SPRITETAG_SPINNING_POKEBALL}, + {sDaisySpriteGfx, 0x800, SPRITETAG_DAISY}, + {sFujiSpriteGfx, 0x800, SPRITETAG_FUJI}, + {sOakSpriteGfx, 0x800, SPRITETAG_OAK}, + {sBillSpriteGfx, 0x800, SPRITETAG_BILL}, {} }; -static const struct SpritePalette gUnknown_845FBDC[] = { - {sSelectorCursorSpritePalette, SPRITETAG_1000}, - {sSpinningPokeballSpritePalette, SPRITETAG_1002}, +static const struct SpritePalette sUISpritePalettes[] = { + {sSelectorCursorSpritePalette, SPRITETAG_SELECTOR_CURSOR}, + {sSpinningPokeballSpritePalette, SPRITETAG_SPINNING_POKEBALL}, {} }; -static const struct BgTemplate gUnknown_845FBF4[4] = { +static const struct BgTemplate sUIBgTemplates[4] = { { .bg = 3, .charBaseIndex = 0x03, @@ -349,118 +320,118 @@ static const struct BgTemplate gUnknown_845FBF4[4] = { .baseTile = 0x000}, }; -static const struct WindowTemplate gUnknown_845FC04[] = { - {0x00, 0x01, 0x03, 0x08, 0x0a, 0x0f, 0x0014}, - {0x00, 0x06, 0x00, 0x18, 0x02, 0x0f, 0x0064}, - {0x00, 0x02, 0x0f, 0x1a, 0x04, 0x0f, 0x0094}, - {0x00, 0x0f, 0x0a, 0x0b, 0x04, 0x0f, 0x00fc}, +static const struct WindowTemplate sUIWindowTemplates[] = { + {0, 1, 3, 8, 10, 15, 0x014}, // List Menu + {0, 6, 0, 24, 2, 15, 0x064}, // UI across the top + {0, 2, 15, 26, 4, 15, 0x094}, // Textbox on the bottom + {0, 15, 10, 11, 4, 15, 0x0FC}, // Icon description DUMMY_WIN_TEMPLATE }; -static const union AnimCmd gUnknown_845FC2C[] = { +static const union AnimCmd sSelectorCursorAnim0[] = { ANIMCMD_FRAME( 0, 15), ANIMCMD_FRAME(16, 15), ANIMCMD_JUMP(0) }; -static const union AnimCmd *const gUnknown_845FC38[] = { - gUnknown_845FC2C +static const union AnimCmd *const sSelectorCursorAnims[] = { + sSelectorCursorAnim0 }; -static const struct OamData gOamData_845FC3C = { +static const struct OamData sSelectorCursorOamData = { .size = 2, .priority = 2 }; -static const struct SpriteTemplate gUnknown_845FC44 = { - SPRITETAG_1000, SPRITETAG_1000, &gOamData_845FC3C, gUnknown_845FC38, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy +static const struct SpriteTemplate sSpriteTemplate_SelectorCursor = { + SPRITETAG_SELECTOR_CURSOR, SPRITETAG_SELECTOR_CURSOR, &sSelectorCursorOamData, sSelectorCursorAnims, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy }; -static const u8 filler_845FC5C[8] = {}; +static const u8 filler_845FC5C[8] = {}; // ??? -static const struct OamData gOamData_845FC64 = { +static const struct OamData sQuestionMarkTileOamData = { .shape = ST_OAM_V_RECTANGLE, .size = 2, .priority = 2 }; -static const union AnimCmd gUnknown_845FC6C[] = { +static const union AnimCmd sQuestionMarkTileAnim0[] = { ANIMCMD_FRAME( 0, 10), ANIMCMD_END }; -static const union AnimCmd *const gUnknown_845FC74[] = { - gUnknown_845FC6C +static const union AnimCmd *const sQuestionMarkTileAnims[] = { + sQuestionMarkTileAnim0 }; -static const struct SpriteTemplate gUnknown_845FC78 = { - SPRITETAG_1001, 0xffff, &gOamData_845FC64, gUnknown_845FC74, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy +static const struct SpriteTemplate sQuestionMarkTileSpriteTemplate = { + SPRITETAG_QUESTION_MARK, 0xffff, &sQuestionMarkTileOamData, sQuestionMarkTileAnims, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy }; -static const union AnimCmd gUnknown_845FC90[] = { +static const union AnimCmd sSpinningPokeballAnim0[] = { ANIMCMD_FRAME( 0, 10), ANIMCMD_END }; -static const union AnimCmd *const gUnknown_845FC98[] = { - gUnknown_845FC90 +static const union AnimCmd *const sSpinningPokeballAnims[] = { + sSpinningPokeballAnim0 }; -static const struct OamData gOamData_845FC9C = { +static const struct OamData sSpinningPokeballOamData = { .affineMode = ST_OAM_AFFINE_NORMAL, .size = 2 }; -static const union AffineAnimCmd gUnknown_845FCA4[] = { +static const union AffineAnimCmd sSpinningPokeballAffineAnim0[] = { AFFINEANIMCMD_FRAME(0, 0, 4, 20), AFFINEANIMCMD_JUMP(0) }; -static const union AffineAnimCmd *const gUnknown_845FCB4[] = { - gUnknown_845FCA4 +static const union AffineAnimCmd *const sSpinningPokeballAffineAnims[] = { + sSpinningPokeballAffineAnim0 }; static const struct SpriteTemplate sSpinningPokeballSpriteTemplate = { - SPRITETAG_1002, SPRITETAG_1002, &gOamData_845FC9C, gUnknown_845FC98, NULL, gUnknown_845FCB4, sub_812D840 + SPRITETAG_SPINNING_POKEBALL, SPRITETAG_SPINNING_POKEBALL, &sSpinningPokeballOamData, sSpinningPokeballAnims, NULL, sSpinningPokeballAffineAnims, SpriteCB_FCSpinningPokeball }; -static const union AnimCmd gUnknown_845FCD0[] = { +static const union AnimCmd sDaisyFujiOakBillAnim0[] = { ANIMCMD_FRAME( 0, 15), ANIMCMD_END }; -static const union AnimCmd *const gUnknown_845FCD8[] = { - gUnknown_845FCD0 +static const union AnimCmd *const sDaisyFujiOakBillAnims[] = { + sDaisyFujiOakBillAnim0 }; -static const struct OamData gOamData_845FCDC = { +static const struct OamData sDaisyFujiOakBillOamData = { .size = 3 }; static const struct SpriteTemplate sDaisySpriteTemplate = { - SPRITETAG_1006, 0xffff, &gOamData_845FCDC, gUnknown_845FCD8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + SPRITETAG_DAISY, 0xffff, &sDaisyFujiOakBillOamData, sDaisyFujiOakBillAnims, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy }; static const struct SpriteTemplate sFujiSpriteTemplate = { - SPRITETAG_1007, 0xffff, &gOamData_845FCDC, gUnknown_845FCD8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + SPRITETAG_FUJI, 0xffff, &sDaisyFujiOakBillOamData, sDaisyFujiOakBillAnims, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy }; static const struct SpriteTemplate sOakSpriteTemplate = { - SPRITETAG_1008, 0xffff, &gOamData_845FCDC, gUnknown_845FCD8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + SPRITETAG_OAK, 0xffff, &sDaisyFujiOakBillOamData, sDaisyFujiOakBillAnims, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy }; static const struct SpriteTemplate sBillSpriteTemplate = { - SPRITETAG_1009, 0xffff, &gOamData_845FCDC, gUnknown_845FCD8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + SPRITETAG_BILL, 0xffff, &sDaisyFujiOakBillOamData, sDaisyFujiOakBillAnims, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy }; -static void sub_812C380(void) +static void FC_VBlankCallback(void) { LoadOam(); ProcessSpriteCopyRequests(); TransferPlttBuffer(); } -static void sub_812C394(void) +static void MainCB2_FameCheckerMain(void) { RunTasks(); AnimateSprites(); @@ -478,20 +449,20 @@ void UseFameChecker(MainCallback savedCallback) sFameCheckerData->listMenuDrawnSelIdx = 0; sFameCheckerData->unk_23_0 = FALSE; PlaySE(SE_W202); - SetMainCallback2(sub_812C3F8); + SetMainCallback2(MainCB2_LoadFameChecker); } -static void sub_812C3F8(void) +static void MainCB2_LoadFameChecker(void) { switch (gMain.state) { case 0: SetVBlankCallback(NULL); - sub_812D420(); + FCSetup_ClearVideoRegisters(); gMain.state++; break; case 1: - sub_812D558(); + FCSetup_ResetTasksAndSpriteResources(); gMain.state++; break; case 2: @@ -499,11 +470,11 @@ static void sub_812C3F8(void) sBg1TilemapBuffer = AllocZeroed(0x1000); sBg2TilemapBuffer = AllocZeroed(0x800); ResetBgsAndClearDma3BusyFlags(0); - InitBgsFromTemplates(0, gUnknown_845FBF4, ARRAY_COUNT(gUnknown_845FBF4)); + InitBgsFromTemplates(0, sUIBgTemplates, ARRAY_COUNT(sUIBgTemplates)); SetBgTilemapBuffer(3, sBg3TilemapBuffer); SetBgTilemapBuffer(2, sBg2TilemapBuffer); SetBgTilemapBuffer(1, sBg1TilemapBuffer); - sub_812D594(); + FCSetup_ResetBGCoords(); gMain.state++; break; case 3: @@ -530,125 +501,125 @@ static void sub_812C3F8(void) } break; case 5: - InitWindows(gUnknown_845FC04); + InitWindows(sUIWindowTemplates); DeactivateAllTextPrinters(); - sub_812CEC0(); + Setup_DrawMsgAndListBoxes(); sListMenuItems = AllocZeroed(17 * sizeof(struct ListMenuItem)); - sub_812DB28(); + FC_CreateListMenu(); gMain.state++; break; case 6: - sub_812C648(); - sub_812D1A8(0); - sub_812CE9C(); + LoadUISpriteSheetsAndPalettes(); + CreateAllFlavorTextIcons(0); + WipeMsgBoxAndTransfer(); BeginNormalPaletteFade(0xFFFFFFFF,0, 16, 0, 0); gMain.state++; break; case 7: - sub_812D584(); + FCSetup_TurnOnDisplay(); SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG0 | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_BG2 | BLDCNT_TGT2_BG3 | BLDCNT_TGT2_OBJ | BLDCNT_TGT2_BD); SetGpuReg(REG_OFFSET_BLDALPHA, 0x07); SetGpuReg(REG_OFFSET_BLDY, 0x08); - SetVBlankCallback(sub_812C380); + SetVBlankCallback(FC_VBlankCallback); sFameCheckerData->listMenuTopIdx = 0; - sub_812E000(); + FC_CreateScrollIndicatorArrowPair(); sub_812E178(1, 4); - CreateTask(sub_812C664, 0x08); - SetMainCallback2(sub_812C394); + CreateTask(Task_WaitFadeOnInit, 0x08); + SetMainCallback2(MainCB2_FameCheckerMain); gMain.state = 0; break; } } -static void sub_812C648(void) +static void LoadUISpriteSheetsAndPalettes(void) { - LoadSpriteSheets(gUnknown_845FB9C); - LoadSpritePalettes(gUnknown_845FBDC); + LoadSpriteSheets(sUISpriteSheets); + LoadSpritePalettes(sUISpritePalettes); } -static void sub_812C664(u8 taskId) +static void Task_WaitFadeOnInit(u8 taskId) { if (!gPaletteFade.active) - gTasks[taskId].func = sub_812C694; + gTasks[taskId].func = Task_TopMenuHandleInput; } -static void sub_812C694(u8 taskId) +static void Task_TopMenuHandleInput(u8 taskId) { - u16 r4; - u8 r4_2; + u16 cursorPos; + u8 i; struct Task *task = &gTasks[taskId]; s16 * data = gTasks[taskId].data; if (FindTaskIdByFunc(sub_812E110) == 0xFF) { RunTextPrinters(); if ((JOY_NEW(SELECT_BUTTON)) && !sFameCheckerData->inPickMode && sFameCheckerData->savedCallback != UseFameCheckerFromMenu) - task->func = sub_812CF3C; + task->func = Task_StartToCloseFameChecker; else if (JOY_NEW(START_BUTTON)) { - r4 = FameCheckerGetCursorY(); - if (sub_812C8F8(taskId) == TRUE) + cursorPos = FameCheckerGetCursorY(); + if (TryExitPickMode(taskId) == TRUE) { PlaySE(SE_W100); } - else if (r4 != sFameCheckerData->numUnlockedPersons - 1) + else if (cursorPos != sFameCheckerData->numUnlockedPersons - 1) // anything but CANCEL { PlaySE(SE_W100); - FillWindowPixelRect(3, 0x00, 0, 0, 88, 32); - sub_812CEE0(3); + FillWindowPixelRect(FCWINDOWID_ICONDESC, 0x00, 0, 0, 88, 32); + FC_PutWindowTilemapAndCopyWindowToVramMode3(FCWINDOWID_ICONDESC); sub_812E178(2, 4); sub_812E178(1, 5); - sub_812D0F4(1); - task->data[2] = sub_812D888(sFameCheckerData->unlockedPersons[r4]); + PrintUIHelp(1); + task->data[2] = CreatePersonPicSprite(sFameCheckerData->unlockedPersons[cursorPos]); gSprites[task->data[2]].pos2.x = 0xF0; gSprites[task->data[2]].data[0] = 1; - task->data[3] = sub_812D7E4(); + task->data[3] = CreateSpinningPokeballSprite(); gSprites[task->data[3]].pos2.x = 0xF0; gSprites[task->data[3]].data[0] = 1; - task->func = sub_812C9BC; + task->func = Task_EnterPickMode; } } else if (JOY_NEW(A_BUTTON)) { - r4 = ListMenuHandleInput(0); - if (r4 == sFameCheckerData->numUnlockedPersons - 1) - task->func = sub_812CF3C; + cursorPos = ListMenuHandleInput(0); + if (cursorPos == sFameCheckerData->numUnlockedPersons - 1) // CANCEL + task->func = Task_StartToCloseFameChecker; else if (sFameCheckerData->inPickMode) { - if (!IsTextPrinterActive(2) && sub_812D6B4() == TRUE) - sub_812CD3C(); + if (!IsTextPrinterActive(2) && HasUnlockedAllFlavorTextsForCurrentPerson() == TRUE) + GetPickModeText(); } else if (sFameCheckerData->personHasUnlockedPanels) { PlaySE(SE_SELECT); - task->data[0] = sub_812D724(task->data[1]); - for (r4_2 = 0; r4_2 < 6; r4_2++) + task->data[0] = CreateFlavorTextIconSelectorCursorSprite(task->data[1]); + for (i = 0; i < 6; i++) { - if (r4_2 != task->data[1]) - sub_812CEFC(sFameCheckerData->spriteIds[r4_2], ST_OAM_OBJ_BLEND); + if (i != task->data[1]) + SetMessageSelectorIconObjMode(sFameCheckerData->spriteIds[i], ST_OAM_OBJ_BLEND); } gUnknown_3005EC8 = 0xFF; - sub_812E4A4(0); - sub_812D0F4(2); - if (gSprites[sFameCheckerData->spriteIds[task->data[1]]].data[1] != 0xFF) + PlaceListMenuCursor(FALSE); + PrintUIHelp(2); + if (gSprites[sFameCheckerData->spriteIds[task->data[1]]].data[1] != 0xFF) // not a ? tile { - sub_812CE04(taskId); - sub_812DA14(data[1]); + PrintSelectedNameInBrightGreen(taskId); + UpdateIconDescriptionBox(data[1]); } - sub_812E048(); - task->func = sub_812CAD8; + FreeListMenuSelectorArrowPairResources(); + task->func = Task_FlavorTextDisplayHandleInput; } } else if (JOY_NEW(B_BUTTON)) { - if (sub_812C8F8(taskId) != TRUE) - task->func = sub_812CF3C; + if (TryExitPickMode(taskId) != TRUE) + task->func = Task_StartToCloseFameChecker; } else ListMenuHandleInput(0); } } -static bool8 sub_812C8F8(u8 taskId) +static bool8 TryExitPickMode(u8 taskId) { struct Task *task = &gTasks[taskId]; if (sFameCheckerData->inPickMode) @@ -657,34 +628,34 @@ static bool8 sub_812C8F8(u8 taskId) gSprites[task->data[2]].pos2.x += 10; gSprites[task->data[3]].data[0] = 2; gSprites[task->data[3]].pos2.x += 10; - sub_812CE9C(); - task->func = sub_812CA1C; - sub_812C990(); + WipeMsgBoxAndTransfer(); + task->func = Task_ExitPickMode; + MessageBoxPrintEmptyText(); sFameCheckerData->unk_23_2 = FALSE; return TRUE; } return FALSE; } -static void sub_812C990(void) +static void MessageBoxPrintEmptyText(void) { - AddTextPrinterParametrized(2, 2, gUnknown_84181E4, 0, NULL, 2, 1, 3); + AddTextPrinterParametrized(2, 2, gFameCheckerText_ClearTextbox, 0, NULL, 2, 1, 3); } -static void sub_812C9BC(u8 taskId) +static void Task_EnterPickMode(u8 taskId) { struct Task *task = &gTasks[taskId]; if (gSprites[task->data[2]].data[0] == 0) { - sub_812CD3C(); + GetPickModeText(); sFameCheckerData->inPickMode = TRUE; - task->func = sub_812C694; + task->func = Task_TopMenuHandleInput; } else ChangeBgX(1, 0xA00, 1); } -static void sub_812CA1C(u8 taskId) +static void Task_ExitPickMode(u8 taskId) { struct Task *task = &gTasks[taskId]; if (GetBgX(1) != 0) @@ -694,17 +665,17 @@ static void sub_812CA1C(u8 taskId) if (gSprites[task->data[2]].data[0] == 0) { if (sFameCheckerData->personHasUnlockedPanels) - sub_812D0F4(0); + PrintUIHelp(0); sub_812E178(1, 4); sub_812E178(2, 2); sFameCheckerData->inPickMode = FALSE; - sub_812D9A8(taskId, FameCheckerGetCursorY()); - task->func = sub_812C694; - gSprites[task->data[3]].callback = sub_812D800; + DestroyPersonPicSprite(taskId, FameCheckerGetCursorY()); + task->func = Task_TopMenuHandleInput; + gSprites[task->data[3]].callback = SpriteCB_DestroySpinningPokeball; } } -static void sub_812CAD8(u8 taskId) +static void Task_FlavorTextDisplayHandleInput(u8 taskId) { struct Task *task = &gTasks[taskId]; s16 *data = gTasks[taskId].data; @@ -714,35 +685,35 @@ static void sub_812CAD8(u8 taskId) { u8 spriteId = sFameCheckerData->spriteIds[data[1]]; if (gSprites[spriteId].data[1] != 0xFF) - sub_812CE04(taskId); + PrintSelectedNameInBrightGreen(taskId); } if (JOY_NEW(B_BUTTON)) { - u8 r4; + u8 i; PlaySE(SE_SELECT); - for (r4 = 0; r4 < 6; r4++) - sub_812CEFC(sFameCheckerData->spriteIds[r4], ST_OAM_OBJ_NORMAL); - sub_812CE9C(); - gSprites[task->data[0]].callback = sub_812D764; + for (i = 0; i < 6; i++) + SetMessageSelectorIconObjMode(sFameCheckerData->spriteIds[i], ST_OAM_OBJ_NORMAL); + WipeMsgBoxAndTransfer(); + gSprites[task->data[0]].callback = SpriteCB_DestroyFlavorTextIconSelectorCursor; if (gUnknown_3005EC8 != 0xFF) sub_812DB10(); - sub_812E4A4(1); - sub_812D0F4(0); - sub_812E000(); - sub_812C990(); - task->func = sub_812C694; + PlaceListMenuCursor(TRUE); + PrintUIHelp(0); + FC_CreateScrollIndicatorArrowPair(); + MessageBoxPrintEmptyText(); + task->func = Task_TopMenuHandleInput; } else if (JOY_NEW(DPAD_UP) || JOY_NEW(DPAD_DOWN)) { if (task->data[1] >= 3) { task->data[1] -= 3; - sub_812CC68(taskId, 0, -0x1b); + FC_MoveSelectorCursor(taskId, 0, -0x1b); } else { task->data[1] += 3; - sub_812CC68(taskId, 0, +0x1b); + FC_MoveSelectorCursor(taskId, 0, +0x1b); } } else if (JOY_NEW(DPAD_LEFT)) @@ -750,12 +721,12 @@ static void sub_812CAD8(u8 taskId) if (task->data[1] == 0 || task->data[1] % 3 == 0) { task->data[1] += 2; - sub_812CC68(taskId, +0x5e, 0); + FC_MoveSelectorCursor(taskId, +0x5e, 0); } else { task->data[1]--; - sub_812CC68(taskId, -0x2f, 0); + FC_MoveSelectorCursor(taskId, -0x2f, 0); } } else if (JOY_NEW(DPAD_RIGHT)) @@ -763,17 +734,17 @@ static void sub_812CAD8(u8 taskId) if ((task->data[1] + 1) % 3 == 0) { task->data[1] -= 2; - sub_812CC68(taskId, -0x5e, 0); + FC_MoveSelectorCursor(taskId, -0x5e, 0); } else { task->data[1]++; - sub_812CC68(taskId, +0x2f, 0); + FC_MoveSelectorCursor(taskId, +0x2f, 0); } } } -static void sub_812CC68(u8 taskId, s8 dx, s8 dy) +static void FC_MoveSelectorCursor(u8 taskId, s8 dx, s8 dy) { u8 i; s16 *data = gTasks[taskId].data; @@ -781,69 +752,69 @@ static void sub_812CC68(u8 taskId, s8 dx, s8 dy) gSprites[data[0]].pos1.x += dx; gSprites[data[0]].pos1.y += dy; for (i = 0; i < 6; i++) - sub_812CEFC(sFameCheckerData->spriteIds[i], ST_OAM_OBJ_BLEND); - FillWindowPixelRect(2, 0x11, 0, 0, 0xd0, 0x20); - sub_812C990(); - if (sub_812CEFC(sFameCheckerData->spriteIds[data[1]], ST_OAM_OBJ_NORMAL) == TRUE) + SetMessageSelectorIconObjMode(sFameCheckerData->spriteIds[i], ST_OAM_OBJ_BLEND); + FillWindowPixelRect(FCWINDOWID_MSGBOX, 0x11, 0, 0, 0xd0, 0x20); + MessageBoxPrintEmptyText(); + if (SetMessageSelectorIconObjMode(sFameCheckerData->spriteIds[data[1]], ST_OAM_OBJ_NORMAL) == TRUE) { - sub_812CE04(taskId); - sub_812DA14(data[1]); + PrintSelectedNameInBrightGreen(taskId); + UpdateIconDescriptionBox(data[1]); } else if (gUnknown_3005EC8 != 0xFF) sub_812DB10(); } -static void sub_812CD3C(void) +static void GetPickModeText(void) { u8 r8 = 0; u16 r6 = FameCheckerGetCursorY(); if (gSaveBlock1Ptr->fameChecker[sFameCheckerData->unlockedPersons[r6]].pickState != FCPICKSTATE_COLORED) { - sub_812CE9C(); - sub_812C990(); + WipeMsgBoxAndTransfer(); + MessageBoxPrintEmptyText(); } else { - FillWindowPixelRect(2, 0x11, 0, 0, 0xd0, 0x20); - if (sub_812D6B4() == TRUE) - r8 = 16; - StringExpandPlaceholders(gStringVar4, gUnknown_845F63C[sFameCheckerData->unlockedPersons[r6] + r8]); - AddTextPrinterParametrized(2, 2, gStringVar4, sub_80F78A8(), NULL, 2, 1, 3); - sub_812CEE0(2); + FillWindowPixelRect(FCWINDOWID_MSGBOX, 0x11, 0, 0, 0xd0, 0x20); + if (HasUnlockedAllFlavorTextsForCurrentPerson() == TRUE) + r8 = NUM_FAMECHECKER_PERSONS; + StringExpandPlaceholders(gStringVar4, sFameCheckerNameAndQuotesPointers[sFameCheckerData->unlockedPersons[r6] + r8]); + AddTextPrinterParametrized(FCWINDOWID_MSGBOX, 2, gStringVar4, sub_80F78A8(), NULL, 2, 1, 3); + FC_PutWindowTilemapAndCopyWindowToVramMode3(FCWINDOWID_MSGBOX); } } -static void sub_812CE04(u8 taskId) +static void PrintSelectedNameInBrightGreen(u8 taskId) { s16 *data = gTasks[taskId].data; - u16 r5 = FameCheckerGetCursorY(); - FillWindowPixelRect(2, 0x11, 0, 0, 0xd0, 0x20); - StringExpandPlaceholders(gStringVar4, gUnknown_845F6BC[sFameCheckerData->unlockedPersons[r5] * 6 + data[1]]); - AddTextPrinterParametrized(2, 2, gStringVar4, sub_80F78A8(), NULL, 2, 1, 3); - sub_812CEE0(2); + u16 cursorPos = FameCheckerGetCursorY(); + FillWindowPixelRect(FCWINDOWID_MSGBOX, 0x11, 0, 0, 0xd0, 0x20); + StringExpandPlaceholders(gStringVar4, sFameCheckerFlavorTextPointers[sFameCheckerData->unlockedPersons[cursorPos] * 6 + data[1]]); + AddTextPrinterParametrized(FCWINDOWID_MSGBOX, 2, gStringVar4, sub_80F78A8(), NULL, 2, 1, 3); + FC_PutWindowTilemapAndCopyWindowToVramMode3(FCWINDOWID_MSGBOX); } -static void sub_812CE9C(void) +static void WipeMsgBoxAndTransfer(void) { - FillWindowPixelRect(2, 0x11, 0, 0, 0xd0, 0x20); - sub_812CEE0(2); + FillWindowPixelRect(FCWINDOWID_MSGBOX, 0x11, 0, 0, 0xd0, 0x20); + FC_PutWindowTilemapAndCopyWindowToVramMode3(FCWINDOWID_MSGBOX); } -static void sub_812CEC0(void) +static void Setup_DrawMsgAndListBoxes(void) { sub_80F6E9C(); - sub_80F6EE4(2, 1); - sub_812CEE0(2); - sub_812CEE0(0); + sub_80F6EE4(FCWINDOWID_MSGBOX, TRUE); + FC_PutWindowTilemapAndCopyWindowToVramMode3(FCWINDOWID_MSGBOX); + FC_PutWindowTilemapAndCopyWindowToVramMode3(FCWINDOWID_LIST); } -static void sub_812CEE0(u8 windowId) +static void FC_PutWindowTilemapAndCopyWindowToVramMode3(u8 windowId) { PutWindowTilemap(windowId); CopyWindowToVram(windowId, 3); } -static bool8 sub_812CEFC(u8 spriteId, u8 objMode) +static bool8 SetMessageSelectorIconObjMode(u8 spriteId, u8 objMode) { if (gSprites[spriteId].data[1] != 0xFF) { @@ -853,14 +824,14 @@ static bool8 sub_812CEFC(u8 spriteId, u8 objMode) return FALSE; } -static void sub_812CF3C(u8 taskId) +static void Task_StartToCloseFameChecker(u8 taskId) { PlaySE(SE_W202); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0); - gTasks[taskId].func = sub_812CF7C; + gTasks[taskId].func = Task_DestroyAssetsAndCloseFameChecker; } -static void sub_812CF7C(u8 taskId) +static void Task_DestroyAssetsAndCloseFameChecker(u8 taskId) { u8 r4; @@ -868,7 +839,7 @@ static void sub_812CF7C(u8 taskId) { if (sFameCheckerData->inPickMode) { - sub_812D9A8(taskId, FameCheckerGetCursorY()); + DestroyPersonPicSprite(taskId, FameCheckerGetCursorY()); FreeSpriteOamMatrix(&gSprites[gTasks[taskId].data[3]]); DestroySprite(&gSprites[gTasks[taskId].data[3]]); } @@ -876,28 +847,28 @@ static void sub_812CF7C(u8 taskId) { DestroySprite(&gSprites[sFameCheckerData->spriteIds[r4]]); } - sub_812D814(); - sub_812D7C8(); - sub_812D70C(); - sub_812D770(); - sub_812E048(); + FreeNonTrainerPicTiles(); + FreeSpinningPokeballSpriteResources(); + FreeSelectionCursorSpriteResources(); + FreeQuestionMarkSpriteResources(); + FreeListMenuSelectorArrowPairResources(); SetMainCallback2(sFameCheckerData->savedCallback); - sub_810713C(sFameCheckerData->scrollIndicatorArrowObjectTaskId, 0, 0); + sub_810713C(sFameCheckerData->listMenuTaskId, 0, 0); Free(sBg3TilemapBuffer); Free(sBg1TilemapBuffer); Free(sBg2TilemapBuffer); Free(sFameCheckerData); Free(sListMenuItems); - sub_812D094(0); - sub_812D094(1); - sub_812D094(2); - sub_812D094(3); + FC_DestroyWindow(0); + FC_DestroyWindow(1); + FC_DestroyWindow(2); + FC_DestroyWindow(3); FreeAllWindowBuffers(); DestroyTask(taskId); } } -static void sub_812D094(u8 windowId) +static void FC_DestroyWindow(u8 windowId) { FillWindowPixelBuffer(windowId, 0); ClearWindowTilemap(windowId); @@ -905,111 +876,111 @@ static void sub_812D094(u8 windowId) RemoveWindow(windowId); } -static u8 sub_812D0C0(u8 a0) +static u8 AdjustGiovanniIndexIfBeatenInGym(u8 a0) { if (HasTrainerAlreadyBeenFought(0x15e) == TRUE) { if (a0 == 9) - return 15; + return FAMECHECKER_GIOVANNI; if (a0 > 9) return a0 - 1; } return a0; } -static void sub_812D0F4(u8 a0) +static void PrintUIHelp(u8 state) { - const u8 * r5 = gUnknown_841E5A4; s32 width; - if (a0 != 0) + const u8 * src = gFameCheckerText_MainScreenUI; + if (state != 0) { - r5 = gUnknown_841E5D2; - if (a0 == 1) - r5 = gUnknown_841E5B9; + src = gFameCheckerText_FlavorTextUI; + if (state == 1) + src = gFameCheckerText_PickScreenUI; } - width = GetStringWidth(0, r5, 0); - FillWindowPixelRect(1, 0x00, 0, 0, 0xc0, 0x10); - AddTextPrinterParametrized2(1, 0, 188 - width, 0, 0, 2, &gUnknown_845F5E0, -1, r5); - sub_812CEE0(1); + width = GetStringWidth(0, src, 0); + FillWindowPixelRect(FCWINDOWID_UIHELP, 0x00, 0, 0, 0xc0, 0x10); + AddTextPrinterParametrized2(FCWINDOWID_UIHELP, 0, 188 - width, 0, 0, 2, &gUnknown_845F5E0, -1, src); + FC_PutWindowTilemapAndCopyWindowToVramMode3(FCWINDOWID_UIHELP); } -static void sub_812D174(void) +static void DestroyAllFlavorTextIcons(void) { - u8 r4; - for (r4 = 0; r4 < 6; r4++) + u8 i; + for (i = 0; i < 6; i++) { - DestroySprite(&gSprites[sFameCheckerData->spriteIds[r4]]); + DestroySprite(&gSprites[sFameCheckerData->spriteIds[i]]); } } -static bool8 sub_812D1A8(u8 a0) +static bool8 CreateAllFlavorTextIcons(u8 a0) { // r8 <- a0 - bool8 r5 = FALSE; - u8 r6; - for (r6 = 0; r6 < 6; r6++) + bool8 result = FALSE; + u8 i; + for (i = 0; i < 6; i++) { - if ((gSaveBlock1Ptr->fameChecker[sFameCheckerData->unlockedPersons[a0]].flavorTextFlags >> r6) & 1) + if ((gSaveBlock1Ptr->fameChecker[sFameCheckerData->unlockedPersons[a0]].flavorTextFlags >> i) & 1) { - sFameCheckerData->spriteIds[r6] = sub_805EB44( - sFameCheckerArrayNpcGraphicsIds[sFameCheckerData->unlockedPersons[a0] * 6 + r6], - r6, - 47 * (r6 % 3) + 0x72, - 27 * (r6 / 3) + 0x2F + sFameCheckerData->spriteIds[i] = sub_805EB44( + sFameCheckerArrayNpcGraphicsIds[sFameCheckerData->unlockedPersons[a0] * 6 + i], + i, + 47 * (i % 3) + 0x72, + 27 * (i / 3) + 0x2F ); - r5 = TRUE; + result = TRUE; } else { - sFameCheckerData->spriteIds[r6] = PlaceQuestionMarkTile( - 47 * (r6 % 3) + 0x72, - 27 * (r6 / 3) + 0x1F + sFameCheckerData->spriteIds[i] = PlaceQuestionMarkTile( + 47 * (i % 3) + 0x72, + 27 * (i / 3) + 0x1F ); - gSprites[sFameCheckerData->spriteIds[r6]].data[1] = 0xFF; + gSprites[sFameCheckerData->spriteIds[i]].data[1] = 0xFF; } } - if (r5 == TRUE) + if (result == TRUE) { sFameCheckerData->personHasUnlockedPanels = TRUE; if (sFameCheckerData->inPickMode) - sub_812D0F4(TRUE); + PrintUIHelp(1); else - sub_812D0F4(FALSE); + PrintUIHelp(0); } else { sFameCheckerData->personHasUnlockedPanels = FALSE; - sub_812D0F4(TRUE); + PrintUIHelp(1); } - return r5; + return result; } void ResetFameChecker(void) { - u8 r4; - for (r4 = 0; r4 < 16; r4++) + u8 i; + for (i = 0; i < NUM_FAMECHECKER_PERSONS; i++) { - gSaveBlock1Ptr->fameChecker[r4].pickState = FCPICKSTATE_NO_DRAW; - gSaveBlock1Ptr->fameChecker[r4].flavorTextFlags = 0; - gSaveBlock1Ptr->fameChecker[r4].unk_0_E = 0; + gSaveBlock1Ptr->fameChecker[i].pickState = FCPICKSTATE_NO_DRAW; + gSaveBlock1Ptr->fameChecker[i].flavorTextFlags = 0; + gSaveBlock1Ptr->fameChecker[i].unk_0_E = 0; } - gSaveBlock1Ptr->fameChecker[0].pickState = FCPICKSTATE_COLORED; + gSaveBlock1Ptr->fameChecker[FAMECHECKER_OAK].pickState = FCPICKSTATE_COLORED; } -static void sub_812D388(void) +void FullyUnlockFameChecker(void) { - u8 r5, r4; - for (r5 = 0; r5 < 16; r5++) + u8 i, j; + for (i = 0; i < NUM_FAMECHECKER_PERSONS; i++) { - gSaveBlock1Ptr->fameChecker[r5].pickState = FCPICKSTATE_COLORED; - for (r4 = 0; r4 < 6; r4++) + gSaveBlock1Ptr->fameChecker[i].pickState = FCPICKSTATE_COLORED; + for (j = 0; j < 6; j++) { - gSaveBlock1Ptr->fameChecker[r5].flavorTextFlags |= (1 << r4); + gSaveBlock1Ptr->fameChecker[i].flavorTextFlags |= (1 << j); } } } -static void sub_812D420(void) +static void FCSetup_ClearVideoRegisters(void) { void * vram = (void *)VRAM; DmaClearLarge16(3, vram, VRAM_SIZE, 0x1000); @@ -1037,7 +1008,7 @@ static void sub_812D420(void) SetGpuReg(REG_OFFSET_BLDY, 0); } -static void sub_812D558(void) +static void FCSetup_ResetTasksAndSpriteResources(void) { remove_some_task(); ResetTasks(); @@ -1049,12 +1020,12 @@ static void sub_812D558(void) } -static void sub_812D584(void) +static void FCSetup_TurnOnDisplay(void) { SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG_ALL_ON | DISPCNT_OBJ_ON); } -static void sub_812D594(void) +static void FCSetup_ResetBGCoords(void) { ChangeBgX(0, 0, 0); ChangeBgY(0, 0, 0); @@ -1066,97 +1037,99 @@ static void sub_812D594(void) ChangeBgY(3, 0, 0); } -static void sub_812D5EC(void) +void SetFlavorTextFlagFromSpecialVars(void) { - if (gUnknown_20370C0 < 16 && gSpecialVar_0x8005 < 6) + if (gUnknown_20370C0 < NUM_FAMECHECKER_PERSONS && gSpecialVar_0x8005 < 6) { gSaveBlock1Ptr->fameChecker[gUnknown_20370C0].flavorTextFlags |= (1 << gSpecialVar_0x8005); - gSpecialVar_0x8005 = 1; - sub_812D650(); + gSpecialVar_0x8005 = FCPICKSTATE_SILHOUETTE; + UpdatePickStateFromSpecialVar8005(); } } -static void sub_812D650(void) +void UpdatePickStateFromSpecialVar8005(void) { - if (gUnknown_20370C0 < 16 && gSpecialVar_0x8005 < 3) + if (gUnknown_20370C0 < NUM_FAMECHECKER_PERSONS && gSpecialVar_0x8005 < 3) { - if (gSpecialVar_0x8005 == 0) + if (gSpecialVar_0x8005 == FCPICKSTATE_NO_DRAW) return; - if (gSpecialVar_0x8005 == 1 && gSaveBlock1Ptr->fameChecker[gUnknown_20370C0].pickState == FCPICKSTATE_COLORED) + if ( gSpecialVar_0x8005 == FCPICKSTATE_SILHOUETTE + && gSaveBlock1Ptr->fameChecker[gUnknown_20370C0].pickState == FCPICKSTATE_COLORED + ) return; gSaveBlock1Ptr->fameChecker[gUnknown_20370C0].pickState = gSpecialVar_0x8005; } } -static bool8 sub_812D6B4(void) +static bool8 HasUnlockedAllFlavorTextsForCurrentPerson(void) { - u8 r2; - u8 r1 = sFameCheckerData->unlockedPersons[FameCheckerGetCursorY()]; - for (r2 = 0; r2 < 6; r2++) + u8 i; + u8 who = sFameCheckerData->unlockedPersons[FameCheckerGetCursorY()]; + for (i = 0; i < 6; i++) { - if (!((gSaveBlock1Ptr->fameChecker[r1].flavorTextFlags >> r2) & 1)) + if (!((gSaveBlock1Ptr->fameChecker[who].flavorTextFlags >> i) & 1)) return FALSE; } return TRUE; } -static void sub_812D70C(void) +static void FreeSelectionCursorSpriteResources(void) { - FreeSpriteTilesByTag(SPRITETAG_1000); - FreeSpritePaletteByTag(SPRITETAG_1000); + FreeSpriteTilesByTag(SPRITETAG_SELECTOR_CURSOR); + FreeSpritePaletteByTag(SPRITETAG_SELECTOR_CURSOR); } -static u8 sub_812D724(s16 a0) +static u8 CreateFlavorTextIconSelectorCursorSprite(s16 where) { - s16 r4 = a0 >= 3 ? 61 : 34; - s16 r1 = 47 * (a0 % 3) + 0x72; - return CreateSprite(&gUnknown_845FC44, r1, r4, 0); + s16 y = 34 + 27 * (where >= 3); + s16 x = 114 + 47 * (where % 3); + return CreateSprite(&sSpriteTemplate_SelectorCursor, x, y, 0); } -static void sub_812D764(struct Sprite * sprite) +static void SpriteCB_DestroyFlavorTextIconSelectorCursor(struct Sprite * sprite) { DestroySprite(sprite); } -static void sub_812D770(void) +static void FreeQuestionMarkSpriteResources(void) { - FreeSpriteTilesByTag(SPRITETAG_1001); + FreeSpriteTilesByTag(SPRITETAG_QUESTION_MARK); } static u8 PlaceQuestionMarkTile(u8 x, u8 y) { - u8 spriteId = CreateSprite(&gUnknown_845FC78, x, y, 8); + u8 spriteId = CreateSprite(&sQuestionMarkTileSpriteTemplate, x, y, 8); gSprites[spriteId].oam.priority = 2; gSprites[spriteId].oam.paletteNum = 2; return spriteId; } -static void sub_812D7C8(void) +static void FreeSpinningPokeballSpriteResources(void) { - FreeSpriteTilesByTag(SPRITETAG_1002); - FreeSpritePaletteByTag(SPRITETAG_1002); + FreeSpriteTilesByTag(SPRITETAG_SPINNING_POKEBALL); + FreeSpritePaletteByTag(SPRITETAG_SPINNING_POKEBALL); } -static u8 sub_812D7E4(void) +static u8 CreateSpinningPokeballSprite(void) { return CreateSprite(&sSpinningPokeballSpriteTemplate, 0xe2, 0x42, 0); } -static void sub_812D800(struct Sprite * sprite) +static void SpriteCB_DestroySpinningPokeball(struct Sprite * sprite) { FreeSpriteOamMatrix(sprite); DestroySprite(sprite); } -static void sub_812D814(void) +static void FreeNonTrainerPicTiles(void) { - FreeSpriteTilesByTag(SPRITETAG_1006); - FreeSpriteTilesByTag(SPRITETAG_1007); - FreeSpriteTilesByTag(SPRITETAG_1008); - FreeSpriteTilesByTag(SPRITETAG_1009); + FreeSpriteTilesByTag(SPRITETAG_DAISY); + FreeSpriteTilesByTag(SPRITETAG_FUJI); + FreeSpriteTilesByTag(SPRITETAG_OAK); + FreeSpriteTilesByTag(SPRITETAG_BILL); } -static void sub_812D840(struct Sprite * sprite) +static void SpriteCB_FCSpinningPokeball(struct Sprite * sprite) { if (sprite->data[0] == 1) { @@ -1180,92 +1153,92 @@ static void sub_812D840(struct Sprite * sprite) } } -static u8 sub_812D888(u8 a0) +static u8 CreatePersonPicSprite(u8 fcPersonIdx) { - u8 r4; - if (a0 == FAMECHECKER_DAISY) + u8 spriteId; + if (fcPersonIdx == FAMECHECKER_DAISY) { - r4 = CreateSprite(&sDaisySpriteTemplate, 0x94, 0x42, 0); + spriteId = CreateSprite(&sDaisySpriteTemplate, 0x94, 0x42, 0); LoadPalette(sDaisySpritePalette, 0x160, 0x20); - gSprites[r4].oam.paletteNum = 6; + gSprites[spriteId].oam.paletteNum = 6; } - else if (a0 == FAMECHECKER_MRFUJI) + else if (fcPersonIdx == FAMECHECKER_MRFUJI) { - r4 = CreateSprite(&sFujiSpriteTemplate, 0x94, 0x42, 0); + spriteId = CreateSprite(&sFujiSpriteTemplate, 0x94, 0x42, 0); LoadPalette(sFujiSpritePalette, 0x160, 0x20); - gSprites[r4].oam.paletteNum = 6; + gSprites[spriteId].oam.paletteNum = 6; } - else if (a0 == FAMECHECKER_OAK) + else if (fcPersonIdx == FAMECHECKER_OAK) { - r4 = CreateSprite(&sOakSpriteTemplate, 0x94, 0x42, 0); + spriteId = CreateSprite(&sOakSpriteTemplate, 0x94, 0x42, 0); LoadPalette(sOakSpritePalette, 0x160, 0x20); - gSprites[r4].oam.paletteNum = 6; + gSprites[spriteId].oam.paletteNum = 6; } - else if (a0 == FAMECHECKER_BILL) + else if (fcPersonIdx == FAMECHECKER_BILL) { - r4 = CreateSprite(&sBillSpriteTemplate, 0x94, 0x42, 0); + spriteId = CreateSprite(&sBillSpriteTemplate, 0x94, 0x42, 0); LoadPalette(sBillSpritePalette, 0x160, 0x20); - gSprites[r4].oam.paletteNum = 6; + gSprites[spriteId].oam.paletteNum = 6; } else { - r4 = sub_810C2A4(gUnknown_845F61C[a0], 1, 0x94, 0x42, 6, 0xFFFF); + spriteId = sub_810C2A4(sFameCheckerTrainerPicIdxs[fcPersonIdx], 1, 0x94, 0x42, 6, 0xFFFF); } - gSprites[r4].callback = sub_812D840; - if (gSaveBlock1Ptr->fameChecker[a0].pickState == FCPICKSTATE_SILHOUETTE) - LoadPalette(gUnknown_845F5C0, 0x160, 0x20); - return r4; + gSprites[spriteId].callback = SpriteCB_FCSpinningPokeball; + if (gSaveBlock1Ptr->fameChecker[fcPersonIdx].pickState == FCPICKSTATE_SILHOUETTE) + LoadPalette(sSilhouettePalette, 0x160, 0x20); + return spriteId; } -static void sub_812D9A8(u8 taskId, u16 a1) +static void DestroyPersonPicSprite(u8 taskId, u16 who) { s16 * data = gTasks[taskId].data; - u16 r1 = a1; - if (a1 == sFameCheckerData->numUnlockedPersons - 1) - r1 = a1 - 1; - if ( sFameCheckerData->unlockedPersons[r1] == FAMECHECKER_DAISY - || sFameCheckerData->unlockedPersons[r1] == FAMECHECKER_MRFUJI - || sFameCheckerData->unlockedPersons[r1] == FAMECHECKER_OAK - || sFameCheckerData->unlockedPersons[r1] == FAMECHECKER_BILL + u16 who_copy = who; + if (who == sFameCheckerData->numUnlockedPersons - 1) + who_copy = who - 1; + if ( sFameCheckerData->unlockedPersons[who_copy] == FAMECHECKER_DAISY + || sFameCheckerData->unlockedPersons[who_copy] == FAMECHECKER_MRFUJI + || sFameCheckerData->unlockedPersons[who_copy] == FAMECHECKER_OAK + || sFameCheckerData->unlockedPersons[who_copy] == FAMECHECKER_BILL ) DestroySprite(&gSprites[data[2]]); else sub_810C2E8(data[2]); } -static void sub_812DA14(u8 a0) +static void UpdateIconDescriptionBox(u8 a0) { s32 width; - u32 r5 = 6 * sFameCheckerData->unlockedPersons[FameCheckerGetCursorY()] + a0; - sub_812E094(1); + u32 idx = 6 * sFameCheckerData->unlockedPersons[FameCheckerGetCursorY()] + a0; + FlipBitUnk23_0(TRUE); gUnknown_3005EC8 = 1; - FillWindowPixelRect(3, 0x00, 0, 0, 0x58, 0x20); - width = (0x54 - GetStringWidth(0, gUnknown_845F89C[r5], 0)) / 2; - AddTextPrinterParametrized2(3, 0, width, 0, 0, 2, &gUnknown_845F5E3, -1, gUnknown_845F89C[r5]); - StringExpandPlaceholders(gStringVar1, gUnknown_845FA1C[r5]); + FillWindowPixelRect(FCWINDOWID_ICONDESC, 0x00, 0, 0, 0x58, 0x20); + width = (0x54 - GetStringWidth(0, sFlavorTextOriginLocationTexts[idx], 0)) / 2; + AddTextPrinterParametrized2(FCWINDOWID_ICONDESC, 0, width, 0, 0, 2, &gUnknown_845F5E3, -1, sFlavorTextOriginLocationTexts[idx]); + StringExpandPlaceholders(gStringVar1, sFlavorTextOriginObjectNameTexts[idx]); width = (0x54 - GetStringWidth(0, gStringVar1, 0)) / 2; - AddTextPrinterParametrized2(3, 0, width, 10, 0, 2, &gUnknown_845F5E3, -1, gStringVar1); - sub_812CEE0(3); + AddTextPrinterParametrized2(FCWINDOWID_ICONDESC, 0, width, 10, 0, 2, &gUnknown_845F5E3, -1, gStringVar1); + FC_PutWindowTilemapAndCopyWindowToVramMode3(FCWINDOWID_ICONDESC); } static void sub_812DB10(void) { - sub_812E094(0); + FlipBitUnk23_0(FALSE); gUnknown_3005EC8 = 0xFF; } -static void sub_812DB28(void) +static void FC_CreateListMenu(void) { - sub_812DB64(); - sFameCheckerData->numUnlockedPersons = sub_812DEF0(); - sFameCheckerData->scrollIndicatorArrowObjectTaskId = ListMenuInit(&gFameChecker_ListMenuTemplate, 0, 0); - sub_812DFE4(0); + InitListMenuTemplate(); + sFameCheckerData->numUnlockedPersons = FC_PopulateListMenu(); + sFameCheckerData->listMenuTaskId = ListMenuInit(&gFameChecker_ListMenuTemplate, 0, 0); + FC_PutWindowTilemapAndCopyWindowToVramMode3_2(FCWINDOWID_LIST); } -static void sub_812DB64(void) +static void InitListMenuTemplate(void) { gFameChecker_ListMenuTemplate.items = sListMenuItems; - gFameChecker_ListMenuTemplate.moveCursorFunc = sub_812DBC0; + gFameChecker_ListMenuTemplate.moveCursorFunc = FC_MoveCursorFunc; gFameChecker_ListMenuTemplate.itemPrintFunc = NULL; gFameChecker_ListMenuTemplate.totalItems = 1; gFameChecker_ListMenuTemplate.maxShowed = 1; @@ -1284,31 +1257,31 @@ static void sub_812DB64(void) gFameChecker_ListMenuTemplate.cursorKind = 0; } -static void sub_812DBC0(s32 itemIndex, bool8 onInit, struct ListMenu *list) +static void FC_MoveCursorFunc(s32 itemIndex, bool8 onInit, struct ListMenu *list) { u16 sp8; u8 taskId; u16 r9; sLastMenuIdx = 0; r9 = sFameCheckerData->listMenuTopIdx2 + sFameCheckerData->listMenuDrawnSelIdx; - sub_812DDF0(itemIndex, onInit); - taskId = FindTaskIdByFunc(sub_812C694); + FC_DoMoveCursor(itemIndex, onInit); + taskId = FindTaskIdByFunc(Task_TopMenuHandleInput); if (taskId != 0xFF) { struct Task *task = &gTasks[taskId]; PlaySE(SE_SELECT); task->data[1] = 0; - get_coro_args_x18_x1A(sFameCheckerData->scrollIndicatorArrowObjectTaskId, &sp8, NULL); + get_coro_args_x18_x1A(sFameCheckerData->listMenuTaskId, &sp8, NULL); sFameCheckerData->listMenuTopIdx = sp8; if (itemIndex != sFameCheckerData->numUnlockedPersons - 1) { - sub_812D174(); - sub_812D1A8(itemIndex); + DestroyAllFlavorTextIcons(); + CreateAllFlavorTextIcons(itemIndex); if (sFameCheckerData->inPickMode) { if (!sFameCheckerData->unk_23_2) { - sub_812D9A8(taskId, r9); + DestroyPersonPicSprite(taskId, r9); sLastMenuIdx = itemIndex; task->func = sub_812DD50; } @@ -1317,18 +1290,18 @@ static void sub_812DBC0(s32 itemIndex, bool8 onInit, struct ListMenu *list) gSprites[task->data[2]].invisible = FALSE; sFameCheckerData->unk_23_2 = FALSE; gSprites[task->data[2]].data[0] = 0; - sub_812CD3C(); + GetPickModeText(); } } else { - FillWindowPixelRect(2, 0x11, 0, 0, 0xd0, 0x20); - sub_812CEE0(2); + FillWindowPixelRect(FCWINDOWID_MSGBOX, 0x11, 0, 0, 0xd0, 0x20); + FC_PutWindowTilemapAndCopyWindowToVramMode3(FCWINDOWID_MSGBOX); } } else { - sub_812DDAC(); + PrintCancelDescription(); if (sFameCheckerData->inPickMode) { gSprites[task->data[2]].invisible = TRUE; @@ -1349,34 +1322,34 @@ static void sub_812DBC0(s32 itemIndex, bool8 onInit, struct ListMenu *list) static void sub_812DD50(u8 taskId) { struct Task * task = &gTasks[taskId]; - task->data[2] = sub_812D888(sFameCheckerData->unlockedPersons[sLastMenuIdx]); + task->data[2] = CreatePersonPicSprite(sFameCheckerData->unlockedPersons[sLastMenuIdx]); gSprites[task->data[2]].data[0] = 0; - sub_812CD3C(); - task->func = sub_812C694; + GetPickModeText(); + task->func = Task_TopMenuHandleInput; } -static void sub_812DDAC(void) +static void PrintCancelDescription(void) { - FillWindowPixelRect(2, 0x11, 0, 0, 0xd0, 0x20); - AddTextPrinterParametrized(2, 2, gUnknown_84181C3, 0, NULL, 2, 1, 3); - sub_812CEE0(2); + FillWindowPixelRect(FCWINDOWID_MSGBOX, 0x11, 0, 0, 0xd0, 0x20); + AddTextPrinterParametrized(FCWINDOWID_MSGBOX, 2, gFameCheckerText_FameCheckerWillBeClosed, 0, NULL, 2, 1, 3); + FC_PutWindowTilemapAndCopyWindowToVramMode3(FCWINDOWID_MSGBOX); } -static void sub_812DDF0(s32 itemIndex, bool8 onInit) +static void FC_DoMoveCursor(s32 itemIndex, bool8 onInit) { u16 sp14; u16 sp16; u16 r6; - get_coro_args_x18_x1A(sFameCheckerData->scrollIndicatorArrowObjectTaskId, &sp14, &sp16); + get_coro_args_x18_x1A(sFameCheckerData->listMenuTaskId, &sp14, &sp16); r6 = sp14 + sp16; - AddTextPrinterParametrized2(0, 2, 8, 14 * sp16 + 4, 0, 0, &gUnknown_845F5E6, 0, sListMenuItems[itemIndex].unk_00); + AddTextPrinterParametrized2(FCWINDOWID_LIST, 2, 8, 14 * sp16 + 4, 0, 0, &gUnknown_845F5E6, 0, sListMenuItems[itemIndex].unk_00); if (!onInit) { if (sp14 < sFameCheckerData->listMenuTopIdx2) sFameCheckerData->listMenuDrawnSelIdx++; else if (sp14 > sFameCheckerData->listMenuTopIdx2 && r6 != sFameCheckerData->numUnlockedPersons - 1) sFameCheckerData->listMenuDrawnSelIdx--; - AddTextPrinterParametrized2(0, 2, 8, 14 * sFameCheckerData->listMenuDrawnSelIdx + 4, 0, 0, &gUnknown_845F5E3, 0, sListMenuItems[sFameCheckerData->listMenuCurIdx].unk_00); + AddTextPrinterParametrized2(FCWINDOWID_LIST, 2, 8, 14 * sFameCheckerData->listMenuDrawnSelIdx + 4, 0, 0, &gUnknown_845F5E3, 0, sListMenuItems[sFameCheckerData->listMenuCurIdx].unk_00); } sFameCheckerData->listMenuCurIdx = itemIndex; @@ -1384,63 +1357,63 @@ static void sub_812DDF0(s32 itemIndex, bool8 onInit) sFameCheckerData->listMenuTopIdx2 = sp14; } -static u8 sub_812DEF0(void) +static u8 FC_PopulateListMenu(void) { - u8 r4 = 0; - u8 r6; + u8 nitems = 0; + u8 i; - for (r6 = 0; r6 < 16; r6++) + for (i = 0; i < NUM_FAMECHECKER_PERSONS; i++) { - u8 r5 = sub_812D0C0(r6); - if (gSaveBlock1Ptr->fameChecker[r5].pickState != FCPICKSTATE_NO_DRAW) + u8 fameCheckerIdx = AdjustGiovanniIndexIfBeatenInGym(i); + if (gSaveBlock1Ptr->fameChecker[fameCheckerIdx].pickState != FCPICKSTATE_NO_DRAW) { - if (gUnknown_845F5EA[r5] < 0xFE00) + if (sTrainerIdxs[fameCheckerIdx] < FC_NONTRAINER_START) { - sListMenuItems[r4].unk_00 = gTrainers[gUnknown_845F5EA[r5]].trainerName; - sListMenuItems[r4].unk_04 = r4; + sListMenuItems[nitems].unk_00 = gTrainers[sTrainerIdxs[fameCheckerIdx]].trainerName; + sListMenuItems[nitems].unk_04 = nitems; } else { - sListMenuItems[r4].unk_00 = gUnknown_845F60C[gUnknown_845F5EA[r5] - 0xFE00]; - sListMenuItems[r4].unk_04 = r4; + sListMenuItems[nitems].unk_00 = sNonTrainerNamePointers[sTrainerIdxs[fameCheckerIdx] - FC_NONTRAINER_START]; + sListMenuItems[nitems].unk_04 = nitems; } - sFameCheckerData->unlockedPersons[r4] = r5; - r4++; + sFameCheckerData->unlockedPersons[nitems] = fameCheckerIdx; + nitems++; } } - sListMenuItems[r4].unk_00 = gUnknown_84161C1; - sListMenuItems[r4].unk_04 = r4; - sFameCheckerData->unlockedPersons[r4] = 0xFF; - r4++; - gFameChecker_ListMenuTemplate.totalItems = r4; - if (r4 < 5) - gFameChecker_ListMenuTemplate.maxShowed = r4; + sListMenuItems[nitems].unk_00 = gFameCheckerText_Cancel; + sListMenuItems[nitems].unk_04 = nitems; + sFameCheckerData->unlockedPersons[nitems] = 0xFF; + nitems++; + gFameChecker_ListMenuTemplate.totalItems = nitems; + if (nitems < 5) + gFameChecker_ListMenuTemplate.maxShowed = nitems; else gFameChecker_ListMenuTemplate.maxShowed = 5; - return r4; + return nitems; } -static void sub_812DFE4(u8 windowId) +static void FC_PutWindowTilemapAndCopyWindowToVramMode3_2(u8 windowId) { PutWindowTilemap(windowId); CopyWindowToVram(windowId, 3); } -static void sub_812E000(void) +static void FC_CreateScrollIndicatorArrowPair(void) { struct ScrollIndicatorArrowPairTemplate sp0 = { - 2, - 40, - 26, - 3, - 40, - 100, - 0, - 0, - SPRITETAG_1004, - 0xFFFF, - 1, - 0 + 2, + 40, + 26, + 3, + 40, + 100, + 0, + 0, + SPRITETAG_SCROLL_INDICATORS, + 0xFFFF, + 1, + 0 }; if (sFameCheckerData->numUnlockedPersons > 5) @@ -1451,7 +1424,7 @@ static void sub_812E000(void) } } -static void sub_812E048(void) +static void FreeListMenuSelectorArrowPairResources(void) { if (sFameCheckerData->numUnlockedPersons > 5) RemoveScrollIndicatorArrowPair(sFameCheckerData->unk_06); @@ -1460,11 +1433,11 @@ static void sub_812E048(void) static u16 FameCheckerGetCursorY(void) { u16 sp0, sp2; - get_coro_args_x18_x1A(sFameCheckerData->scrollIndicatorArrowObjectTaskId, &sp0, &sp2); + get_coro_args_x18_x1A(sFameCheckerData->listMenuTaskId, &sp0, &sp2); return sp0 + sp2; } -static void sub_812E094(u8 a0) +static void FlipBitUnk23_0(bool8 a0) { if (sFameCheckerData->unk_23_0 != a0) { @@ -1571,11 +1544,11 @@ static void sub_812E178(u8 bg, s16 a1) CopyBgTilemapBufferToVram(bg); } -static void sub_812E4A4(u8 a0) +static void PlaceListMenuCursor(bool8 isActive) { - u16 cursorY = ListMenuGetYCoordForPrintingArrowCursor(sFameCheckerData->scrollIndicatorArrowObjectTaskId); - if (a0 == 1) - AddTextPrinterParametrized2(0, 2, 0, cursorY, 0, 0, &gUnknown_845F5E3, 0, gUnknown_841623B); + u16 cursorY = ListMenuGetYCoordForPrintingArrowCursor(sFameCheckerData->listMenuTaskId); + if (isActive == TRUE) + AddTextPrinterParametrized2(FCWINDOWID_LIST, 2, 0, cursorY, 0, 0, &gUnknown_845F5E3, 0, gFameCheckerText_ListMenuCursor); else - AddTextPrinterParametrized2(0, 2, 0, cursorY, 0, 0, &gUnknown_845F5E0, 0, gUnknown_841623B); + AddTextPrinterParametrized2(FCWINDOWID_LIST, 2, 0, cursorY, 0, 0, &gUnknown_845F5E0, 0, gFameCheckerText_ListMenuCursor); } -- cgit v1.2.3 From 5f9edfe8e63127d2557f9f419ecdd9174d0a7ae8 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 27 Nov 2018 18:29:18 -0500 Subject: One more field renaming in fame_checker --- src/fame_checker.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/fame_checker.c b/src/fame_checker.c index 46c13c387..ec78b5f0e 100644 --- a/src/fame_checker.c +++ b/src/fame_checker.c @@ -42,7 +42,7 @@ struct FameCheckerData { MainCallback savedCallback; u16 listMenuTopIdx; - u8 unk_06; + u8 scrollIndicatorPairTaskId; u8 personHasUnlockedPanels:1; u8 inPickMode:1; u8 numUnlockedPersons:6; @@ -53,7 +53,7 @@ struct FameCheckerData u8 unlockedPersons[NUM_FAMECHECKER_PERSONS + 1]; u8 spriteIds[6]; u8 unk_23_0:1; - u8 unk_23_1:1; + u8 unk_23_1:1; // unused u8 unk_23_2:1; }; @@ -1420,14 +1420,14 @@ static void FC_CreateScrollIndicatorArrowPair(void) { sp0.unk_06 = 0; sp0.unk_08 = sFameCheckerData->numUnlockedPersons - 5; - sFameCheckerData->unk_06 = AddScrollIndicatorArrowPair(&sp0, &sFameCheckerData->listMenuTopIdx); + sFameCheckerData->scrollIndicatorPairTaskId = AddScrollIndicatorArrowPair(&sp0, &sFameCheckerData->listMenuTopIdx); } } static void FreeListMenuSelectorArrowPairResources(void) { if (sFameCheckerData->numUnlockedPersons > 5) - RemoveScrollIndicatorArrowPair(sFameCheckerData->unk_06); + RemoveScrollIndicatorArrowPair(sFameCheckerData->scrollIndicatorPairTaskId); } static u16 FameCheckerGetCursorY(void) -- cgit v1.2.3 From 66c7fc0d701ef5211114fdbdaa9588007beed3f2 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 28 Nov 2018 08:42:21 -0500 Subject: All functions and assets in fame_checker are named --- src/fame_checker.c | 135 ++++++++++++++++++++++++++--------------------------- 1 file changed, 67 insertions(+), 68 deletions(-) (limited to 'src') diff --git a/src/fame_checker.c b/src/fame_checker.c index ec78b5f0e..85cea3015 100644 --- a/src/fame_checker.c +++ b/src/fame_checker.c @@ -52,9 +52,9 @@ struct FameCheckerData u8 listMenuDrawnSelIdx; u8 unlockedPersons[NUM_FAMECHECKER_PERSONS + 1]; u8 spriteIds[6]; - u8 unk_23_0:1; + u8 viewingFlavorText:1; u8 unk_23_1:1; // unused - u8 unk_23_2:1; + u8 pickModeOverCancel:1; }; static EWRAM_DATA u16 * sBg3TilemapBuffer = NULL; @@ -65,7 +65,7 @@ static EWRAM_DATA struct ListMenuItem * sListMenuItems = NULL; static EWRAM_DATA s32 sLastMenuIdx = 0; struct ListMenuTemplate gFameChecker_ListMenuTemplate; -u8 gUnknown_3005EC8; +u8 gIconDescriptionBoxIsOpen; static void MainCB2_LoadFameChecker(void); static void LoadUISpriteSheetsAndPalettes(void); @@ -86,31 +86,31 @@ static bool8 SetMessageSelectorIconObjMode(u8 taskId, u8 objMode); static void Task_StartToCloseFameChecker(u8 taskId); static void Task_DestroyAssetsAndCloseFameChecker(u8 taskId); static void FC_DestroyWindow(u8 windowId); -static void PrintUIHelp(u8 a0); -static bool8 CreateAllFlavorTextIcons(u8 a0); +static void PrintUIHelp(u8 state); +static bool8 CreateAllFlavorTextIcons(u8 who); static void FCSetup_ClearVideoRegisters(void); static void FCSetup_ResetTasksAndSpriteResources(void); static void FCSetup_TurnOnDisplay(void); static void FCSetup_ResetBGCoords(void); static bool8 HasUnlockedAllFlavorTextsForCurrentPerson(void); static void FreeSelectionCursorSpriteResources(void); -static u8 CreateFlavorTextIconSelectorCursorSprite(s16 a0); +static u8 CreateFlavorTextIconSelectorCursorSprite(s16 where); static void SpriteCB_DestroyFlavorTextIconSelectorCursor(struct Sprite *sprite); static void FreeQuestionMarkSpriteResources(void); -static u8 PlaceQuestionMarkTile(u8, u8); +static u8 PlaceQuestionMarkTile(u8 x, u8 y); static void FreeSpinningPokeballSpriteResources(void); static u8 CreateSpinningPokeballSprite(void); static void SpriteCB_DestroySpinningPokeball(struct Sprite *sprite); static void FreeNonTrainerPicTiles(void); -static u8 CreatePersonPicSprite(u8 a0); -static void DestroyPersonPicSprite(u8 a0, u16 a1); -static void UpdateIconDescriptionBox(u8 a0); -static void sub_812DB10(void); +static u8 CreatePersonPicSprite(u8 fcPersonIdx); +static void DestroyPersonPicSprite(u8 taskId, u16 who); +static void UpdateIconDescriptionBox(u8 whichText); +static void UpdateIconDescriptionBoxOff(void); static void FC_CreateListMenu(void); static void SpriteCB_FCSpinningPokeball(struct Sprite * sprite); static void InitListMenuTemplate(void); -static void FC_MoveCursorFunc(s32, bool8, struct ListMenu *); -static void sub_812DD50(u8 taskId); +static void FC_MoveCursorFunc(s32 itemIndex, bool8 onInit, struct ListMenu * list); +static void Task_SwitchToPickMode(u8 taskId); static void PrintCancelDescription(void); static void FC_DoMoveCursor(s32 itemIndex, bool8 onInit); static u8 FC_PopulateListMenu(void); @@ -118,10 +118,10 @@ static void FC_PutWindowTilemapAndCopyWindowToVramMode3_2(u8 windowId); static void FC_CreateScrollIndicatorArrowPair(void); static void FreeListMenuSelectorArrowPairResources(void); static u16 FameCheckerGetCursorY(void); -static void FlipBitUnk23_0(bool8); -static void sub_812E110(u8 taskId); -static void sub_812E178(u8 a0, s16 a1); -static void PlaceListMenuCursor(bool8 a0); +static void HandleFlavorTextModeSwitch(bool8 state); +static void Task_FCOpenOrCloseInfoBox(u8 taskId); +static void UpdateInfoBoxTilemap(u8 bg, s16 state); +static void PlaceListMenuCursor(bool8 isActive); extern const u8 gFameCheckerText_Cancel[]; extern const u8 gFameCheckerText_ListMenuCursor[]; @@ -447,7 +447,7 @@ void UseFameChecker(MainCallback savedCallback) sFameCheckerData->listMenuCurIdx = 0; sFameCheckerData->listMenuTopIdx2 = 0; sFameCheckerData->listMenuDrawnSelIdx = 0; - sFameCheckerData->unk_23_0 = FALSE; + sFameCheckerData->viewingFlavorText = FALSE; PlaySE(SE_W202); SetMainCallback2(MainCB2_LoadFameChecker); } @@ -510,7 +510,7 @@ static void MainCB2_LoadFameChecker(void) break; case 6: LoadUISpriteSheetsAndPalettes(); - CreateAllFlavorTextIcons(0); + CreateAllFlavorTextIcons(FAMECHECKER_OAK); WipeMsgBoxAndTransfer(); BeginNormalPaletteFade(0xFFFFFFFF,0, 16, 0, 0); gMain.state++; @@ -523,7 +523,7 @@ static void MainCB2_LoadFameChecker(void) SetVBlankCallback(FC_VBlankCallback); sFameCheckerData->listMenuTopIdx = 0; FC_CreateScrollIndicatorArrowPair(); - sub_812E178(1, 4); + UpdateInfoBoxTilemap(1, 4); CreateTask(Task_WaitFadeOnInit, 0x08); SetMainCallback2(MainCB2_FameCheckerMain); gMain.state = 0; @@ -549,7 +549,7 @@ static void Task_TopMenuHandleInput(u8 taskId) u8 i; struct Task *task = &gTasks[taskId]; s16 * data = gTasks[taskId].data; - if (FindTaskIdByFunc(sub_812E110) == 0xFF) + if (FindTaskIdByFunc(Task_FCOpenOrCloseInfoBox) == 0xFF) { RunTextPrinters(); if ((JOY_NEW(SELECT_BUTTON)) && !sFameCheckerData->inPickMode && sFameCheckerData->savedCallback != UseFameCheckerFromMenu) @@ -566,8 +566,8 @@ static void Task_TopMenuHandleInput(u8 taskId) PlaySE(SE_W100); FillWindowPixelRect(FCWINDOWID_ICONDESC, 0x00, 0, 0, 88, 32); FC_PutWindowTilemapAndCopyWindowToVramMode3(FCWINDOWID_ICONDESC); - sub_812E178(2, 4); - sub_812E178(1, 5); + UpdateInfoBoxTilemap(2, 4); + UpdateInfoBoxTilemap(1, 5); PrintUIHelp(1); task->data[2] = CreatePersonPicSprite(sFameCheckerData->unlockedPersons[cursorPos]); gSprites[task->data[2]].pos2.x = 0xF0; @@ -597,7 +597,7 @@ static void Task_TopMenuHandleInput(u8 taskId) if (i != task->data[1]) SetMessageSelectorIconObjMode(sFameCheckerData->spriteIds[i], ST_OAM_OBJ_BLEND); } - gUnknown_3005EC8 = 0xFF; + gIconDescriptionBoxIsOpen = 0xFF; PlaceListMenuCursor(FALSE); PrintUIHelp(2); if (gSprites[sFameCheckerData->spriteIds[task->data[1]]].data[1] != 0xFF) // not a ? tile @@ -631,7 +631,7 @@ static bool8 TryExitPickMode(u8 taskId) WipeMsgBoxAndTransfer(); task->func = Task_ExitPickMode; MessageBoxPrintEmptyText(); - sFameCheckerData->unk_23_2 = FALSE; + sFameCheckerData->pickModeOverCancel = FALSE; return TRUE; } return FALSE; @@ -666,8 +666,8 @@ static void Task_ExitPickMode(u8 taskId) { if (sFameCheckerData->personHasUnlockedPanels) PrintUIHelp(0); - sub_812E178(1, 4); - sub_812E178(2, 2); + UpdateInfoBoxTilemap(1, 4); + UpdateInfoBoxTilemap(2, 2); sFameCheckerData->inPickMode = FALSE; DestroyPersonPicSprite(taskId, FameCheckerGetCursorY()); task->func = Task_TopMenuHandleInput; @@ -695,8 +695,8 @@ static void Task_FlavorTextDisplayHandleInput(u8 taskId) SetMessageSelectorIconObjMode(sFameCheckerData->spriteIds[i], ST_OAM_OBJ_NORMAL); WipeMsgBoxAndTransfer(); gSprites[task->data[0]].callback = SpriteCB_DestroyFlavorTextIconSelectorCursor; - if (gUnknown_3005EC8 != 0xFF) - sub_812DB10(); + if (gIconDescriptionBoxIsOpen != 0xFF) + UpdateIconDescriptionBoxOff(); PlaceListMenuCursor(TRUE); PrintUIHelp(0); FC_CreateScrollIndicatorArrowPair(); @@ -760,8 +760,8 @@ static void FC_MoveSelectorCursor(u8 taskId, s8 dx, s8 dy) PrintSelectedNameInBrightGreen(taskId); UpdateIconDescriptionBox(data[1]); } - else if (gUnknown_3005EC8 != 0xFF) - sub_812DB10(); + else if (gIconDescriptionBoxIsOpen != 0xFF) + UpdateIconDescriptionBoxOff(); } static void GetPickModeText(void) @@ -913,14 +913,13 @@ static void DestroyAllFlavorTextIcons(void) } } -static bool8 CreateAllFlavorTextIcons(u8 a0) +static bool8 CreateAllFlavorTextIcons(u8 who) { - // r8 <- a0 bool8 result = FALSE; u8 i; for (i = 0; i < 6; i++) { - if ((gSaveBlock1Ptr->fameChecker[sFameCheckerData->unlockedPersons[a0]].flavorTextFlags >> i) & 1) + if ((gSaveBlock1Ptr->fameChecker[sFameCheckerData->unlockedPersons[who]].flavorTextFlags >> i) & 1) { sFameCheckerData->spriteIds[i] = sub_805EB44( sFameCheckerArrayNpcGraphicsIds[sFameCheckerData->unlockedPersons[a0] * 6 + i], @@ -1206,12 +1205,12 @@ static void DestroyPersonPicSprite(u8 taskId, u16 who) sub_810C2E8(data[2]); } -static void UpdateIconDescriptionBox(u8 a0) +static void UpdateIconDescriptionBox(u8 whichText) { s32 width; - u32 idx = 6 * sFameCheckerData->unlockedPersons[FameCheckerGetCursorY()] + a0; - FlipBitUnk23_0(TRUE); - gUnknown_3005EC8 = 1; + u32 idx = 6 * sFameCheckerData->unlockedPersons[FameCheckerGetCursorY()] + whichText; + HandleFlavorTextModeSwitch(TRUE); + gIconDescriptionBoxIsOpen = 1; FillWindowPixelRect(FCWINDOWID_ICONDESC, 0x00, 0, 0, 0x58, 0x20); width = (0x54 - GetStringWidth(0, sFlavorTextOriginLocationTexts[idx], 0)) / 2; AddTextPrinterParametrized2(FCWINDOWID_ICONDESC, 0, width, 0, 0, 2, &gUnknown_845F5E3, -1, sFlavorTextOriginLocationTexts[idx]); @@ -1221,10 +1220,10 @@ static void UpdateIconDescriptionBox(u8 a0) FC_PutWindowTilemapAndCopyWindowToVramMode3(FCWINDOWID_ICONDESC); } -static void sub_812DB10(void) +static void UpdateIconDescriptionBoxOff(void) { - FlipBitUnk23_0(FALSE); - gUnknown_3005EC8 = 0xFF; + HandleFlavorTextModeSwitch(FALSE); + gIconDescriptionBoxIsOpen = 0xFF; } static void FC_CreateListMenu(void) @@ -1259,11 +1258,11 @@ static void InitListMenuTemplate(void) static void FC_MoveCursorFunc(s32 itemIndex, bool8 onInit, struct ListMenu *list) { - u16 sp8; + u16 listMenuTopIdx; u8 taskId; - u16 r9; + u16 personIdx; sLastMenuIdx = 0; - r9 = sFameCheckerData->listMenuTopIdx2 + sFameCheckerData->listMenuDrawnSelIdx; + personIdx = sFameCheckerData->listMenuTopIdx2 + sFameCheckerData->listMenuDrawnSelIdx; FC_DoMoveCursor(itemIndex, onInit); taskId = FindTaskIdByFunc(Task_TopMenuHandleInput); if (taskId != 0xFF) @@ -1271,24 +1270,24 @@ static void FC_MoveCursorFunc(s32 itemIndex, bool8 onInit, struct ListMenu *list struct Task *task = &gTasks[taskId]; PlaySE(SE_SELECT); task->data[1] = 0; - get_coro_args_x18_x1A(sFameCheckerData->listMenuTaskId, &sp8, NULL); - sFameCheckerData->listMenuTopIdx = sp8; + get_coro_args_x18_x1A(sFameCheckerData->listMenuTaskId, &listMenuTopIdx, NULL); + sFameCheckerData->listMenuTopIdx = listMenuTopIdx; if (itemIndex != sFameCheckerData->numUnlockedPersons - 1) { DestroyAllFlavorTextIcons(); CreateAllFlavorTextIcons(itemIndex); if (sFameCheckerData->inPickMode) { - if (!sFameCheckerData->unk_23_2) + if (!sFameCheckerData->pickModeOverCancel) { - DestroyPersonPicSprite(taskId, r9); + DestroyPersonPicSprite(taskId, personIdx); sLastMenuIdx = itemIndex; - task->func = sub_812DD50; + task->func = Task_SwitchToPickMode; } else { gSprites[task->data[2]].invisible = FALSE; - sFameCheckerData->unk_23_2 = FALSE; + sFameCheckerData->pickModeOverCancel = FALSE; gSprites[task->data[2]].data[0] = 0; GetPickModeText(); } @@ -1305,7 +1304,7 @@ static void FC_MoveCursorFunc(s32 itemIndex, bool8 onInit, struct ListMenu *list if (sFameCheckerData->inPickMode) { gSprites[task->data[2]].invisible = TRUE; - sFameCheckerData->unk_23_2 = TRUE; + sFameCheckerData->pickModeOverCancel = TRUE; } else { @@ -1319,7 +1318,7 @@ static void FC_MoveCursorFunc(s32 itemIndex, bool8 onInit, struct ListMenu *list } } -static void sub_812DD50(u8 taskId) +static void Task_SwitchToPickMode(u8 taskId) { struct Task * task = &gTasks[taskId]; task->data[2] = CreatePersonPicSprite(sFameCheckerData->unlockedPersons[sLastMenuIdx]); @@ -1437,29 +1436,29 @@ static u16 FameCheckerGetCursorY(void) return sp0 + sp2; } -static void FlipBitUnk23_0(bool8 a0) +static void HandleFlavorTextModeSwitch(bool8 state) { - if (sFameCheckerData->unk_23_0 != a0) + if (sFameCheckerData->viewingFlavorText != state) { - u8 taskId = FindTaskIdByFunc(sub_812E110); + u8 taskId = FindTaskIdByFunc(Task_FCOpenOrCloseInfoBox); if (taskId == 0xFF) - taskId = CreateTask(sub_812E110, 8); + taskId = CreateTask(Task_FCOpenOrCloseInfoBox, 8); gTasks[taskId].data[0] = 0; gTasks[taskId].data[1] = 4; - if (a0 == TRUE) + if (state == TRUE) { gTasks[taskId].data[2] = 1; - sFameCheckerData->unk_23_0 = TRUE; + sFameCheckerData->viewingFlavorText = TRUE; } else { gTasks[taskId].data[2] = 4; - sFameCheckerData->unk_23_0 = FALSE; + sFameCheckerData->viewingFlavorText = FALSE; } } } -static void sub_812E110(u8 taskId) +static void Task_FCOpenOrCloseInfoBox(u8 taskId) { struct Task * task = &gTasks[taskId]; switch (task->data[0]) @@ -1467,7 +1466,7 @@ static void sub_812E110(u8 taskId) case 0: if (--task->data[1] == 0) { - sub_812E178(1, 0); + UpdateInfoBoxTilemap(1, 0); task->data[1] = 4; task->data[0]++; } @@ -1475,16 +1474,16 @@ static void sub_812E110(u8 taskId) case 1: if (--task->data[1] == 0) { - sub_812E178(1, task->data[2]); + UpdateInfoBoxTilemap(1, task->data[2]); DestroyTask(taskId); } break; } } -static void sub_812E178(u8 bg, s16 a1) +static void UpdateInfoBoxTilemap(u8 bg, s16 state) { - if (a1 == 0 || a1 == 3) + if (state == 0 || state == 3) { FillBgTilemapBufferRect(bg, 0x8C, 14, 10, 1, 1, 1); FillBgTilemapBufferRect(bg, 0xA1, 15, 10, 10, 1, 1); @@ -1498,7 +1497,7 @@ static void sub_812E178(u8 bg, s16 a1) FillBgTilemapBufferRect(bg, 0x92, 25, 12, 1, 1, 1); FillBgTilemapBufferRect(bg, 0x93, 26, 12, 1, 1, 1); } - else if (a1 == 1) + else if (state == 1) { FillBgTilemapBufferRect(bg, 0x9B, 14, 10, 1, 1, 1); FillBgTilemapBufferRect(bg, 0x9C, 15, 10, 11, 1, 1); @@ -1510,7 +1509,7 @@ static void sub_812E178(u8 bg, s16 a1) FillBgTilemapBufferRect(bg, 0x9F, 15, 12, 11, 1, 1); FillBgTilemapBufferRect(bg, 0x99, 26, 12, 1, 1, 1); } - else if (a1 == 2) + else if (state == 2) { FillBgTilemapBufferRect(bg, 0x94, 14, 10, 1, 1, 1); FillBgTilemapBufferRect(bg, 0x95, 15, 10, 11, 1, 1); @@ -1522,7 +1521,7 @@ static void sub_812E178(u8 bg, s16 a1) FillBgTilemapBufferRect(bg, 0x98, 15, 12, 11, 1, 1); FillBgTilemapBufferRect(bg, 0x99, 26, 12, 1, 1, 1); } - else if (a1 == 4) + else if (state == 4) { FillBgTilemapBufferRect(bg, 0x83, 14, 10, 1, 1, 1); FillBgTilemapBufferRect(bg, 0xA0, 15, 10, 10, 1, 1); @@ -1537,7 +1536,7 @@ static void sub_812E178(u8 bg, s16 a1) FillBgTilemapBufferRect(bg, 0x84, 25, 12, 1, 1, 1); FillBgTilemapBufferRect(bg, 0x85, 26, 12, 1, 1, 1); } - else if (a1 == 5) + else if (state == 5) { FillBgTilemapBufferRect(bg, 0x00, 14, 10, 13, 3, 1); } -- cgit v1.2.3 From d7237d2cb74ea02b71742b09a1db2cf2721fb999 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 28 Nov 2018 08:47:47 -0500 Subject: Also name the text color assets --- src/fame_checker.c | 62 +++++++++++++++++++++++++++--------------------------- 1 file changed, 31 insertions(+), 31 deletions(-) (limited to 'src') diff --git a/src/fame_checker.c b/src/fame_checker.c index 85cea3015..67344edbc 100644 --- a/src/fame_checker.c +++ b/src/fame_checker.c @@ -149,12 +149,12 @@ static const u8 sDaisySpriteGfx[] = INCBIN_U8("data/fame_checker/img_845e560.4bp static const u16 sDaisySpritePalette[] = INCBIN_U16("data/fame_checker/pal_845ed60.gbapal"); static const u8 sOakSpriteGfx[] = INCBIN_U8("data/fame_checker/img_845ed80.4bpp"); static const u16 sOakSpritePalette[] = INCBIN_U16("data/fame_checker/pal_845f580.gbapal"); -static const u16 gUnknown_845F5A0[] = INCBIN_U16("data/fame_checker/pal_845f5a0.gbapal"); +static const u16 gUnknown_845F5A0[] = INCBIN_U16("data/fame_checker/pal_845f5a0.gbapal"); // unused? static const u16 sSilhouettePalette[] = INCBIN_U16("data/fame_checker/pal_845f5c0.gbapal"); -static const struct TextColor gUnknown_845F5E0 = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY}; -static const struct TextColor gUnknown_845F5E3 = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GREY, 0x03}; -static const struct TextColor gUnknown_845F5E6 = {TEXT_COLOR_TRANSPARENT, 0x06, 0x07}; +static const struct TextColor sTextColor_White = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY}; +static const struct TextColor sTextColor_DkGrey = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GREY, 0x03}; +static const struct TextColor sTextColor_Green = {TEXT_COLOR_TRANSPARENT, 0x06, 0x07}; static const u16 sTrainerIdxs[] = { FC_NONTRAINER_START + 0, // OAK @@ -766,9 +766,9 @@ static void FC_MoveSelectorCursor(u8 taskId, s8 dx, s8 dy) static void GetPickModeText(void) { - u8 r8 = 0; - u16 r6 = FameCheckerGetCursorY(); - if (gSaveBlock1Ptr->fameChecker[sFameCheckerData->unlockedPersons[r6]].pickState != FCPICKSTATE_COLORED) + u8 offset = 0; + u16 who = FameCheckerGetCursorY(); + if (gSaveBlock1Ptr->fameChecker[sFameCheckerData->unlockedPersons[who]].pickState != FCPICKSTATE_COLORED) { WipeMsgBoxAndTransfer(); MessageBoxPrintEmptyText(); @@ -777,8 +777,8 @@ static void GetPickModeText(void) { FillWindowPixelRect(FCWINDOWID_MSGBOX, 0x11, 0, 0, 0xd0, 0x20); if (HasUnlockedAllFlavorTextsForCurrentPerson() == TRUE) - r8 = NUM_FAMECHECKER_PERSONS; - StringExpandPlaceholders(gStringVar4, sFameCheckerNameAndQuotesPointers[sFameCheckerData->unlockedPersons[r6] + r8]); + offset = NUM_FAMECHECKER_PERSONS; + StringExpandPlaceholders(gStringVar4, sFameCheckerNameAndQuotesPointers[sFameCheckerData->unlockedPersons[who] + offset]); AddTextPrinterParametrized(FCWINDOWID_MSGBOX, 2, gStringVar4, sub_80F78A8(), NULL, 2, 1, 3); FC_PutWindowTilemapAndCopyWindowToVramMode3(FCWINDOWID_MSGBOX); } @@ -833,7 +833,7 @@ static void Task_StartToCloseFameChecker(u8 taskId) static void Task_DestroyAssetsAndCloseFameChecker(u8 taskId) { - u8 r4; + u8 i; if (!gPaletteFade.active) { @@ -843,9 +843,9 @@ static void Task_DestroyAssetsAndCloseFameChecker(u8 taskId) FreeSpriteOamMatrix(&gSprites[gTasks[taskId].data[3]]); DestroySprite(&gSprites[gTasks[taskId].data[3]]); } - for (r4 = 0; r4 < 6; r4++) + for (i = 0; i < 6; i++) { - DestroySprite(&gSprites[sFameCheckerData->spriteIds[r4]]); + DestroySprite(&gSprites[sFameCheckerData->spriteIds[i]]); } FreeNonTrainerPicTiles(); FreeSpinningPokeballSpriteResources(); @@ -900,7 +900,7 @@ static void PrintUIHelp(u8 state) } width = GetStringWidth(0, src, 0); FillWindowPixelRect(FCWINDOWID_UIHELP, 0x00, 0, 0, 0xc0, 0x10); - AddTextPrinterParametrized2(FCWINDOWID_UIHELP, 0, 188 - width, 0, 0, 2, &gUnknown_845F5E0, -1, src); + AddTextPrinterParametrized2(FCWINDOWID_UIHELP, 0, 188 - width, 0, 0, 2, &sTextColor_White, -1, src); FC_PutWindowTilemapAndCopyWindowToVramMode3(FCWINDOWID_UIHELP); } @@ -1213,10 +1213,10 @@ static void UpdateIconDescriptionBox(u8 whichText) gIconDescriptionBoxIsOpen = 1; FillWindowPixelRect(FCWINDOWID_ICONDESC, 0x00, 0, 0, 0x58, 0x20); width = (0x54 - GetStringWidth(0, sFlavorTextOriginLocationTexts[idx], 0)) / 2; - AddTextPrinterParametrized2(FCWINDOWID_ICONDESC, 0, width, 0, 0, 2, &gUnknown_845F5E3, -1, sFlavorTextOriginLocationTexts[idx]); + AddTextPrinterParametrized2(FCWINDOWID_ICONDESC, 0, width, 0, 0, 2, &sTextColor_DkGrey, -1, sFlavorTextOriginLocationTexts[idx]); StringExpandPlaceholders(gStringVar1, sFlavorTextOriginObjectNameTexts[idx]); width = (0x54 - GetStringWidth(0, gStringVar1, 0)) / 2; - AddTextPrinterParametrized2(FCWINDOWID_ICONDESC, 0, width, 10, 0, 2, &gUnknown_845F5E3, -1, gStringVar1); + AddTextPrinterParametrized2(FCWINDOWID_ICONDESC, 0, width, 10, 0, 2, &sTextColor_DkGrey, -1, gStringVar1); FC_PutWindowTilemapAndCopyWindowToVramMode3(FCWINDOWID_ICONDESC); } @@ -1308,10 +1308,10 @@ static void FC_MoveCursorFunc(s32 itemIndex, bool8 onInit, struct ListMenu *list } else { - u8 r2; - for (r2 = 0; r2 < 6; r2++) + u8 iwho; + for (iwho = 0; iwho < 6; iwho++) { - gSprites[sFameCheckerData->spriteIds[r2]].invisible = TRUE; + gSprites[sFameCheckerData->spriteIds[i]].invisible = TRUE; } } } @@ -1336,24 +1336,24 @@ static void PrintCancelDescription(void) static void FC_DoMoveCursor(s32 itemIndex, bool8 onInit) { - u16 sp14; - u16 sp16; - u16 r6; - get_coro_args_x18_x1A(sFameCheckerData->listMenuTaskId, &sp14, &sp16); - r6 = sp14 + sp16; - AddTextPrinterParametrized2(FCWINDOWID_LIST, 2, 8, 14 * sp16 + 4, 0, 0, &gUnknown_845F5E6, 0, sListMenuItems[itemIndex].unk_00); + u16 topIdx; + u16 drawnSelIdx; + u16 who; + get_coro_args_x18_x1A(sFameCheckerData->listMenuTaskId, &topIdx, &drawnSelIdx); + who = topIdx + drawnSelIdx; + AddTextPrinterParametrized2(FCWINDOWID_LIST, 2, 8, 14 * drawnSelIdx + 4, 0, 0, &sTextColor_Green, 0, sListMenuItems[itemIndex].unk_00); if (!onInit) { - if (sp14 < sFameCheckerData->listMenuTopIdx2) + if (topIdx < sFameCheckerData->listMenuTopIdx2) sFameCheckerData->listMenuDrawnSelIdx++; - else if (sp14 > sFameCheckerData->listMenuTopIdx2 && r6 != sFameCheckerData->numUnlockedPersons - 1) + else if (topIdx > sFameCheckerData->listMenuTopIdx2 && who != sFameCheckerData->numUnlockedPersons - 1) sFameCheckerData->listMenuDrawnSelIdx--; - AddTextPrinterParametrized2(FCWINDOWID_LIST, 2, 8, 14 * sFameCheckerData->listMenuDrawnSelIdx + 4, 0, 0, &gUnknown_845F5E3, 0, sListMenuItems[sFameCheckerData->listMenuCurIdx].unk_00); + AddTextPrinterParametrized2(FCWINDOWID_LIST, 2, 8, 14 * sFameCheckerData->listMenuDrawnSelIdx + 4, 0, 0, &sTextColor_DkGrey, 0, sListMenuItems[sFameCheckerData->listMenuCurIdx].unk_00); } sFameCheckerData->listMenuCurIdx = itemIndex; - sFameCheckerData->listMenuDrawnSelIdx = sp16; - sFameCheckerData->listMenuTopIdx2 = sp14; + sFameCheckerData->listMenuDrawnSelIdx = drawnSelIdx; + sFameCheckerData->listMenuTopIdx2 = topIdx; } static u8 FC_PopulateListMenu(void) @@ -1547,7 +1547,7 @@ static void PlaceListMenuCursor(bool8 isActive) { u16 cursorY = ListMenuGetYCoordForPrintingArrowCursor(sFameCheckerData->listMenuTaskId); if (isActive == TRUE) - AddTextPrinterParametrized2(FCWINDOWID_LIST, 2, 0, cursorY, 0, 0, &gUnknown_845F5E3, 0, gFameCheckerText_ListMenuCursor); + AddTextPrinterParametrized2(FCWINDOWID_LIST, 2, 0, cursorY, 0, 0, &sTextColor_DkGrey, 0, gFameCheckerText_ListMenuCursor); else - AddTextPrinterParametrized2(FCWINDOWID_LIST, 2, 0, cursorY, 0, 0, &gUnknown_845F5E0, 0, gFameCheckerText_ListMenuCursor); + AddTextPrinterParametrized2(FCWINDOWID_LIST, 2, 0, cursorY, 0, 0, &sTextColor_White, 0, gFameCheckerText_ListMenuCursor); } -- cgit v1.2.3 From cb9f24a9a9f71d711150c6c61e2b6e2b8f99a3d4 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 28 Nov 2018 10:15:08 -0500 Subject: Fix errors introduced in precious commit --- src/fame_checker.c | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) (limited to 'src') diff --git a/src/fame_checker.c b/src/fame_checker.c index 67344edbc..64a73c7a4 100644 --- a/src/fame_checker.c +++ b/src/fame_checker.c @@ -922,7 +922,7 @@ static bool8 CreateAllFlavorTextIcons(u8 who) if ((gSaveBlock1Ptr->fameChecker[sFameCheckerData->unlockedPersons[who]].flavorTextFlags >> i) & 1) { sFameCheckerData->spriteIds[i] = sub_805EB44( - sFameCheckerArrayNpcGraphicsIds[sFameCheckerData->unlockedPersons[a0] * 6 + i], + sFameCheckerArrayNpcGraphicsIds[sFameCheckerData->unlockedPersons[who] * 6 + i], i, 47 * (i % 3) + 0x72, 27 * (i / 3) + 0x2F @@ -1308,8 +1308,8 @@ static void FC_MoveCursorFunc(s32 itemIndex, bool8 onInit, struct ListMenu *list } else { - u8 iwho; - for (iwho = 0; iwho < 6; iwho++) + u8 i; + for (i = 0; i < 6; i++) { gSprites[sFameCheckerData->spriteIds[i]].invisible = TRUE; } @@ -1336,24 +1336,24 @@ static void PrintCancelDescription(void) static void FC_DoMoveCursor(s32 itemIndex, bool8 onInit) { - u16 topIdx; - u16 drawnSelIdx; + u16 listY; + u16 cursorY; u16 who; - get_coro_args_x18_x1A(sFameCheckerData->listMenuTaskId, &topIdx, &drawnSelIdx); - who = topIdx + drawnSelIdx; - AddTextPrinterParametrized2(FCWINDOWID_LIST, 2, 8, 14 * drawnSelIdx + 4, 0, 0, &sTextColor_Green, 0, sListMenuItems[itemIndex].unk_00); + get_coro_args_x18_x1A(sFameCheckerData->listMenuTaskId, &listY, &cursorY); + who = listY + cursorY; + AddTextPrinterParametrized2(FCWINDOWID_LIST, 2, 8, 14 * cursorY + 4, 0, 0, &sTextColor_Green, 0, sListMenuItems[itemIndex].unk_00); if (!onInit) { - if (topIdx < sFameCheckerData->listMenuTopIdx2) + if (listY < sFameCheckerData->listMenuTopIdx2) sFameCheckerData->listMenuDrawnSelIdx++; - else if (topIdx > sFameCheckerData->listMenuTopIdx2 && who != sFameCheckerData->numUnlockedPersons - 1) + else if (listY > sFameCheckerData->listMenuTopIdx2 && who != sFameCheckerData->numUnlockedPersons - 1) sFameCheckerData->listMenuDrawnSelIdx--; AddTextPrinterParametrized2(FCWINDOWID_LIST, 2, 8, 14 * sFameCheckerData->listMenuDrawnSelIdx + 4, 0, 0, &sTextColor_DkGrey, 0, sListMenuItems[sFameCheckerData->listMenuCurIdx].unk_00); } sFameCheckerData->listMenuCurIdx = itemIndex; - sFameCheckerData->listMenuDrawnSelIdx = drawnSelIdx; - sFameCheckerData->listMenuTopIdx2 = topIdx; + sFameCheckerData->listMenuDrawnSelIdx = cursorY; + sFameCheckerData->listMenuTopIdx2 = listY; } static u8 FC_PopulateListMenu(void) @@ -1400,7 +1400,7 @@ static void FC_PutWindowTilemapAndCopyWindowToVramMode3_2(u8 windowId) static void FC_CreateScrollIndicatorArrowPair(void) { - struct ScrollIndicatorArrowPairTemplate sp0 = { + struct ScrollIndicatorArrowPairTemplate template = { 2, 40, 26, @@ -1417,9 +1417,9 @@ static void FC_CreateScrollIndicatorArrowPair(void) if (sFameCheckerData->numUnlockedPersons > 5) { - sp0.unk_06 = 0; - sp0.unk_08 = sFameCheckerData->numUnlockedPersons - 5; - sFameCheckerData->scrollIndicatorPairTaskId = AddScrollIndicatorArrowPair(&sp0, &sFameCheckerData->listMenuTopIdx); + template.unk_06 = 0; + template.unk_08 = sFameCheckerData->numUnlockedPersons - 5; + sFameCheckerData->scrollIndicatorPairTaskId = AddScrollIndicatorArrowPair(&template, &sFameCheckerData->listMenuTopIdx); } } @@ -1431,9 +1431,9 @@ static void FreeListMenuSelectorArrowPairResources(void) static u16 FameCheckerGetCursorY(void) { - u16 sp0, sp2; - get_coro_args_x18_x1A(sFameCheckerData->listMenuTaskId, &sp0, &sp2); - return sp0 + sp2; + u16 listY, cursorY; + get_coro_args_x18_x1A(sFameCheckerData->listMenuTaskId, &listY, &cursorY); + return listY + cursorY; } static void HandleFlavorTextModeSwitch(bool8 state) -- cgit v1.2.3 From 144027e4fad045d41afea0dfc8bd2bed27a64e6d Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 28 Nov 2018 10:50:41 -0500 Subject: Dump another fame checker tilemap --- src/fame_checker.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/fame_checker.c b/src/fame_checker.c index 64a73c7a4..617ba1522 100644 --- a/src/fame_checker.c +++ b/src/fame_checker.c @@ -478,11 +478,11 @@ static void MainCB2_LoadFameChecker(void) gMain.state++; break; case 3: - LoadBgTiles(3, gUnknown_8E9F260, sizeof(gUnknown_8E9F260), 0); - CopyToBgTilemapBufferRect(3, gUnknown_8EA0700, 0, 0, 32, 32); - LoadPalette(gUnknown_8E9F220 + 0x00, 0x00, 0x40); - LoadPalette(gUnknown_8E9F220 + 0x10, 0x10, 0x20); - CopyToBgTilemapBufferRect(2, gUnknown_8EA0F00, 0, 0, 32, 32); + LoadBgTiles(3, gFameCheckerBgTiles, sizeof(gFameCheckerBgTiles), 0); + CopyToBgTilemapBufferRect(3, gFameCheckerBg3Tilemap, 0, 0, 32, 32); + LoadPalette(gFameCheckerBgPals + 0x00, 0x00, 0x40); + LoadPalette(gFameCheckerBgPals + 0x10, 0x10, 0x20); + CopyToBgTilemapBufferRect(2, gFameCheckerBg2Tilemap, 0, 0, 32, 32); CopyToBgTilemapBufferRect_ChangePalette(1, sFameCheckerTilemap, 30, 0, 32, 32, 0x11); LoadPalette(stdpal_get(2), 0xF0, 0x20); gMain.state++; -- cgit v1.2.3 From 013fcf86fbeccf8d527e43a4f5aaf44402daba48 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 28 Nov 2018 13:49:46 -0500 Subject: Fix spacing in globah.h --- src/fame_checker.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/fame_checker.c b/src/fame_checker.c index 617ba1522..ed38406cb 100644 --- a/src/fame_checker.c +++ b/src/fame_checker.c @@ -129,7 +129,7 @@ extern const u8 gFameCheckerText_FameCheckerWillBeClosed[]; extern const u8 gFameCheckerText_ClearTextbox[]; extern const u8 gFameCheckerText_MainScreenUI[]; // "{KEYGFX_START_BUTTON}PICK {KEYGFX_DPAD_UP_DOWN}SELECT {KEYGFX_A_BUTTON}OK$" extern const u8 gFameCheckerText_PickScreenUI[]; // "{KEYGFX_START_BUTTON}PICK {KEYGFX_DPAD_UP_DOWN}SELECT {KEYGFX_B_BUTTON}CANCEL$" -extern const u8 gFameCheckerText_FlavorTextUI[]; // "{KEYGFX_DPAD_ANY}PICK {KEYGFX_A_BUTTON}READ {UNKNOWN_F8 0x01}CANCEL$" +extern const u8 gFameCheckerText_FlavorTextUI[]; // "{KEYGFX_DPAD_ANY}PICK {KEYGFX_A_BUTTON}READ {KEYGFX_B_BUTTON}CANCEL$" extern const u8 gFameCheckerOakName[]; // "OAK$" extern const u8 gFameCheckerDaisyName[]; // "DAISY$" extern const u8 gFameCheckerBillName[]; // "BILL$" -- cgit v1.2.3