diff options
Diffstat (limited to 'src/easy_chat.c')
-rw-r--r-- | src/easy_chat.c | 123 |
1 files changed, 63 insertions, 60 deletions
diff --git a/src/easy_chat.c b/src/easy_chat.c index a27e1780e..ad583839d 100644 --- a/src/easy_chat.c +++ b/src/easy_chat.c @@ -230,14 +230,14 @@ static void DoQuizSetQuestionEasyChatScreen(void); #define PALTAG_TRIANGLE_CURSOR 0 #define PALTAG_RECTANGLE_CURSOR 1 #define PALTAG_MISC_UI 2 -#define PALTAG_3 3 +#define PALTAG_RS_INTERVIEW_FRAME 3 #define GFXTAG_TRIANGLE_CURSOR 0 #define GFXTAG_RECTANGLE_CURSOR 1 #define GFXTAG_SCROLL_INDICATOR 2 #define GFXTAG_START_SELECT_BUTTONS 3 #define GFXTAG_MODE_WINDOW 4 -#define GFXTAG_5 5 +#define GFXTAG_RS_INTERVIEW_FRAME 5 #define GFXTAG_BUTTON_WINDOW 6 // State values for sEasyChatScreen->inputState @@ -698,13 +698,16 @@ static const u16 sTriangleCursor_Pal[] = INCBIN_U16("graphics/easy_chat/triangle static const u32 sTriangleCursor_Gfx[] = INCBIN_U32("graphics/easy_chat/triangle_cursor.4bpp"); static const u32 sScrollIndicator_Gfx[] = INCBIN_U32("graphics/easy_chat/scroll_indicator.4bpp"); static const u32 sStartSelectButtons_Gfx[] = INCBIN_U32("graphics/easy_chat/start_select_buttons.4bpp"); -static const u16 sUnknown_085979C0[] = INCBIN_U16("graphics/misc/interview_frame.gbapal"); -static const u32 sUnknown_085979E0[] = INCBIN_U32("graphics/misc/interview_frame.4bpp.lz"); +// In Ruby/Sapphire Easy Chat screens had a black background, and when the player & interviewer were present +// on screen the interview_frame gfx was shown behind them. +// In Emerald all Easy Chat screens have a filled background, so these gfx go unused +static const u16 sRSInterviewFrame_Pal[] = INCBIN_U16("graphics/easy_chat/interview_frame.gbapal"); +static const u32 sRSInterviewFrame_Gfx[] = INCBIN_U32("graphics/easy_chat/interview_frame.4bpp.lz"); static const u16 sTextInputFrameOrange_Pal[] = INCBIN_U16("graphics/easy_chat/text_input_frame_orange.gbapal"); static const u16 sTextInputFrameGreen_Pal[] = INCBIN_U16("graphics/easy_chat/text_input_frame_green.gbapal"); static const u32 sTextInputFrame_Gfx[] = INCBIN_U32("graphics/easy_chat/text_input_frame.4bpp.lz"); -static const u16 sUnknown_08597C1C[] = INCBIN_U16("graphics/misc/8597C1C.gbapal"); -static const u16 sUnknown_08597C24[] = INCBIN_U16("graphics/misc/8597C24.gbapal"); +static const u16 sTitleText_Pal[] = INCBIN_U16("graphics/easy_chat/title_text.gbapal"); +static const u16 sText_Pal[] = INCBIN_U16("graphics/easy_chat/text.gbapal"); static const struct EasyChatPhraseFrameDimensions sPhraseFrameDimensions[] = { [FRAMEID_GENERAL_2x2] = { @@ -895,17 +898,17 @@ static const struct SpritePalette sSpritePalettes[] = { .tag = PALTAG_MISC_UI, // The palette is generated from the button window but used for various parts of the UI }, { - .data = sUnknown_085979C0, - .tag = PALTAG_3, + .data = sRSInterviewFrame_Pal, + .tag = PALTAG_RS_INTERVIEW_FRAME, }, {0} }; static const struct CompressedSpriteSheet sCompressedSpriteSheets[] = { { - .data = sUnknown_085979E0, + .data = sRSInterviewFrame_Gfx, .size = 0x800, - .tag = GFXTAG_5, + .tag = GFXTAG_RS_INTERVIEW_FRAME, }, { .data = gEasyChatRectangleCursor_Gfx, @@ -1471,14 +1474,14 @@ void ShowEasyChatScreen(void) words = &gSaveBlock1Ptr->tvShows[gSpecialVar_0x8005].fanclubOpinions.words[gSpecialVar_0x8006]; displayedPersonType = EASY_CHAT_PERSON_REPORTER_FEMALE; break; - case EASY_CHAT_TYPE_UNK_8: - words = gSaveBlock1Ptr->tvShows[gSpecialVar_0x8005].unkShow04.words; + case EASY_CHAT_TYPE_DUMMY_SHOW: + words = gSaveBlock1Ptr->tvShows[gSpecialVar_0x8005].dummy.words; displayedPersonType = EASY_CHAT_PERSON_REPORTER_MALE; break; case EASY_CHAT_TYPE_TRENDY_PHRASE: words = (u16 *)gStringVar3; - words[0] = gSaveBlock1Ptr->easyChatPairs[0].words[0]; - words[1] = gSaveBlock1Ptr->easyChatPairs[0].words[1]; + words[0] = gSaveBlock1Ptr->dewfordTrends[0].words[0]; + words[1] = gSaveBlock1Ptr->dewfordTrends[0].words[1]; break; case EASY_CHAT_TYPE_GABBY_AND_TY: words = gSaveBlock1Ptr->gabbyAndTyData.quote; @@ -2958,7 +2961,7 @@ static void SetSpecialEasyChatResult(void) break; case EASY_CHAT_TYPE_TRENDY_PHRASE: BufferCurrentPhraseToStringVar2(); - gSpecialVar_0x8004 = IsPhraseTrendy(sEasyChatScreen->currentPhrase); + gSpecialVar_0x8004 = TrySetTrendyPhrase(sEasyChatScreen->currentPhrase); break; case EASY_CHAT_TYPE_GOOD_SAYING: gSpecialVar_0x8004 = DidPlayerInputABerryMasterWifePhrase(); @@ -3914,10 +3917,10 @@ static void LoadEasyChatPalettes(void) LoadPalette(gEasyChatMode_Pal, 0, 32); LoadPalette(sTextInputFrameOrange_Pal, 1 * 16, 32); LoadPalette(sTextInputFrameGreen_Pal, 4 * 16, 32); - LoadPalette(sUnknown_08597C1C, 10 * 16, 8); - LoadPalette(sUnknown_08597C24, 11 * 16, 12); - LoadPalette(sUnknown_08597C24, 15 * 16, 12); - LoadPalette(sUnknown_08597C24, 3 * 16, 12); + LoadPalette(sTitleText_Pal, 10 * 16, 8); + LoadPalette(sText_Pal, 11 * 16, 12); + LoadPalette(sText_Pal, 15 * 16, 12); + LoadPalette(sText_Pal, 3 * 16, 12); } static void PrintTitle(void) @@ -3929,7 +3932,7 @@ static void PrintTitle(void) xOffset = GetStringCenterAlignXOffset(1, titleText, 144); FillWindowPixelBuffer(0, PIXEL_FILL(0)); - PrintEasyChatTextWithColors(0, 1, titleText, xOffset, 1, TEXT_SPEED_FF, TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GREY, TEXT_COLOR_LIGHT_GREY); + PrintEasyChatTextWithColors(0, 1, titleText, xOffset, 1, TEXT_SPEED_FF, TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_LIGHT_GRAY); PutWindowTilemap(0); CopyWindowToVram(0, 3); } @@ -4327,7 +4330,7 @@ static void PrintWordSelectText(u8 scrollOffset, u8 numRows) if (!DummyWordCheck(easyChatWord)) PrintEasyChatText(2, 1, sScreenControl->wordSelectPrintBuffer, (j * 13 + 3) * 8, y, TEXT_SPEED_FF, NULL); else // Never reached - PrintEasyChatTextWithColors(2, 1, sScreenControl->wordSelectPrintBuffer, (j * 13 + 3) * 8, y, TEXT_SPEED_FF, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_RED, TEXT_COLOR_LIGHT_GREY); + PrintEasyChatTextWithColors(2, 1, sScreenControl->wordSelectPrintBuffer, (j * 13 + 3) * 8, y, TEXT_SPEED_FF, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_RED, TEXT_COLOR_LIGHT_GRAY); } } @@ -4632,17 +4635,17 @@ static void SpriteCB_Cursor(struct Sprite *sprite) if (++sprite->sDelayTimer > 2) { sprite->sDelayTimer = 0; - if (++sprite->pos2.x > 0) - sprite->pos2.x = -6; + if (++sprite->x2 > 0) + sprite->x2 = -6; } } } static void SetMainCursorPos(u8 x, u8 y) { - sScreenControl->mainCursorSprite->pos1.x = x; - sScreenControl->mainCursorSprite->pos1.y = y; - sScreenControl->mainCursorSprite->pos2.x = 0; + sScreenControl->mainCursorSprite->x = x; + sScreenControl->mainCursorSprite->y = y; + sScreenControl->mainCursorSprite->x2 = 0; sScreenControl->mainCursorSprite->sDelayTimer = 0; } @@ -4650,7 +4653,7 @@ static void StopMainCursorAnim(void) { sScreenControl->mainCursorSprite->sDelayTimer = 0; sScreenControl->mainCursorSprite->sAnimateCursor = FALSE; - sScreenControl->mainCursorSprite->pos2.x = 0; + sScreenControl->mainCursorSprite->x2 = 0; } static void StartMainCursorAnim(void) @@ -4662,11 +4665,11 @@ static void CreateRectangleCursorSprites(void) { u8 spriteId = CreateSprite(&sSpriteTemplate_RectangleCursor, 0, 0, 3); sScreenControl->rectangleCursorSpriteRight = &gSprites[spriteId]; - sScreenControl->rectangleCursorSpriteRight->pos2.x = 32; + sScreenControl->rectangleCursorSpriteRight->x2 = 32; spriteId = CreateSprite(&sSpriteTemplate_RectangleCursor, 0, 0, 3); sScreenControl->rectangleCursorSpriteLeft = &gSprites[spriteId]; - sScreenControl->rectangleCursorSpriteLeft->pos2.x = -32; + sScreenControl->rectangleCursorSpriteLeft->x2 = -32; sScreenControl->rectangleCursorSpriteRight->hFlip = TRUE; UpdateRectangleCursorPos(); @@ -4702,23 +4705,23 @@ static void SetRectangleCursorPos_GroupMode(s8 column, s8 row) { // In group name window StartSpriteAnim(sScreenControl->rectangleCursorSpriteRight, RECTCURSOR_ANIM_ON_GROUP); - sScreenControl->rectangleCursorSpriteRight->pos1.x = column * 84 + 58; - sScreenControl->rectangleCursorSpriteRight->pos1.y = row * 16 + 96; + sScreenControl->rectangleCursorSpriteRight->x = column * 84 + 58; + sScreenControl->rectangleCursorSpriteRight->y = row * 16 + 96; StartSpriteAnim(sScreenControl->rectangleCursorSpriteLeft, RECTCURSOR_ANIM_ON_GROUP); - sScreenControl->rectangleCursorSpriteLeft->pos1.x = column * 84 + 58; - sScreenControl->rectangleCursorSpriteLeft->pos1.y = row * 16 + 96; + sScreenControl->rectangleCursorSpriteLeft->x = column * 84 + 58; + sScreenControl->rectangleCursorSpriteLeft->y = row * 16 + 96; } else { // In button window StartSpriteAnim(sScreenControl->rectangleCursorSpriteRight, RECTCURSOR_ANIM_ON_BUTTON); - sScreenControl->rectangleCursorSpriteRight->pos1.x = 216; - sScreenControl->rectangleCursorSpriteRight->pos1.y = row * 16 + 112; + sScreenControl->rectangleCursorSpriteRight->x = 216; + sScreenControl->rectangleCursorSpriteRight->y = row * 16 + 112; StartSpriteAnim(sScreenControl->rectangleCursorSpriteLeft, RECTCURSOR_ANIM_ON_BUTTON); - sScreenControl->rectangleCursorSpriteLeft->pos1.x = 216; - sScreenControl->rectangleCursorSpriteLeft->pos1.y = row * 16 + 112; + sScreenControl->rectangleCursorSpriteLeft->x = 216; + sScreenControl->rectangleCursorSpriteLeft->y = row * 16 + 112; } } @@ -4745,23 +4748,23 @@ static void SetRectangleCursorPos_AlphabetMode(s8 column, s8 row) } StartSpriteAnim(sScreenControl->rectangleCursorSpriteRight, anim); - sScreenControl->rectangleCursorSpriteRight->pos1.x = x; - sScreenControl->rectangleCursorSpriteRight->pos1.y = y; + sScreenControl->rectangleCursorSpriteRight->x = x; + sScreenControl->rectangleCursorSpriteRight->y = y; StartSpriteAnim(sScreenControl->rectangleCursorSpriteLeft, anim); - sScreenControl->rectangleCursorSpriteLeft->pos1.x = x; - sScreenControl->rectangleCursorSpriteLeft->pos1.y = y; + sScreenControl->rectangleCursorSpriteLeft->x = x; + sScreenControl->rectangleCursorSpriteLeft->y = y; } else { // In button window StartSpriteAnim(sScreenControl->rectangleCursorSpriteRight, RECTCURSOR_ANIM_ON_BUTTON); - sScreenControl->rectangleCursorSpriteRight->pos1.x = 216; - sScreenControl->rectangleCursorSpriteRight->pos1.y = row * 16 + 112; + sScreenControl->rectangleCursorSpriteRight->x = 216; + sScreenControl->rectangleCursorSpriteRight->y = row * 16 + 112; StartSpriteAnim(sScreenControl->rectangleCursorSpriteLeft, RECTCURSOR_ANIM_ON_BUTTON); - sScreenControl->rectangleCursorSpriteLeft->pos1.x = 216; - sScreenControl->rectangleCursorSpriteLeft->pos1.y = row * 16 + 112; + sScreenControl->rectangleCursorSpriteLeft->x = 216; + sScreenControl->rectangleCursorSpriteLeft->y = row * 16 + 112; } } @@ -4781,8 +4784,8 @@ static void SpriteCB_WordSelectCursor(struct Sprite *sprite) if (++sprite->sDelayTimer > 2) { sprite->sDelayTimer = 0; - if (++sprite->pos2.x > 0) - sprite->pos2.x = -6; + if (++sprite->x2 > 0) + sprite->x2 = -6; } } @@ -4801,9 +4804,9 @@ static void SetWordSelectCursorPos(u8 x, u8 y) { if (sScreenControl->wordSelectCursorSprite) { - sScreenControl->wordSelectCursorSprite->pos1.x = x; - sScreenControl->wordSelectCursorSprite->pos1.y = y; - sScreenControl->wordSelectCursorSprite->pos2.x = 0; + sScreenControl->wordSelectCursorSprite->x = x; + sScreenControl->wordSelectCursorSprite->y = y; + sScreenControl->wordSelectCursorSprite->x2 = 0; sScreenControl->wordSelectCursorSprite->sDelayTimer = 0; } } @@ -4821,7 +4824,7 @@ static void CreateSideWindowSprites(void) { u8 spriteId = CreateSprite(&sSpriteTemplate_ButtonWindow, 208, 128, 6); sScreenControl->buttonWindowSprite = &gSprites[spriteId]; - sScreenControl->buttonWindowSprite->pos2.x = -64; + sScreenControl->buttonWindowSprite->x2 = -64; spriteId = CreateSprite(&sSpriteTemplate_ModeWindow, 208, 80, 5); sScreenControl->modeWindowSprite = &gSprites[spriteId]; @@ -4836,10 +4839,10 @@ static bool8 ShowSideWindow(void) return FALSE; case 0: // Slide button window on - sScreenControl->buttonWindowSprite->pos2.x += 8; - if (sScreenControl->buttonWindowSprite->pos2.x >= 0) + sScreenControl->buttonWindowSprite->x2 += 8; + if (sScreenControl->buttonWindowSprite->x2 >= 0) { - sScreenControl->buttonWindowSprite->pos2.x = 0; + sScreenControl->buttonWindowSprite->x2 = 0; // Set mode window anim if (!GetInAlphabetMode()) @@ -4878,8 +4881,8 @@ static bool8 DestroySideWindowSprites(void) sScreenControl->modeWindowState = 1; break; case 1: - sScreenControl->buttonWindowSprite->pos2.x -= 8; - if (sScreenControl->buttonWindowSprite->pos2.x <= -64) + sScreenControl->buttonWindowSprite->x2 -= 8; + if (sScreenControl->buttonWindowSprite->x2 <= -64) { DestroySprite(sScreenControl->modeWindowSprite); DestroySprite(sScreenControl->buttonWindowSprite); @@ -4944,14 +4947,14 @@ static void SetScrollIndicatorXPos(bool32 inWordSelect) if (!inWordSelect) { // Keyboard (only relevant for group mode, can't scroll in alphabet mode) - sScreenControl->scrollIndicatorUpSprite->pos1.x = 96; - sScreenControl->scrollIndicatorDownSprite->pos1.x = 96; + sScreenControl->scrollIndicatorUpSprite->x = 96; + sScreenControl->scrollIndicatorDownSprite->x = 96; } else { // Word select - sScreenControl->scrollIndicatorUpSprite->pos1.x = 120; - sScreenControl->scrollIndicatorDownSprite->pos1.x = 120; + sScreenControl->scrollIndicatorUpSprite->x = 120; + sScreenControl->scrollIndicatorDownSprite->x = 120; } } |