diff options
Diffstat (limited to 'src/easy_chat.c')
-rw-r--r-- | src/easy_chat.c | 38 |
1 files changed, 23 insertions, 15 deletions
diff --git a/src/easy_chat.c b/src/easy_chat.c index 05e366420..8e1044591 100644 --- a/src/easy_chat.c +++ b/src/easy_chat.c @@ -29,7 +29,6 @@ #include "window.h" #include "constants/easy_chat.h" #include "constants/event_objects.h" -#include "constants/flags.h" #include "constants/lilycove_lady.h" #include "constants/mauville_old_man.h" #include "constants/songs.h" @@ -2024,7 +2023,7 @@ static int sub_811B368(void) { if (sEasyChatScreen->type == EASY_CHAT_TYPE_BARD_SONG) { - PlaySE(SE_HAZURE); + PlaySE(SE_FAILURE); return 0; } else @@ -2039,7 +2038,7 @@ static int sub_811B394(void) u16 easyChatWord = sub_811F578(sub_811B940()); if (sub_811BF88(easyChatWord)) { - PlaySE(SE_HAZURE); + PlaySE(SE_FAILURE); return 0; } else @@ -2538,7 +2537,7 @@ u8 sub_811BBBC(void) return sEasyChatScreen->unk_0c; } -void sub_811BBC8(u8 *arg0, u8 *arg1) +static void sub_811BBC8(s8 *arg0, s8 *arg1) { *arg0 = sEasyChatScreen->unk_10; *arg1 = sEasyChatScreen->unk_11; @@ -2794,7 +2793,7 @@ static bool8 sub_811BFA4(void) DeactivateAllTextPrinters(); sub_811CF64(); sub_811CF04(); - CpuFastFill(0, (void *)VRAM + 0x1000000, 0x400); + CpuFastFill(0, (void *)OAM, OAM_SIZE); break; case 1: DecompressAndLoadBgGfxUsingHeap(3, gEasyChatWindow_Gfx, 0, 0, 0); @@ -2828,8 +2827,12 @@ static bool8 sub_811BFA4(void) else { sub_811DE5C(0, 0, 0, 0); - SetGpuReg(REG_OFFSET_WININ, WIN_RANGE(0, 63)); - SetGpuReg(REG_OFFSET_WINOUT, WIN_RANGE(0, 59)); + SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR); + SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG0 + | WINOUT_WIN01_BG1 + | WINOUT_WIN01_BG3 + | WINOUT_WIN01_OBJ + | WINOUT_WIN01_CLR); ShowBg(3); ShowBg(1); ShowBg(2); @@ -4526,18 +4529,18 @@ static void sub_811E30C(void) x = var0 * 13; x = x * 8 + 28; y = var1 * 16 + 96; - sub_811E34C(x, y); + sub_811E34C((u8)x, (u8)y); } static void sub_811E34C(u8 x, u8 y) { - if (sUnknown_0203A11C->unk2E4) - { - sUnknown_0203A11C->unk2E4->pos1.x = x; - sUnknown_0203A11C->unk2E4->pos1.y = y; - sUnknown_0203A11C->unk2E4->pos2.x = 0; - sUnknown_0203A11C->unk2E4->data[0] = 0; - } + if (!sUnknown_0203A11C->unk2E4) + return; + + sUnknown_0203A11C->unk2E4->pos1.x = (s16)x; + sUnknown_0203A11C->unk2E4->pos1.y = (s16)y; + sUnknown_0203A11C->unk2E4->pos2.x = 0; + sUnknown_0203A11C->unk2E4->data[0] = 0; } static void sub_811E380(void) @@ -5269,12 +5272,17 @@ void InitEasyChatPhrases(void) gSaveBlock1Ptr->mail[i].words[j] = 0xFFFF; } +#ifndef UBFIX // BUG: This is supposed to clear 64 bits, but this loop is clearing 64 bytes. // However, this bug has no resulting effect on gameplay because only the // Mauville old man data is corrupted, which is initialized directly after // this function is called when starting a new game. for (i = 0; i < 64; i++) gSaveBlock1Ptr->additionalPhrases[i] = 0; +#else + for (i = 0; i < ARRAY_COUNT(gSaveBlock1Ptr->additionalPhrases); i++) + gSaveBlock1Ptr->additionalPhrases[i] = 0; +#endif } static bool8 sub_811F28C(void) |