summaryrefslogtreecommitdiff
path: root/src/mevent_8145654.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mevent_8145654.c')
-rw-r--r--src/mevent_8145654.c793
1 files changed, 0 insertions, 793 deletions
diff --git a/src/mevent_8145654.c b/src/mevent_8145654.c
deleted file mode 100644
index 3de09ab44..000000000
--- a/src/mevent_8145654.c
+++ /dev/null
@@ -1,793 +0,0 @@
-#include "global.h"
-#include "constants/species.h"
-#include "bg.h"
-#include "gpu_regs.h"
-#include "palette.h"
-#include "decompress.h"
-#include "malloc.h"
-#include "menu.h"
-#include "new_menu_helpers.h"
-#include "pokemon_icon.h"
-#include "mystery_gift_menu.h"
-#include "menu_indicators.h"
-#include "string_util.h"
-#include "link_rfu.h"
-#include "mevent.h"
-#include "battle_anim.h"
-
-struct UnkStruct_8467FB8
-{
- u8 textPal1:4;
- u8 textPal2:4;
- u8 textPal3:4;
- u8 textPal4:4;
- const u8 * tiles;
- const u8 * map;
- const u16 * pal;
-};
-
-struct UnkStruct_203F3C8_02DC
-{
- u8 unk_00;
- u8 unk_01[41];
- u8 unk_42[4];
-};
-
-struct UnkStruct_203F3C8
-{
- /*0000*/ struct MEWonderCardData unk_0000;
- /*014c*/ struct MEventBuffer_3430_Sub unk_014C;
- /*0170*/ const struct UnkStruct_8467FB8 * unk_0170;
- /*0174*/ u8 unk_0174;
- /*0175*/ u8 unk_0175;
- /*0176*/ u16 unk_0176[3];
- /*017C*/ u8 unk_017C;
- /*017D*/ u8 unk_017D[7][2];
- /*018B*/ u8 unk_018B[41];
- /*01B4*/ u8 unk_01B4[41];
- /*01DD*/ u8 unk_01DD[7];
- /*01E4*/ u8 unk_01E4[4][41];
- /*0288*/ u8 unk_0288[41];
- /*02B1*/ u8 unk_02B1[41];
- /*02DC*/ struct UnkStruct_203F3C8_02DC unk_02DC[8];
- /*045C*/ u8 buffer_045C[0x1000];
-};
-
-EWRAM_DATA struct UnkStruct_203F3C8 * gUnknown_203F3C8 = NULL;
-
-void sub_8145A98(void);
-void sub_8145D18(u8 whichWindow);
-void sub_8146060(void);
-void sub_81461D8(void);
-
-const u8 gUnknown_8467068[][3] = {
- {0, 2, 3},
- {0, 1, 2}
-};
-const u8 ALIGNED(4) gUnknown_8467070[3] = {7, 4, 7};
-const struct WindowTemplate gUnknown_8467074[] = {
- {0x01, 0x01, 0x01, 0x19, 0x04, 0x0f, 0x029c},
- {0x01, 0x01, 0x06, 0x1c, 0x08, 0x0f, 0x01bc},
- {0x01, 0x01, 0x0e, 0x1c, 0x05, 0x0f, 0x0130}
-};
-
-const u16 gUnknown_846708C[] = INCBIN_U16("data/graphics/mevent/pal_46708C.gbapal");
-const u16 gUnknown_84670AC[] = INCBIN_U16("data/graphics/mevent/pal_4670AC.gbapal");
-const u16 gUnknown_84670CC[] = INCBIN_U16("data/graphics/mevent/pal_4670CC.gbapal");
-const u16 gUnknown_84670EC[] = INCBIN_U16("data/graphics/mevent/pal_4670EC.gbapal");
-const u16 gUnknown_846710C[] = INCBIN_U16("data/graphics/mevent/pal_46710C.gbapal");
-const u16 gUnknown_846712C[] = INCBIN_U16("data/graphics/mevent/pal_46712C.gbapal");
-const u16 gUnknown_846714C[] = INCBIN_U16("data/graphics/mevent/pal_46714C.gbapal");
-const u16 gUnknown_846716C[] = INCBIN_U16("data/graphics/mevent/pal_46716C.gbapal");
-const u8 gUnknown_846718C[] = INCBIN_U8("data/graphics/mevent/gfx_46718C.4bpp.lz");
-const u8 gUnknown_8467288[] = INCBIN_U8("data/graphics/mevent/tilemap_467288.bin.lz");
-const u8 gUnknown_846737C[] = INCBIN_U8("data/graphics/mevent/gfx_46737C.4bpp.lz");
-const u8 gUnknown_8467470[] = INCBIN_U8("data/graphics/mevent/tilemap_467470.bin.lz");
-const u8 gUnknown_8467558[] = INCBIN_U8("data/graphics/mevent/gfx_467558.4bpp.lz");
-const u8 gUnknown_846762C[] = INCBIN_U8("data/graphics/mevent/tilemap_46762C.bin.lz");
-const u8 gUnknown_8467700[] = INCBIN_U8("data/graphics/mevent/gfx_467700.4bpp.lz");
-const u8 gUnknown_8467934[] = INCBIN_U8("data/graphics/mevent/tilemap_467934.bin.lz");
-const u8 gUnknown_8467A7C[] = INCBIN_U8("data/graphics/mevent/gfx_467A7C.4bpp.lz");
-const u8 gUnknown_8467CAC[] = INCBIN_U8("data/graphics/mevent/tilemap_467CAC.bin.lz");
-const u16 gUnknown_8467DF4[] = INCBIN_U16("data/graphics/mevent/pal_467DF4.gbapal");
-const u16 gUnknown_8467E14[] = INCBIN_U16("data/graphics/mevent/pal_467E14.gbapal");
-const u16 gUnknown_8467E34[] = INCBIN_U16("data/graphics/mevent/pal_467E34.gbapal");
-const u16 gUnknown_8467E54[] = INCBIN_U16("data/graphics/mevent/pal_467E54.gbapal");
-const u16 gUnknown_8467E74[] = INCBIN_U16("data/graphics/mevent/pal_467E74.gbapal");
-const u16 gUnknown_8467E94[] = INCBIN_U16("data/graphics/mevent/pal_467E94.gbapal");
-const u16 gUnknown_8467EB4[] = INCBIN_U16("data/graphics/mevent/pal_467EB4.gbapal");
-const u16 gUnknown_8467ED4[] = INCBIN_U16("data/graphics/mevent/pal_467ED4.gbapal");
-const u32 gUnknown_8467EF4[] = INCBIN_U32("data/graphics/mevent/gfx_467EF4.4bpp.lz");
-
-const struct CompressedSpriteSheet gUnknown_8467F58 = {
- gUnknown_8467EF4, 0x100, 0x8000
-};
-const struct SpritePalette gUnknown_8467F60[] = {
- {gUnknown_8467DF4, 0x8000},
- {gUnknown_8467E14, 0x8000},
- {gUnknown_8467E34, 0x8000},
- {gUnknown_8467E54, 0x8000},
- {gUnknown_8467E74, 0x8000},
- {gUnknown_8467E94, 0x8000},
- {gUnknown_8467EB4, 0x8000},
- {gUnknown_8467ED4, 0x8000}
-};
-const struct SpriteTemplate gUnknown_8467FA0 = {
- 0x8000, 0x8000, &gOamData_AffineOff_ObjNormal_32x16, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-};
-const struct UnkStruct_8467FB8 gUnknown_8467FB8[8] = {
- {1, 0, 0, 0, gUnknown_846718C, gUnknown_8467288, gUnknown_846708C},
- {1, 0, 0, 1, gUnknown_846737C, gUnknown_8467470, gUnknown_84670AC},
- {1, 0, 0, 2, gUnknown_8467558, gUnknown_846762C, gUnknown_84670CC},
- {1, 0, 0, 3, gUnknown_8467558, gUnknown_846762C, gUnknown_84670EC},
- {1, 0, 0, 4, gUnknown_8467558, gUnknown_846762C, gUnknown_846710C},
- {1, 0, 0, 5, gUnknown_8467558, gUnknown_846762C, gUnknown_846712C},
- {1, 0, 0, 6, gUnknown_8467700, gUnknown_8467934, gUnknown_846714C},
- {1, 0, 0, 7, gUnknown_8467A7C, gUnknown_8467CAC, gUnknown_846716C}
-};
-
-bool32 InitWonderCardResources(struct MEWonderCardData * r5, struct MEventBuffer_3430_Sub * r6)
-{
- if (r5 == NULL || r6 == NULL)
- return FALSE;
- gUnknown_203F3C8 = AllocZeroed(sizeof(struct UnkStruct_203F3C8));
- if (gUnknown_203F3C8 == NULL)
- return FALSE;
- gUnknown_203F3C8->unk_0000 = *r5;
- gUnknown_203F3C8->unk_014C = *r6;
- if (gUnknown_203F3C8->unk_0000.unk_08_2 >= NELEMS(gUnknown_8467FB8))
- gUnknown_203F3C8->unk_0000.unk_08_2 = 0;
- if (gUnknown_203F3C8->unk_0000.unk_08_0 >= NELEMS(gUnknown_8467070))
- gUnknown_203F3C8->unk_0000.unk_08_0 = 0;
- if (gUnknown_203F3C8->unk_0000.unk_09 > NELEMS(gUnknown_203F3C8->unk_017D))
- gUnknown_203F3C8->unk_0000.unk_09 = 0;
- gUnknown_203F3C8->unk_0170 = &gUnknown_8467FB8[gUnknown_203F3C8->unk_0000.unk_08_2];
- return TRUE;
-}
-
-void DestroyWonderCardResources(void)
-{
- if (gUnknown_203F3C8 != NULL)
- {
- *gUnknown_203F3C8 = (struct UnkStruct_203F3C8){};
- Free(gUnknown_203F3C8);
- gUnknown_203F3C8 = NULL;
- }
-}
-
-s32 FadeToWonderCardMenu(void)
-{
- if (gUnknown_203F3C8 == NULL)
- return -1;
- switch(gUnknown_203F3C8->unk_0174)
- {
- case 0:
- BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0);
- break;
- case 1:
- if (UpdatePaletteFade())
- return 0;
- break;
- case 2:
- FillBgTilemapBufferRect_Palette0(0, 0x000, 0, 0, 30, 20);
- FillBgTilemapBufferRect_Palette0(1, 0x000, 0, 0, 30, 20);
- FillBgTilemapBufferRect_Palette0(2, 0x000, 0, 0, 30, 20);
- CopyBgTilemapBufferToVram(0);
- CopyBgTilemapBufferToVram(1);
- CopyBgTilemapBufferToVram(2);
- DecompressAndCopyTileDataToVram(2, gUnknown_203F3C8->unk_0170->tiles, 0, 0x008, 0);
- gUnknown_203F3C8->unk_0176[0] = AddWindow(&gUnknown_8467074[0]);
- gUnknown_203F3C8->unk_0176[1] = AddWindow(&gUnknown_8467074[1]);
- gUnknown_203F3C8->unk_0176[2] = AddWindow(&gUnknown_8467074[2]);
- break;
- case 3:
- if (FreeTempTileDataBuffersIfPossible())
- return 0;
- gPaletteFade.bufferTransferDisabled = TRUE;
- LoadPalette(gUnknown_203F3C8->unk_0170->pal, 0x10, 0x20);
- LZ77UnCompWram(gUnknown_203F3C8->unk_0170->map, gUnknown_203F3C8->buffer_045C);
- CopyRectToBgTilemapBufferRect(2, gUnknown_203F3C8->buffer_045C, 0, 0, 30, 20, 0, 0, 30, 20, 1, 0x008, 0);
- CopyBgTilemapBufferToVram(2);
- break;
- case 4:
- sub_8145A98();
- break;
- case 5:
- sub_8145D18(0);
- sub_8145D18(1);
- sub_8145D18(2);
- CopyBgTilemapBufferToVram(1);
- break;
- case 6:
- LoadMonIconPalettes();
- break;
- case 7:
- ShowBg(1);
- ShowBg(2);
- gPaletteFade.bufferTransferDisabled = FALSE;
- sub_8146060();
- BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0);
- UpdatePaletteFade();
- break;
- default:
- if (UpdatePaletteFade())
- return 0;
- gUnknown_203F3C8->unk_0174 = 0;
- return 1;
- }
- ++gUnknown_203F3C8->unk_0174;
- return 0;
-}
-
-s32 FadeOutFromWonderCard(bool32 flag)
-{
- if (gUnknown_203F3C8 == NULL)
- return -1;
- switch (gUnknown_203F3C8->unk_0174)
- {
- case 0:
- BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0);
- break;
- case 1:
- if (UpdatePaletteFade())
- return 0;
- break;
- case 2:
- FillBgTilemapBufferRect_Palette0(0, 0x000, 0, 0, 30, 20);
- FillBgTilemapBufferRect_Palette0(1, 0x000, 0, 0, 30, 20);
- FillBgTilemapBufferRect_Palette0(2, 0x000, 0, 0, 30, 20);
- CopyBgTilemapBufferToVram(0);
- CopyBgTilemapBufferToVram(1);
- CopyBgTilemapBufferToVram(2);
- break;
- case 3:
- HideBg(1);
- HideBg(2);
- RemoveWindow(gUnknown_203F3C8->unk_0176[2]);
- RemoveWindow(gUnknown_203F3C8->unk_0176[1]);
- RemoveWindow(gUnknown_203F3C8->unk_0176[0]);
- break;
- case 4:
- sub_81461D8();
- FreeMonIconPalettes();
- break;
- case 5:
- PrintMysteryGiftOrEReaderTopMenu(gGiftIsFromEReader, flag);
- break;
- case 6:
- CopyBgTilemapBufferToVram(0);
- BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0);
- break;
- default:
- if (UpdatePaletteFade())
- return 0;
- gUnknown_203F3C8->unk_0174 = 0;
- return 1;
- }
- ++gUnknown_203F3C8->unk_0174;
- return 0;
-}
-
-void sub_8145A98(void)
-{
- u16 i = 0;
- u16 r6;
- u16 sp0[3] = {0, 0, 0};
-
- memcpy(gUnknown_203F3C8->unk_018B, gUnknown_203F3C8->unk_0000.unk_0A, 40);
- gUnknown_203F3C8->unk_018B[40] = EOS;
- memcpy(gUnknown_203F3C8->unk_01B4, gUnknown_203F3C8->unk_0000.unk_32, 40);
- gUnknown_203F3C8->unk_01B4[40] = EOS;
- if (gUnknown_203F3C8->unk_0000.unk_04 > 999999)
- gUnknown_203F3C8->unk_0000.unk_04 = 999999;
- ConvertIntToDecimalStringN(gUnknown_203F3C8->unk_01DD, gUnknown_203F3C8->unk_0000.unk_04, STR_CONV_MODE_LEFT_ALIGN, 6);
- for (i = 0; i < 4; i++)
- {
- memcpy(gUnknown_203F3C8->unk_01E4[i], gUnknown_203F3C8->unk_0000.unk_5A[i], 40);
- gUnknown_203F3C8->unk_01E4[i][40] = EOS;
- }
- memcpy(gUnknown_203F3C8->unk_0288, gUnknown_203F3C8->unk_0000.unk_FA, 40);
- gUnknown_203F3C8->unk_0288[40] = EOS;
- switch (gUnknown_203F3C8->unk_0000.unk_08_0)
- {
- case 0:
- memcpy(gUnknown_203F3C8->unk_02B1, gUnknown_203F3C8->unk_0000.unk_122, 40);
- gUnknown_203F3C8->unk_02B1[40] = EOS;
- break;
- case 1:
- gUnknown_203F3C8->unk_02B1[00] = EOS;
- break;
- case 2:
- gUnknown_203F3C8->unk_02B1[00] = EOS;
- sp0[0] = gUnknown_203F3C8->unk_014C.unk_00 < 999 ? gUnknown_203F3C8->unk_014C.unk_00 : 999;
- sp0[1] = gUnknown_203F3C8->unk_014C.unk_02 < 999 ? gUnknown_203F3C8->unk_014C.unk_02 : 999;
- sp0[2] = gUnknown_203F3C8->unk_014C.unk_04 < 999 ? gUnknown_203F3C8->unk_014C.unk_04 : 999;
- for (i = 0; i < 8; i++)
- {
- memset(gUnknown_203F3C8->unk_02DC[i].unk_42, EOS, 4);
- memset(gUnknown_203F3C8->unk_02DC[i].unk_01, EOS, 41);
- }
- for (i = 0, r6 = 0; i < 40; i++)
- {
- if (gUnknown_203F3C8->unk_0000.unk_122[i] != 0xF7)
- {
- gUnknown_203F3C8->unk_02DC[gUnknown_203F3C8->unk_0175].unk_01[r6] = gUnknown_203F3C8->unk_0000.unk_122[i];
- r6++;
- }
- else
- {
- u8 r3 = gUnknown_203F3C8->unk_0000.unk_122[i + 1];
- if (r3 > 2)
- {
- i += 2;
- }
- else
- {
- ConvertIntToDecimalStringN(gUnknown_203F3C8->unk_02DC[gUnknown_203F3C8->unk_0175].unk_42, sp0[r3], STR_CONV_MODE_LEADING_ZEROS, 3);
- gUnknown_203F3C8->unk_02DC[gUnknown_203F3C8->unk_0175].unk_00 = gUnknown_203F3C8->unk_0000.unk_122[i + 2];
- gUnknown_203F3C8->unk_0175++;
- if (gUnknown_203F3C8->unk_0175 > 7)
- break;
- r6 = 0;
- i += 2;
- }
- }
- }
- }
-}
-
-void sub_8145D18(u8 whichWindow)
-{
- s8 sp0C = 0;
- s32 windowId = gUnknown_203F3C8->unk_0176[whichWindow];
- PutWindowTilemap(windowId);
- FillWindowPixelBuffer(windowId, 0);
- switch (whichWindow)
- {
- case 0:
- {
- s32 x;
- AddTextPrinterParameterized3(windowId, 3, 0, 1, gUnknown_8467068[gUnknown_203F3C8->unk_0170->textPal1], 0, gUnknown_203F3C8->unk_018B);
- x = 160 - GetStringWidth(3, gUnknown_203F3C8->unk_01B4, GetFontAttribute(3, 2));
- if (x < 0)
- x = 0;
- AddTextPrinterParameterized3(windowId, 3, x, 17, gUnknown_8467068[gUnknown_203F3C8->unk_0170->textPal1], 0, gUnknown_203F3C8->unk_01B4);
- if (gUnknown_203F3C8->unk_0000.unk_04 != 0)
- {
- AddTextPrinterParameterized3(windowId, 2, 166, 17, gUnknown_8467068[gUnknown_203F3C8->unk_0170->textPal1], 0, gUnknown_203F3C8->unk_01DD);
- }
- break;
- }
- case 1:
- for (; sp0C < 4; sp0C++)
- {
- AddTextPrinterParameterized3(windowId, 3, 0, 16 * sp0C + 2, gUnknown_8467068[gUnknown_203F3C8->unk_0170->textPal2], 0, gUnknown_203F3C8->unk_01E4[sp0C]);
- }
- break;
- case 2:
- AddTextPrinterParameterized3(windowId, 3, 0, gUnknown_8467070[gUnknown_203F3C8->unk_0000.unk_08_0], gUnknown_8467068[gUnknown_203F3C8->unk_0170->textPal3], 0, gUnknown_203F3C8->unk_0288);
- if (gUnknown_203F3C8->unk_0000.unk_08_0 != 2)
- {
- AddTextPrinterParameterized3(windowId, 3, 0, 16 + gUnknown_8467070[gUnknown_203F3C8->unk_0000.unk_08_0], gUnknown_8467068[gUnknown_203F3C8->unk_0170->textPal3], 0, gUnknown_203F3C8->unk_02B1);
- }
- else
- {
- s32 x = 0;
- s32 y = gUnknown_8467070[gUnknown_203F3C8->unk_0000.unk_08_0] + 16;
- s32 spacing = GetFontAttribute(3, 2);
- for (; sp0C < gUnknown_203F3C8->unk_0175; sp0C++)
- {
- AddTextPrinterParameterized3(windowId, 3, x, y, gUnknown_8467068[gUnknown_203F3C8->unk_0170->textPal3], 0, gUnknown_203F3C8->unk_02DC[sp0C].unk_01);
- if (gUnknown_203F3C8->unk_02DC[sp0C].unk_42[0] != EOS)
- {
- x += GetStringWidth(3, gUnknown_203F3C8->unk_02DC[sp0C].unk_01, spacing);
- AddTextPrinterParameterized3(windowId, 2, x, y, gUnknown_8467068[gUnknown_203F3C8->unk_0170->textPal3], 0, gUnknown_203F3C8->unk_02DC[sp0C].unk_42);
- x += GetStringWidth(3, gUnknown_203F3C8->unk_02DC[sp0C].unk_42, spacing) + gUnknown_203F3C8->unk_02DC[sp0C].unk_00;
- }
- }
- }
- break;
- }
- CopyWindowToVram(windowId, 3);
-}
-
-void sub_8146060(void)
-{
- u8 r7 = 0;
- gUnknown_203F3C8->unk_017C = 0xFF;
- if (gUnknown_203F3C8->unk_014C.unk_06 != SPECIES_NONE)
- {
- gUnknown_203F3C8->unk_017C = CreateMonIcon_HandleDeoxys(MailSpeciesToIconSpecies(gUnknown_203F3C8->unk_014C.unk_06), SpriteCallbackDummy, 0xDC, 0x14, 0, FALSE);
- gSprites[gUnknown_203F3C8->unk_017C].oam.priority = 2;
- }
- if (gUnknown_203F3C8->unk_0000.unk_09 != 0 && gUnknown_203F3C8->unk_0000.unk_08_0 == 1)
- {
- LoadCompressedSpriteSheetUsingHeap(&gUnknown_8467F58);
- LoadSpritePalette(&gUnknown_8467F60[gUnknown_203F3C8->unk_0170->textPal4]);
- for (; r7 < gUnknown_203F3C8->unk_0000.unk_09; r7++)
- {
- gUnknown_203F3C8->unk_017D[r7][0] = 0xFF;
- gUnknown_203F3C8->unk_017D[r7][1] = 0xFF;
- gUnknown_203F3C8->unk_017D[r7][0] = CreateSprite(&gUnknown_8467FA0, 0xd8 - 32 * r7, 0x90, 8);
- if (gUnknown_203F3C8->unk_014C.unk_08[0][r7] != 0)
- {
- gUnknown_203F3C8->unk_017D[r7][1] = CreateMonIcon_HandleDeoxys(MailSpeciesToIconSpecies(gUnknown_203F3C8->unk_014C.unk_08[0][r7]), SpriteCallbackDummy, 0xd8 - 32 * r7, 0x88, 0, 0);
- gSprites[gUnknown_203F3C8->unk_017D[r7][1]].oam.priority = 2;
- }
- }
- }
-}
-
-void sub_81461D8(void)
-{
- u8 r6 = 0;
- if (gUnknown_203F3C8->unk_017C != 0xFF)
- DestroyMonIcon(&gSprites[gUnknown_203F3C8->unk_017C]);
- if (gUnknown_203F3C8->unk_0000.unk_09 != 0 && gUnknown_203F3C8->unk_0000.unk_08_0 == 1)
- {
- for (; r6 < gUnknown_203F3C8->unk_0000.unk_09; r6++)
- {
- if (gUnknown_203F3C8->unk_017D[r6][0] != 0xFF)
- {
- DestroySprite(&gSprites[gUnknown_203F3C8->unk_017D[r6][0]]);
- // This might be a typo. Uncomment the next line, and comment the one that follows, to get the presumed intended behavior.
- // if (gUnknown_203F3C8->unk_017D[r6][1] != 0xFF)
- if (gUnknown_203F3C8->unk_017D[r6][0] != 0xFF)
- {
- DestroyMonIcon(&gSprites[gUnknown_203F3C8->unk_017D[r6][1]]);
- }
- }
- }
- FreeSpriteTilesByTag(0x8000);
- FreeSpritePaletteByTag(0x8000);
- }
-}
-
-struct UnkStruct_203F3CC
-{
- /*0000*/ struct MEWonderNewsData unk_0000;
- /*01bc*/ const struct UnkStruct_8467FB8 * unk_01BC;
- /*01c0*/ u8 unk_01C0_0:1;
- u8 unk_01C0_1:7;
- /*01c1*/ u8 unk_01C1;
- /*01c2*/ u8 unk_01C2_0:1;
- u8 unk_01C2_1:7;
- /*01c3*/ u8 unk_01C3_0:1;
- u8 unk_01C3_1:7;
- /*01c4*/ u16 unk_01C4;
- /*01c6*/ u16 unk_01C6;
- /*01c8*/ u16 unk_01C8[2];
- /*01cc*/ u8 filler_01CC[2];
- /*01ce*/ u8 unk_01CE[41];
- /*01f7*/ u8 unk_01F7[10][41];
- /*0394*/ struct ScrollArrowsTemplate unk_0394;
- /*03a4*/ u8 buffer_03A4[0x1000];
-};
-
-EWRAM_DATA struct UnkStruct_203F3CC * gUnknown_203F3CC = NULL;
-
-void sub_8146980(void);
-void sub_8146A30(void);
-void sub_8146B58(void);
-
-const u8 gUnknown_8468038[][3] = {
- {0, 2, 3},
- {0, 1, 2}
-};
-const struct WindowTemplate gUnknown_8468040[] = {
- {0, 1, 0, 28, 3, 15, 0x000},
- {2, 1, 3, 28, 20, 15, 0x000}
-};
-const struct ScrollArrowsTemplate gUnknown_8468050 = {
- 0x02, 0xe8, 0x18, 0x03, 0xe8, 0x98,
- 0x0000, 0x0002, 0x1000, 0x1000, 0x0,
-};
-
-const u16 gUnknown_8468060[] = INCBIN_U16("data/graphics/mevent/pal_468060.gbapal");
-const u16 gUnknown_8468080[] = INCBIN_U16("data/graphics/mevent/pal_468080.gbapal");
-const u16 gUnknown_84680A0[] = INCBIN_U16("data/graphics/mevent/pal_4680A0.gbapal");
-const u8 gUnknown_84680C0[] = INCBIN_U8("data/graphics/mevent/gfx_4680C0.4bpp.lz");
-const u8 gUnknown_8468140[] = INCBIN_U8("data/graphics/mevent/tilemap_468140.bin.lz");
-const u8 gUnknown_846821C[] = INCBIN_U8("data/graphics/mevent/gfx_46821C.4bpp.lz");
-const u8 gUnknown_846824C[] = INCBIN_U8("data/graphics/mevent/tilemap_46824C.bin.lz");
-const u8 gUnknown_846830C[] = INCBIN_U8("data/graphics/mevent/gfx_46830C.4bpp.lz");
-const u8 gUnknown_846837C[] = INCBIN_U8("data/graphics/mevent/tilemap_46837C.bin.lz");
-const u8 gUnknown_8468448[] = INCBIN_U8("data/graphics/mevent/gfx_468448.4bpp.lz");
-const u8 gUnknown_84684D8[] = INCBIN_U8("data/graphics/mevent/tilemap_4684D8.bin.lz");
-const u8 gUnknown_84685B4[] = INCBIN_U8("data/graphics/mevent/gfx_4685B4.4bpp.lz");
-const u8 gUnknown_8468644[] = INCBIN_U8("data/graphics/mevent/tilemap_468644.bin.lz");
-
-const struct UnkStruct_8467FB8 gUnknown_8468720[] = {
- {1, 0, 0, 0, gUnknown_84680C0, gUnknown_8468140, gUnknown_8468060},
- {1, 0, 0, 0, gUnknown_846821C, gUnknown_846824C, gUnknown_84670AC},
- {1, 0, 0, 0, gUnknown_846830C, gUnknown_846837C, gUnknown_84670CC},
- {1, 0, 0, 0, gUnknown_846830C, gUnknown_846837C, gUnknown_84670EC},
- {1, 0, 0, 0, gUnknown_846830C, gUnknown_846837C, gUnknown_846710C},
- {1, 0, 0, 0, gUnknown_846830C, gUnknown_846837C, gUnknown_846712C},
- {1, 0, 0, 0, gUnknown_8468448, gUnknown_84684D8, gUnknown_8468080},
- {1, 0, 0, 0, gUnknown_84685B4, gUnknown_8468644, gUnknown_84680A0}
-};
-
-bool32 InitWonderNewsResources(const struct MEWonderNewsData * a0)
-{
- if (a0 == NULL)
- return FALSE;
- gUnknown_203F3CC = AllocZeroed(sizeof(struct UnkStruct_203F3CC));
- if (gUnknown_203F3CC == NULL)
- return FALSE;
- gUnknown_203F3CC->unk_0000 = *a0;
- if (gUnknown_203F3CC->unk_0000.unk_03 >= NELEMS(gUnknown_8468720))
- gUnknown_203F3CC->unk_0000.unk_03 = 0;
- gUnknown_203F3CC->unk_01BC = &gUnknown_8468720[gUnknown_203F3CC->unk_0000.unk_03];
- gUnknown_203F3CC->unk_01C1 = 0xFF;
- return TRUE;
-}
-
-void DestroyWonderNewsResources(void)
-{
- if (gUnknown_203F3CC != NULL)
- {
- *gUnknown_203F3CC = (struct UnkStruct_203F3CC){};
- Free(gUnknown_203F3CC);
- gUnknown_203F3CC = NULL;
- }
-}
-
-s32 FadeToWonderNewsMenu(void)
-{
- if (gUnknown_203F3CC == NULL)
- return -1;
-
- switch (gUnknown_203F3CC->unk_01C0_1)
- {
- case 0:
- BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0);
- break;
- case 1:
- if (UpdatePaletteFade())
- return 0;
- ChangeBgY(0, 0, 0);
- ChangeBgY(1, 0, 0);
- ChangeBgY(2, 0, 0);
- ChangeBgY(3, 0, 0);
- SetGpuReg(REG_OFFSET_WIN0H, 0xF0);
- SetGpuReg(REG_OFFSET_WIN0V, 0x1A98);
- SetGpuReg(REG_OFFSET_WININ, 0x1F);
- SetGpuReg(REG_OFFSET_WINOUT, 0x1B);
- SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON);
- break;
- case 2:
- FillBgTilemapBufferRect_Palette0(0, 0x000, 0, 0, 30, 20);
- FillBgTilemapBufferRect_Palette0(1, 0x000, 0, 0, 30, 20);
- FillBgTilemapBufferRect_Palette0(2, 0x000, 0, 0, 30, 20);
- FillBgTilemapBufferRect_Palette0(3, 0x000, 0, 0, 30, 20);
- CopyBgTilemapBufferToVram(0);
- CopyBgTilemapBufferToVram(1);
- CopyBgTilemapBufferToVram(2);
- CopyBgTilemapBufferToVram(3);
- DecompressAndCopyTileDataToVram(3, gUnknown_203F3CC->unk_01BC->tiles, 0, 8, 0);
- gUnknown_203F3CC->unk_01C8[0] = AddWindow(&gUnknown_8468040[0]);
- gUnknown_203F3CC->unk_01C8[1] = AddWindow(&gUnknown_8468040[1]);
- break;
- case 3:
- if (FreeTempTileDataBuffersIfPossible())
- return 0;
- gPaletteFade.bufferTransferDisabled = TRUE;
- LoadPalette(gUnknown_203F3CC->unk_01BC->pal, 0x10, 0x20);
- LZ77UnCompWram(gUnknown_203F3CC->unk_01BC->map, gUnknown_203F3CC->buffer_03A4);
- CopyRectToBgTilemapBufferRect(1, gUnknown_203F3CC->buffer_03A4, 0, 0, 30, 3, 0, 0, 30, 3, 1, 8, 0);
- CopyRectToBgTilemapBufferRect(3, gUnknown_203F3CC->buffer_03A4, 0, 3, 30, 23, 0, 3, 30, 23, 1, 8, 0);
- CopyBgTilemapBufferToVram(1);
- CopyBgTilemapBufferToVram(3);
- break;
- case 4:
- sub_8146980();
- break;
- case 5:
- sub_8146A30();
- CopyBgTilemapBufferToVram(0);
- CopyBgTilemapBufferToVram(2);
- break;
- case 6:
- ShowBg(1);
- ShowBg(2);
- ShowBg(3);
- gPaletteFade.bufferTransferDisabled = FALSE;
- gUnknown_203F3CC->unk_01C1 = AddScrollIndicatorArrowPair(&gUnknown_203F3CC->unk_0394, &gUnknown_203F3CC->unk_01C6);
- BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0);
- UpdatePaletteFade();
- break;
- default:
- if (UpdatePaletteFade())
- return 0;
- gUnknown_203F3CC->unk_01C0_1 = 0;
- return 1;
- }
-
- ++gUnknown_203F3CC->unk_01C0_1;
- return 0;
-}
-
-s32 FadeOutFromWonderNews(bool32 flag)
-{
- if (gUnknown_203F3CC == NULL)
- return -1;
- switch (gUnknown_203F3CC->unk_01C0_1)
- {
- case 0:
- BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0);
- break;
- case 1:
- if (UpdatePaletteFade())
- return 0;
- ChangeBgY(2, 0, 0);
- SetGpuReg(REG_OFFSET_WIN0H, 0);
- SetGpuReg(REG_OFFSET_WIN0V, 0);
- SetGpuReg(REG_OFFSET_WININ, 0);
- SetGpuReg(REG_OFFSET_WINOUT, 0);
- ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON);
- break;
- case 2:
- FillBgTilemapBufferRect_Palette0(0, 0x000, 0, 0, 30, 20);
- FillBgTilemapBufferRect_Palette0(1, 0x000, 0, 0, 30, 20);
- FillBgTilemapBufferRect_Palette0(2, 0x000, 0, 0, 30, 24);
- FillBgTilemapBufferRect_Palette0(3, 0x000, 0, 0, 30, 24);
- CopyBgTilemapBufferToVram(0);
- CopyBgTilemapBufferToVram(1);
- CopyBgTilemapBufferToVram(2);
- CopyBgTilemapBufferToVram(3);
- break;
- case 3:
- HideBg(1);
- HideBg(2);
- RemoveWindow(gUnknown_203F3CC->unk_01C8[1]);
- RemoveWindow(gUnknown_203F3CC->unk_01C8[0]);
- break;
- case 4:
- ChangeBgY(2, 0, 0);
- ChangeBgY(3, 0, 0);
- if (gUnknown_203F3CC->unk_01C1 != 0xFF)
- {
- RemoveScrollIndicatorArrowPair(gUnknown_203F3CC->unk_01C1);
- gUnknown_203F3CC->unk_01C1 = 0xFF;
- }
- break;
- case 5:
- PrintMysteryGiftOrEReaderTopMenu(gGiftIsFromEReader, flag);
- break;
- case 6:
- MG_DrawCheckerboardPattern();
- CopyBgTilemapBufferToVram(0);
- CopyBgTilemapBufferToVram(3);
- BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0);
- break;
- default:
- if (UpdatePaletteFade())
- return 0;
- gUnknown_203F3CC->unk_01C0_1 = 0;
- return 1;
- }
- ++gUnknown_203F3CC->unk_01C0_1;
- return 0;
-}
-
-void MENews_RemoveScrollIndicatorArrowPair(void)
-{
- if (!gUnknown_203F3CC->unk_01C0_0 && gUnknown_203F3CC->unk_01C1 != 0xFF)
- {
- RemoveScrollIndicatorArrowPair(gUnknown_203F3CC->unk_01C1);
- gUnknown_203F3CC->unk_01C1 = 0xFF;
- gUnknown_203F3CC->unk_01C0_0 = TRUE;
- }
-}
-
-
-void MENews_AddScrollIndicatorArrowPair(void)
-{
- if (gUnknown_203F3CC->unk_01C0_0)
- {
- gUnknown_203F3CC->unk_01C1 = AddScrollIndicatorArrowPair(&gUnknown_203F3CC->unk_0394, &gUnknown_203F3CC->unk_01C6);
- gUnknown_203F3CC->unk_01C0_0 = FALSE;
- }
-}
-
-u32 MENews_GetInput(u16 input)
-{
- if (gUnknown_203F3CC->unk_01C2_0)
- {
- sub_8146B58();
- return 0xFF;
- }
- switch (input)
- {
- case A_BUTTON:
- return 0;
- case B_BUTTON:
- return 1;
- case DPAD_UP:
- if (gUnknown_203F3CC->unk_01C6 == 0)
- return 0xFF;
- if (gUnknown_203F3CC->unk_01C0_0)
- return 0xFF;
- gUnknown_203F3CC->unk_01C3_0 = FALSE;
- break;
- case DPAD_DOWN:
- if (gUnknown_203F3CC->unk_01C6 == gUnknown_203F3CC->unk_01C4)
- return 0xFF;
- if (gUnknown_203F3CC->unk_01C0_0)
- return 0xFF;
- gUnknown_203F3CC->unk_01C3_0 = TRUE;
- break;
- default:
- return 0xFF;
- }
- gUnknown_203F3CC->unk_01C2_0 = TRUE;
- gUnknown_203F3CC->unk_01C2_1 = 2;
- gUnknown_203F3CC->unk_01C3_1 = 0;
- if (gUnknown_203F3CC->unk_01C3_0 == FALSE)
- return 2;
- else
- return 3;
-}
-
-void sub_8146980(void)
-{
- u8 i = 0;
- memcpy(gUnknown_203F3CC->unk_01CE, gUnknown_203F3CC->unk_0000.unk_04, 40);
- gUnknown_203F3CC->unk_01CE[40] = EOS;
- for (; i < 10; ++i)
- {
- memcpy(gUnknown_203F3CC->unk_01F7[i], gUnknown_203F3CC->unk_0000.unk_2C[i], 40);
- gUnknown_203F3CC->unk_01F7[i][40] = EOS;
- if (i > 7 && gUnknown_203F3CC->unk_01F7[i][0] != EOS)
- ++gUnknown_203F3CC->unk_01C4;
- }
- gUnknown_203F3CC->unk_0394 = gUnknown_8468050;
- gUnknown_203F3CC->unk_0394.fullyDownThreshold = gUnknown_203F3CC->unk_01C4;
-}
-
-void sub_8146A30(void)
-{
- u8 i = 0;
- s32 x;
- PutWindowTilemap(gUnknown_203F3CC->unk_01C8[0]);
- PutWindowTilemap(gUnknown_203F3CC->unk_01C8[1]);
- FillWindowPixelBuffer(gUnknown_203F3CC->unk_01C8[0], 0);
- FillWindowPixelBuffer(gUnknown_203F3CC->unk_01C8[1], 0);
- x = (0xe0 - GetStringWidth(3, gUnknown_203F3CC->unk_01CE, GetFontAttribute(3, 2))) / 2;
- if (x < 0)
- x = 0;
- AddTextPrinterParameterized3(gUnknown_203F3CC->unk_01C8[0], 3, x, 6, gUnknown_8468038[gUnknown_203F3CC->unk_01BC->textPal1], 0, gUnknown_203F3CC->unk_01CE);
- for (; i < 10; ++i)
- {
- AddTextPrinterParameterized3(gUnknown_203F3CC->unk_01C8[1], 3, 0, 16 * i + 2, gUnknown_8468038[gUnknown_203F3CC->unk_01BC->textPal2], 0, gUnknown_203F3CC->unk_01F7[i]);
- }
- CopyWindowToVram(gUnknown_203F3CC->unk_01C8[0], 3);
- CopyWindowToVram(gUnknown_203F3CC->unk_01C8[1], 3);
-}
-
-void sub_8146B58(void)
-{
- u16 r4 = gUnknown_203F3CC->unk_01C2_1;
- r4 <<= 8;
- if (gUnknown_203F3CC->unk_01C3_0)
- {
- ChangeBgY(2, r4, 1);
- ChangeBgY(3, r4, 1);
- }
- else
- {
- ChangeBgY(2, r4, 2);
- ChangeBgY(3, r4, 2);
- }
- gUnknown_203F3CC->unk_01C3_1 += gUnknown_203F3CC->unk_01C2_1;
- if (gUnknown_203F3CC->unk_01C3_1 > 15)
- {
- if (gUnknown_203F3CC->unk_01C3_0)
- ++gUnknown_203F3CC->unk_01C6;
- else
- --gUnknown_203F3CC->unk_01C6;
- gUnknown_203F3CC->unk_01C2_0 = FALSE;
- gUnknown_203F3CC->unk_01C3_1 = 0;
- }
-}