diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/daycare.c | 28 | ||||
-rw-r--r-- | src/trade.c | 25 | ||||
-rw-r--r-- | src/union_room_chat.c | 15 | ||||
-rw-r--r-- | src/union_room_chat_display.c | 572 |
4 files changed, 579 insertions, 61 deletions
diff --git a/src/daycare.c b/src/daycare.c index 856a5fbc0..ef9da89fe 100644 --- a/src/daycare.c +++ b/src/daycare.c @@ -1,44 +1,34 @@ #include "global.h" -#include "pokemon.h" +#include "gflib.h" #include "battle.h" #include "daycare.h" -#include "string_util.h" #include "constants/species.h" #include "constants/items.h" #include "mail_data.h" #include "pokemon_storage_system.h" #include "event_data.h" #include "random.h" -#include "main.h" #include "constants/moves.h" -#include "text.h" #include "menu.h" #include "new_menu_helpers.h" #include "script.h" #include "strings.h" -#include "task.h" -#include "window.h" #include "party_menu.h" #include "list_menu.h" #include "overworld.h" #include "pokedex.h" #include "decompress.h" -#include "palette.h" -#include "sound.h" #include "constants/songs.h" #include "text_window.h" #include "trig.h" -#include "malloc.h" -#include "gpu_regs.h" -#include "bg.h" #include "m4a.h" #include "graphics.h" #include "scanline_effect.h" #include "naming_screen.h" #include "help_system.h" #include "field_fadetransition.h" +#include "trade.h" #include "constants/daycare.h" -#include "constants/pokemon.h" #include "constants/region_map.h" // Combination of RSE's Day-Care (re-used on Four Island), FRLG's Day-Care, and egg_hatch.c @@ -60,20 +50,6 @@ struct EggHatchData u8 textColor[3]; }; -extern const u8 gText_MaleSymbol4[]; -extern const u8 gText_FemaleSymbol4[]; -extern const u8 gText_GenderlessSymbol[]; -extern const u8 gText_Lv[]; -extern const u8 gDaycareText_GetAlongVeryWell[]; -extern const u8 gDaycareText_GetAlong[]; -extern const u8 gDaycareText_DontLikeOther[]; -extern const u8 gDaycareText_PlayOther[]; -extern const u8 gExpandedPlaceholder_Empty[]; - -extern const u32 gUnknown_826601C[]; // tilemap gameboy circle -extern const u8 gText_HatchedFromEgg[]; -extern const u8 gText_NickHatchPrompt[]; - // this file's functions static void ClearDaycareMonMail(struct DayCareMail *mail); static void SetInitialEggData(struct Pokemon *mon, u16 species, struct DayCare *daycare); diff --git a/src/trade.c b/src/trade.c index 05a259e60..fe5f53be9 100644 --- a/src/trade.c +++ b/src/trade.c @@ -1,41 +1,22 @@ #include "global.h" -#include "palette.h" +#include "gflib.h" #include "task.h" #include "decompress.h" -#include "gpu_regs.h" -#include "malloc.h" -#include "bg.h" -#include "text.h" -#include "window.h" -#include "librfu.h" #include "text_window.h" -#include "evolution_scene.h" #include "pokemon_icon.h" -#include "pokedex.h" -#include "mail_data.h" #include "graphics.h" #include "link.h" -#include "random.h" -#include "save.h" #include "load_save.h" -#include "quest_log.h" -#include "field_fadetransition.h" -#include "mevent.h" -#include "help_system.h" #include "link_rfu.h" #include "cable_club.h" #include "data.h" -#include "sound.h" -#include "string_util.h" #include "strings.h" #include "menu.h" #include "overworld.h" #include "battle_anim.h" #include "pokeball.h" #include "party_menu.h" -#include "util.h" #include "daycare.h" -#include "script.h" #include "event_data.h" #include "battle_interface.h" #include "pokemon_summary_screen.h" @@ -43,11 +24,7 @@ #include "new_menu_helpers.h" #include "trade.h" #include "trade_scene.h" -#include "constants/species.h" -#include "constants/items.h" -#include "constants/easy_chat.h" #include "constants/songs.h" -#include "constants/region_map.h" #include "constants/moves.h" struct TradeMenuResources diff --git a/src/union_room_chat.c b/src/union_room_chat.c index 936803f80..f8243f742 100644 --- a/src/union_room_chat.c +++ b/src/union_room_chat.c @@ -13,18 +13,11 @@ #include "scanline_effect.h" #include "strings.h" #include "task.h" +#include "union_room_chat.h" #include "union_room_chat_display.h" #include "data_8479668.h" #include "constants/songs.h" -enum -{ - UNION_ROOM_KB_PAGE_UPPER, - UNION_ROOM_KB_PAGE_LOWER, - UNION_ROOM_KB_PAGE_EMOJI, - UNION_ROOM_KB_PAGE_COUNT -}; - struct UnionRoomChat { u8 filler0[0x4]; @@ -147,7 +140,7 @@ const u8 gUnknown_845A8AC[] = { CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE, CHAR_SPACE }; -const u8 *const sUnionRoomKeyboardText[UNION_ROOM_KB_PAGE_COUNT][UNION_ROOM_KB_ROW_COUNT] = { +const u8 *const gUnionRoomKeyboardText[UNION_ROOM_KB_PAGE_COUNT][UNION_ROOM_KB_ROW_COUNT] = { [UNION_ROOM_KB_PAGE_UPPER] = { gText_UnionRoomChatKeyboard_ABCDE, gText_UnionRoomChatKeyboard_FGHIJ, @@ -951,7 +944,7 @@ void sub_81292D8(void) if (gUnknown_203B0E0->currentPage != UNION_ROOM_KB_PAGE_COUNT) { - charsStr = sUnionRoomKeyboardText[gUnknown_203B0E0->currentPage][gUnknown_203B0E0->currentRow]; + charsStr = gUnionRoomKeyboardText[gUnknown_203B0E0->currentPage][gUnknown_203B0E0->currentRow]; for (i = 0; i < gUnknown_203B0E0->unk11; i++) { if (*charsStr == CHAR_EXTRA_EMOJI) @@ -1265,7 +1258,7 @@ u8 *sub_81297C4(void) return gUnknown_203B0E0->unk39; } -u8 sub_81297D0(void) +u16 sub_81297D0(void) { return gUnknown_203B0E0->unk16; } diff --git a/src/union_room_chat_display.c b/src/union_room_chat_display.c index 993481d3d..0e1e7c3b6 100644 --- a/src/union_room_chat_display.c +++ b/src/union_room_chat_display.c @@ -1,7 +1,12 @@ #include "global.h" #include "gflib.h" +#include "dynamic_placeholder_text_util.h" +#include "graphics.h" +#include "menu.h" #include "new_menu_helpers.h" #include "scanline_effect.h" +#include "strings.h" +#include "text_window.h" #include "union_room_chat.h" #include "union_room_chat_display.h" #include "union_room_chat_objects.h" @@ -36,6 +41,18 @@ struct Unk845AABC bool32 (*unk4)(u8 *); }; +struct Unk845AB64 +{ + const u8 *unk0; + u8 unk4; + u8 unk5; + u8 unk6; + u8 unk7; + u8 unk8; + u8 unk9; + u8 unkA; +}; + EWRAM_DATA struct UnionRoomChat2 * gUnknown_203B0E4 = NULL; void sub_8129BB8(struct UnionRoomChat2 * ptr); @@ -87,6 +104,8 @@ void sub_812ACEC(void); void sub_812AD04(void); void sub_812AD20(void); void sub_812AD50(void); +void sub_812ADA0(s16 a0); +void sub_812ADF8(s16 a0); const u16 gUnknown_845AA24[] = INCBIN_U16("graphics/union_room_chat/unk_845AA24.gbapal"); const u16 gUnknown_845AA44[] = INCBIN_U16("graphics/union_room_chat/unk_845AA44.gbapal"); @@ -188,6 +207,30 @@ const struct Unk845AABC gUnknown_845AABC[] = { {20, sub_812A3D0} }; +const struct Unk845AB64 gUnknown_845AB64[] = { + {gText_QuitChatting, 1, 0, 0, 1, 2, 0, 0}, + {gText_RegisterTextWhere, 1, 0, 0, 1, 2, 0, 0}, + {gText_RegisterTextHere, 1, 0, 0, 1, 2, 0, 0}, + {gText_InputText, 1, 0, 0, 1, 2, 0, 0}, + {gText_ExitingTheChat, 2, 0, 0, 1, 2, 0, 0}, + {gText_LeaderHasLeftEndingChat, 2, 0, 0, 0, 2, 1, 0}, + {gText_RegisteredTextChanged_OKtoSave, 2, 0, 0, 1, 2, 0, 1}, + {gText_RegisteredTextChanged_AlreadySavedFile, 2, 0, 0, 1, 2, 0, 1}, + {gText_RegisteredTextChanged_SavingDontTurnOff, 2, 0, 0, 1, 2, 0, 1}, + {gText_RegisteredTextChanged_SavedTheGame, 2, 0, 0, 1, 2, 1, 1}, + {gText_IfLeaderLeavesChatWillEnd, 2, 0, 0, 1, 2, 0, 1} +}; + +const u8 gText_Ellipsis[] = _("…"); + +const struct MenuAction gUnknown_845ABEC[] = { + {gText_Upper}, + {gText_Lower}, + {gText_Symbols}, + {gText_Register2}, + {gText_Exit} +}; + bool8 sub_8129B14(void) { gUnknown_203B0E4 = Alloc(sizeof(*gUnknown_203B0E4)); @@ -654,3 +697,532 @@ bool32 sub_812A1B8(u8 *state) return TRUE; } + +bool32 sub_812A1FC(u8 *state) +{ + switch (*state) + { + case 0: + sub_812A578(4, 0); + CopyWindowToVram(gUnknown_203B0E4->unk1E, 3); + (*state)++; + break; + case 1: + return IsDma3ManagerBusyWithBgCopy(); + } + + return TRUE; +} + +bool32 sub_812A240(u8 *state) +{ + u8 *str; + + switch (*state) + { + case 0: + DynamicPlaceholderTextUtil_Reset(); + str = sub_8129814(); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, str); + sub_812A578(5, 0); + CopyWindowToVram(gUnknown_203B0E4->unk1E, 3); + (*state)++; + break; + case 1: + return IsDma3ManagerBusyWithBgCopy(); + } + + return TRUE; +} + +bool32 sub_812A294(u8 *state) +{ + switch (*state) + { + case 0: + sub_812A578(6, 0); + sub_812A424(23, 10, 1); + CopyWindowToVram(gUnknown_203B0E4->unk1E, 3); + (*state)++; + break; + case 1: + return IsDma3ManagerBusyWithBgCopy(); + } + + return TRUE; +} + +bool32 sub_812A2E4(u8 *state) +{ + switch (*state) + { + case 0: + sub_812A578(7, 0); + sub_812A424(23, 10, 1); + CopyWindowToVram(gUnknown_203B0E4->unk1E, 3); + (*state)++; + break; + case 1: + return IsDma3ManagerBusyWithBgCopy(); + } + + return TRUE; +} + +bool32 sub_812A334(u8 *state) +{ + switch (*state) + { + case 0: + sub_812A578(8, 0); + CopyWindowToVram(gUnknown_203B0E4->unk1E, 3); + (*state)++; + break; + case 1: + return IsDma3ManagerBusyWithBgCopy(); + } + + return TRUE; +} + +bool32 sub_812A378(u8 *state) +{ + switch (*state) + { + case 0: + DynamicPlaceholderTextUtil_Reset(); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gSaveBlock2Ptr->playerName); + sub_812A578(9, 0); + CopyWindowToVram(gUnknown_203B0E4->unk1E, 3); + (*state)++; + break; + case 1: + return IsDma3ManagerBusyWithBgCopy(); + } + + return TRUE; +} + +bool32 sub_812A3D0(u8 *state) +{ + switch (*state) + { + case 0: + sub_812A578(10, 0); + sub_812A424(23, 10, 1); + CopyWindowToVram(gUnknown_203B0E4->unk1E, 3); + (*state)++; + break; + case 1: + return IsDma3ManagerBusyWithBgCopy(); + } + + return TRUE; +} + +bool32 sub_812A420(u8 *arg0) +{ + return FALSE; +} + +void sub_812A424(u8 left, u8 top, u8 initialCursorPos) +{ + struct WindowTemplate template; + template.bg = 0; + template.tilemapLeft = left; + template.tilemapTop = top; + template.width = 6; + template.height = 4; + template.paletteNum = 14; + template.baseBlock = 0x52; + gUnknown_203B0E4->unk18 = AddWindow(&template); + if (gUnknown_203B0E4->unk18 != 0xFF) + { + FillWindowPixelBuffer(gUnknown_203B0E4->unk18, PIXEL_FILL(1)); + PutWindowTilemap(gUnknown_203B0E4->unk18); + AddTextPrinterParameterized(gUnknown_203B0E4->unk18, 2, gText_Yes, 8, 2, TEXT_SPEED_FF, NULL); + AddTextPrinterParameterized(gUnknown_203B0E4->unk18, 2, gText_No, 8, 16, TEXT_SPEED_FF, NULL); + DrawTextBorderOuter(gUnknown_203B0E4->unk18, 1, 13); + Menu_InitCursor(gUnknown_203B0E4->unk18, 2, 0, 2, 14, 2, initialCursorPos); + } +} + +void sub_812A51C(void) +{ + if (gUnknown_203B0E4->unk18 != 0xFF) + { + ClearStdWindowAndFrameToTransparent(gUnknown_203B0E4->unk18, FALSE); + ClearWindowTilemap(gUnknown_203B0E4->unk18); + } +} + +void sub_812A544(void) +{ + if (gUnknown_203B0E4->unk18 != 0xFF) + { + RemoveWindow(gUnknown_203B0E4->unk18); + gUnknown_203B0E4->unk18 = 0xFF; + } +} + +s8 sub_812A568(void) +{ + return Menu_ProcessInput(); +} + +void sub_812A578(int arg0, u16 arg1) +{ + const u8 *str; + int windowId; + struct WindowTemplate template; + template.bg = 0; + template.tilemapLeft = 8; + template.tilemapTop = 16; + template.width = 21; + template.height = 4; + template.paletteNum = 14; + template.baseBlock = 0x06A; + if (gUnknown_845AB64[arg0].unkA) + { + template.tilemapLeft -= 7; + template.width += 7; + } + + gUnknown_203B0E4->unk1E = AddWindow(&template); + windowId = gUnknown_203B0E4->unk1E; + if (gUnknown_203B0E4->unk1E == 0xFF) + return; + + if (gUnknown_845AB64[arg0].unk9) + { + DynamicPlaceholderTextUtil_ExpandPlaceholders(gUnknown_203B0E4->unk22, gUnknown_845AB64[arg0].unk0); + str = gUnknown_203B0E4->unk22; + } + else + { + str = gUnknown_845AB64[arg0].unk0; + } + + ChangeBgY(0, arg1 * 256, 0); + FillWindowPixelBuffer(windowId, PIXEL_FILL(1)); + PutWindowTilemap(windowId); + if (gUnknown_845AB64[arg0].unk4 == 1) + { + DrawTextBorderInner(windowId, 0xA, 2); + AddTextPrinterParameterized5( + windowId, + 2, + str, + gUnknown_845AB64[arg0].unk5 + 8, + gUnknown_845AB64[arg0].unk6 + 8, + TEXT_SPEED_FF, + NULL, + gUnknown_845AB64[arg0].unk7, + gUnknown_845AB64[arg0].unk8); + } + else + { + DrawTextBorderOuter(windowId, 0xA, 2); + AddTextPrinterParameterized5( + windowId, + 2, + str, + gUnknown_845AB64[arg0].unk5, + gUnknown_845AB64[arg0].unk6, + TEXT_SPEED_FF, + NULL, + gUnknown_845AB64[arg0].unk7, + gUnknown_845AB64[arg0].unk8); + } + + gUnknown_203B0E4->unk1E = windowId; +} + +void sub_812A6F4(void) +{ + if (gUnknown_203B0E4->unk1E != 0xFF) + { + ClearStdWindowAndFrameToTransparent(gUnknown_203B0E4->unk1E, FALSE); + ClearWindowTilemap(gUnknown_203B0E4->unk1E); + } + + ChangeBgY(0, 0, 0); +} + +void sub_812A728(void) +{ + if (gUnknown_203B0E4->unk1E != 0xFF) + { + RemoveWindow(gUnknown_203B0E4->unk1E); + gUnknown_203B0E4->unk1E = 0xFF; + } +} + +void sub_812A74C(u16 x, u16 width, u8 fillValue) +{ + FillWindowPixelRect(1, fillValue, x * 8, 1, width * 8, 14); +} + +void sub_812A778(u16 x, u8 *str, u8 fillValue, u8 arg3, u8 arg4) +{ + u8 *str2; + u8 sp[38]; + if (fillValue) + sub_812A74C(x, sub_81297DC() - x, fillValue); + + sp[0] = fillValue; + sp[1] = arg3; + sp[2] = arg4; + str2 = &sp[4]; + str2[0] = EXT_CTRL_CODE_BEGIN; + str2[1] = EXT_CTRL_CODE_MIN_LETTER_SPACING; + str2[2] = 8; + StringCopy(&str2[3], str); + AddTextPrinterParameterized3(1, 2, x * 8, 1, sp, TEXT_SPEED_FF, str2); +} + +void sub_812A804(void) +{ + u8 page; + int i; + int var1; + u16 left; + u16 top; + u8 sp[52]; + u8 *str; + u8 *str2; + + FillWindowPixelBuffer(2, PIXEL_FILL(15)); + page = GetCurrentKeyboardPage(); + sp[0] = 0; + sp[1] = 14; + sp[2] = 13; + if (page != UNION_ROOM_KB_PAGE_COUNT) + { + str = &sp[4]; + str[0] = EXT_CTRL_CODE_BEGIN; + str[1] = EXT_CTRL_CODE_MIN_LETTER_SPACING; + var1 = 8; + str[2] = var1; + left = var1; + if (page == UNION_ROOM_KB_PAGE_EMOJI) + left = 6; + + for (i = 0, top = 0; i < UNION_ROOM_KB_ROW_COUNT; i++, top += 12) + { + if (!gUnionRoomKeyboardText[page][i]) + return; + + StringCopy(&sp[7], gUnionRoomKeyboardText[page][i]); + AddTextPrinterParameterized3(2, 0, left, top, sp, TEXT_SPEED_FF, &sp[4]); + } + } + else + { + left = 4; + for (i = 0, top = 0; i < 10; i++, top += 12) + { + str2 = sub_81294B0(i); + if (GetStringWidth(0, str2, 0) <= 40) + { + AddTextPrinterParameterized3(2, 0, left, top, sp, TEXT_SPEED_FF, str2); + } + else + { + int length = StringLength_Multibyte(str2); + do + { + length--; + StringCopyN_Multibyte(&sp[4], str2, length); + } while (GetStringWidth(0, &sp[4], 0) > 35); + + AddTextPrinterParameterized3(2, 0, left, top, sp, TEXT_SPEED_FF, &sp[4]); + AddTextPrinterParameterized3(2, 0, left + 35, top, sp, TEXT_SPEED_FF, gText_Ellipsis); + } + } + } +} + +bool32 sub_812A980(void) +{ + if (gUnknown_203B0E4->unk20 < 56) + { + gUnknown_203B0E4->unk20 += 12; + if (gUnknown_203B0E4->unk20 >= 56) + gUnknown_203B0E4->unk20 = 56; + + if (gUnknown_203B0E4->unk20 < 56) + { + sub_812ADA0(gUnknown_203B0E4->unk20); + return TRUE; + } + } + + sub_812ADF8(gUnknown_203B0E4->unk20); + return FALSE; +} + +bool32 sub_812A9C8(void) +{ + if (gUnknown_203B0E4->unk20 > 0) + { + gUnknown_203B0E4->unk20 -= 12; + if (gUnknown_203B0E4->unk20 <= 0) + gUnknown_203B0E4->unk20 = 0; + + if (gUnknown_203B0E4->unk20 > 0) + { + sub_812ADA0(gUnknown_203B0E4->unk20); + return TRUE; + } + } + + sub_812ADF8(gUnknown_203B0E4->unk20); + return FALSE; +} + +void sub_812AA10(void) +{ + FillWindowPixelBuffer(3, PIXEL_FILL(1)); + DrawTextBorderOuter(3, 1, 13); + UnionRoomAndTradeMenuPrintOptions(3, 2, 14, 5, gUnknown_845ABEC); + Menu_InitCursor(3, 2, 0, 0, 14, 5, GetCurrentKeyboardPage()); + PutWindowTilemap(3); +} + +void sub_812AA64(void) +{ + ClearStdWindowAndFrameToTransparent(3, FALSE); + ClearWindowTilemap(3); +} + +void sub_812AA78(u16 row, u8 *str, u8 arg2) +{ + u8 color[3]; + color[0] = 1; + color[1] = arg2 * 2 + 2; + color[2] = arg2 * 2 + 3; + FillWindowPixelRect(0, PIXEL_FILL(1), 0, row * 15, 168, 15); + AddTextPrinterParameterized3(0, 2, 0, row * 15, color, TEXT_SPEED_FF, str); +} + +void sub_812AAD4(void) +{ + ChangeBgX(0, 0, 0); + ChangeBgY(0, 0, 0); + ChangeBgX(1, 0, 0); + ChangeBgY(1, 0, 0); + ChangeBgX(2, 0, 0); + ChangeBgY(2, 0, 0); + ChangeBgX(3, 0, 0); + ChangeBgY(3, 0, 0); + ShowBg(0); + ShowBg(1); + ShowBg(2); + ShowBg(3); + SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_OBJ_1D_MAP); + SetGpuReg(REG_OFFSET_BLDCNT, 0); + ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON | DISPCNT_WIN1_ON | DISPCNT_OBJWIN_ON); + SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON); + SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(64, 240)); + SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(0, 144)); + SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG0 | WININ_WIN0_BG2 | WININ_WIN0_BG3 + | WININ_WIN0_OBJ | WININ_WIN0_CLR); + SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG_ALL | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR); +} + +void sub_812AB8C(void) +{ + SetBgTilemapBuffer(0, gUnknown_203B0E4->unk128); + SetBgTilemapBuffer(1, gUnknown_203B0E4->unk928); + SetBgTilemapBuffer(3, gUnknown_203B0E4->unk1128); + SetBgTilemapBuffer(2, gUnknown_203B0E4->unk1928); +} + +void sub_812ABD8(void) +{ + RequestDma3Fill(0, (void *)BG_CHAR_ADDR(0), 0x20, 1); + FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 32, 32); + CopyBgTilemapBufferToVram(0); +} + +void sub_812AC08(void) +{ + LoadPalette(gUnknown_8EAA9F0, 0x70, 0x20); + LoadPalette(gUnknown_845AA24, 0xC0, 0x20); + DecompressAndCopyTileDataToVram(1, gUnknown_8EAAA10, 0, 0, 0); + CopyToBgTilemapBuffer(1, gUnknown_8EAAA6C, 0, 0); + CopyBgTilemapBufferToVram(1); +} + +void sub_812AC58(void) +{ + u8 *ptr; + + LoadPalette(gLinkMiscMenu_Pal, 0, 0x20); + ptr = DecompressAndCopyTileDataToVram(2, gLinkMiscMenu_Gfx, 0, 0, 0); + CopyToBgTilemapBuffer(2, gLinkMiscMenu_Tilemap, 0, 0); + CopyBgTilemapBufferToVram(2); +} + +void sub_812AC9C(void) +{ + LoadPalette(gUnknown_845AA44, 0x80, 0x20); + RequestDma3Fill(0, (void *)BG_CHAR_ADDR(1) + 0x20, 0x20, 1); +} + +void sub_812ACC0(void) +{ + LoadPalette(gUnknown_845AA64, 0xF0, 0x20); + PutWindowTilemap(0); + FillWindowPixelBuffer(0, PIXEL_FILL(1)); + CopyWindowToVram(0, 3); +} + +void sub_812ACEC(void) +{ + PutWindowTilemap(2); + sub_812A804(); + CopyWindowToVram(2, 3); +} + +void sub_812AD04(void) +{ + FillWindowPixelBuffer(1, PIXEL_FILL(0)); + PutWindowTilemap(1); + CopyWindowToVram(1, 3); +} + +void sub_812AD20(void) +{ + FillWindowPixelBuffer(3, PIXEL_FILL(1)); + TextWindow_SetUserSelectedFrame(3, 1, 0xD0); + TextWindow_SetStdFrame0_WithPal(3, 0xA, 0x20); + LoadPalette(gTMCaseMainWindowPalette, 0xE0, 0x20); +} + +void sub_812AD50(void) +{ + struct ScanlineEffectParams params; + params.dmaControl = SCANLINE_EFFECT_DMACNT_16BIT; + params.dmaDest = ®_BG1HOFS; + params.initState = 1; + params.unused9 = 0; + gUnknown_203B0E4->unk20 = 0; + CpuFastFill(0, gScanlineEffectRegBuffers, sizeof(gScanlineEffectRegBuffers)); + ScanlineEffect_SetParams(params); +} + +void sub_812ADA0(s16 arg0) +{ + CpuFill16(arg0, gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer], 0x120); + CpuFill16(0, gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer] + 0x90, 0x20); +} + +void sub_812ADF8(s16 arg0) +{ + CpuFill16(arg0, gScanlineEffectRegBuffers[0], 0x120); + CpuFill16(0, gScanlineEffectRegBuffers[0] + 0x90, 0x20); + CpuFill16(arg0, gScanlineEffectRegBuffers[0] + 0x3C0, 0x120); + CpuFill16(0, gScanlineEffectRegBuffers[0] + 0x450, 0x20); +} |