From 9b40cdaeb98c85baaf2ac34004b1a1ab91a3e061 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 2 May 2019 14:27:59 -0400 Subject: through sub_81C99FC --- src/pokenav_unk_2.c | 169 ++++++++++++++++++++++++++++++++++++++++++++++++++++ src/pokenav_unk_3.c | 2 +- 2 files changed, 170 insertions(+), 1 deletion(-) create mode 100644 src/pokenav_unk_2.c (limited to 'src') diff --git a/src/pokenav_unk_2.c b/src/pokenav_unk_2.c new file mode 100644 index 000000000..f58d5977b --- /dev/null +++ b/src/pokenav_unk_2.c @@ -0,0 +1,169 @@ +#include "global.h" +#include "alloc.h" +#include "bg.h" +#include "window.h" +#include "pokenav.h" + +// Match Call + +struct Pokenav2Struct +{ + bool32 (*callback)(void); + u32 loopedTaskId; + u8 field_008; + u8 field_009; + u8 field_00a; + u8 field_00b; + u8 field_00c; + u8 field_00d; + u8 filler_00e[0x87E]; +}; + +struct Pokenav2Struct * sub_81C9958(void); +bool32 sub_81C99FC(void); +u32 sub_81C9A10(int state); +u32 sub_81C9C6C(int state); +u32 sub_81C9CA8(int state); +u32 sub_81C9D44(int state); +u32 sub_81C9DD8(int state); +u32 sub_81C9E58(int state); +u32 sub_81C9EC8(int state); +u32 sub_81C9EF8(int state); +u32 sub_81C9F28(int state); +void sub_81CA7F4(void); +void sub_81C9FEC(void); +void sub_81CA994(void); + +const u16 gUnknown_0861FC78[] = INCBIN_U16("graphics/pokenav/bg.gbapal"); +const u32 gUnknown_0861FC98[] = INCBIN_U32("graphics/pokenav/bg.4bpp.lz"); +const u32 gUnknown_0861FCAC[] = INCBIN_U32("graphics/pokenav/bg.bin.lz"); +const u16 gUnknown_0861FD4C[] = INCBIN_U16("graphics/pokenav/outline.gbapal"); +const u32 gUnknown_0861FD6C[] = INCBIN_U32("graphics/pokenav/outline.4bpp.lz"); +const u32 gUnknown_0861FFF4[] = INCBIN_U32("graphics/pokenav/outline_map.bin.lz"); +const u16 gUnknown_08620104[] = INCBIN_U16("graphics/pokenav/blue_light.gbapal"); +const u32 gUnknown_08620124[] = INCBIN_U32("graphics/pokenav/blue_light.4bpp.lz"); + +const struct BgTemplate gUnknown_08620194[] = { + { + .bg = 1, + .charBaseIndex = 1, + .mapBaseIndex = 15, + .screenSize = 0, + .paletteMode = 0, + .priority = 1, + .baseTile = 0x000 + }, { + .bg = 2, + .charBaseIndex = 2, + .mapBaseIndex = 23, + .screenSize = 0, + .paletteMode = 0, + .priority = 2, + .baseTile = 0x000 + }, { + .bg = 3, + .charBaseIndex = 3, + .mapBaseIndex = 31, + .screenSize = 0, + .paletteMode = 0, + .priority = 3, + .baseTile = 0x000 + } +}; + +const LoopedTask gUnknown_086201A0[] = { + NULL, + sub_81C9C6C, + sub_81C9CA8, + sub_81C9D44, + sub_81C9DD8, + sub_81C9E58, + sub_81C9EC8, + sub_81C9EF8, + sub_81C9F28 +}; + +bool32 sub_81C98D4(void) +{ + s32 i; + + for (i = 0; i < 78; i++) + { + if (sub_81CB0C8(i) == gMapHeader.regionMapSectionId + && sub_81CAE08(i) + && gSaveBlock1Ptr->trainerRematches[i]) + return TRUE; + } + + return FALSE; +} + +bool32 sub_81C9924(void) +{ + struct Pokenav2Struct * unk = sub_81C9958(); + + if (unk == NULL) + return FALSE; + + unk->field_00d = 0; + return TRUE; +} + +bool32 sub_81C9940(void) +{ + struct Pokenav2Struct * unk = sub_81C9958(); + + if (unk == NULL) + return FALSE; + + unk->field_00d = 1; + return TRUE; +} + +struct Pokenav2Struct * sub_81C9958(void) +{ + struct Pokenav2Struct * unk = AllocSubstruct(2, sizeof(struct Pokenav2Struct)); + + if (unk != NULL) + { + unk->field_00c = 0; + unk->loopedTaskId = CreateLoopedTask(sub_81C9A10, 1); + unk->callback = sub_81C99FC; + } + + return unk; +} + + +void sub_81C9990(s32 ltIdx) +{ + struct Pokenav2Struct * unk = GetSubstructPtr(2); + + unk->loopedTaskId = CreateLoopedTask(gUnknown_086201A0[ltIdx], 1); + unk->callback = sub_81C99FC; +} + +bool32 sub_81C99C0(void) +{ + struct Pokenav2Struct * unk = GetSubstructPtr(2); + + return unk->callback(); +} + +void sub_81C99D4(void) +{ + struct Pokenav2Struct * unk = GetSubstructPtr(2); + + sub_81CA7F4(); + RemoveWindow(unk->field_008); + sub_81C9FEC(); + sub_81CA994(); + FreePokenavSubstruct(2); +} + +bool32 sub_81C99FC(void) +{ + struct Pokenav2Struct * unk = GetSubstructPtr(2); + + return IsLoopedTaskActive(unk->loopedTaskId); +} diff --git a/src/pokenav_unk_3.c b/src/pokenav_unk_3.c index c6705a352..dfef062df 100755 --- a/src/pokenav_unk_3.c +++ b/src/pokenav_unk_3.c @@ -411,7 +411,7 @@ void sub_81CB050(u32 arg0, u8 *str) } } -int sub_81CB0C8(int rematchIndex) +u8 sub_81CB0C8(int rematchIndex) { int mapGroup = gRematchTable[rematchIndex].mapGroup; int mapNum = gRematchTable[rematchIndex].mapNum; -- cgit v1.2.3 From 518865d8d9d6d35ca40478570c51c33ca1477d6d Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 2 May 2019 16:19:25 -0400 Subject: sub_81C9A10 --- src/pokenav_unk_2.c | 128 +++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 126 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/pokenav_unk_2.c b/src/pokenav_unk_2.c index f58d5977b..a799631c7 100644 --- a/src/pokenav_unk_2.c +++ b/src/pokenav_unk_2.c @@ -1,8 +1,12 @@ #include "global.h" #include "alloc.h" #include "bg.h" +#include "menu.h" #include "window.h" #include "pokenav.h" +#include "graphics.h" +#include "sound.h" +#include "constants/songs.h" // Match Call @@ -16,7 +20,8 @@ struct Pokenav2Struct u8 field_00b; u8 field_00c; u8 field_00d; - u8 filler_00e[0x87E]; + u8 filler_00e[0x7E]; + u8 field_08c[0x800]; }; struct Pokenav2Struct * sub_81C9958(void); @@ -30,8 +35,20 @@ u32 sub_81C9E58(int state); u32 sub_81C9EC8(int state); u32 sub_81C9EF8(int state); u32 sub_81C9F28(int state); -void sub_81CA7F4(void); +void sub_81C9FC4(void); void sub_81C9FEC(void); +void sub_81CA02C(void); +void sub_81CA0C8(void); +void sub_81CA20C(void); +bool32 sub_81CA324(void); +void sub_81CA640(void); +void sub_81CA6E0(void); +void sub_81CA714(void); +bool32 sub_81CA7C4(void); +void sub_81CA7D4(void); +void sub_81CA7F4(void); +void sub_81CA850(void); +void titlescreen_0(void); void sub_81CA994(void); const u16 gUnknown_0861FC78[] = INCBIN_U16("graphics/pokenav/bg.gbapal"); @@ -167,3 +184,110 @@ bool32 sub_81C99FC(void) return IsLoopedTaskActive(unk->loopedTaskId); } + +u32 sub_81C9A10(int state) +{ + struct Pokenav2Struct * unk = GetSubstructPtr(2); + + switch (state) + { + case 0: + InitBgTemplates(gUnknown_08620194, ARRAY_COUNT(gUnknown_08620194)); + decompress_and_copy_tile_data_to_vram(1, gPokenavMessageBox_Gfx, 0, 0, 0); + SetBgTilemapBuffer(1, unk->field_08c); + CopyToBgTilemapBuffer(1, gPokenavMessageBox_Tilemap, 0, 0); + CopyBgTilemapBufferToVram(1); + CopyPaletteIntoBufferUnfaded(gPokenavMessageBox_Pal, 0x10, 0x20); + ChangeBgX(1, 0, 0); + ChangeBgY(1, 0, 0); + ChangeBgX(2, 0, 0); + ChangeBgY(2, 0, 0); + ChangeBgX(3, 0, 0); + ChangeBgY(3, 0, 0); + return 0; + case 1: + if (free_temp_tile_data_buffers_if_possible()) + return 2; + decompress_and_copy_tile_data_to_vram(2, gUnknown_0861FD6C, 0, 0, 0); + decompress_and_copy_tile_data_to_vram(2, gUnknown_0861FFF4, 0, 0, 1); + CopyPaletteIntoBufferUnfaded(gUnknown_0861FD4C, 0x20, 0x20); + return 0; + case 2: + if (free_temp_tile_data_buffers_if_possible()) + return 2; + decompress_and_copy_tile_data_to_vram(3, gUnknown_0861FC98, 0, 0, 0); + decompress_and_copy_tile_data_to_vram(3, gUnknown_0861FCAC, 0, 0, 1); + CopyPaletteIntoBufferUnfaded(gUnknown_0861FC78, 0x30, 0x20); + if (sub_81C9894() == 3 || sub_81C9894() == 4) + sub_81CA850(); + return 0; + case 3: + if (free_temp_tile_data_buffers_if_possible()) + return 2; + sub_81CA6E0(); + sub_81CA7D4(); + return 1; + case 4: + sub_81C9FC4(); + return 1; + case 5: + sub_81CA714(); + sub_81CA02C(); + sub_81CA640(); + sub_81CA0C8(); + return 0; + case 6: + if (sub_81CA7C4()) + return 2; + return 1; + case 7: + ShowBg(1); + ShowBg(2); + ShowBg(3); + if (unk->field_00d) + sub_81C7AC0(1); + else + { + PlaySE(SE_PN_ON); + sub_81C7AC0(3); + } + switch (sub_81C9894()) + { + case 4: + LoadLeftHeaderGfxForIndex(7); + // fallthrough + case 3: + LoadLeftHeaderGfxForIndex(1); + break; + default: + LoadLeftHeaderGfxForIndex(0); + break; + } + return 0; + case 8: + if (IsPaletteFadeActive()) + return 2; + switch (sub_81C9894()) + { + case 4: + sub_81C7FA0(7, FALSE, FALSE); + // fallthrough + case 3: + sub_81C7FA0(1, FALSE, FALSE); + break; + default: + sub_81C7FA0(0, FALSE, FALSE); + break; + } + sub_81CA20C(); + titlescreen_0(); + return 1; + case 9: + if (sub_81CA324()) + return 2; + if (sub_81C8010()) + return 2; + break; + } + return 4; +} -- cgit v1.2.3 From a14162eb9fdc0ac4f196b078b05be7ca6b7c73f9 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 2 May 2019 16:43:32 -0400 Subject: through sub_81C9F28 --- src/pokenav_unk_1.c | 2 +- src/pokenav_unk_2.c | 244 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 245 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/pokenav_unk_1.c b/src/pokenav_unk_1.c index 96ecf9c8b..336cf49f2 100644 --- a/src/pokenav_unk_1.c +++ b/src/pokenav_unk_1.c @@ -459,7 +459,7 @@ int sub_81C98B4(void) return state->descriptionId; } -int sub_81C98C4(void) +u16 sub_81C98C4(void) { struct Pokenav1Struct *state = GetSubstructPtr(1); return state->helpBarIndex; diff --git a/src/pokenav_unk_2.c b/src/pokenav_unk_2.c index a799631c7..71870e5d6 100644 --- a/src/pokenav_unk_2.c +++ b/src/pokenav_unk_2.c @@ -40,16 +40,25 @@ void sub_81C9FEC(void); void sub_81CA02C(void); void sub_81CA0C8(void); void sub_81CA20C(void); +void sub_81CA278(void); +void sub_81CA2DC(void); bool32 sub_81CA324(void); void sub_81CA640(void); void sub_81CA6E0(void); void sub_81CA714(void); +void sub_81CA770(void); bool32 sub_81CA7C4(void); void sub_81CA7D4(void); void sub_81CA7F4(void); +void sub_81CA818(void); void sub_81CA850(void); +void sub_81CA864(void); +bool32 sub_81CA89C(void); void titlescreen_0(void); void sub_81CA994(void); +void sub_81CA9C8(void); +void sub_81CA9D8(void); +void sub_81CAA3C(void); const u16 gUnknown_0861FC78[] = INCBIN_U16("graphics/pokenav/bg.gbapal"); const u32 gUnknown_0861FC98[] = INCBIN_U32("graphics/pokenav/bg.4bpp.lz"); @@ -291,3 +300,238 @@ u32 sub_81C9A10(int state) } return 4; } + +u32 sub_81C9C6C(int state) +{ + switch (state) + { + case 0: + sub_81CAA3C(); + sub_81CA278(); + sub_81CA714(); + PlaySE(SE_SELECT); + return 0; + case 1: + if (sub_81CA324()) + return 2; + if (sub_81CA7C4()) + return 2; + break; + } + return 4; +} + +u32 sub_81C9CA8(int state) +{ + switch (state) + { + case 0: + sub_81CA9C8(); + sub_81CA2DC(); + sub_81C7FC4(0, 0); + PlaySE(SE_SELECT); + return 0; + case 1: + if (sub_81CA324()) + return 2; + if (sub_81C8010()) + return 2; + sub_81CA0C8(); + LoadLeftHeaderGfxForIndex(1); + return 0; + case 2: + sub_81CA20C(); + sub_81C7FA0(1, FALSE, FALSE); + sub_81CA818(); + sub_81CA714(); + return 0; + case 3: + if (sub_81CA324()) + return 2; + if (sub_81C8010()) + return 2; + if (sub_81CA89C()) + return 2; + if (sub_81CA7C4()) + return 2; + sub_81CA9D8(); + break; + } + return 4; +} + +u32 sub_81C9D44(int state) +{ + switch (state) + { + case 0: + sub_81CA9C8(); + sub_81CA2DC(); + sub_81C7FC4(1, 0); + return 0; + case 1: + if (sub_81CA324()) + return 2; + if (sub_81C8010()) + return 2; + sub_81CA0C8(); + LoadLeftHeaderGfxForIndex(0); + return 0; + case 2: + sub_81CA20C(); + sub_81C7FA0(0, FALSE, FALSE); + sub_81CA864(); + sub_81CA714(); + return 0; + case 3: + if (sub_81CA324()) + return 2; + if (sub_81C8010()) + return 2; + if (sub_81CA89C()) + return 2; + if (sub_81CA7C4()) + return 2; + sub_81CA9D8(); + break; + } + return 4; +} + +u32 sub_81C9DD8(int state) +{ + switch (state) + { + case 0: + sub_81CA9C8(); + sub_81CA2DC(); + PlaySE(SE_SELECT); + return 0; + case 1: + if (sub_81CA324()) + return 2; + LoadLeftHeaderGfxForIndex(7); + sub_81CA0C8(); + return 0; + case 2: + sub_81CA20C(); + sub_81C7FA0(7, FALSE, FALSE); + sub_81CA714(); + return 0; + case 3: + if (sub_81CA324()) + return 2; + if (sub_81C8010()) + return 2; + if (sub_81CA89C()) + return 2; + sub_81CA9D8(); + break; + } + return 4; +} + +u32 sub_81C9E58(int state) +{ + switch (state) + { + case 0: + sub_81CA9C8(); + sub_81CA2DC(); + sub_81C7FC4(7, 0); + return 0; + case 1: + if (sub_81CA324()) + return 2; + if (sub_81C8010()) + return 2; + sub_81CA0C8(); + return 0; + case 2: + sub_81CA20C(); + sub_81CA714(); + return 0; + case 3: + if (sub_81CA324()) + return 2; + if (sub_81CA89C()) + return 2; + sub_81CA9D8(); + break; + } + return 4; +} + +u32 sub_81C9EC8(int state) +{ + switch (state) + { + case 0: + PlaySE(SE_HAZURE); + sub_81CA770(); + return 0; + case 1: + if (IsDma3ManagerBusyWithBgCopy()) + return 2; + break; + } + return 4; +} + +u32 sub_81C9EF8(int state) +{ + switch (state) + { + case 0: + PlaySE(SE_SELECT); + sub_81CA714(); + return 0; + case 1: + if (IsDma3ManagerBusyWithBgCopy()) + return 2; + break; + } + return 4; +} + +u32 sub_81C9F28(int state) +{ + switch (state) + { + case 0: + sub_81C7BA4(sub_81C98C4()); + return 0; + case 1: + if (IsDma3ManagerBusyWithBgCopy_()) + return 2; + sub_81C7880(); + sub_81CA9C8(); + sub_81CA2DC(); + switch (sub_81C9894()) + { + case 4: + sub_81C7FC4(7, FALSE); + // fallthrough + case 3: + sub_81C7FC4(1, FALSE); + break; + default: + sub_81C7FC4(0, FALSE); + break; + } + PlaySE(SE_SELECT); + return 0; + case 2: + if (sub_81CA324()) + return 2; + if (sub_81C8010()) + return 2; + sub_81C7AC0(0); + return 0; + case 3: + if (IsPaletteFadeActive()) + return 2; + break; + } + return 4; +} -- cgit v1.2.3 From f13e1c78b23c5b9bccb8288ff1ba575f66e53afc Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 2 May 2019 17:50:42 -0400 Subject: through sub_81CA0EC --- src/pokenav_unk_2.c | 128 +++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 127 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/pokenav_unk_2.c b/src/pokenav_unk_2.c index 71870e5d6..048742ef7 100644 --- a/src/pokenav_unk_2.c +++ b/src/pokenav_unk_2.c @@ -1,5 +1,6 @@ #include "global.h" #include "alloc.h" +#include "decompress.h" #include "bg.h" #include "menu.h" #include "window.h" @@ -20,7 +21,9 @@ struct Pokenav2Struct u8 field_00b; u8 field_00c; u8 field_00d; - u8 filler_00e[0x7E]; + bool32 field_010[6]; + u8 filler_028[4]; + struct Sprite * field_02c[6][4]; u8 field_08c[0x800]; }; @@ -38,12 +41,15 @@ u32 sub_81C9F28(int state); void sub_81C9FC4(void); void sub_81C9FEC(void); void sub_81CA02C(void); +void sub_81CA094(void); void sub_81CA0C8(void); +void sub_81CA0EC(const u16 *const * a0, s32 a1, s32 a2); void sub_81CA20C(void); void sub_81CA278(void); void sub_81CA2DC(void); bool32 sub_81CA324(void); void sub_81CA640(void); +void sub_81CA698(void); void sub_81CA6E0(void); void sub_81CA714(void); void sub_81CA770(void); @@ -109,6 +115,32 @@ const LoopedTask gUnknown_086201A0[] = { sub_81C9F28 }; +const struct CompressedSpriteSheet gUnknown_086201C4[] = { + {gPokenavOptions_Gfx, 0x3400, 0x0003}, + {gUnknown_08620124, 0x0100, 0x0001} +}; + +const struct SpritePalette gUnknown_086201D4[] = { + {gPokenavOptions_Pal + 0x00, 4}, + {gPokenavOptions_Pal + 0x10, 5}, + {gPokenavOptions_Pal + 0x20, 6}, + {gPokenavOptions_Pal + 0x30, 7}, + {gPokenavOptions_Pal + 0x40, 8}, + {gUnknown_08620104, 3}, + {NULL, 0} +}; + +struct UnkStruct_08620240 +{ + u16 field_0; + u16 field_2; + const u16 *field_4[6]; +}; + +extern const struct UnkStruct_08620240 gUnknown_08620240[]; + +extern const struct SpriteTemplate gUnknown_0862034C; + bool32 sub_81C98D4(void) { s32 i; @@ -535,3 +567,97 @@ u32 sub_81C9F28(int state) } return 4; } + +void sub_81C9FC4(void) +{ + u32 i; + + for (i = 0; i < 2; i++) + LoadCompressedSpriteSheet(&gUnknown_086201C4[i]); + Pokenav_AllocAndLoadPalettes(gUnknown_086201D4); +} + +void sub_81C9FEC(void) +{ + FreeSpriteTilesByTag(3); + FreeSpriteTilesByTag(1); + FreeSpritePaletteByTag(4); + FreeSpritePaletteByTag(5); + FreeSpritePaletteByTag(6); + FreeSpritePaletteByTag(7); + FreeSpritePaletteByTag(8); + FreeSpritePaletteByTag(3); + sub_81CA094(); + sub_81CA698(); +} + +void sub_81CA02C(void) +{ + s32 i, j; + struct Pokenav2Struct * unk = GetSubstructPtr(2); + + for (i = 0; i < 6; i++) + { + for (j = 0; j < 4; j++) + { + u8 spriteId = CreateSprite(&gUnknown_0862034C, 0x8c, 20 * i + 40, 3); + unk->field_02c[i][j] = &gSprites[spriteId]; + gSprites[spriteId].pos2.x = 32 * j; + } + } +} + +void sub_81CA094(void) +{ + s32 i, j; + struct Pokenav2Struct * unk = GetSubstructPtr(2); + + for (i = 0; i < 6; i++) + { + for (j = 0; j < 4; j++) + { + FreeSpriteOamMatrix(unk->field_02c[i][j]); + DestroySprite(unk->field_02c[i][j]); + } + } +} + +void sub_81CA0C8(void) +{ + s32 r0 = sub_81C9894(); + sub_81CA0EC(gUnknown_08620240[r0].field_4, gUnknown_08620240[r0].field_0, gUnknown_08620240[r0].field_2); +} + +void sub_81CA0EC(const u16 *const *a0, s32 a1, s32 a2) +{ + s32 i, j; + struct Pokenav2Struct * unk = GetSubstructPtr(2); + s32 sp04 = GetSpriteTileStartByTag(3); + + for (i = 0; i < 6; i++) + { + if (*a0 != NULL) + { + for (j = 0; j < 4; j++) + { + unk->field_02c[i][j]->oam.tileNum = (*a0)[0] + sp04 + 8 * j; + unk->field_02c[i][j]->oam.paletteNum = IndexOfSpritePaletteTag((*a0)[1] + 4); + unk->field_02c[i][j]->invisible = TRUE; + unk->field_02c[i][j]->pos1.y = a1; + unk->field_02c[i][j]->pos1.x = 0x8c; + unk->field_02c[i][j]->pos2.x = 32 * j; + } + unk->field_010[i] = TRUE; + } + else + { + for (j = 0; j < 4; j++) + { + unk->field_02c[i][j]->invisible = TRUE; + } + unk->field_010[i] = FALSE; + } + a0++; + a1 += a2; + } +} -- cgit v1.2.3 From a08cbaee0a5f06f2e6d11ceb958e36430175f220 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 30 Jul 2019 19:46:56 -0400 Subject: pokenav_unk_2 staging --- src/pokenav_unk_2.c | 105 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 105 insertions(+) (limited to 'src') diff --git a/src/pokenav_unk_2.c b/src/pokenav_unk_2.c index 048742ef7..a6713554f 100644 --- a/src/pokenav_unk_2.c +++ b/src/pokenav_unk_2.c @@ -46,6 +46,10 @@ void sub_81CA0C8(void); void sub_81CA0EC(const u16 *const * a0, s32 a1, s32 a2); void sub_81CA20C(void); void sub_81CA278(void); +void sub_81CA35C(struct Sprite ** sprites, s32 a1, s32 a2, s32 a3); +void sub_81CA3B4(struct Sprite ** sprites); +void sub_81CA448(struct Sprite ** sprites, s32 a1); +void sub_81CA474(struct Sprite * sprite); void sub_81CA2DC(void); bool32 sub_81CA324(void); void sub_81CA640(void); @@ -661,3 +665,104 @@ void sub_81CA0EC(const u16 *const *a0, s32 a1, s32 a2) a1 += a2; } } + +void sub_81CA20C(void) +{ + s32 i; + struct Pokenav2Struct * unk = GetSubstructPtr(2); + s32 r8 = sub_81C98A4(); + s32 r7 = 0; + s32 r2; + + for (i = 0; i < 6; i++) + { + if (unk->field_010[i]) + { + if (r7++ == r8) + { + r2 = 0x82; + unk->field_00b = i; + } + else + r2 = 0x8c; + sub_81CA35C(unk->field_02c[i], 0x100, r2, 0xC); + sub_81CA448(unk->field_02c[i], 0); + } + else + sub_81CA448(unk->field_02c[i], 1); + } +} + +void sub_81CA278(void) +{ + s32 i; + struct Pokenav2Struct * unk = GetSubstructPtr(2); + s32 r3 = sub_81C98A4(); + s32 r5; + + for (i = 0, r5 = 0; i < 6; i++) + { + if (unk->field_010[i]) + { + if (r5 == r3) + { + r5 = i; + break; + } + r5++; + } + } + + sub_81CA35C(unk->field_02c[unk->field_00b], 0x82, 0x8c, 0x4); + sub_81CA35C(unk->field_02c[r5], 0x8c, 0x82, 0x4); + unk->field_00b = r5; +} + +void sub_81CA2DC(void) +{ + s32 i; + struct Pokenav2Struct * unk = GetSubstructPtr(2); + + for (i = 0; i < 6; i++) + { + if (unk->field_010[i]) + { + if (unk->field_00b != i) + sub_81CA35C(unk->field_02c[i], 0x8C, 0x100, 0x8); + else + sub_81CA3B4(unk->field_02c[i]); + } + } +} + +bool32 sub_81CA324(void) +{ + s32 i; + struct Pokenav2Struct * unk = GetSubstructPtr(2); + + for (i = 0; i < 6; i++) + { + if (unk->field_02c[i][0]->callback != SpriteCallbackDummy) + return TRUE; + } + + if (unk->field_00c) + return TRUE; + + return FALSE; +} + +void sub_81CA35C(struct Sprite ** sprites, s32 a1, s32 a2, s32 a3) +{ + s32 i; + + for (i = 0; i < 4; i++) + { + sprites[i]->pos1.x = a1; + sprites[i]->data[0] = a3; + sprites[i]->data[1] = 16 * (a2 - a1) / a3; + sprites[i]->data[2] = 16 * a1; + sprites[i]->data[7] = a2; + sprites[i]->callback = sub_81CA474; + } +} -- cgit v1.2.3 From 2dee42dbafd7083a3b45cf51062977c54f632a10 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 4 Aug 2019 18:15:02 -0400 Subject: through sub_81CA474 --- src/pokenav_unk_2.c | 120 +++++++++++++++++++++++++++------------------------- 1 file changed, 63 insertions(+), 57 deletions(-) (limited to 'src') diff --git a/src/pokenav_unk_2.c b/src/pokenav_unk_2.c index ae15eabfb..b428e20c6 100644 --- a/src/pokenav_unk_2.c +++ b/src/pokenav_unk_2.c @@ -2,6 +2,7 @@ #include "alloc.h" #include "decompress.h" #include "bg.h" +#include "gpu_regs.h" #include "menu.h" #include "window.h" #include "pokenav.h" @@ -52,10 +53,12 @@ void sub_81CA20C(void); void sub_81CA278(void); void sub_81CA35C(struct Sprite ** sprites, s32 a1, s32 a2, s32 a3); void sub_81CA3B4(struct Sprite ** sprites); -void sub_81CA448(struct Sprite ** sprites, s32 a1); -void sub_81CA474(struct Sprite * sprite); void sub_81CA2DC(void); bool32 sub_81CA324(void); +void sub_81CA448(struct Sprite ** sprites, bool32 a1); +void sub_81CA474(struct Sprite * sprite); +void sub_81CA4AC(struct Sprite * sprite); +void sub_81CA580(u8 taskId); void sub_81CA640(void); void sub_81CA698(void); void sub_81CA6E0(void); @@ -852,10 +855,10 @@ void sub_81CA20C(void) else r2 = 0x8c; sub_81CA35C(unk->field_02c[i], 0x100, r2, 0xC); - sub_81CA448(unk->field_02c[i], 0); + sub_81CA448(unk->field_02c[i], FALSE); } else - sub_81CA448(unk->field_02c[i], 1); + sub_81CA448(unk->field_02c[i], TRUE); } } @@ -918,66 +921,69 @@ bool32 sub_81CA324(void) return FALSE; } -#ifdef NONMATCHING void sub_81CA35C(struct Sprite ** sprites, s32 a1, s32 a2, s32 a3) { s32 i; for (i = 0; i < 4; i++) { - sprites[i]->pos1.x = a1; - sprites[i]->data[0] = a3; - sprites[i]->data[1] = 16 * (a2 - a1) / a3; - sprites[i]->data[2] = 16 * a1; - sprites[i]->data[7] = a2; - sprites[i]->callback = sub_81CA474; + (*sprites)->pos1.x = a1; + (*sprites)->data[0] = a3; + (*sprites)->data[1] = 16 * (a2 - a1) / a3; + (*sprites)->data[2] = 16 * a1; + (*sprites)->data[7] = a2; + (*sprites)->callback = sub_81CA474; + sprites++; } } -#else -NAKED -void sub_81CA35C(struct Sprite ** sprites, s32 a1, s32 a2, s32 a3) + +void sub_81CA3B4(struct Sprite ** sprites) +{ + s32 i; + struct Pokenav2Struct * unk = GetSubstructPtr(2); + u8 taskId; + + for (i = 0; i < 4; i++) + { + (*sprites)->oam.objMode = ST_OAM_OBJ_BLEND; + (*sprites)->oam.affineMode = ST_OAM_AFFINE_DOUBLE; + (*sprites)->callback = sub_81CA4AC; + (*sprites)->data[0] = 8; + (*sprites)->data[1] = 0; + (*sprites)->data[7] = i; + InitSpriteAffineAnim(sprites[0]); + StartSpriteAffineAnim(sprites[0], 0); + sprites++; + } + + SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0x10, 0x00)); + taskId = CreateTask(sub_81CA580, 3); + gTasks[taskId].data[0] = 8; + unk->field_00c++; +} + +void sub_81CA448(struct Sprite ** sprites, bool32 a1) { - asm_unified("\tpush {r4-r7,lr}\n" - "\tmov r7, r9\n" - "\tmov r6, r8\n" - "\tpush {r6,r7}\n" - "\tadds r4, r0, 0\n" - "\tadds r5, r1, 0\n" - "\tmov r9, r2\n" - "\tadds r6, r3, 0\n" - "\tldr r0, =sub_81CA474\n" - "\tmov r8, r0\n" - "\tsubs r0, r2, r5\n" - "\tlsls r0, 4\n" - "\tadds r1, r6, 0\n" - "\tbl __divsi3\n" - "\tadds r3, r0, 0\n" - "\tmovs r1, 0x3\n" - "\tlsls r2, r5, 4\n" - "_081CA380:\n" - "\tldr r0, [r4]\n" - "\tstrh r5, [r0, 0x20]\n" - "\tldr r0, [r4]\n" - "\tstrh r6, [r0, 0x2E]\n" - "\tldr r0, [r4]\n" - "\tstrh r3, [r0, 0x30]\n" - "\tldr r0, [r4]\n" - "\tstrh r2, [r0, 0x32]\n" - "\tldr r0, [r4]\n" - "\tmov r7, r9\n" - "\tstrh r7, [r0, 0x3C]\n" - "\tldm r4!, {r0}\n" - "\tmov r7, r8\n" - "\tstr r7, [r0, 0x1C]\n" - "\tsubs r1, 0x1\n" - "\tcmp r1, 0\n" - "\tbge _081CA380\n" - "\tpop {r3,r4}\n" - "\tmov r8, r3\n" - "\tmov r9, r4\n" - "\tpop {r4-r7}\n" - "\tpop {r0}\n" - "\tbx r0\n" - "\t.pool"); + s32 i; + + for (i = 0; i < 4; i++) + { + (*sprites)->invisible = a1; + sprites++; + } +} + +void sub_81CA474(struct Sprite * sprite) +{ + sprite->data[0]--; + if (sprite->data[0] != -1) + { + sprite->data[2] += sprite->data[1]; + sprite->pos1.x = sprite->data[2] >> 4; + } + else + { + sprite->pos1.x = sprite->data[7]; + sprite->callback = SpriteCallbackDummy; + } } -#endif //NONMATCHING -- cgit v1.2.3 From 299c3cf1dcd5f93e7d12ec9d084da9d01431d5ec Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 4 Aug 2019 20:39:36 -0400 Subject: Finish pokenav_unk_2 --- src/pokenav_unk_2.c | 294 +++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 291 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/pokenav_unk_2.c b/src/pokenav_unk_2.c index b428e20c6..a21109316 100644 --- a/src/pokenav_unk_2.c +++ b/src/pokenav_unk_2.c @@ -2,6 +2,8 @@ #include "alloc.h" #include "decompress.h" #include "bg.h" +#include "palette.h" +#include "trig.h" #include "gpu_regs.h" #include "menu.h" #include "window.h" @@ -20,14 +22,13 @@ struct Pokenav2Struct { bool32 (*callback)(void); u32 loopedTaskId; - u8 field_008; - u8 field_009; + u16 field_008; u8 field_00a; u8 field_00b; u8 field_00c; u8 field_00d; bool32 field_010[6]; - u8 filler_028[4]; + struct Sprite * field_028; struct Sprite * field_02c[6][4]; u8 field_08c[0x800]; }; @@ -60,6 +61,7 @@ void sub_81CA474(struct Sprite * sprite); void sub_81CA4AC(struct Sprite * sprite); void sub_81CA580(u8 taskId); void sub_81CA640(void); +void sub_81CA6AC(struct Sprite * sprite); void sub_81CA698(void); void sub_81CA6E0(void); void sub_81CA714(void); @@ -67,14 +69,17 @@ void sub_81CA770(void); bool32 sub_81CA7C4(void); void sub_81CA7D4(void); void sub_81CA7F4(void); +void sub_81CA808(u8 taskId); void sub_81CA818(void); void sub_81CA850(void); void sub_81CA864(void); bool32 sub_81CA89C(void); +void sub_81CA8B0(u8 taskId); void titlescreen_0(void); void sub_81CA994(void); void sub_81CA9C8(void); void sub_81CA9D8(void); +void sub_81CA9EC(u8 taskId); void sub_81CAA3C(void); extern const u32 gPokenavOptions_Gfx[]; @@ -987,3 +992,286 @@ void sub_81CA474(struct Sprite * sprite) sprite->callback = SpriteCallbackDummy; } } + +void sub_81CA4AC(struct Sprite * sprite) +{ + s32 r0; + s32 r1; + if (sprite->data[0] == 0) + { + if (sprite->data[1] == 0) + { + StartSpriteAffineAnim(sprite, 1); + sprite->data[1]++; + sprite->data[2] = 0x100; + sprite->pos1.x += sprite->pos2.x; + sprite->pos2.x = 0; + } + else + { + sprite->data[2] += 16; + r0 = sprite->data[2]; + r1 = r0 >> 3; + r1 = (r1 - 32) / 2; + switch (sprite->data[7]) + { + case 0: + sprite->pos2.x = -r1 * 3; + break; + case 1: + sprite->pos2.x = -r1; + break; + case 2: + sprite->pos2.x = r1; + break; + case 3: + sprite->pos2.x = r1 * 3; + break; + } + if (sprite->affineAnimEnded) + { + sprite->invisible = TRUE; + FreeOamMatrix(sprite->oam.matrixNum); + CalcCenterToCornerVec(sprite, sprite->oam.shape, sprite->oam.size, 0); + sprite->oam.affineMode = ST_OAM_AFFINE_OFF; + sprite->oam.objMode = ST_OAM_OBJ_NORMAL; + sprite->callback = SpriteCallbackDummy; + } + } + } + else + { + sprite->data[0]--; + } +} + +void sub_81CA580(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + + if (data[0] == 0) + { + switch (data[1]) + { + case 0: + data[2] = 16; + data[3] = 0; + SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_EFFECT_NONE | BLDCNT_TGT2_ALL); + SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0x10, 0x00)); + data[1]++; + break; + case 1: + if (data[4] & 1) + { + data[2] -= 3; + if (data[2] < 0) + data[2] = 0; + } + else + { + data[3] += 3; + if (data[3] > 16) + data[3] = 16; + } + SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(data[2], data[3])); + data[4]++; + if (data[4] == 12) + { + ((struct Pokenav2Struct *)GetSubstructPtr(2))->field_00c--; + SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0x00, 0x10)); + DestroyTask(taskId); + } + break; + } + } + else + data[0]--; +} + +void sub_81CA640(void) +{ + struct Pokenav2Struct * ptr = GetSubstructPtr(2); + u8 spriteId = CreateSprite(&gUnknown_0862036C, 0x10, 0x60, 4); + ptr->field_028 = &gSprites[spriteId]; + if (sub_81C98D4()) + ptr->field_028->callback = sub_81CA6AC; + else + ptr->field_028->invisible = TRUE; +} + +void sub_81CA698(void) +{ + struct Pokenav2Struct * ptr = GetSubstructPtr(2); + DestroySprite(ptr->field_028); +} + +void sub_81CA6AC(struct Sprite * sprite) +{ + sprite->data[0]++; + if (sprite->data[0] > 8) + { + sprite->data[0] = 0; + sprite->invisible ^= 1; + } +} + +void sub_81CA6E0(void) +{ + struct Pokenav2Struct * ptr = GetSubstructPtr(2); + + ptr->field_008 = AddWindow(&gUnknown_086202CC); + PutWindowTilemap(ptr->field_008); + FillWindowPixelBuffer(ptr->field_008, PIXEL_FILL(6)); + CopyWindowToVram(ptr->field_008, 3); +} + +void sub_81CA714(void) +{ + struct Pokenav2Struct * ptr = GetSubstructPtr(2); + int i = sub_81C98B4(); + const u8 * s = gUnknown_086202D4[i]; + u32 width = GetStringWidth(1, s, -1); + FillWindowPixelBuffer(ptr->field_008, PIXEL_FILL(6)); + AddTextPrinterParameterized3(ptr->field_008, 1, (192 - width) / 2, 1, gUnknown_0862030C, 0, s); +} + + +void sub_81CA770(void) +{ + struct Pokenav2Struct * ptr = GetSubstructPtr(2); + const u8 * s = gText_NoRibbonWinners; + u32 width = GetStringWidth(1, s, -1); + FillWindowPixelBuffer(ptr->field_008, PIXEL_FILL(6)); + AddTextPrinterParameterized3(ptr->field_008, 1, (192 - width) / 2, 1, gUnknown_0862030F, 0, s); +} + +bool32 sub_81CA7C4(void) +{ + return IsDma3ManagerBusyWithBgCopy(); +} + +void sub_81CA7D4(void) +{ + struct Pokenav2Struct * ptr = GetSubstructPtr(2); + ptr->field_00a = CreateTask(sub_81CA808, 2); +} + +void sub_81CA7F4(void) +{ + struct Pokenav2Struct * ptr = GetSubstructPtr(2); + DestroyTask(ptr->field_00a); +} + +void sub_81CA808(u8 taskId) +{ + ChangeBgX(3, 0x80, 1); +} + +void sub_81CA818(void) +{ + u8 taskId = CreateTask(sub_81CA8B0, 3); + SetWordTaskArg(taskId, 1, (uintptr_t)(gUnknown_0861FC78 + 1)); + SetWordTaskArg(taskId, 3, (uintptr_t)(gUnknown_0861FC78 + 7)); +} + +void sub_81CA850(void) +{ + CopyPaletteIntoBufferUnfaded(gUnknown_0861FC78 + 7, 0x31, 4); +} + +void sub_81CA864(void) +{ + u8 taskId = CreateTask(sub_81CA8B0, 3); + SetWordTaskArg(taskId, 1, (uintptr_t)(gUnknown_0861FC78 + 7)); + SetWordTaskArg(taskId, 3, (uintptr_t)(gUnknown_0861FC78 + 1)); +} + +bool32 sub_81CA89C(void) +{ + return FuncIsActiveTask(sub_81CA8B0); +} + +void sub_81CA8B0(u8 taskId) +{ + u16 sp8[2]; + s16 * data = gTasks[taskId].data; + const u16 * pal1 = (const u16 *)GetWordTaskArg(taskId, 1); + const u16 * pal2 = (const u16 *)GetWordTaskArg(taskId, 3); + + sub_81C79BC(pal1, pal2, 2, 12, ++data[0], sp8); + LoadPalette(sp8, 0x31, 4); + if (data[0] == 12) + DestroyTask(taskId); +} + +void sub_81CA914(void) +{ + TransferPlttBuffer(); + LoadOam(); + ProcessSpriteCopyRequests(); + ScanlineEffect_InitHBlankDmaTransfer(); +} + +void titlescreen_0(void) // almost definitely the wrong name +{ + SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_OBJ | BLDCNT_EFFECT_LIGHTEN); + SetGpuReg(REG_OFFSET_BLDY, 0); + SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON); + SetGpuRegBits(REG_OFFSET_WININ, 0x3F); + SetGpuRegBits(REG_OFFSET_WINOUT, 0x1F); + SetGpuRegBits(REG_OFFSET_WIN0V, 0xA0); + ScanlineEffect_Stop(); + sub_81CAA3C(); + ScanlineEffect_SetParams(gUnknown_08620384); + SetVBlankCallback_(sub_81CA914); + CreateTask(sub_81CA9EC, 3); +} + +void sub_81CA994(void) +{ + SetGpuReg(REG_OFFSET_BLDCNT, 0); + ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON); + ScanlineEffect_Stop(); + DestroyTask(FindTaskIdByFunc(sub_81CA9EC)); + SetPokenavVBlankCallback(); +} + +void sub_81CA9C8(void) +{ + SetGpuReg(REG_OFFSET_BLDCNT, 0); +} + +void sub_81CA9D8(void) +{ + sub_81CAA3C(); + SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_OBJ | BLDCNT_EFFECT_LIGHTEN); +} + +void sub_81CA9EC(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + data[0]++; + if (data[0] > 0) + { + data[0] = 0; + data[1] += 3; + data[1] &= 0x7F; + SetGpuReg(REG_OFFSET_BLDY, gSineTable[data[1]] >> 5); + } +} + +void sub_81CAA3C(void) +{ + int i = sub_81C9894(); + int j = sub_81C98A4(); + int r4 = gUnknown_08620240[i].unk2 * j + gUnknown_08620240[i].unk0 - 8; + CpuFill16(0, gScanlineEffectRegBuffers[0], 0x140); + CpuFill16(0, gScanlineEffectRegBuffers[1], 0x140); + CpuFill16(0x72F0, &gScanlineEffectRegBuffers[0][r4], 0x20); + CpuFill16(0x72F0, &gScanlineEffectRegBuffers[1][r4], 0x20); +} + +void sub_81CAADC(void) +{ + sub_81CA9C8(); +} -- cgit v1.2.3 From ff2166b8fe5680d5b7339465eb37371d4fec810c Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 4 Aug 2019 21:10:08 -0400 Subject: pokenav_unk_2: unclutter global namespace --- src/pokenav_unk_2.c | 292 ++++++++++++++++++++++++++-------------------------- 1 file changed, 145 insertions(+), 147 deletions(-) (limited to 'src') diff --git a/src/pokenav_unk_2.c b/src/pokenav_unk_2.c index a21109316..7265a1a00 100644 --- a/src/pokenav_unk_2.c +++ b/src/pokenav_unk_2.c @@ -15,6 +15,7 @@ #include "strings.h" #include "scanline_effect.h" #include "constants/songs.h" +#include "constants/rgb.h" // Match Call @@ -33,68 +34,65 @@ struct Pokenav2Struct u8 field_08c[0x800]; }; -struct Pokenav2Struct * sub_81C9958(void); -bool32 sub_81C99FC(void); -u32 sub_81C9A10(s32 state); -u32 sub_81C9C6C(s32 state); -u32 sub_81C9CA8(s32 state); -u32 sub_81C9D44(s32 state); -u32 sub_81C9DD8(s32 state); -u32 sub_81C9E58(s32 state); -u32 sub_81C9EC8(s32 state); -u32 sub_81C9EF8(s32 state); -u32 sub_81C9F28(s32 state); -void sub_81C9FC4(void); -void sub_81C9FEC(void); -void sub_81CA02C(void); -void sub_81CA094(void); -void sub_81CA0C8(void); -void sub_81CA0EC(const u16 *const * a0, s32 a1, s32 a2); -void sub_81CA20C(void); -void sub_81CA278(void); -void sub_81CA35C(struct Sprite ** sprites, s32 a1, s32 a2, s32 a3); -void sub_81CA3B4(struct Sprite ** sprites); -void sub_81CA2DC(void); -bool32 sub_81CA324(void); -void sub_81CA448(struct Sprite ** sprites, bool32 a1); -void sub_81CA474(struct Sprite * sprite); -void sub_81CA4AC(struct Sprite * sprite); -void sub_81CA580(u8 taskId); -void sub_81CA640(void); -void sub_81CA6AC(struct Sprite * sprite); -void sub_81CA698(void); -void sub_81CA6E0(void); -void sub_81CA714(void); -void sub_81CA770(void); -bool32 sub_81CA7C4(void); -void sub_81CA7D4(void); -void sub_81CA7F4(void); -void sub_81CA808(u8 taskId); -void sub_81CA818(void); -void sub_81CA850(void); -void sub_81CA864(void); -bool32 sub_81CA89C(void); -void sub_81CA8B0(u8 taskId); -void titlescreen_0(void); -void sub_81CA994(void); -void sub_81CA9C8(void); -void sub_81CA9D8(void); -void sub_81CA9EC(u8 taskId); -void sub_81CAA3C(void); - -extern const u32 gPokenavOptions_Gfx[]; -extern const u16 gPokenavOptions_Pal[]; - -const u16 gUnknown_0861FC78[] = INCBIN_U16("graphics/pokenav/bg.gbapal"); -const u32 gUnknown_0861FC98[] = INCBIN_U32("graphics/pokenav/bg.4bpp.lz"); -const u32 gUnknown_0861FCAC[] = INCBIN_U32("graphics/pokenav/bg.bin.lz"); -const u16 gUnknown_0861FD4C[] = INCBIN_U16("graphics/pokenav/outline.gbapal"); -const u32 gUnknown_0861FD6C[] = INCBIN_U32("graphics/pokenav/outline.4bpp.lz"); -const u32 gUnknown_0861FFF4[] = INCBIN_U32("graphics/pokenav/outline_map.bin.lz"); -const u16 gUnknown_08620104[] = INCBIN_U16("graphics/pokenav/blue_light.gbapal"); -const u32 gUnknown_08620124[] = INCBIN_U32("graphics/pokenav/blue_light.4bpp.lz"); - -const struct BgTemplate gUnknown_08620194[] = { +static struct Pokenav2Struct * sub_81C9958(void); +static bool32 sub_81C99FC(void); +static u32 sub_81C9A10(s32 state); +static u32 sub_81C9C6C(s32 state); +static u32 sub_81C9CA8(s32 state); +static u32 sub_81C9D44(s32 state); +static u32 sub_81C9DD8(s32 state); +static u32 sub_81C9E58(s32 state); +static u32 sub_81C9EC8(s32 state); +static u32 sub_81C9EF8(s32 state); +static u32 sub_81C9F28(s32 state); +static void sub_81C9FC4(void); +static void sub_81C9FEC(void); +static void sub_81CA02C(void); +static void sub_81CA094(void); +static void sub_81CA0C8(void); +static void sub_81CA0EC(const u16 *const * a0, s32 a1, s32 a2); +static void sub_81CA20C(void); +static void sub_81CA278(void); +static void sub_81CA35C(struct Sprite ** sprites, s32 a1, s32 a2, s32 a3); +static void sub_81CA3B4(struct Sprite ** sprites); +static void sub_81CA2DC(void); +static bool32 sub_81CA324(void); +static void sub_81CA448(struct Sprite ** sprites, bool32 a1); +static void sub_81CA474(struct Sprite * sprite); +static void sub_81CA4AC(struct Sprite * sprite); +static void sub_81CA580(u8 taskId); +static void sub_81CA640(void); +static void sub_81CA6AC(struct Sprite * sprite); +static void sub_81CA698(void); +static void sub_81CA6E0(void); +static void sub_81CA714(void); +static void sub_81CA770(void); +static bool32 sub_81CA7C4(void); +static void sub_81CA7D4(void); +static void sub_81CA7F4(void); +static void sub_81CA808(u8 taskId); +static void sub_81CA818(void); +static void sub_81CA850(void); +static void sub_81CA864(void); +static bool32 sub_81CA89C(void); +static void sub_81CA8B0(u8 taskId); +static void titlescreen_0(void); +static void sub_81CA994(void); +static void sub_81CA9C8(void); +static void sub_81CA9D8(void); +static void sub_81CA9EC(u8 taskId); +static void sub_81CAA3C(void); + +static const u16 gUnknown_0861FC78[] = INCBIN_U16("graphics/pokenav/bg.gbapal"); +static const u32 gUnknown_0861FC98[] = INCBIN_U32("graphics/pokenav/bg.4bpp.lz"); +static const u32 gUnknown_0861FCAC[] = INCBIN_U32("graphics/pokenav/bg.bin.lz"); +static const u16 gUnknown_0861FD4C[] = INCBIN_U16("graphics/pokenav/outline.gbapal"); +static const u32 gUnknown_0861FD6C[] = INCBIN_U32("graphics/pokenav/outline.4bpp.lz"); +static const u32 gUnknown_0861FFF4[] = INCBIN_U32("graphics/pokenav/outline_map.bin.lz"); +static const u16 gUnknown_08620104[] = INCBIN_U16("graphics/pokenav/blue_light.gbapal"); +static const u32 gUnknown_08620124[] = INCBIN_U32("graphics/pokenav/blue_light.4bpp.lz"); + +static const struct BgTemplate gUnknown_08620194[] = { { .bg = 1, .charBaseIndex = 1, @@ -122,7 +120,7 @@ const struct BgTemplate gUnknown_08620194[] = { } }; -const LoopedTask gUnknown_086201A0[] = { +static const LoopedTask gUnknown_086201A0[] = { NULL, sub_81C9C6C, sub_81C9CA8, @@ -134,7 +132,7 @@ const LoopedTask gUnknown_086201A0[] = { sub_81C9F28 }; -const struct CompressedSpriteSheet gUnknown_086201C4[] = +static const struct CompressedSpriteSheet gUnknown_086201C4[] = { { .data = gPokenavOptions_Gfx, @@ -148,7 +146,7 @@ const struct CompressedSpriteSheet gUnknown_086201C4[] = } }; -const struct SpritePalette gUnknown_086201D4[] = +static const struct SpritePalette gUnknown_086201D4[] = { {gPokenavOptions_Pal + 0x00, 4}, {gPokenavOptions_Pal + 0x10, 5}, @@ -159,19 +157,19 @@ const struct SpritePalette gUnknown_086201D4[] = {} }; -const u16 gUnknown_0862020C[] = {0, 0}; -const u16 gUnknown_08620210[] = {0x20, 1}; -const u16 gUnknown_08620214[] = {0x40, 4}; -const u16 gUnknown_08620218[] = {0x60, 2}; -const u16 gUnknown_0862021C[] = {0x80, 3}; -const u16 gUnknown_08620220[] = {0xA0, 1}; -const u16 gUnknown_08620224[] = {0xC0, 1}; -const u16 gUnknown_08620228[] = {0xE0, 4}; -const u16 gUnknown_0862022C[] = {0x100, 1}; -const u16 gUnknown_08620230[] = {0x120, 2}; -const u16 gUnknown_08620234[] = {0x140, 0}; -const u16 gUnknown_08620238[] = {0x160, 0}; -const u16 gUnknown_0862023C[] = {0x180, 3}; +static const u16 gUnknown_0862020C[] = {0, 0}; +static const u16 gUnknown_08620210[] = {0x20, 1}; +static const u16 gUnknown_08620214[] = {0x40, 4}; +static const u16 gUnknown_08620218[] = {0x60, 2}; +static const u16 gUnknown_0862021C[] = {0x80, 3}; +static const u16 gUnknown_08620220[] = {0xA0, 1}; +static const u16 gUnknown_08620224[] = {0xC0, 1}; +static const u16 gUnknown_08620228[] = {0xE0, 4}; +static const u16 gUnknown_0862022C[] = {0x100, 1}; +static const u16 gUnknown_08620230[] = {0x120, 2}; +static const u16 gUnknown_08620234[] = {0x140, 0}; +static const u16 gUnknown_08620238[] = {0x160, 0}; +static const u16 gUnknown_0862023C[] = {0x180, 3}; struct UnkStruct_08620240 { @@ -180,27 +178,27 @@ struct UnkStruct_08620240 const u16 *unk4[6]; }; -const struct UnkStruct_08620240 gUnknown_08620240[5] = +static const struct UnkStruct_08620240 gUnknown_08620240[5] = { { 0x2A, 0x14, - {gUnknown_0862020C, gUnknown_08620210, gUnknown_0862021C, NULL, NULL, NULL} + {gUnknown_0862020C, gUnknown_08620210, gUnknown_0862021C} }, { 0x2A, 0x14, - {gUnknown_0862020C, gUnknown_08620210, gUnknown_08620214, gUnknown_0862021C, NULL, NULL} + {gUnknown_0862020C, gUnknown_08620210, gUnknown_08620214, gUnknown_0862021C} }, { 0x2A, 0x14, - {gUnknown_0862020C, gUnknown_08620210, gUnknown_08620214, gUnknown_08620218, gUnknown_0862021C, NULL} + {gUnknown_0862020C, gUnknown_08620210, gUnknown_08620214, gUnknown_08620218, gUnknown_0862021C} }, { 0x38, 0x14, - {gUnknown_08620220, gUnknown_08620224, gUnknown_0862023C, NULL, NULL, NULL} + {gUnknown_08620220, gUnknown_08620224, gUnknown_0862023C} }, { 0x28, @@ -209,7 +207,7 @@ const struct UnkStruct_08620240 gUnknown_08620240[5] = }, }; -const struct WindowTemplate gUnknown_086202CC = +static const struct WindowTemplate gUnknown_086202CC = { .bg = 1, .tilemapLeft = 3, @@ -220,7 +218,7 @@ const struct WindowTemplate gUnknown_086202CC = .baseBlock = 8 }; -const u8 *const gUnknown_086202D4[] = +static const u8 *const gUnknown_086202D4[] = { gUnknown_085EBCC5, gUnknown_085EBCE8, @@ -238,11 +236,11 @@ const u8 *const gUnknown_086202D4[] = gUnknown_085EBE41 }; -const u8 gUnknown_0862030C[] = {6, 8, 7}; +static const u8 gUnknown_0862030C[] = {6, 8, 7}; -const u8 gUnknown_0862030F[] = {6, 8, 7, 0, 0}; +static const u8 gUnknown_0862030F[] = {6, 8, 7, 0, 0}; -const struct OamData gUnknown_08620314 = +static const struct OamData gUnknown_08620314 = { .y = 0, .affineMode = 0, @@ -256,26 +254,26 @@ const struct OamData gUnknown_08620314 = .paletteNum = 0, }; -const union AffineAnimCmd gUnknown_0862031C[] = +static const union AffineAnimCmd gUnknown_0862031C[] = { AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0), AFFINEANIMCMD_END, }; -const union AffineAnimCmd gUnknown_0862032C[] = +static const union AffineAnimCmd gUnknown_0862032C[] = { AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0), AFFINEANIMCMD_FRAME(0x10, 0x10, 0, 0x12), AFFINEANIMCMD_END, }; -const union AffineAnimCmd *const gUnknown_08620344[] = +static const union AffineAnimCmd *const gUnknown_08620344[] = { gUnknown_0862031C, gUnknown_0862032C }; -const struct SpriteTemplate gUnknown_0862034C = +static const struct SpriteTemplate gUnknown_0862034C = { .tileTag = 3, .paletteTag = 4, @@ -286,7 +284,7 @@ const struct SpriteTemplate gUnknown_0862034C = .callback = SpriteCallbackDummy, }; -const struct OamData gUnknown_08620364 = +static const struct OamData gUnknown_08620364 = { .y = 0, .affineMode = 0, @@ -300,7 +298,7 @@ const struct OamData gUnknown_08620364 = .paletteNum = 0, }; -const struct SpriteTemplate gUnknown_0862036C = +static const struct SpriteTemplate gUnknown_0862036C = { .tileTag = 1, .paletteTag = 3, @@ -311,7 +309,7 @@ const struct SpriteTemplate gUnknown_0862036C = .callback = SpriteCallbackDummy, }; -const struct ScanlineEffectParams gUnknown_08620384 = +static const struct ScanlineEffectParams gUnknown_08620384 = { (void *)REG_ADDR_WIN0H, ((DMA_ENABLE | DMA_START_HBLANK | DMA_REPEAT | DMA_DEST_RELOAD) << 16) | 1, @@ -319,7 +317,7 @@ const struct ScanlineEffectParams gUnknown_08620384 = 0 }; -bool32 sub_81C98D4(void) +static bool32 sub_81C98D4(void) { s32 i; @@ -356,7 +354,7 @@ bool32 sub_81C9940(void) return TRUE; } -struct Pokenav2Struct * sub_81C9958(void) +static struct Pokenav2Struct * sub_81C9958(void) { struct Pokenav2Struct * unk = AllocSubstruct(2, sizeof(struct Pokenav2Struct)); @@ -397,14 +395,14 @@ void sub_81C99D4(void) FreePokenavSubstruct(2); } -bool32 sub_81C99FC(void) +static bool32 sub_81C99FC(void) { struct Pokenav2Struct * unk = GetSubstructPtr(2); return IsLoopedTaskActive(unk->loopedTaskId); } -u32 sub_81C9A10(s32 state) +static u32 sub_81C9A10(s32 state) { struct Pokenav2Struct * unk = GetSubstructPtr(2); @@ -511,7 +509,7 @@ u32 sub_81C9A10(s32 state) return 4; } -u32 sub_81C9C6C(s32 state) +static u32 sub_81C9C6C(s32 state) { switch (state) { @@ -531,7 +529,7 @@ u32 sub_81C9C6C(s32 state) return 4; } -u32 sub_81C9CA8(s32 state) +static u32 sub_81C9CA8(s32 state) { switch (state) { @@ -570,7 +568,7 @@ u32 sub_81C9CA8(s32 state) return 4; } -u32 sub_81C9D44(s32 state) +static u32 sub_81C9D44(s32 state) { switch (state) { @@ -608,7 +606,7 @@ u32 sub_81C9D44(s32 state) return 4; } -u32 sub_81C9DD8(s32 state) +static u32 sub_81C9DD8(s32 state) { switch (state) { @@ -641,7 +639,7 @@ u32 sub_81C9DD8(s32 state) return 4; } -u32 sub_81C9E58(s32 state) +static u32 sub_81C9E58(s32 state) { switch (state) { @@ -672,7 +670,7 @@ u32 sub_81C9E58(s32 state) return 4; } -u32 sub_81C9EC8(s32 state) +static u32 sub_81C9EC8(s32 state) { switch (state) { @@ -688,7 +686,7 @@ u32 sub_81C9EC8(s32 state) return 4; } -u32 sub_81C9EF8(s32 state) +static u32 sub_81C9EF8(s32 state) { switch (state) { @@ -704,7 +702,7 @@ u32 sub_81C9EF8(s32 state) return 4; } -u32 sub_81C9F28(s32 state) +static u32 sub_81C9F28(s32 state) { switch (state) { @@ -746,7 +744,7 @@ u32 sub_81C9F28(s32 state) return 4; } -void sub_81C9FC4(void) +static void sub_81C9FC4(void) { u32 i; @@ -755,7 +753,7 @@ void sub_81C9FC4(void) Pokenav_AllocAndLoadPalettes(gUnknown_086201D4); } -void sub_81C9FEC(void) +static void sub_81C9FEC(void) { FreeSpriteTilesByTag(3); FreeSpriteTilesByTag(1); @@ -769,7 +767,7 @@ void sub_81C9FEC(void) sub_81CA698(); } -void sub_81CA02C(void) +static void sub_81CA02C(void) { s32 i, j; struct Pokenav2Struct * unk = GetSubstructPtr(2); @@ -785,7 +783,7 @@ void sub_81CA02C(void) } } -void sub_81CA094(void) +static void sub_81CA094(void) { s32 i, j; struct Pokenav2Struct * unk = GetSubstructPtr(2); @@ -800,13 +798,13 @@ void sub_81CA094(void) } } -void sub_81CA0C8(void) +static void sub_81CA0C8(void) { s32 r0 = sub_81C9894(); sub_81CA0EC(gUnknown_08620240[r0].unk4, gUnknown_08620240[r0].unk0, gUnknown_08620240[r0].unk2); } -void sub_81CA0EC(const u16 *const *a0, s32 a1, s32 a2) +static void sub_81CA0EC(const u16 *const *a0, s32 a1, s32 a2) { s32 i, j; struct Pokenav2Struct * unk = GetSubstructPtr(2); @@ -840,7 +838,7 @@ void sub_81CA0EC(const u16 *const *a0, s32 a1, s32 a2) } } -void sub_81CA20C(void) +static void sub_81CA20C(void) { s32 i; struct Pokenav2Struct * unk = GetSubstructPtr(2); @@ -867,7 +865,7 @@ void sub_81CA20C(void) } } -void sub_81CA278(void) +static void sub_81CA278(void) { s32 i; struct Pokenav2Struct * unk = GetSubstructPtr(2); @@ -892,7 +890,7 @@ void sub_81CA278(void) unk->field_00b = r5; } -void sub_81CA2DC(void) +static void sub_81CA2DC(void) { s32 i; struct Pokenav2Struct * unk = GetSubstructPtr(2); @@ -909,7 +907,7 @@ void sub_81CA2DC(void) } } -bool32 sub_81CA324(void) +static bool32 sub_81CA324(void) { s32 i; struct Pokenav2Struct * unk = GetSubstructPtr(2); @@ -926,7 +924,7 @@ bool32 sub_81CA324(void) return FALSE; } -void sub_81CA35C(struct Sprite ** sprites, s32 a1, s32 a2, s32 a3) +static void sub_81CA35C(struct Sprite ** sprites, s32 a1, s32 a2, s32 a3) { s32 i; @@ -942,7 +940,7 @@ void sub_81CA35C(struct Sprite ** sprites, s32 a1, s32 a2, s32 a3) } } -void sub_81CA3B4(struct Sprite ** sprites) +static void sub_81CA3B4(struct Sprite ** sprites) { s32 i; struct Pokenav2Struct * unk = GetSubstructPtr(2); @@ -967,7 +965,7 @@ void sub_81CA3B4(struct Sprite ** sprites) unk->field_00c++; } -void sub_81CA448(struct Sprite ** sprites, bool32 a1) +static void sub_81CA448(struct Sprite ** sprites, bool32 a1) { s32 i; @@ -978,7 +976,7 @@ void sub_81CA448(struct Sprite ** sprites, bool32 a1) } } -void sub_81CA474(struct Sprite * sprite) +static void sub_81CA474(struct Sprite * sprite) { sprite->data[0]--; if (sprite->data[0] != -1) @@ -993,7 +991,7 @@ void sub_81CA474(struct Sprite * sprite) } } -void sub_81CA4AC(struct Sprite * sprite) +static void sub_81CA4AC(struct Sprite * sprite) { s32 r0; s32 r1; @@ -1045,7 +1043,7 @@ void sub_81CA4AC(struct Sprite * sprite) } } -void sub_81CA580(u8 taskId) +static void sub_81CA580(u8 taskId) { s16 * data = gTasks[taskId].data; @@ -1088,7 +1086,7 @@ void sub_81CA580(u8 taskId) data[0]--; } -void sub_81CA640(void) +static void sub_81CA640(void) { struct Pokenav2Struct * ptr = GetSubstructPtr(2); u8 spriteId = CreateSprite(&gUnknown_0862036C, 0x10, 0x60, 4); @@ -1099,13 +1097,13 @@ void sub_81CA640(void) ptr->field_028->invisible = TRUE; } -void sub_81CA698(void) +static void sub_81CA698(void) { struct Pokenav2Struct * ptr = GetSubstructPtr(2); DestroySprite(ptr->field_028); } -void sub_81CA6AC(struct Sprite * sprite) +static void sub_81CA6AC(struct Sprite * sprite) { sprite->data[0]++; if (sprite->data[0] > 8) @@ -1115,7 +1113,7 @@ void sub_81CA6AC(struct Sprite * sprite) } } -void sub_81CA6E0(void) +static void sub_81CA6E0(void) { struct Pokenav2Struct * ptr = GetSubstructPtr(2); @@ -1125,7 +1123,7 @@ void sub_81CA6E0(void) CopyWindowToVram(ptr->field_008, 3); } -void sub_81CA714(void) +static void sub_81CA714(void) { struct Pokenav2Struct * ptr = GetSubstructPtr(2); int i = sub_81C98B4(); @@ -1136,7 +1134,7 @@ void sub_81CA714(void) } -void sub_81CA770(void) +static void sub_81CA770(void) { struct Pokenav2Struct * ptr = GetSubstructPtr(2); const u8 * s = gText_NoRibbonWinners; @@ -1145,53 +1143,53 @@ void sub_81CA770(void) AddTextPrinterParameterized3(ptr->field_008, 1, (192 - width) / 2, 1, gUnknown_0862030F, 0, s); } -bool32 sub_81CA7C4(void) +static bool32 sub_81CA7C4(void) { return IsDma3ManagerBusyWithBgCopy(); } -void sub_81CA7D4(void) +static void sub_81CA7D4(void) { struct Pokenav2Struct * ptr = GetSubstructPtr(2); ptr->field_00a = CreateTask(sub_81CA808, 2); } -void sub_81CA7F4(void) +static void sub_81CA7F4(void) { struct Pokenav2Struct * ptr = GetSubstructPtr(2); DestroyTask(ptr->field_00a); } -void sub_81CA808(u8 taskId) +static void sub_81CA808(u8 taskId) { ChangeBgX(3, 0x80, 1); } -void sub_81CA818(void) +static void sub_81CA818(void) { u8 taskId = CreateTask(sub_81CA8B0, 3); SetWordTaskArg(taskId, 1, (uintptr_t)(gUnknown_0861FC78 + 1)); SetWordTaskArg(taskId, 3, (uintptr_t)(gUnknown_0861FC78 + 7)); } -void sub_81CA850(void) +static void sub_81CA850(void) { CopyPaletteIntoBufferUnfaded(gUnknown_0861FC78 + 7, 0x31, 4); } -void sub_81CA864(void) +static void sub_81CA864(void) { u8 taskId = CreateTask(sub_81CA8B0, 3); SetWordTaskArg(taskId, 1, (uintptr_t)(gUnknown_0861FC78 + 7)); SetWordTaskArg(taskId, 3, (uintptr_t)(gUnknown_0861FC78 + 1)); } -bool32 sub_81CA89C(void) +static bool32 sub_81CA89C(void) { return FuncIsActiveTask(sub_81CA8B0); } -void sub_81CA8B0(u8 taskId) +static void sub_81CA8B0(u8 taskId) { u16 sp8[2]; s16 * data = gTasks[taskId].data; @@ -1204,7 +1202,7 @@ void sub_81CA8B0(u8 taskId) DestroyTask(taskId); } -void sub_81CA914(void) +static void sub_81CA914(void) { TransferPlttBuffer(); LoadOam(); @@ -1212,7 +1210,7 @@ void sub_81CA914(void) ScanlineEffect_InitHBlankDmaTransfer(); } -void titlescreen_0(void) // almost definitely the wrong name +static void titlescreen_0(void) // almost definitely the wrong name { SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_OBJ | BLDCNT_EFFECT_LIGHTEN); SetGpuReg(REG_OFFSET_BLDY, 0); @@ -1227,7 +1225,7 @@ void titlescreen_0(void) // almost definitely the wrong name CreateTask(sub_81CA9EC, 3); } -void sub_81CA994(void) +static void sub_81CA994(void) { SetGpuReg(REG_OFFSET_BLDCNT, 0); ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON); @@ -1236,18 +1234,18 @@ void sub_81CA994(void) SetPokenavVBlankCallback(); } -void sub_81CA9C8(void) +static void sub_81CA9C8(void) { SetGpuReg(REG_OFFSET_BLDCNT, 0); } -void sub_81CA9D8(void) +static void sub_81CA9D8(void) { sub_81CAA3C(); SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_OBJ | BLDCNT_EFFECT_LIGHTEN); } -void sub_81CA9EC(u8 taskId) +static void sub_81CA9EC(u8 taskId) { s16 * data = gTasks[taskId].data; data[0]++; @@ -1260,15 +1258,15 @@ void sub_81CA9EC(u8 taskId) } } -void sub_81CAA3C(void) +static void sub_81CAA3C(void) { int i = sub_81C9894(); int j = sub_81C98A4(); int r4 = gUnknown_08620240[i].unk2 * j + gUnknown_08620240[i].unk0 - 8; CpuFill16(0, gScanlineEffectRegBuffers[0], 0x140); CpuFill16(0, gScanlineEffectRegBuffers[1], 0x140); - CpuFill16(0x72F0, &gScanlineEffectRegBuffers[0][r4], 0x20); - CpuFill16(0x72F0, &gScanlineEffectRegBuffers[1][r4], 0x20); + CpuFill16(RGB(16, 23, 28), &gScanlineEffectRegBuffers[0][r4], 0x20); + CpuFill16(RGB(16, 23, 28), &gScanlineEffectRegBuffers[1][r4], 0x20); } void sub_81CAADC(void) -- cgit v1.2.3 From ffc7a9be27ee534643ce4c969c89b7556f78b707 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 4 Aug 2019 21:23:38 -0400 Subject: Fix build errors --- src/pokenav.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/pokenav.c b/src/pokenav.c index 132e4123b..b4b185c84 100644 --- a/src/pokenav.c +++ b/src/pokenav.c @@ -37,21 +37,22 @@ struct UnknownPokenavCallbackStruct void (*unk18)(void); }; +// TODO: Move these to pokenav.h extern bool32 sub_81C9924(void); extern u32 sub_81C99C0(void); -extern void sub_81C9990(int); +extern void sub_81C9990(s32); extern bool32 sub_81C9940(void); extern u32 sub_81CCFD8(void); extern u32 sub_81CD070(void); extern bool32 sub_81CDDD4(void); -extern void sub_81CDE2C(int); +extern void sub_81CDE2C(s32); extern u32 sub_81CDE64(void); extern void sub_81CD1C0(void); extern void sub_81CECA0(void); extern u32 sub_81CEF3C(void); extern u32 sub_81CEFDC(void); extern bool32 sub_81CF330(void); -extern void sub_81CF3A0(int); +extern void sub_81CF3A0(s32); extern u32 sub_81CF3D0(void); extern void sub_81CEFF0(void); extern void sub_81CF3F8(void); -- cgit v1.2.3 From a42e5c24e6ed91c44eeb615101a182218b237987 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 5 Aug 2019 08:40:03 -0400 Subject: Use LT return defines --- src/pokenav_unk_2.c | 142 ++++++++++++++++++++++++++-------------------------- 1 file changed, 71 insertions(+), 71 deletions(-) (limited to 'src') diff --git a/src/pokenav_unk_2.c b/src/pokenav_unk_2.c index 7265a1a00..d852236d2 100644 --- a/src/pokenav_unk_2.c +++ b/src/pokenav_unk_2.c @@ -421,42 +421,42 @@ static u32 sub_81C9A10(s32 state) ChangeBgY(2, 0, 0); ChangeBgX(3, 0, 0); ChangeBgY(3, 0, 0); - return 0; + return LT_INC_AND_PAUSE; case 1: if (free_temp_tile_data_buffers_if_possible()) - return 2; + return LT_PAUSE; decompress_and_copy_tile_data_to_vram(2, gUnknown_0861FD6C, 0, 0, 0); decompress_and_copy_tile_data_to_vram(2, gUnknown_0861FFF4, 0, 0, 1); CopyPaletteIntoBufferUnfaded(gUnknown_0861FD4C, 0x20, 0x20); - return 0; + return LT_INC_AND_PAUSE; case 2: if (free_temp_tile_data_buffers_if_possible()) - return 2; + return LT_PAUSE; decompress_and_copy_tile_data_to_vram(3, gUnknown_0861FC98, 0, 0, 0); decompress_and_copy_tile_data_to_vram(3, gUnknown_0861FCAC, 0, 0, 1); CopyPaletteIntoBufferUnfaded(gUnknown_0861FC78, 0x30, 0x20); if (sub_81C9894() == 3 || sub_81C9894() == 4) sub_81CA850(); - return 0; + return LT_INC_AND_PAUSE; case 3: if (free_temp_tile_data_buffers_if_possible()) - return 2; + return LT_PAUSE; sub_81CA6E0(); sub_81CA7D4(); - return 1; + return LT_INC_AND_CONTINUE; case 4: sub_81C9FC4(); - return 1; + return LT_INC_AND_CONTINUE; case 5: sub_81CA714(); sub_81CA02C(); sub_81CA640(); sub_81CA0C8(); - return 0; + return LT_INC_AND_PAUSE; case 6: if (sub_81CA7C4()) - return 2; - return 1; + return LT_PAUSE; + return LT_INC_AND_CONTINUE; case 7: ShowBg(1); ShowBg(2); @@ -480,10 +480,10 @@ static u32 sub_81C9A10(s32 state) LoadLeftHeaderGfxForIndex(0); break; } - return 0; + return LT_INC_AND_PAUSE; case 8: if (IsPaletteFadeActive()) - return 2; + return LT_PAUSE; switch (sub_81C9894()) { case 4: @@ -498,15 +498,15 @@ static u32 sub_81C9A10(s32 state) } sub_81CA20C(); titlescreen_0(); - return 1; + return LT_INC_AND_CONTINUE; case 9: if (sub_81CA324()) - return 2; + return LT_PAUSE; if (sub_81C8010()) - return 2; + return LT_PAUSE; break; } - return 4; + return LT_FINISH; } static u32 sub_81C9C6C(s32 state) @@ -518,15 +518,15 @@ static u32 sub_81C9C6C(s32 state) sub_81CA278(); sub_81CA714(); PlaySE(SE_SELECT); - return 0; + return LT_INC_AND_PAUSE; case 1: if (sub_81CA324()) - return 2; + return LT_PAUSE; if (sub_81CA7C4()) - return 2; + return LT_PAUSE; break; } - return 4; + return LT_FINISH; } static u32 sub_81C9CA8(s32 state) @@ -538,34 +538,34 @@ static u32 sub_81C9CA8(s32 state) sub_81CA2DC(); sub_81C7FC4(0, 0); PlaySE(SE_SELECT); - return 0; + return LT_INC_AND_PAUSE; case 1: if (sub_81CA324()) - return 2; + return LT_PAUSE; if (sub_81C8010()) - return 2; + return LT_PAUSE; sub_81CA0C8(); LoadLeftHeaderGfxForIndex(1); - return 0; + return LT_INC_AND_PAUSE; case 2: sub_81CA20C(); sub_81C7FA0(1, FALSE, FALSE); sub_81CA818(); sub_81CA714(); - return 0; + return LT_INC_AND_PAUSE; case 3: if (sub_81CA324()) - return 2; + return LT_PAUSE; if (sub_81C8010()) - return 2; + return LT_PAUSE; if (sub_81CA89C()) - return 2; + return LT_PAUSE; if (sub_81CA7C4()) - return 2; + return LT_PAUSE; sub_81CA9D8(); break; } - return 4; + return LT_FINISH; } static u32 sub_81C9D44(s32 state) @@ -576,34 +576,34 @@ static u32 sub_81C9D44(s32 state) sub_81CA9C8(); sub_81CA2DC(); sub_81C7FC4(1, 0); - return 0; + return LT_INC_AND_PAUSE; case 1: if (sub_81CA324()) - return 2; + return LT_PAUSE; if (sub_81C8010()) - return 2; + return LT_PAUSE; sub_81CA0C8(); LoadLeftHeaderGfxForIndex(0); - return 0; + return LT_INC_AND_PAUSE; case 2: sub_81CA20C(); sub_81C7FA0(0, FALSE, FALSE); sub_81CA864(); sub_81CA714(); - return 0; + return LT_INC_AND_PAUSE; case 3: if (sub_81CA324()) - return 2; + return LT_PAUSE; if (sub_81C8010()) - return 2; + return LT_PAUSE; if (sub_81CA89C()) - return 2; + return LT_PAUSE; if (sub_81CA7C4()) - return 2; + return LT_PAUSE; sub_81CA9D8(); break; } - return 4; + return LT_FINISH; } static u32 sub_81C9DD8(s32 state) @@ -614,29 +614,29 @@ static u32 sub_81C9DD8(s32 state) sub_81CA9C8(); sub_81CA2DC(); PlaySE(SE_SELECT); - return 0; + return LT_INC_AND_PAUSE; case 1: if (sub_81CA324()) - return 2; + return LT_PAUSE; LoadLeftHeaderGfxForIndex(7); sub_81CA0C8(); - return 0; + return LT_INC_AND_PAUSE; case 2: sub_81CA20C(); sub_81C7FA0(7, FALSE, FALSE); sub_81CA714(); - return 0; + return LT_INC_AND_PAUSE; case 3: if (sub_81CA324()) - return 2; + return LT_PAUSE; if (sub_81C8010()) - return 2; + return LT_PAUSE; if (sub_81CA89C()) - return 2; + return LT_PAUSE; sub_81CA9D8(); break; } - return 4; + return LT_FINISH; } static u32 sub_81C9E58(s32 state) @@ -647,27 +647,27 @@ static u32 sub_81C9E58(s32 state) sub_81CA9C8(); sub_81CA2DC(); sub_81C7FC4(7, 0); - return 0; + return LT_INC_AND_PAUSE; case 1: if (sub_81CA324()) - return 2; + return LT_PAUSE; if (sub_81C8010()) - return 2; + return LT_PAUSE; sub_81CA0C8(); - return 0; + return LT_INC_AND_PAUSE; case 2: sub_81CA20C(); sub_81CA714(); - return 0; + return LT_INC_AND_PAUSE; case 3: if (sub_81CA324()) - return 2; + return LT_PAUSE; if (sub_81CA89C()) - return 2; + return LT_PAUSE; sub_81CA9D8(); break; } - return 4; + return LT_FINISH; } static u32 sub_81C9EC8(s32 state) @@ -677,13 +677,13 @@ static u32 sub_81C9EC8(s32 state) case 0: PlaySE(SE_HAZURE); sub_81CA770(); - return 0; + return LT_INC_AND_PAUSE; case 1: if (IsDma3ManagerBusyWithBgCopy()) - return 2; + return LT_PAUSE; break; } - return 4; + return LT_FINISH; } static u32 sub_81C9EF8(s32 state) @@ -693,13 +693,13 @@ static u32 sub_81C9EF8(s32 state) case 0: PlaySE(SE_SELECT); sub_81CA714(); - return 0; + return LT_INC_AND_PAUSE; case 1: if (IsDma3ManagerBusyWithBgCopy()) - return 2; + return LT_PAUSE; break; } - return 4; + return LT_FINISH; } static u32 sub_81C9F28(s32 state) @@ -708,10 +708,10 @@ static u32 sub_81C9F28(s32 state) { case 0: sub_81C7BA4(sub_81C98C4()); - return 0; + return LT_INC_AND_PAUSE; case 1: if (IsDma3ManagerBusyWithBgCopy_()) - return 2; + return LT_PAUSE; sub_81C7880(); sub_81CA9C8(); sub_81CA2DC(); @@ -728,20 +728,20 @@ static u32 sub_81C9F28(s32 state) break; } PlaySE(SE_SELECT); - return 0; + return LT_INC_AND_PAUSE; case 2: if (sub_81CA324()) - return 2; + return LT_PAUSE; if (sub_81C8010()) - return 2; + return LT_PAUSE; sub_81C7AC0(0); - return 0; + return LT_INC_AND_PAUSE; case 3: if (IsPaletteFadeActive()) - return 2; + return LT_PAUSE; break; } - return 4; + return LT_FINISH; } static void sub_81C9FC4(void) -- cgit v1.2.3 From 329670e16e18b1ca53195e02c6bc72c0e68af8fa Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 5 Aug 2019 08:46:52 -0400 Subject: Minor fixes --- src/pokenav_unk_2.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/pokenav_unk_2.c b/src/pokenav_unk_2.c index d852236d2..6165c3a9b 100644 --- a/src/pokenav_unk_2.c +++ b/src/pokenav_unk_2.c @@ -76,7 +76,7 @@ static void sub_81CA850(void); static void sub_81CA864(void); static bool32 sub_81CA89C(void); static void sub_81CA8B0(u8 taskId); -static void titlescreen_0(void); +static void sub_81CA92C(void); static void sub_81CA994(void); static void sub_81CA9C8(void); static void sub_81CA9D8(void); @@ -497,7 +497,7 @@ static u32 sub_81C9A10(s32 state) break; } sub_81CA20C(); - titlescreen_0(); + sub_81CA92C(); return LT_INC_AND_CONTINUE; case 9: if (sub_81CA324()) @@ -746,9 +746,9 @@ static u32 sub_81C9F28(s32 state) static void sub_81C9FC4(void) { - u32 i; + s32 i; - for (i = 0; i < 2; i++) + for (i = 0; i < NELEMS(gUnknown_086201C4); i++) LoadCompressedSpriteSheet(&gUnknown_086201C4[i]); Pokenav_AllocAndLoadPalettes(gUnknown_086201D4); } @@ -1210,7 +1210,7 @@ static void sub_81CA914(void) ScanlineEffect_InitHBlankDmaTransfer(); } -static void titlescreen_0(void) // almost definitely the wrong name +static void sub_81CA92C(void) { SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_OBJ | BLDCNT_EFFECT_LIGHTEN); SetGpuReg(REG_OFFSET_BLDY, 0); -- cgit v1.2.3 From 463e1eb6b836be8f6f1b9465ada1072a4d3d37d6 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 5 Aug 2019 09:17:21 -0400 Subject: Name some fields in Pokenav2Struct --- src/pokenav_unk_2.c | 126 ++++++++++++++++++++++++++-------------------------- 1 file changed, 63 insertions(+), 63 deletions(-) (limited to 'src') diff --git a/src/pokenav_unk_2.c b/src/pokenav_unk_2.c index 6165c3a9b..1c40e146f 100644 --- a/src/pokenav_unk_2.c +++ b/src/pokenav_unk_2.c @@ -17,21 +17,21 @@ #include "constants/songs.h" #include "constants/rgb.h" -// Match Call +// Top Menu struct Pokenav2Struct { bool32 (*callback)(void); u32 loopedTaskId; - u16 field_008; - u8 field_00a; - u8 field_00b; - u8 field_00c; + u16 optionDescriptionWindowId; + u8 bg3ScrollTaskId; + u8 cursorPos; + bool8 otherIconsInMotion; u8 field_00d; - bool32 field_010[6]; + bool32 iconVisible[6]; struct Sprite * field_028; - struct Sprite * field_02c[6][4]; - u8 field_08c[0x800]; + struct Sprite * iconSprites[6][4]; + u16 bg1TilemapBuffer[0x400]; }; static struct Pokenav2Struct * sub_81C9958(void); @@ -221,19 +221,19 @@ static const struct WindowTemplate gUnknown_086202CC = static const u8 *const gUnknown_086202D4[] = { gUnknown_085EBCC5, - gUnknown_085EBCE8, - gUnknown_085EBD01, - gUnknown_085EBD1C, - gUnknown_085EBD34, - gUnknown_085EBD83, - gUnknown_085EBDA2, - gUnknown_085EBDBF, - gUnknown_085EBDDB, - gUnknown_085EBDEE, - gUnknown_085EBE06, - gUnknown_085EBE19, - gUnknown_085EBE2D, - gUnknown_085EBE41 + gUnknown_085EBCE8, + gUnknown_085EBD01, + gUnknown_085EBD1C, + gUnknown_085EBD34, + gUnknown_085EBD83, + gUnknown_085EBDA2, + gUnknown_085EBDBF, + gUnknown_085EBDDB, + gUnknown_085EBDEE, + gUnknown_085EBE06, + gUnknown_085EBE19, + gUnknown_085EBE2D, + gUnknown_085EBE41 }; static const u8 gUnknown_0862030C[] = {6, 8, 7}; @@ -360,7 +360,7 @@ static struct Pokenav2Struct * sub_81C9958(void) if (unk != NULL) { - unk->field_00c = 0; + unk->otherIconsInMotion = FALSE; unk->loopedTaskId = CreateLoopedTask(sub_81C9A10, 1); unk->callback = sub_81C99FC; } @@ -389,7 +389,7 @@ void sub_81C99D4(void) struct Pokenav2Struct * unk = GetSubstructPtr(2); sub_81CA7F4(); - RemoveWindow(unk->field_008); + RemoveWindow(unk->optionDescriptionWindowId); sub_81C9FEC(); sub_81CA994(); FreePokenavSubstruct(2); @@ -411,7 +411,7 @@ static u32 sub_81C9A10(s32 state) case 0: InitBgTemplates(gUnknown_08620194, ARRAY_COUNT(gUnknown_08620194)); decompress_and_copy_tile_data_to_vram(1, gPokenavMessageBox_Gfx, 0, 0, 0); - SetBgTilemapBuffer(1, unk->field_08c); + SetBgTilemapBuffer(1, unk->bg1TilemapBuffer); CopyToBgTilemapBuffer(1, gPokenavMessageBox_Tilemap, 0, 0); CopyBgTilemapBufferToVram(1); CopyPaletteIntoBufferUnfaded(gPokenavMessageBox_Pal, 0x10, 0x20); @@ -777,7 +777,7 @@ static void sub_81CA02C(void) for (j = 0; j < 4; j++) { u8 spriteId = CreateSprite(&gUnknown_0862034C, 0x8c, 20 * i + 40, 3); - unk->field_02c[i][j] = &gSprites[spriteId]; + unk->iconSprites[i][j] = &gSprites[spriteId]; gSprites[spriteId].pos2.x = 32 * j; } } @@ -792,8 +792,8 @@ static void sub_81CA094(void) { for (j = 0; j < 4; j++) { - FreeSpriteOamMatrix(unk->field_02c[i][j]); - DestroySprite(unk->field_02c[i][j]); + FreeSpriteOamMatrix(unk->iconSprites[i][j]); + DestroySprite(unk->iconSprites[i][j]); } } } @@ -816,22 +816,22 @@ static void sub_81CA0EC(const u16 *const *a0, s32 a1, s32 a2) { for (j = 0; j < 4; j++) { - unk->field_02c[i][j]->oam.tileNum = (*a0)[0] + sp04 + 8 * j; - unk->field_02c[i][j]->oam.paletteNum = IndexOfSpritePaletteTag((*a0)[1] + 4); - unk->field_02c[i][j]->invisible = TRUE; - unk->field_02c[i][j]->pos1.y = a1; - unk->field_02c[i][j]->pos1.x = 0x8c; - unk->field_02c[i][j]->pos2.x = 32 * j; + unk->iconSprites[i][j]->oam.tileNum = (*a0)[0] + sp04 + 8 * j; + unk->iconSprites[i][j]->oam.paletteNum = IndexOfSpritePaletteTag((*a0)[1] + 4); + unk->iconSprites[i][j]->invisible = TRUE; + unk->iconSprites[i][j]->pos1.y = a1; + unk->iconSprites[i][j]->pos1.x = 0x8c; + unk->iconSprites[i][j]->pos2.x = 32 * j; } - unk->field_010[i] = TRUE; + unk->iconVisible[i] = TRUE; } else { for (j = 0; j < 4; j++) { - unk->field_02c[i][j]->invisible = TRUE; + unk->iconSprites[i][j]->invisible = TRUE; } - unk->field_010[i] = FALSE; + unk->iconVisible[i] = FALSE; } a0++; a1 += a2; @@ -848,20 +848,20 @@ static void sub_81CA20C(void) for (i = 0; i < 6; i++) { - if (unk->field_010[i]) + if (unk->iconVisible[i]) { if (r7++ == r8) { r2 = 0x82; - unk->field_00b = i; + unk->cursorPos = i; } else r2 = 0x8c; - sub_81CA35C(unk->field_02c[i], 0x100, r2, 0xC); - sub_81CA448(unk->field_02c[i], FALSE); + sub_81CA35C(unk->iconSprites[i], 0x100, r2, 0xC); + sub_81CA448(unk->iconSprites[i], FALSE); } else - sub_81CA448(unk->field_02c[i], TRUE); + sub_81CA448(unk->iconSprites[i], TRUE); } } @@ -874,7 +874,7 @@ static void sub_81CA278(void) for (i = 0, r5 = 0; i < 6; i++) { - if (unk->field_010[i]) + if (unk->iconVisible[i]) { if (r5 == r3) { @@ -885,9 +885,9 @@ static void sub_81CA278(void) } } - sub_81CA35C(unk->field_02c[unk->field_00b], 0x82, 0x8c, 0x4); - sub_81CA35C(unk->field_02c[r5], 0x8c, 0x82, 0x4); - unk->field_00b = r5; + sub_81CA35C(unk->iconSprites[unk->cursorPos], 0x82, 0x8c, 0x4); + sub_81CA35C(unk->iconSprites[r5], 0x8c, 0x82, 0x4); + unk->cursorPos = r5; } static void sub_81CA2DC(void) @@ -897,12 +897,12 @@ static void sub_81CA2DC(void) for (i = 0; i < 6; i++) { - if (unk->field_010[i]) + if (unk->iconVisible[i]) { - if (unk->field_00b != i) - sub_81CA35C(unk->field_02c[i], 0x8C, 0x100, 0x8); + if (unk->cursorPos != i) + sub_81CA35C(unk->iconSprites[i], 0x8C, 0x100, 0x8); else - sub_81CA3B4(unk->field_02c[i]); + sub_81CA3B4(unk->iconSprites[i]); } } } @@ -914,11 +914,11 @@ static bool32 sub_81CA324(void) for (i = 0; i < 6; i++) { - if (unk->field_02c[i][0]->callback != SpriteCallbackDummy) + if (unk->iconSprites[i][0]->callback != SpriteCallbackDummy) return TRUE; } - if (unk->field_00c) + if (unk->otherIconsInMotion) return TRUE; return FALSE; @@ -962,7 +962,7 @@ static void sub_81CA3B4(struct Sprite ** sprites) SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0x10, 0x00)); taskId = CreateTask(sub_81CA580, 3); gTasks[taskId].data[0] = 8; - unk->field_00c++; + unk->otherIconsInMotion++; } static void sub_81CA448(struct Sprite ** sprites, bool32 a1) @@ -1075,7 +1075,7 @@ static void sub_81CA580(u8 taskId) data[4]++; if (data[4] == 12) { - ((struct Pokenav2Struct *)GetSubstructPtr(2))->field_00c--; + ((struct Pokenav2Struct *)GetSubstructPtr(2))->otherIconsInMotion--; SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0x00, 0x10)); DestroyTask(taskId); } @@ -1117,10 +1117,10 @@ static void sub_81CA6E0(void) { struct Pokenav2Struct * ptr = GetSubstructPtr(2); - ptr->field_008 = AddWindow(&gUnknown_086202CC); - PutWindowTilemap(ptr->field_008); - FillWindowPixelBuffer(ptr->field_008, PIXEL_FILL(6)); - CopyWindowToVram(ptr->field_008, 3); + ptr->optionDescriptionWindowId = AddWindow(&gUnknown_086202CC); + PutWindowTilemap(ptr->optionDescriptionWindowId); + FillWindowPixelBuffer(ptr->optionDescriptionWindowId, PIXEL_FILL(6)); + CopyWindowToVram(ptr->optionDescriptionWindowId, 3); } static void sub_81CA714(void) @@ -1129,8 +1129,8 @@ static void sub_81CA714(void) int i = sub_81C98B4(); const u8 * s = gUnknown_086202D4[i]; u32 width = GetStringWidth(1, s, -1); - FillWindowPixelBuffer(ptr->field_008, PIXEL_FILL(6)); - AddTextPrinterParameterized3(ptr->field_008, 1, (192 - width) / 2, 1, gUnknown_0862030C, 0, s); + FillWindowPixelBuffer(ptr->optionDescriptionWindowId, PIXEL_FILL(6)); + AddTextPrinterParameterized3(ptr->optionDescriptionWindowId, 1, (192 - width) / 2, 1, gUnknown_0862030C, 0, s); } @@ -1139,8 +1139,8 @@ static void sub_81CA770(void) struct Pokenav2Struct * ptr = GetSubstructPtr(2); const u8 * s = gText_NoRibbonWinners; u32 width = GetStringWidth(1, s, -1); - FillWindowPixelBuffer(ptr->field_008, PIXEL_FILL(6)); - AddTextPrinterParameterized3(ptr->field_008, 1, (192 - width) / 2, 1, gUnknown_0862030F, 0, s); + FillWindowPixelBuffer(ptr->optionDescriptionWindowId, PIXEL_FILL(6)); + AddTextPrinterParameterized3(ptr->optionDescriptionWindowId, 1, (192 - width) / 2, 1, gUnknown_0862030F, 0, s); } static bool32 sub_81CA7C4(void) @@ -1151,13 +1151,13 @@ static bool32 sub_81CA7C4(void) static void sub_81CA7D4(void) { struct Pokenav2Struct * ptr = GetSubstructPtr(2); - ptr->field_00a = CreateTask(sub_81CA808, 2); + ptr->bg3ScrollTaskId = CreateTask(sub_81CA808, 2); } static void sub_81CA7F4(void) { struct Pokenav2Struct * ptr = GetSubstructPtr(2); - DestroyTask(ptr->field_00a); + DestroyTask(ptr->bg3ScrollTaskId); } static void sub_81CA808(u8 taskId) -- cgit v1.2.3