summaryrefslogtreecommitdiff
path: root/src/easy_chat.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/easy_chat.c')
-rw-r--r--src/easy_chat.c123
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;
}
}